from __future__ import annotations import json from pathlib import Path import pytest @pytest.mark.signalsim def test_four_satellites_are_navigation_ready_without_truth_inputs() -> None: path = Path("reports/navigation_run/inav_collection_report.json") if not path.is_file(): pytest.skip("SignalSim multi-satellite navigation collection report is unavailable") report = json.loads(path.read_text(encoding="utf-8")) assert report["decoder_truth_inputs"] == [] ready = [ item for item in report["satellites"].values() if item["complete_ephemeris"] and item["clock_parameters"] and item["health_valid"] and item["data_valid"] ] assert len(ready) >= 4 assert report["galileo_time"]["valid"] is True assert report["navigation_ready"] is True