3.5 KiB
3.5 KiB
Phase gates and reproducible commands
The project was implemented in six gates. These are the exact command shapes used to validate each gate; the final regression reruns their union.
Phase 1
python -m pytest tests/unit/test_config.py tests/unit/test_signals.py
python examples/generate_e1_signal.py
Phase 2
python -m pytest tests/unit/test_frontend.py tests/unit/test_acquisition_metrics.py tests/unit/test_acquisition_parallelism.py tests/integration/test_acquisition.py tests/integration/test_long_integration.py
python examples/run_acquisition.py
Phases 3 and 4
python -m pytest tests/unit/test_discriminators.py tests/unit/test_loop_filters.py tests/unit/test_correlator.py tests/integration/test_tracking.py
python examples/run_tracking.py
python examples/run_complete_receiver.py
Phase 5
python -m pytest tests/unit/test_fixed_point.py tests/unit/test_fixed_fft.py tests/integration/test_fixed_acquisition.py tests/regression/test_complete_receiver.py
python -m galileo_rx.cli compare-fixed --config configs/acquisition_example.yaml --input samples.bin
Phase 6 and final regression
python -m pytest tests/unit/test_rtl_model.py tests/unit/test_vector_export.py
python -m pytest
The CLI smoke sequence is:
python -m galileo_rx.cli generate --config configs/acquisition_example.yaml --duration-ms 60 --prn 1 --output samples.bin
python -m galileo_rx.cli acquire --config configs/acquisition_example.yaml --input samples.bin --output acquisition.json
python -m galileo_rx.cli track --config configs/tracking_example.yaml --input samples.bin --acquisition-result acquisition.json --output tracking.csv
python -m galileo_rx.cli run --config configs/acquisition_example.yaml --input samples.bin
python -m galileo_rx.cli compare-fixed --config configs/acquisition_example.yaml --input samples.bin
E1B I/NAV pre-PVT gate
python tools/generate_signalsim_vectors.py --signalsim-path signalsim/SignalSim --vector navigation_multisat --project-root .
python -m galileo_rx.cli collect-navigation --config configs/navigation_collection.yaml --output-dir reports/navigation_run --require-ready
python -m galileo_rx.cli prompts-to-symbols --input verification/navigation/signalsim_navigation_multisat/prn_01/prompt_epochs.npz --prn 1 --output-dir reports/navigation_replay/prn_01
python -m galileo_rx.cli decode-inav --input verification/navigation/signalsim_navigation_multisat/prn_01/prompt_epochs.npz --prn 1 --output-dir reports/navigation_replay/prn_01
python -m galileo_rx.cli inspect-navigation --input reports/navigation_replay/prn_01
python -m galileo_rx.cli compare-inav-truth --artifact-root verification/navigation/signalsim_navigation_multisat --rinex signalsim/SignalSim/EphData/BRDC00IGS_R_20211700000_01D_MN.rnx --collection-report reports/navigation_run/inav_collection_report.json --signalsim-config verification/vectors/signalsim/navigation_multisat/generated_config.json --output-dir reports
MPLBACKEND=Agg python -m pytest tests/navigation tests/integration/test_signalsim_inav_symbols.py tests/integration/test_signalsim_inav_pages.py tests/integration/test_signalsim_inav_ephemeris.py tests/integration/test_multisat_navigation_collection.py
MPLBACKEND=Agg python -m pytest
The RF .bin vector is regenerated locally and remains ignored; its committed
configuration, metadata, SHA-256 tag, log, and compact prompt-to-ephemeris
artifacts make the gate reproducible without checking in hundreds of megabytes.