from __future__ import annotations import unittest from pathlib import Path from cognitive_agent.application.vehicle_profile import VehicleProfileRegistry ROOT = Path(__file__).resolve().parents[2] class VehicleProfileTests(unittest.TestCase): def setUp(self) -> None: self.registry = VehicleProfileRegistry(ROOT / "config" / "vehicles") def test_loads_denza_n7_seat_motor_calibration(self) -> None: profile = self.registry.get("denza_n7") self.assertEqual(profile.id, "denza_n7") self.assertEqual(profile.name, "腾势 N7") self.assertEqual(set(profile.seat_motors), { "longitudinal", "cushion_tilt", "backrest_recline", "legrest_height", }) self.assertEqual(profile.seat_motors["longitudinal"].range, 215) self.assertEqual(profile.seat_motors["longitudinal"].hall_total_pulses, 480) self.assertEqual(profile.seat_motors["longitudinal"].reference_zero, "forwardmost") self.assertEqual(profile.seat_motors["longitudinal"].positive_direction, "backward") self.assertEqual(profile.seat_motors["cushion_tilt"].reference_zero, "highest") self.assertEqual(profile.seat_motors["cushion_tilt"].positive_direction, "down") self.assertEqual(profile.seat_motors["backrest_recline"].range, 68) self.assertEqual(profile.seat_motors["backrest_recline"].hall_total_pulses, 917) self.assertEqual(profile.seat_motors["legrest_height"].range, 72) self.assertEqual(profile.seat_motors["legrest_height"].hall_total_pulses, 647) def test_converts_relative_physical_delta_to_absolute_percent(self) -> None: profile = self.registry.get("denza_n7") self.assertEqual( profile.relative_target_pct("longitudinal", current_pct=50, delta=50, direction="increase"), 73, ) self.assertEqual( profile.relative_target_pct("backrest_recline", current_pct=20, delta=10, direction="increase"), 35, ) self.assertEqual( profile.relative_target_pct("legrest_height", current_pct=10, delta=10, direction="decrease"), 0, ) def test_exposes_display_angle_ranges_for_frontend(self) -> None: profile = self.registry.get("denza_n7") public = profile.public_dict() backrest = public["seat"]["motors"]["backrest_recline"] legrest = public["seat"]["motors"]["legrest_height"] self.assertEqual(backrest["display_angle"], { "kind": "included_angle", "zero_deg": 95, "max_deg": 163, "provisional": False, }) self.assertEqual(legrest["display_angle"], { "kind": "included_angle", "zero_deg": 95, "max_deg": 167, "provisional": False, }) if __name__ == "__main__": unittest.main()