File size: 1,277 Bytes
c3ed182
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Tests for Synthetic Failure Generation & Repair Hypernetwork Benchmarks."""
import pytest
from synapse.hypernetwork_trainer import SyntheticFailureGenerator, HypernetworkRepairBenchmark


def test_synthetic_failure_generator():
    gen = SyntheticFailureGenerator(seed=42)
    cases = gen.generate_failure_cases(count=20)
    assert len(cases) == 20
    for c in cases:
        assert c.category in ['deleted_synapses', 'disrupted_motor', 'degraded_memory', 'corrupted_sensory']
        assert 0.0 <= c.damaged_perf <= c.pre_damage_perf


def test_hypernetwork_repair_benchmark():
    gen = SyntheticFailureGenerator(seed=42)
    cases = gen.generate_failure_cases(count=20)

    benchmark = HypernetworkRepairBenchmark(seed=42)
    train_res = benchmark.train_hypernetwork(cases[:15], epochs=1)
    assert 'initial_loss' in train_res
    assert 'final_loss' in train_res

    res = benchmark.run_comprehensive_benchmark(cases[15:])
    assert res['test_cases_evaluated'] == 5
    assert 'hypernetwork' in res['benchmark_comparison']
    assert 'random_search' in res['benchmark_comparison']
    assert 'gradient_finetuning' in res['benchmark_comparison']
    assert 'heuristic_repair' in res['benchmark_comparison']
    assert res['hypernetwork_speedup_vs_gradient'] > 1.0