Files
StarPilot/selfdrive/ui/tests/test_starpilot_visuals.py
T
2026-09-03 01:09:51 -04:00

62 lines
2.1 KiB
Python

import importlib.util
import math
import unittest
from pathlib import Path
from types import SimpleNamespace
MODULE_PATH = Path(__file__).resolve().parents[1] / "lib" / "starpilot_visuals.py"
SPEC = importlib.util.spec_from_file_location("starpilot_visuals_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)
lead_indicator_enabled = MODULE.lead_indicator_enabled
get_border_roundness = MODULE.get_border_roundness
class FakeParams:
def __init__(self, values=None):
self.values = values or {}
def get(self, key, block=False, return_default=False, encoding=None, default=None):
if key not in self.values:
return None
v = self.values[key]
return v if isinstance(v, bytes) else str(v).encode()
def get_bool(self, key, block=False, default=False):
value = self.values.get(key, default)
if isinstance(value, bool):
return value
return str(value or "").strip() in ("1", "true", "True")
class TestStarPilotVisuals(unittest.TestCase):
def test_border_roundness_contains_camera_corner(self):
rect = SimpleNamespace(width=2160, height=1080)
base_width = 30
min_dimension = min(rect.width, rect.height)
for scale in (25, 50, 65, 100, 250):
border_width = round(base_width * scale / 100)
roundness = get_border_roundness(rect, border_width)
radius = roundness * min_dimension / 2
self.assertLessEqual(math.sqrt(2) * (radius - border_width), radius)
def test_border_roundness_preserves_stock_geometry(self):
rect = SimpleNamespace(width=2160, height=1080)
self.assertAlmostEqual(get_border_roundness(rect, 30), 0.12)
def test_lead_indicator_enabled_by_default(self):
self.assertTrue(lead_indicator_enabled(FakeParams()))
def test_hide_lead_marker_disables(self):
self.assertFalse(lead_indicator_enabled(FakeParams({"HideLeadMarker": True})))
def test_hide_by_default_returns_false_when_unset(self):
self.assertFalse(lead_indicator_enabled(FakeParams(), hide_by_default=True))
if __name__ == "__main__":
unittest.main()