Files
onepilot/selfdrive/ui/tests/test_speed_limit_utils.py
T
firestar5683 fe4f42a616 friar carl
2026-03-31 13:27:22 -05:00

78 lines
2.2 KiB
Python

import importlib.util
import unittest
from pathlib import Path
MODULE_PATH = Path(__file__).resolve().parents[1] / "mici" / "onroad" / "speed_limit_utils.py"
SPEC = importlib.util.spec_from_file_location("speed_limit_utils_under_test", MODULE_PATH)
MODULE = importlib.util.module_from_spec(SPEC)
assert SPEC is not None and SPEC.loader is not None
SPEC.loader.exec_module(MODULE)
resolve_display_speed_limit_ms = MODULE.resolve_display_speed_limit_ms
class TestSpeedLimitUtils(unittest.TestCase):
def test_resolve_display_speed_limit_prefers_slc_target(self):
speed_limit = resolve_display_speed_limit_ms(
slc_speed_limit=24.6,
speed_limit_source="Dashboard",
source_limits={
"Dashboard": 22.4,
"Map Data": 20.1,
"Vision": 0.0,
"Mapbox": 0.0,
},
primary_priority="Map Data",
secondary_priority="Dashboard",
)
self.assertEqual(speed_limit, 24.6)
def test_resolve_display_speed_limit_uses_active_source_when_display_only(self):
speed_limit = resolve_display_speed_limit_ms(
slc_speed_limit=0.0,
speed_limit_source="Dashboard",
source_limits={
"Dashboard": 22.4,
"Map Data": 20.1,
"Vision": 0.0,
"Mapbox": 0.0,
},
primary_priority="Map Data",
secondary_priority="Vision",
)
self.assertEqual(speed_limit, 22.4)
def test_resolve_display_speed_limit_honors_priority_order(self):
speed_limit = resolve_display_speed_limit_ms(
slc_speed_limit=0.0,
speed_limit_source="None",
source_limits={
"Dashboard": 22.4,
"Map Data": 20.1,
"Vision": 24.6,
"Mapbox": 0.0,
},
primary_priority="Map Data",
secondary_priority="Vision",
)
self.assertEqual(speed_limit, 20.1)
def test_resolve_display_speed_limit_falls_back_to_mapbox(self):
speed_limit = resolve_display_speed_limit_ms(
slc_speed_limit=0.0,
speed_limit_source="None",
source_limits={
"Dashboard": 0.0,
"Map Data": 0.0,
"Vision": 0.0,
"Mapbox": 17.9,
},
primary_priority="Map Data",
secondary_priority="Dashboard",
)
self.assertEqual(speed_limit, 17.9)