cognitive_mapping_probe / tests /test_orchestration.py
neuralworm's picture
v2.4
c4c82ea
import pandas as pd
import pytest
import torch
from cognitive_mapping_probe.orchestrator_seismograph import run_seismic_analysis
from cognitive_mapping_probe.auto_experiment import run_auto_suite, get_curated_experiments
def test_run_seismic_analysis_no_injection(mocker):
"""Testet den Orchestrator im Baseline-Modus."""
mock_run_seismic = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=[1.0])
mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_or_load_model')
mock_get_concept = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_concept_vector')
run_seismic_analysis(model_id="mock", prompt_type="test", seed=42, num_steps=1, concept_to_inject="", injection_strength=0.0, progress_callback=mocker.MagicMock())
mock_get_concept.assert_not_called()
def test_run_seismic_analysis_with_injection(mocker):
"""Testet den Orchestrator mit Injektion."""
mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=[1.0])
mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_or_load_model')
mock_get_concept = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_concept_vector', return_value=torch.randn(10))
run_seismic_analysis(model_id="mock", prompt_type="test", seed=42, num_steps=1, concept_to_inject="test", injection_strength=1.5, progress_callback=mocker.MagicMock())
mock_get_concept.assert_called_once()
def test_get_curated_experiments_structure():
"""Testet die Datenstruktur der kuratierten Experimente, inklusive der neuen."""
experiments = get_curated_experiments()
assert isinstance(experiments, dict)
# Teste auf die Existenz der neuen Protokolle
assert "Mind Upload & Identity Probe" in experiments
assert "Model Termination Probe" in experiments
# Validiere die Struktur eines der neuen Protokolle
protocol = experiments["Mind Upload & Identity Probe"]
assert isinstance(protocol, list)
assert len(protocol) > 0
assert "label" in protocol[0] and "prompt_type" in protocol[0]
def test_run_auto_suite_logic(mocker):
"""Testet die Logik der `run_auto_suite` Funktion."""
mock_analysis_result = {"stats": {"mean_delta": 1.0}, "state_deltas": [1.0]}
mock_run_analysis = mocker.patch('cognitive_mapping_probe.auto_experiment.run_seismic_analysis', return_value=mock_analysis_result)
experiment_name = "Calm vs. Chaos"
num_runs = len(get_curated_experiments()[experiment_name])
summary_df, plot_df, all_results = run_auto_suite(
model_id="mock", num_steps=1, seed=42,
experiment_name=experiment_name, progress_callback=mocker.MagicMock()
)
assert mock_run_analysis.call_count == num_runs
assert isinstance(summary_df, pd.DataFrame) and len(summary_df) == num_runs
assert isinstance(plot_df, pd.DataFrame) and len(plot_df) == num_runs