From bddde65fd38a45bc94f179d270685fc3001038df Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Sat, 9 May 2026 08:00:28 -0400 Subject: [PATCH] update continue.md: unblock maneuver_planning, refresh sim_engine capabilities --- continue.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/continue.md b/continue.md index 72c1fea..baf6c1a 100644 --- a/continue.md +++ b/continue.md @@ -48,7 +48,7 @@ All constants defined in `src/test_utilities.h` — use those, do not redefine l - **Always output SI units** (meters, m/s, seconds) — C++ tests use SI internally. - Output C++-style comments with precalculated expected values for embedding in the test. Tolerances are chosen separately by the test writer using the Tolerance Reference table — the precalc script should not output tolerance values. - Run with: `python3 scripts/precalc_.py` -- If sim_engine.py lacks a feature, use analytical formulas instead (**but notify the user what feature was missing**) +- If sim_engine.py lacks a feature, **stop to notify the user what feature is missing** ## Refactoring Procedure @@ -63,10 +63,9 @@ All constants defined in `src/test_utilities.h` — use those, do not redefine l - Follow all rules in sections 1-4 above. ### Step 2: Tighten Tolerances -- Build and verify: `make test-build` then `./build/orbit_test '[tag]' -s`. -- Run full suite: `make test`. +- Build and verify: `make test-build` then `./build/orbit_test -s '[tag]'`. +- Run full suite: `./build/orbit_test | tail`. - Review every tolerance against actual observed errors from `-s` output. -- If a constant's margin is too loose (e.g., `1e-6` when error is `1e-10`), tighten to `1e-8`. - **If a test fails due to a tolerance being too tight, report the observed error to the user and ask whether to loosen the constant or investigate the root cause. Never silently widen a tolerance.** - Refer to the tolerance reference table in Section 3 for constant names. @@ -95,6 +94,8 @@ All constants defined in `src/test_utilities.h` — use those, do not redefine l ### Sim Engine Capabilities #### Implemented +- Maneuver trigger system (TIME and TRUE_ANOMALY triggers) +- BurnResult capture (position, velocity, true anomaly at exact burn time) - Body propagation (elliptical + parabolic via Barker's equation) - Orbital↔Cartesian transforms (full z-x-z Euler rotation) - Velocity drift detection and element reconstruction @@ -105,7 +106,7 @@ All constants defined in `src/test_utilities.h` — use those, do not redefine l #### NOT Implemented (notify the user before beginning to refactor) - SOI transitions -- Maneuver trigger system (TRIGGER_TIME, TRIGGER_TRUE_ANOMALY) +- Maneuver TRUE_ANOMALY triggers only work with elliptical orbits (parabolic/hyperbolic branches not implemented) - Hohmann transfer calculations - Rendezvous planning - OrbitTracker @@ -133,8 +134,9 @@ All constants defined in `src/test_utilities.h` — use those, do not redefine l - `test_periapsis_burn` — prograde burns ### Can Refactor Now (sim_engine.py supports all features needed) -- `test_hybrid_burns` — impulse burns -- `test_omega_debug` — burn + element reconstruction +- `test_hybrid_burns` — impulse burns + maneuver triggers +- `test_omega_debug` — burn + element reconstruction + maneuver triggers +- `test_maneuver_planning` — maneuver trigger system (TIME + elliptical TRUE_ANOMALY triggers) - `test_orbit_rendering` — rendering tests (check if sim_engine needed) - `test_precision_boundaries` — boundary condition tests - `test_invalid_parent_assignment` — validation/error handling tests @@ -143,7 +145,6 @@ All constants defined in `src/test_utilities.h` — use those, do not redefine l ### Blocked on Missing Features - `test_soi_transition` — needs SOI transitions - `test_root_body_transitions` — needs SOI transitions -- `test_maneuver_planning` — needs maneuver trigger system - `test_hybrid_energy_conservation` — needs energy functions (KE, PE, total) - `test_hyperbolic_orbit` — needs hyperbolic propagation - `test_rendezvous` — needs Hohmann transfer calculations