Files
galileo/tests/integration/test_signalsim_acquisition.py

26 lines
1.2 KiB
Python

import pytest
@pytest.mark.signalsim
def test_signalsim_pcps_detects_e1b_and_e1c(signalsim_validation_result) -> None:
report, _, output = signalsim_validation_result
for component in ("E1B", "E1C"):
result = report["acquisition"][component]
assert result["detected"]
assert result["prn"] == 1
assert abs(result["raw_doppler_error_hz"]) <= 250.0
assert result["detection_metric"] >= 2.5
assert result["overflow_count"] == 0
assert (output / f"acquisition_map_{component.lower()}.png").is_file()
# SignalSim does not export code-delay truth, but the independently acquired
# E1B and E1C components share the same propagation delay.
delta = abs(report["acquisition"]["E1B"]["code_phase_samples"] - report["acquisition"]["E1C"]["code_phase_samples"])
assert delta < 1.0
fixed = report["fixed_point_acquisition"]
assert fixed["doppler_bin_agreement"]
assert fixed["code_phase_agreement"]
assert fixed["acquisition_decision_agreement"]
assert fixed["overflow_count"] == 0
assert fixed["normalized_rms_error"] < 0.005
assert report["rtl_vector_manifest"]["sample_count"] == 5 * 32736