mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-05 03:54:04 +08:00
Fix CI type narrowing, fixtures and executable metadata
Preserve SLC validation behavior with explicit None narrowing, use existing Mock test doubles, and restore controlsd executable metadata without content changes. Keep exact torque gain expectations while matching the existing list representation. Validated 1095 related tests, targeted ty and Ruff; prior baseline comparison and 4236 guard-equivalence cases preserve existing rejection semantics. Refresh the inventory receipt only for these validated changes.
This commit is contained in:
@@ -60,7 +60,7 @@ class TestOrdinaryAscm(unittest.TestCase):
|
||||
owner = LatControlTorque(cp, ci, .01)
|
||||
self.assertEqual(owner.controller_mode, ControllerMode.STARPILOT)
|
||||
self.assertEqual(owner.controller_policy, 'ordinary_ascm')
|
||||
self.assertEqual(owner.pid._k_p, ([0], [.6]))
|
||||
self.assertEqual(owner.pid._k_p, [[0.0], [.6]])
|
||||
self.assertEqual(owner.pid._k_i, ([0], [.35]))
|
||||
standard = LatControlTorque(cp, ci, .01, controller_mode=ControllerMode.STANDARD)
|
||||
self.assertEqual(standard.pid._k_p, [INTERP_SPEEDS, KP_INTERP])
|
||||
|
||||
@@ -422,7 +422,7 @@ class TestOrdinaryCc(unittest.TestCase):
|
||||
ci = CarInterface(cp)
|
||||
owner = LatControlTorque(cp, ci, .01)
|
||||
self.assertEqual(owner.controller_policy, 'ordinary_cc')
|
||||
self.assertEqual(owner.pid._k_p, ([0], [.6]))
|
||||
self.assertEqual(owner.pid._k_p, [[0.0], [.6]])
|
||||
self.assertEqual(owner.pid._k_i, ([0], [.35]))
|
||||
standard = LatControlTorque(cp, ci, .01, controller_mode=ControllerMode.STANDARD)
|
||||
self.assertIsNone(standard.starpilot_extension)
|
||||
|
||||
@@ -303,7 +303,7 @@ class VCruiseHelper:
|
||||
def initialize_v_cruise(self, CS, experimental_mode: bool, *, resume: bool | None = None,
|
||||
initial_speed: object = V_CRUISE_INITIAL, slc_target_mps: float | None = None, is_metric: bool = False) -> bool:
|
||||
"""Return whether fresh SET adopts the qualified current SLC limit."""
|
||||
if (not self.CP.openpilotLongitudinalControl or type(slc_target_mps) not in (int, float) or
|
||||
if (not self.CP.openpilotLongitudinalControl or slc_target_mps is None or type(slc_target_mps) not in (int, float) or
|
||||
not math.isfinite(slc_target_mps) or not V_CRUISE_MIN / 3.6 - 1e-5 <= slc_target_mps <= V_CRUISE_MAX / 3.6 + 1e-5):
|
||||
slc_target_mps = None
|
||||
# PCM initializes when SLC does not own SET.
|
||||
|
||||
Regular → Executable
@@ -104,13 +104,13 @@ class TestBoltTorquePolicy(unittest.TestCase):
|
||||
def test_default_kp_survives_parameter_updates_reset_and_inactive_dispatch(self):
|
||||
for identity in BOLT_GENERATIONS:
|
||||
cp, controller = self.controller(identity)
|
||||
self.assertEqual(controller.pid._k_p, ([0], [0.6]))
|
||||
self.assertEqual(controller.pid._k_p, [[0.0], [0.6]])
|
||||
self.assertEqual(controller.pid._k_p[1][0], 0.6)
|
||||
controller.update_torque_parameters(3.1, 0.01, 0.09)
|
||||
controller.reset()
|
||||
state = self.state()
|
||||
controller.update(False, state, VehicleModel(cp), SimpleNamespace(angleOffsetDeg=0.0, roll=0.0), False, 0.001, False, 0.2)
|
||||
self.assertEqual(controller.pid._k_p, ([0], [0.6]))
|
||||
self.assertEqual(controller.pid._k_p, [[0.0], [0.6]])
|
||||
standard = LatControlTorque(cp, CarInterface(cp), 0.01, controller_mode=ControllerMode.STANDARD)
|
||||
self.assertEqual(standard.pid._k_p[0], [1, 1.5, 2.0, 3.0, 5, 7.5, 10, 15, 30])
|
||||
self.assertEqual(standard.pid._k_p[1][-1], 0.8)
|
||||
|
||||
@@ -79,7 +79,7 @@ class TestVoltTorquePolicy(unittest.TestCase):
|
||||
cp = params(CAR.CHEVROLET_VOLT_CAMERA)
|
||||
control = LatControlTorque(cp.as_reader(), CarInterface(cp), .01)
|
||||
policy = selected_policy(control)
|
||||
self.assertEqual(control.pid._k_p, ([0], [.6]))
|
||||
self.assertEqual(control.pid._k_p, [[0.0], [.6]])
|
||||
self.assertEqual(control.pid._k_i[1], [.35])
|
||||
limits = (control.pid.pos_limit, control.pid.neg_limit)
|
||||
conversion = [control.torque_from_lateral_accel(x, control.torque_params) for x in (-2., 0., 2.)]
|
||||
@@ -95,7 +95,7 @@ class TestVoltTorquePolicy(unittest.TestCase):
|
||||
control.reset()
|
||||
self.assertEqual(control.pid.i, 0.)
|
||||
control.update(False, state, vm, live, False, 0., False, .2)
|
||||
self.assertEqual(control.pid._k_p, ([0], [.6]))
|
||||
self.assertEqual(control.pid._k_p, [[0.0], [.6]])
|
||||
self.assertEqual(policy.previous_measurement, 0.)
|
||||
self.assertEqual(control.pid.i, 0.)
|
||||
|
||||
|
||||
@@ -57,11 +57,11 @@ def owner(sm, cp, *, metric=False, resume=None):
|
||||
instance.slc_producer_session, instance.slc_cruise_event_id = 'card-producer', 0
|
||||
instance.slc_receipts = []
|
||||
instance.v_cruise_helper = cruise.VCruiseHelper(cp)
|
||||
instance.vehicle_startup = SimpleNamespace(consume_cruise_resume=lambda: resume)
|
||||
instance.vehicle_startup = Mock(consume_cruise_resume=lambda: resume)
|
||||
evidence = sm['slcDashboardObservation']
|
||||
observation = SimpleNamespace(status=Status.VALID, speed_mps=float(evidence.speedMps), episode=int(evidence.episode),
|
||||
observed_ns=int(evidence.observedMonoTime), valid_until_ns=int(evidence.validUntilMonoTime))
|
||||
instance.CI = SimpleNamespace(CS=SimpleNamespace(dashboard_limit=SimpleNamespace(observation=observation)))
|
||||
instance.CI = Mock(CS=SimpleNamespace(dashboard_limit=SimpleNamespace(observation=observation)))
|
||||
return instance
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"protected_inventory_sha256": "dd672f2be1c30ef736486faf6273f52cb619ecdbedaa758a81d1eb717d0d090b", "schema_version": 1}
|
||||
{"protected_inventory_sha256": "2a8df7b619523551dd43e8fb18af97eb7692ac868dbf8e72b5d4978ad076bace", "schema_version": 1}
|
||||
|
||||
Reference in New Issue
Block a user