Files
RuView/tools/bfi_learning/test_static_baseline.py
rUv aac4155584 feat(bfi): add validated capture and bounded research tooling (#2055)
* feat(bfi): add validated capture and bounded research tooling

* fix(deps): patch Wasmtime for RUSTSEC-2026-0316
2026-09-29 23:53:48 -04:00

37 lines
1.5 KiB
Python

import unittest
from unittest.mock import patch
import numpy as np
import static_baseline as s
class StaticControlTests(unittest.TestCase):
def fixture(self):
sessions=[];frames=[]
for split in ('train','validation','test'):
for label in (0,1):
for repeat in range(2):
start=len(frames)*40
frames.append(np.tile([label*4+repeat*.01,repeat*.02],(40,1)).astype('float32'))
sessions.append({'start':start,'end':start+40,'identity':str(label),'split':split})
return {'frames':np.concatenate(frames),'metadata':{'sessions':sessions}}
def test_static_identity_signal_and_no_test_metrics(self):
d=self.fixture()
with patch.object(s,'build_splits',return_value={'classes':['0','1']}):r=s.score_static(d)
self.assertEqual(r['results']['nearest_centroid']['recording_accuracy'],1)
self.assertEqual(r['results']['ridge_alpha_1']['recording_accuracy'],1)
self.assertIsNone(r['test'])
self.assertEqual(r['validation_recordings'],4)
def test_heldout_values_do_not_change_results(self):
d=self.fixture()
with patch.object(s,'build_splits',return_value={'classes':['0','1']}):
a=s.score_static(d)
for record in d['metadata']['sessions']:
if record['split']=='test':d['frames'][record['start']:record['end']]=999999
b=s.score_static(d)
self.assertEqual(a,b)
if __name__=='__main__':unittest.main()