Laikad: add test (#27028)

* add laikad tropo test

Co-authored-by: Kurt Nistelberger <kurt.nistelberger@gmail.com>
old-commit-hash: 027c27cd69
beeps
Kurt Nistelberger 2 years ago committed by GitHub
parent fdfc06fc59
commit c517e76764
  1. 34
      selfdrive/locationd/test/test_laikad.py

@ -22,7 +22,24 @@ def get_log(segs=range(0)):
logs = [] logs = []
for i in segs: for i in segs:
logs.extend(LogReader(get_url("4cf7a6ad03080c90|2021-09-29--13-46-36", i))) logs.extend(LogReader(get_url("4cf7a6ad03080c90|2021-09-29--13-46-36", i)))
return [m for m in logs if m.which() == 'ubloxGnss']
all_logs = [m for m in logs if m.which() == 'ubloxGnss']
low_gnss = []
for m in all_logs:
if m.ubloxGnss.which() != 'measurementReport':
continue
MAX_MEAS = 7
if m.ubloxGnss.measurementReport.numMeas > MAX_MEAS:
mb = m.as_builder()
mb.ubloxGnss.measurementReport.numMeas = MAX_MEAS
mb.ubloxGnss.measurementReport.measurements = list(m.ubloxGnss.measurementReport.measurements)[:MAX_MEAS]
mb.ubloxGnss.measurementReport.measurements[0].pseudorange += 1000
low_gnss.append(mb.as_reader())
else:
low_gnss.append(m)
return all_logs, low_gnss
def verify_messages(lr, laikad, return_one_success=False): def verify_messages(lr, laikad, return_one_success=False):
@ -59,8 +76,9 @@ class TestLaikad(unittest.TestCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
logs = get_log(range(1)) logs, low_gnss = get_log(range(1))
cls.logs = logs cls.logs = logs
cls.low_gnss = low_gnss
first_gps_time = get_first_gps_time(logs) first_gps_time = get_first_gps_time(logs)
cls.first_gps_time = first_gps_time cls.first_gps_time = first_gps_time
@ -254,6 +272,18 @@ class TestLaikad(unittest.TestCase):
# Verify orbit data is not downloaded # Verify orbit data is not downloaded
mock_method.assert_not_called() mock_method.assert_not_called()
def test_low_gnss_meas(self):
cnt = 0
laikad = Laikad()
for m in self.low_gnss:
msg = laikad.process_gnss_msg(m.ubloxGnss, m.logMonoTime, block=True)
if msg is None:
continue
gm = msg.gnssMeasurements
if len(gm.correctedMeasurements) != 0 and gm.positionECEF.valid:
cnt += 1
self.assertEqual(cnt, 554)
def dict_has_values(self, dct): def dict_has_values(self, dct):
self.assertGreater(len(dct), 0) self.assertGreater(len(dct), 0)
self.assertGreater(min([len(v) for v in dct.values()]), 0) self.assertGreater(min([len(v) for v in dct.values()]), 0)

Loading…
Cancel
Save