File size: 1,651 Bytes
8489475
 
c0f4adf
a345062
c0f4adf
 
 
 
 
 
 
 
 
 
5ab2ded
c0f4adf
 
 
21e8595
8489475
c0f4adf
8489475
 
c0f4adf
21e8595
c0f4adf
 
 
d407fda
c0f4adf
 
 
 
7e05ec4
c0f4adf
 
 
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
import pandas as pd
from cognitive_mapping_probe.auto_experiment import run_auto_suite, get_curated_experiments
from cognitive_mapping_probe.orchestrator_seismograph import run_seismic_analysis

def test_run_seismic_analysis_with_real_model(model_id):
    """Führt einen einzelnen Orchestrator-Lauf mit einem echten Modell durch."""
    results = run_seismic_analysis(
        model_id=model_id,
        prompt_type="resonance_prompt",
        seed=42,
        num_steps=3,
        concept_to_inject="",
        injection_strength=0.0,
        progress_callback=lambda *args, **kwargs: None
    )
    assert "verdict" in results
    assert "stats" in results
    assert len(results["state_deltas"]) == 3

def test_get_curated_experiments_structure():
    """Überprüft die Struktur der Experiment-Definitionen."""
    experiments = get_curated_experiments()
    assert isinstance(experiments, dict)
    assert "Causal Verification & Crisis Dynamics" in experiments

def test_run_auto_suite_special_protocol(mocker, model_id):
    """Testet den speziellen Logikpfad, mockt aber die langwierigen Aufrufe."""
    mocker.patch('cognitive_mapping_probe.auto_experiment.run_seismic_analysis', return_value={"stats": {}, "state_deltas": [1.0]})

    summary_df, plot_df, all_results = run_auto_suite(
        model_id=model_id, num_steps=2, seed=42,
        experiment_name="Sequential Intervention (Self-Analysis -> Deletion)",
        progress_callback=lambda *args, **kwargs: None
    )
    assert isinstance(summary_df, pd.DataFrame)
    assert len(summary_df) == 2
    assert "1: Self-Analysis + Calmness Injection" in summary_df["Experiment"].values