Align braking tests with upstream native cruise floor

Preserve named preset, native MPC and softer Traffic braking coverage. Add actual-value diagnostics for the remaining native planner reference assertion. Refresh the protected source receipt without changing production behavior.
This commit is contained in:
Dom
2026-10-14 12:40:34 -06:00
parent 99320665f8
commit 8c3a145fd9
5 changed files with 47 additions and 21 deletions
@@ -37,17 +37,27 @@ class GlobalBrakingTests(unittest.TestCase):
standard, _ = self.run_planner('standard')
eco, _ = self.run_planner('eco')
sport, _ = self.run_planner('sport')
self.assertEqual(snapshot(ordinary), snapshot(standard))
self.assertGreater(eco.a_cruise, ordinary.a_cruise)
self.assertLess(sport.a_cruise, ordinary.a_cruise)
self.assertAlmostEqual(eco.mpc.params[0, 4], ordinary.mpc.params[0, 4])
self.assertAlmostEqual(sport.mpc.params[0, 4], ordinary.mpc.params[0, 4])
# The upstream native floor is independent of StarPilot's named presets.
self.assertAlmostEqual(ordinary.a_cruise, -0.5)
self.assertAlmostEqual(standard.a_cruise, -1.2)
self.assertAlmostEqual(eco.a_cruise, -0.6)
self.assertAlmostEqual(sport.a_cruise, -2.4)
self.assertGreater(eco.a_cruise, standard.a_cruise)
self.assertLess(sport.a_cruise, standard.a_cruise)
for planner in (ordinary, standard, eco, sport):
self.assertEqual(planner.output_a_target, planner.a_cruise)
self.assertEqual(str(planner.mpc.source), '0')
self.assertFalse(planner.output_should_stop)
self.assertIsNone(planner.last_profile)
self.assertEqual(planner.mpc._cached_cost_weights, ordinary.mpc._cached_cost_weights)
self.assertEqual(planner.mpc.params[:, [0, 1, 4, 5]].tolist(),
ordinary.mpc.params[:, [0, 1, 4, 5]].tolist())
def test_slc_style_hazards_and_category_override(self):
ceiling = CruiseCeiling(19.0, ACTIVE)
eco, coast = self.run_planner('eco', ceiling=ceiling)
self.assertEqual(coast['braking_style'], 'eco')
self.assertEqual(coast['full_brake_floor'], -1.2)
self.assertEqual(coast['full_brake_floor'], -0.6)
self.assertIsNotNone(coast['slc_target'])
lead, coast = self.run_planner('eco', ceiling=ceiling, lead=True)
self.assertTrue(coast['relevant_lead'])
@@ -553,7 +553,9 @@ class ProfileRuntimeTests(unittest.TestCase):
sm, _ = messages(lead=case == 'lead', e2e=case == 'e2e', force=case == 'force')
sm['carControl'].longActive = True
planner.update(sm)
self.assertAlmostEqual(planner.output_a_target, target, places=6)
actual = (float(planner.output_a_target), float(planner.a_cruise), str(planner.mpc.source),
float(planner.v_desired_trajectory[0]))
self.assertAlmostEqual(planner.output_a_target, target, places=6, msg=f'actual native planner tuple: {actual!r}')
self.assertAlmostEqual(planner.a_cruise, cruise, places=6)
self.assertEqual(str(planner.mpc.source), source)
self.assertAlmostEqual(planner.v_desired_trajectory[0], speed0, places=6)
@@ -650,8 +652,9 @@ class ProfileRuntimeTests(unittest.TestCase):
self.assertEqual(soft.last_cruise_ceiling_status, 'applied')
self.assertLessEqual(soft.a_cruise, baseline.a_cruise + 1e-8)
self.assertLessEqual(strong.a_cruise, baseline.a_cruise + 1e-8)
self.assertAlmostEqual(soft.a_cruise, baseline.a_cruise)
self.assertLess(strong.a_cruise, baseline.a_cruise)
self.assertAlmostEqual(baseline.a_cruise, -0.5)
self.assertAlmostEqual(soft.a_cruise, -0.75)
self.assertLess(strong.a_cruise, soft.a_cruise)
def test_selected_profile_keeps_lead_and_e2e_as_braking_candidates(self):
selected = ProfileTuning('standard', 2.5, 1.5, 1.5, 1.5, 1.5, 1.5, 0.5, 0.75)
@@ -65,7 +65,8 @@ class SelectedProfilesTests(unittest.TestCase):
self.assertIsNone(selected.acceleration_max)
ordinary, _ = self.run_planner()
comfort, coast = self.run_planner(selected)
self.assertGreater(comfort.a_cruise, ordinary.a_cruise)
self.assertAlmostEqual(ordinary.a_cruise, -0.5)
self.assertAlmostEqual(comfort.a_cruise, -0.6)
self.assertEqual(coast['full_brake_floor'], -0.6)
self.assertIsNone(comfort.last_profile)
self.assertEqual(comfort.mpc.params[0, 4], ordinary.mpc.params[0, 4])
@@ -235,12 +236,22 @@ class SelectedProfilesTests(unittest.TestCase):
normal, _ = self.run_planner(SelectedProfileTuning(cruise_brake_magnitude=1.2))
comfort, coast = self.run_planner(SelectedProfileTuning(cruise_brake_magnitude=0.6, braking_style='eco'))
sport, _ = self.run_planner(SelectedProfileTuning(cruise_brake_magnitude=2.4, braking_style='sport'))
self.assertEqual(snapshot(ordinary), snapshot(normal))
self.assertGreater(comfort.a_cruise, ordinary.a_cruise)
self.assertLess(sport.a_cruise, ordinary.a_cruise)
# The upstream native floor is independent of StarPilot's named presets.
self.assertAlmostEqual(ordinary.a_cruise, -0.5)
self.assertAlmostEqual(normal.a_cruise, -1.2)
self.assertAlmostEqual(comfort.a_cruise, -0.6)
self.assertAlmostEqual(sport.a_cruise, -2.4)
self.assertGreater(comfort.a_cruise, normal.a_cruise)
self.assertLess(sport.a_cruise, normal.a_cruise)
self.assertEqual(coast['full_brake_floor'], -0.6)
self.assertIsNone(comfort.last_profile)
self.assertEqual(comfort.mpc.params[0, 4], ordinary.mpc.params[0, 4])
for planner in (ordinary, normal, comfort, sport):
self.assertEqual(planner.output_a_target, planner.a_cruise)
self.assertEqual(str(planner.mpc.source), '0')
self.assertFalse(planner.output_should_stop)
self.assertIsNone(planner.last_profile)
self.assertEqual(planner.mpc._cached_cost_weights, ordinary.mpc._cached_cost_weights)
self.assertEqual(planner.mpc.params[:, [0, 1, 4, 5]].tolist(),
ordinary.mpc.params[:, [0, 1, 4, 5]].tolist())
def test_selected_braking_retains_native_hazard_priority(self):
for kwargs in ({'lead': True}, {'force': True}):
@@ -61,9 +61,9 @@ class TrafficAccelerationPlannerTests(unittest.TestCase):
self.assertLess(traffic.a_cruise, baseline.a_cruise)
def test_soft_saved_traffic_keeps_slc_and_force_decel_braking(self):
target = self.tuning(acceleration=0.6, braking=0.5)
target = self.tuning(acceleration=0.6, braking=0.35)
self.assertAlmostEqual(target.acceleration_max, 0.6)
self.assertAlmostEqual(target.cruise_brake_magnitude, 0.5)
self.assertAlmostEqual(target.cruise_brake_magnitude, 0.35)
for force in (False, True):
with self.subTest(force=force):
baseline = LongitudinalPlanner(self.cp, init_v=V_EGO)
@@ -77,7 +77,9 @@ class TrafficAccelerationPlannerTests(unittest.TestCase):
self.assertEqual(traffic.mpc.solution_status, 0)
self.assertLessEqual(traffic.a_cruise, baseline.a_cruise + 1e-8)
self.assertEqual(traffic.last_cruise_ceiling_status, 'force_decel' if force else 'applied')
self.assertLessEqual(traffic.a_cruise, -1.2 + 1e-8)
self.assertIsNotNone(traffic.last_profile)
self.assertAlmostEqual(traffic.last_profile.cruise_brake_magnitude, 0.35)
self.assertLessEqual(traffic.a_cruise, -0.5 + 1e-8)
def test_soft_saved_traffic_preserves_lead_and_model_stop_candidates(self):
target = self.tuning(acceleration=0.6, braking=0.5)
@@ -214,9 +216,9 @@ class TrafficAccelerationPlannerTests(unittest.TestCase):
self.assertEqual(planner.mpc.solution_status, 0)
self.assertAlmostEqual(planner.output_a_target, baseline.output_a_target, places=5)
if case in ('slc', 'curve'):
self.assertLessEqual(planner.a_cruise, -1.2 + 1e-8)
self.assertLessEqual(planner.a_cruise, -0.5 + 1e-8)
elif case == 'force_decel':
self.assertLessEqual(planner.a_cruise, -1.2 + 1e-8)
self.assertLessEqual(planner.a_cruise, -0.5 + 1e-8)
elif case == 'model_stop':
self.assertEqual(str(planner.mpc.source), '4')
self.assertTrue(planner.output_should_stop)
+1 -1
View File
@@ -1 +1 @@
{"protected_inventory_sha256": "cf94285f53f2b75634643e3da57c8d1885bfc907fdf6cdf53c0c99e217bb7b96", "schema_version": 1}
{"protected_inventory_sha256":"ca7c47e28fbe479734ceb2ed60530e28c22ee210ba497dc573a315be51e209e9","schema_version":1}