Files
galileo/tests/unit/test_lock_detector.py
T

19 lines
697 B
Python

from __future__ import annotations
import numpy as np
from galileo_rx.tracking.lock_detector import LockDetector
from galileo_rx.types import CorrelatorOutputs
def _correlators(phase_rad: float) -> CorrelatorOutputs:
prompt = complex(np.exp(1j * phase_rad))
return CorrelatorOutputs(0.2 * prompt, 0.5 * prompt, prompt, 0.5 * prompt, 0.2 * prompt)
def test_data_lock_detector_ignores_bpsk_transition_but_detects_quadrature_jump() -> None:
detector = LockDetector(data_sign_insensitive=True)
detector.update(_correlators(0.0))
assert detector.update(_correlators(np.pi)).cycle_slip is False
assert detector.update(_correlators(np.pi + 0.49 * np.pi)).cycle_slip is True