mirror of https://github.com/commaai/openpilot.git
simple navd test (#30976)
* simple test
* can't check that
* cleanup
old-commit-hash: ef73ee7b37
This commit is contained in:
parent
244396e23c
commit
65b0e47bc2
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env python3
|
||||
import json
|
||||
import random
|
||||
import unittest
|
||||
import numpy as np
|
||||
|
||||
import cereal.messaging as messaging
|
||||
from openpilot.common.params import Params
|
||||
from openpilot.selfdrive.manager.process_config import managed_processes
|
||||
|
||||
|
||||
class TestNavd(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.params = Params()
|
||||
self.sm = messaging.SubMaster(['navRoute', 'navInstruction'])
|
||||
|
||||
def tearDown(self):
|
||||
managed_processes['navd'].stop()
|
||||
|
||||
def _check_route(self, start, end, check_coords=True):
|
||||
self.params.put("NavDestination", json.dumps(end))
|
||||
self.params.put("LastGPSPosition", json.dumps(start))
|
||||
|
||||
managed_processes['navd'].start()
|
||||
for _ in range(30):
|
||||
self.sm.update(1000)
|
||||
if all(f > 0 for f in self.sm.rcv_frame.values()):
|
||||
break
|
||||
else:
|
||||
raise Exception("didn't get a route")
|
||||
|
||||
assert managed_processes['navd'].proc.is_alive()
|
||||
managed_processes['navd'].stop()
|
||||
|
||||
# ensure start and end match up
|
||||
if check_coords:
|
||||
coords = self.sm['navRoute'].coordinates
|
||||
assert np.allclose([start['latitude'], start['longitude'], end['latitude'], end['longitude']],
|
||||
[coords[0].latitude, coords[0].longitude, coords[-1].latitude, coords[-1].longitude],
|
||||
rtol=1e-3)
|
||||
|
||||
def test_simple(self):
|
||||
start = {
|
||||
"latitude": 32.7427228,
|
||||
"longitude": -117.2321177,
|
||||
}
|
||||
end = {
|
||||
"latitude": 32.7557004,
|
||||
"longitude": -117.268002,
|
||||
}
|
||||
self._check_route(start, end)
|
||||
|
||||
def test_random(self):
|
||||
for _ in range(10):
|
||||
start = {"latitude": random.uniform(-90, 90), "longitude": random.uniform(-180, 180)}
|
||||
end = {"latitude": random.uniform(-90, 90), "longitude": random.uniform(-180, 180)}
|
||||
self._check_route(start, end, check_coords=False)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Loading…
Reference in New Issue