Files
galileo/tests/integration/test_signalsim_inav_symbols.py
T

24 lines
956 B
Python

from __future__ import annotations
from pathlib import Path
import numpy as np
import pytest
from galileo_rx.navigation.decoder_diagnostics import load_prompt_epochs
from galileo_rx.navigation.e1b_symbol_sync import E1BSymbolSynchronizer
@pytest.mark.signalsim
def test_signalsim_prompt_artifact_recovers_soft_and_hard_symbols() -> None:
path = Path("verification/navigation/signalsim_navigation_multisat/prn_01/prompt_epochs.npz")
if not path.is_file():
pytest.skip("SignalSim navigation prompt artifact is unavailable; run collect-navigation first")
prompts = load_prompt_epochs(path, 1)
symbols = E1BSymbolSynchronizer(8, 0.1).process_many(prompts)
soft = np.asarray([item.soft_value for item in symbols], dtype=np.float64)
assert soft.dtype == np.float64
assert len(symbols) == 8044
assert np.count_nonzero([item.valid for item in symbols]) > 7500
assert {item.hard_value for item in symbols} == {0, 1}