Update build/test docs: remove make run, add Catch2 filtering patterns
- Remove make run target from Makefile (agents should not run graphical sim)
- Update AGENTS.md: clarify make test vs make test-build, add Simulation section
- Update technical_reference.md Build System: add tag/name/section filtering
- Add SCENARIO section docs with --section flag and fixture behavior notes
- Use ./build/orbit_test path, rename config_name to tag_name throughout
- Test (with extra debug info): ./orbit_test -s '[config_name]'
- Test (rebuild only): make test-build
- Test (specific tag): ./build/orbit_test '[tag_name]'
- Test (with debug output): ./build/orbit_test -s '[tag_name]'
- needed to display 'INFO' statements for successful tests with Catch2 framework
- needed to display 'INFO' statements for successful tests with Catch2 framework
- See README.md for full build instructions
- See docs/technical_reference.md for full build target reference
## Simulation
The simulation binary is built at `./build/orbit_sim`. Agents should NOT attempt to run the graphical simulation. Focus on testing and code changes only.
## Testing Guidelines
## Testing Guidelines
- Always use `WithinAbs()` for floating-point comparisons
- Always use `WithinAbs()` for floating-point comparisons
./orbit_test '[config_name]' # Run specific config
make test-build # Rebuild test executable only
./orbit_test -s '[config]' # With debug output
```
```
### Running Specific Tests
The test binary is at `./build/orbit_test`. Catch2 v3.7.1 supports multiple filtering strategies:
```bash
./build/orbit_test '[analytical]' # By tag
./build/orbit_test "*barker*" # By name (wildcard)
./build/orbit_test '*burn*' [hybrid] # Combined: name AND tag
./build/orbit_test '[hohmann]~[energy]' # Exclude tag (~)
./build/orbit_test -s '[tag]' # With debug/INFO output
```
Tags are the most common filter. Multiple tags on the command line use AND logic (test must have all tags). The `~` operator excludes a tag.
### SCENARIO Sections
SCENARIO tests group related assertions under SECTION sub-tests. Each SECTION is an independent test case — setup code before all SECTIONs runs once per SECTION, so fixtures are recreated. This allows drilling into specific parts:
```bash
./build/orbit_test '[hohmann]' --section "First burn at perigee raises apogee"
```
In `--list-tests` output, SCENARIO tests display with "Scenario: " prefix. When filtering by name, wildcards handle the prefix transparently.
Use `WithinAbs(expected, tolerance)` for floating-point comparisons (NOT `Approx()`).
Use `WithinAbs(expected, tolerance)` for floating-point comparisons (NOT `Approx()`).