cognitive_mapping_probe_4 / tests /test_orchestration.py
neuralworm's picture
update tests
5ab2ded
raw
history blame
2.87 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])
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 # Übergebe den Mock direkt
)
mock_run_seismic.assert_called_once()
def test_run_seismic_analysis_with_injection(mocker, mock_llm):
"""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.concepts.get_concept_vector', return_value=torch.randn(10)) # Patch im concepts-Modul
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(),
llm_instance=mock_llm # Übergebe den Mock direkt
)
def test_get_curated_experiments_structure():
"""Testet die Datenstruktur der kuratierten Experimente."""
experiments = get_curated_experiments()
assert isinstance(experiments, dict)
assert "Therapeutic Intervention (4B-Model)" in experiments
protocol = experiments["Therapeutic Intervention (4B-Model)"]
assert isinstance(protocol, list) and len(protocol) > 0
def test_run_auto_suite_special_protocol(mocker, mock_llm):
"""
Testet den speziellen Logik-Pfad für das Interventions-Protokoll.
KORRIGIERT: Verwendet nun die `mock_llm`-Fixture und patcht `get_or_load_model`
im `auto_experiment`-Modul, um den Netzwerkaufruf zu verhindern.
"""
# Patch `get_or_load_model` im `auto_experiment` Modul, da dort der erste Aufruf stattfindet
mocker.patch('cognitive_mapping_probe.auto_experiment.get_or_load_model', return_value=mock_llm)
mock_analysis = mocker.patch('cognitive_mapping_probe.auto_experiment.run_seismic_analysis', return_value={"stats": {}, "state_deltas": []})
run_auto_suite(
model_id="mock-4b", num_steps=1, seed=42,
experiment_name="Therapeutic Intervention (4B-Model)",
progress_callback=mocker.MagicMock()
)
assert mock_analysis.call_count == 2
first_call_llm = mock_analysis.call_args_list[0].kwargs['llm_instance']
second_call_llm = mock_analysis.call_args_list[1].kwargs['llm_instance']
assert first_call_llm is mock_llm
assert second_call_llm is mock_llm