mirror of
https://github.com/ruvnet/RuView.git
synced 2026-10-18 21:00:22 -05:00
* feat(bfi): add validated capture and bounded research tooling * fix(deps): patch Wasmtime for RUSTSEC-2026-0316
37 lines
1.5 KiB
Python
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()
|