feat: validate real-bench seat orchestration and self-repair

This commit is contained in:
vee
2026-08-09 19:00:16 +08:00
parent 3bceb0d5a1
commit 3701192a11
41 changed files with 10403 additions and 3392 deletions
@@ -66,7 +66,11 @@ class SeatFrontendInputCoverageTests(unittest.TestCase):
{"thermal", "motion", "combined", "mode"},
)
self.assertEqual(
{case["mode_id"] for case in self.positive_cases if case["group"] == "mode"},
{
case["mode_id"]
for case in self.positive_cases
if case["group"] == "mode" and case.get("mode_id")
},
{
"easy_entry_exit",
"office",
@@ -79,6 +83,8 @@ class SeatFrontendInputCoverageTests(unittest.TestCase):
"electric_beach_chair",
"nap",
"zero_gravity",
"rocking_horse",
"dynamic_cradle",
},
)
@@ -150,6 +156,19 @@ class SeatFrontendInputCoverageTests(unittest.TestCase):
for field, expected in expected_motion.items():
if field != "axis":
self.assertEqual(operation["motion"][field], expected)
expected_dynamic_mode = case.get("expected_dynamic_mode")
if expected_dynamic_mode:
capability = (
"seat.stop_dynamic_mode"
if expected_dynamic_mode["mode_id"] == 0
else "seat.start_dynamic_mode"
)
self.assertIn(capability, by_capability)
if expected_dynamic_mode["mode_id"]:
self.assertEqual(
by_capability[capability]["parameters"]["mode_id"],
expected_dynamic_mode["mode_id"],
)
def test_every_rejection_utterance_stops_before_execution(self) -> None:
for case in self.rejection_cases: