### NOT Implemented (notify the user before beginning to refactor)
- SOI transitions
- Maneuver trigger system (TRIGGER_TIME, TRIGGER_TRUE_ANOMALY)
- Hohmann transfer calculations
- Rendezvous planning
- OrbitTracker
- Energy functions (KE, PE, total)
- Hyperbolic propagation
## 1. Structure
- One `SCENARIO("description")` per logical test group, with `[tag1][tag2]` annotations
- Shared fixture: all constants, structs, and variables declared between `SCENARIO` opening and first `SECTION`
@ -28,19 +46,27 @@
## 4. Precalc scripts
- For each test file, create `scripts/precalc_<test_name>.py` that computes expected values.
- Use `scripts/sim_engine.py` for physics (orbital_to_cartesian, propagate, etc.).
- **Check the capability matrix first** — only use sim_engine.py for implemented features.
- **Always output local-frame values** (distances from parent, not global from origin).
- C++ tests typically use local coordinates (e.g., `vec3_distance(craft->local_position, (Vec3){0,0,0})`).
- Global distances are dominated by parent body positions (e.g., Earth-Sun distance swamps LEO orbit).
- Output C++-style comments with precalculated constants for embedding in the test.
- Run with: `python3 scripts/precalc_<test_name>.py`
- If sim_engine.py lacks a feature (e.g., spacecraft, OrbitTracker), use analytical formulas instead (**but notify the user what feature was missing**)
- If sim_engine.py lacks a feature, use analytical formulas instead (**but notify the user what feature was missing**)
## 5. Process per file
- **Pre-check**: Verify the test file has a TOML config in `old_tests/`. If it doesn't, skip — it's likely hardcoded.
- **Pre-check**: Check if the test is already in `tests/` (already refactored). Skip if so.
- **Pre-check**: Check the capability matrix — if the test needs SOI, maneuvers, rendezvous, etc., flag this before starting.
- Process **one test file at a time**.
- Create `scripts/precalc_<test_name>.py` and run it to get expected values.
- Copy from `old_tests/` to `tests/`, rewrite using the pattern from `test_true_anomaly_roundtrip.cpp`.