Files
Cognitive_Agent/tests/unit/test_vehicle_profile.py
T
2026-07-30 18:55:28 +08:00

76 lines
2.9 KiB
Python

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, 78)
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": True,
})
self.assertEqual(legrest["display_angle"], {
"kind": "included_angle",
"zero_deg": 95,
"max_deg": 173,
"provisional": True,
})
if __name__ == "__main__":
unittest.main()