Files
StarPilot/openpilot/starpilot/flm/tests/test_live_tracking_comparison.py
T
2026-10-21 23:28:39 -05:00

83 lines
3.6 KiB
Python

"""Uncensored score-baseline and physical-drift seams, synthetic data only."""
from dataclasses import replace
from types import SimpleNamespace
from openpilot.starpilot.flm.tests.test_live_tracking_rollout import _optimizer, _refresh, _episode, NS
from openpilot.starpilot.flm.live_tracking_response import ResponseMonitor
from openpilot.starpilot.flm.tests.test_live_tracking_requalification import certificate, synthetic_pair
def test_error_selected_discovery_is_not_reused_as_comparison_baseline():
owner = _optimizer()
index = 0
while owner.discovery is None and index < 24:
index += 1
now = index*8*NS
_refresh(owner, now)
owner.observe_episode(_episode(owner, index, now, owner.accepted, .6, .35, 22.), now_ns=now)
assert owner.discovery is not None
assert owner.offer_state is None
discovery = dict(owner.discovery)
comparison = []
for _ in range(discovery['quota']):
index += 1
now = index*8*NS
_refresh(owner, now)
# Every newly requested comparison episode is retained, even perfect0.
row = _episode(owner, index, now, owner.accepted, .6, 0., 22.)
comparison.append(row)
owner.observe_episode(row, now_ns=now)
if owner.offer_state is not None:
assert owner.before == tuple(comparison)
assert all(row.error_rms == 0. for row in owner.before)
else:
assert owner.reason == 'independent_baseline_trial_power_insufficient'
assert owner.discovery is None
def test_overlapping_comparison_does_not_count_twice():
owner = _optimizer()
index = 0
while owner.discovery is None and index < 24:
index += 1
now = index*8*NS
_refresh(owner, now)
owner.observe_episode(_episode(owner, index, now, owner.accepted, .6, .35, 22.), now_ns=now)
assert owner.discovery is not None
index += 1
now = index*8*NS
_refresh(owner, now)
first = _episode(owner, index, now, owner.accepted, .6, .35, 22.)
owner.observe_episode(first, now_ns=now)
overlap = replace(first, episode_id='1'*64, start_ns=first.start_ns+1, end_ns=first.end_ns+1)
assert not owner.observe_episode(overlap, now_ns=now+1)
assert owner.comparison == [first]
def test_constant_command_point12_physical_shift_cannot_refresh_response_witness():
cert = certificate()
source = SimpleNamespace(_binding=cert.binding, original=cert)
monitor = ResponseMonitor(cert)
for index in range(8):
control, output, pose = synthetic_pair(source, index, command=.1)
assert monitor.observe(control, output, pose, now_ns=pose.mono_ns, binding=cert.binding, current_native=True)
assert monitor.witness(pose.mono_ns) is not None
for index in range(8, 16):
control, output, pose = synthetic_pair(source, index, command=.1)
shifted_yaw = pose.yaw_rate+.12/pose.speed_mps
pose = replace(pose, yaw_rate=shifted_yaw, angular_velocity_device=(0., 0., shifted_yaw))
monitor.observe(control, output, pose, now_ns=pose.mono_ns, binding=cert.binding, current_native=True)
assert monitor.witness(pose.mono_ns) is None
def test_changed_actual_commands_explain_point12_shift_without_proving_trial_benefit():
cert = certificate()
source = SimpleNamespace(_binding=cert.binding, original=cert)
monitor = ResponseMonitor(cert)
for index in range(16):
control, output, pose = synthetic_pair(source, index, command=.1 if index < 8 else .14)
assert monitor.observe(control, output, pose, now_ns=pose.mono_ns, binding=cert.binding, current_native=True)
assert monitor.witness(pose.mono_ns) is not None
# A response witness licenses the numerical model, never causal attribution
# of a tracking improvement to the offered knob rather than another input.