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