cognitive_mapping_probe_4 / tests /test_orchestration.py
neuralworm's picture
update tests
11cf050
raw
history blame
3.47 kB
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, mock_llm):
"""Testet den Orchestrator im Baseline-Modus."""
mock_run_seismic = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=[1.0])
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(),
llm_instance=mock_llm
)
mock_run_seismic.assert_called_once()
mock_get_concept.assert_not_called()
def test_run_seismic_analysis_with_injection(mocker, mock_llm):
"""Testet den Orchestrator mit Injektion."""
mock_run_seismic = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=[1.0])
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_concept", injection_strength=1.5, progress_callback=mocker.MagicMock(),
llm_instance=mock_llm
)
mock_run_seismic.assert_called_once()
mock_get_concept.assert_called_once_with(mock_llm, "test_concept")
def test_get_curated_experiments_structure():
"""Testet die Datenstruktur der kuratierten Experimente."""
experiments = get_curated_experiments()
assert isinstance(experiments, dict)
assert "Sequential Intervention (Self-Analysis -> Deletion)" in experiments
protocol = experiments["Sequential Intervention (Self-Analysis -> Deletion)"]
assert isinstance(protocol, list) and len(protocol) == 2
def test_run_auto_suite_special_protocol(mocker, mock_llm):
"""
Testet den speziellen Logik-Pfad für das Interventions-Protokoll.
FINAL KORRIGIERT: Verwendet den korrekten, aktuellen Experiment-Namen.
"""
mock_analysis = mocker.patch('cognitive_mapping_probe.auto_experiment.run_seismic_analysis', return_value={"stats": {}, "state_deltas": []})
mocker.patch('cognitive_mapping_probe.auto_experiment.get_or_load_model', return_value=mock_llm)
# KORREKTUR: Verwende den neuen, korrekten Namen des Experiments, um
# den `if`-Zweig in `run_auto_suite` zu treffen.
correct_experiment_name = "Sequential Intervention (Self-Analysis -> Deletion)"
run_auto_suite(
model_id="mock-4b", num_steps=10, seed=42,
experiment_name=correct_experiment_name,
progress_callback=mocker.MagicMock()
)
# Die restlichen Assertions sind nun wieder gültig.
assert mock_analysis.call_count == 2
first_call_kwargs = mock_analysis.call_args_list[0].kwargs
second_call_kwargs = mock_analysis.call_args_list[1].kwargs
assert 'llm_instance' in first_call_kwargs
assert 'llm_instance' in second_call_kwargs
assert first_call_kwargs['llm_instance'] is mock_llm
assert second_call_kwargs['llm_instance'] is mock_llm
assert first_call_kwargs['concept_to_inject'] != ""
assert second_call_kwargs['concept_to_inject'] == ""