File size: 1,576 Bytes
0d4b28f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | """Unit tests for the Controlled 6-Arm Comparative Study."""
import pytest
from synapse.controlled_study import ControlledSixArmStudy, deterministic_seed
def test_deterministic_seed():
s1 = deterministic_seed(42, "test_task")
s2 = deterministic_seed(42, "test_task")
s3 = deterministic_seed(42, "other_task")
assert s1 == s2
assert s1 != s3
assert 0 <= s1 < 2**31
def test_controlled_study_execution():
study = ControlledSixArmStudy(
task_sequence=['forage', 'maze'],
steps_per_stage=6,
eval_episodes_per_task=1,
seed=42,
nodes_per_source=16
)
results = study.run_study()
assert 'task_sequence' in results
assert len(results['task_sequence']) == 2
assert 'arms' in results
assert len(results['arms']) == 6
# Verify all 6 arms are present
expected_arms = [
'frozen_actor',
'online_rl',
'actor_replay',
'continual_backprop',
'connectome_evolution',
'composed_system'
]
for arm in expected_arms:
assert arm in results['arms']
arm_data = results['arms'][arm]
assert 'stage_returns' in arm_data
assert len(arm_data['stage_returns']) == 2
assert 'final_retention_rate' in arm_data
assert 'catastrophic_forgetting' in arm_data
assert 'mean_step_latency_ms' in arm_data
assert arm_data['mean_step_latency_ms'] > 0.0
assert 'comparative_table' in results
assert len(results['comparative_table']) == 6
assert 'delta_composed_vs_frozen' in results
|