Browse Source

update continue.md: unblock maneuver_planning, refresh sim_engine capabilities

test-refactor
cinnaboot 2 months ago
parent
commit
bddde65fd3
  1. 17
      continue.md

17
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_<test_name>.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

Loading…
Cancel
Save