From 8c3a145fd990a4e3fbbb647ebfa08c507253805f Mon Sep 17 00:00:00 2001 From: Dom <168790843+firestar5683@users.noreply.github.com> Date: Wed, 14 Oct 2026 12:40:34 -0600 Subject: [PATCH] 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. --- .../longitudinal/tests/test_global_braking.py | 22 +++++++++++++----- .../tests/test_profile_runtime.py | 9 +++++--- .../tests/test_selected_profiles.py | 23 ++++++++++++++----- .../tests/test_traffic_acceleration.py | 12 ++++++---- prebuilt.json | 2 +- 5 files changed, 47 insertions(+), 21 deletions(-) diff --git a/openpilot/starpilot/longitudinal/tests/test_global_braking.py b/openpilot/starpilot/longitudinal/tests/test_global_braking.py index 48149c5e6a..1e4b9a8c76 100644 --- a/openpilot/starpilot/longitudinal/tests/test_global_braking.py +++ b/openpilot/starpilot/longitudinal/tests/test_global_braking.py @@ -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']) diff --git a/openpilot/starpilot/longitudinal/tests/test_profile_runtime.py b/openpilot/starpilot/longitudinal/tests/test_profile_runtime.py index 2bd85b9da1..e7423fab18 100644 --- a/openpilot/starpilot/longitudinal/tests/test_profile_runtime.py +++ b/openpilot/starpilot/longitudinal/tests/test_profile_runtime.py @@ -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) diff --git a/openpilot/starpilot/longitudinal/tests/test_selected_profiles.py b/openpilot/starpilot/longitudinal/tests/test_selected_profiles.py index 8bccaca293..c666e6edbb 100644 --- a/openpilot/starpilot/longitudinal/tests/test_selected_profiles.py +++ b/openpilot/starpilot/longitudinal/tests/test_selected_profiles.py @@ -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}): diff --git a/openpilot/starpilot/longitudinal/tests/test_traffic_acceleration.py b/openpilot/starpilot/longitudinal/tests/test_traffic_acceleration.py index 7b98a50fd8..203f7d030b 100644 --- a/openpilot/starpilot/longitudinal/tests/test_traffic_acceleration.py +++ b/openpilot/starpilot/longitudinal/tests/test_traffic_acceleration.py @@ -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) diff --git a/prebuilt.json b/prebuilt.json index 544dbebaf2..b92eeb981b 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "cf94285f53f2b75634643e3da57c8d1885bfc907fdf6cdf53c0c99e217bb7b96", "schema_version": 1} +{"protected_inventory_sha256":"ca7c47e28fbe479734ceb2ed60530e28c22ee210ba497dc573a315be51e209e9","schema_version":1}