mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-10-04 13:24:13 +08:00
Verify staged curve cut survives the full presentation stack
This commit is contained in:
@@ -46,5 +46,28 @@ class PreparedTests(unittest.TestCase):
|
||||
for key in ('ROADSCORE_PREPARED_SHOWCASE','ROADSCORE_SHOWCASE_SESSION','SIMULATION'):
|
||||
self.assertFalse(isolated_replay({**env,key:''}))
|
||||
self.assertFalse(isolated_replay({**env,'OPENPILOT_ZMQ_NAMESPACE':'roadscore-native-abc'}))
|
||||
def test_staged_cut_stays_clear_with_signal_and_full_presentation_stack(self):
|
||||
engine=PreparedPresentation(self.path)
|
||||
rate=48000;payoff=2.5
|
||||
samples=np.arange(4*rate)/rate
|
||||
core=np.repeat((.15*np.sin(2*np.pi*90*samples))[:,None],2,axis=1).astype(np.float32)
|
||||
before=core.copy();chunks=[]
|
||||
for frame in range(0,len(core),960):
|
||||
now=frame/rate
|
||||
curve=dict(kind='curve',phase='anticipation' if now<payoff else 'event',
|
||||
amount=min(1.,max(0.,(now-.2)/(payoff-.2))),activation=.2,
|
||||
predicted_peak=payoff,demo_staged_curve=True,demo_build_drop=True)
|
||||
if now<.2 or now>=3.5:curve=dict(kind='curve',phase='neutral',amount=0.,activation=None)
|
||||
state=dict(active=True,signal_on=True,fresh=True,car_fresh=True,model_fresh=True,
|
||||
speed=10.,alert_key='',alert_meaningful=False,curve=curve,route_t=now)
|
||||
wet,_=engine.process(core[frame:frame+960],frame,state,('engaged','left'))
|
||||
chunks.append(wet)
|
||||
result=np.concatenate(chunks)
|
||||
self.assertEqual(engine.curve.impact.actual_payoff,round(payoff*rate))
|
||||
self.assertLess(float(np.max(abs(result[round((payoff-.08)*rate):round((payoff-.02)*rate)]))),1e-6)
|
||||
self.assertGreater(float(np.sqrt(np.mean(result[round((payoff+.04)*rate):round((payoff+.12)*rate)]**2))),.09)
|
||||
np.testing.assert_array_equal(core,before)
|
||||
self.assertEqual(result.shape,core.shape)
|
||||
self.assertTrue(np.isfinite(result).all())
|
||||
|
||||
if __name__=='__main__':unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user