Skip to content

test: freeze plotting reference matrix + free-final-time fixture#362

Merged
ocots merged 1 commit into
mainfrom
test/plot-reference-matrix
Jul 8, 2026
Merged

test: freeze plotting reference matrix + free-final-time fixture#362
ocots merged 1 commit into
mainfrom
test/plot-reference-matrix

Conversation

@ocots

@ocots ocots commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

Transcribe the .extras/ visual-check scripts into an executable reference matrix that freezes the plotting behaviour for phase 0 (spec & gel) of the plotting-engine unification. Two components:

  1. test_plot_reference.jl (72 assertions) — covers the gaps left by test_plot.jl:

    • description-symbol subsets (plot(sol, :state, :control, :path) …)
    • per-group *_style=:none end-to-end (5 groups + combos)
    • decoration disabling (time_style, *_bounds_style …)
    • user styles (color/label, NamedTuple per group)
    • plot! overlays + normalized time
    • free-final-time decoration path (new fixture)
  2. solution_example_free_final_time — new fixture, double integrator minimum time:

    • free final time (tf is a decision variable)
    • built via functional CTModels API (variable! before time!(...; indf=1))
    • closed-form solution via build_solution (no CTDirect/Ipopt dependency)
    • exercises the final_time(model, variable(sol)) path that no fixed-time fixture covers

Test Results

  • test_plot_reference.jl: 72/72
  • extensions/ total (with existing test_plot.jl): 203/203
  • Full CTModels suite (Aqua included): passed

Impact

Non-breaking change to test/ only. The reference matrix is the foundation for phase 1 (CTBase engine + CTBasePlots renderer): golden assertions on the IR will be added when that phase begins.

🤖 Generated with Claude Code

Transcribe the .extras/ visual-check scripts into an executable
reference matrix (test_plot_reference.jl) covering the gaps left by
test_plot.jl: description subsets, per-group :none styles, decoration
disabling, user styles (color/label/NamedTuple), plot! overlays, and
normalized time.

Add solution_example_free_final_time: a free-final-time fixture
(double integrator minimum time) built via the functional CTModels API
(variable! before time!(...; indf=1)). This exercises the time-decoration
path that reads tf from the decision variable, completing the reference
matrix without a CTDirect/Ipopt test dependency.

All 203 extension tests pass; full suite green (Aqua included).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@ocots
ocots merged commit 3f1371c into main Jul 8, 2026
6 checks passed
@ocots
ocots deleted the test/plot-reference-matrix branch July 8, 2026 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant