Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import pytest | |
| import torch | |
| from types import SimpleNamespace | |
| from cognitive_mapping_probe.orchestrator_seismograph import run_seismic_analysis | |
| def test_seismic_analysis_orchestrator_no_injection(mocker, mock_llm): | |
| """ | |
| Testet den Orchestrator im Baseline-Modus (ohne Injektion). | |
| """ | |
| mock_deltas = [1.0, 2.0, 3.0] | |
| mock_run_seismic = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=mock_deltas) | |
| mock_progress = mocker.MagicMock() | |
| results = run_seismic_analysis( | |
| model_id="mock_model", | |
| prompt_type="test_prompt", | |
| seed=42, | |
| num_steps=3, | |
| concept_to_inject="", # Kein Konzept | |
| injection_strength=0.0, | |
| progress_callback=mock_progress | |
| ) | |
| # ASSERT: `run_silent_cogitation_seismic` wurde mit `injection_vector=None` aufgerufen | |
| mock_run_seismic.assert_called_once() | |
| call_args, call_kwargs = mock_run_seismic.call_args | |
| assert call_kwargs['injection_vector'] is None | |
| # ASSERT: Die Statistiken sind korrekt | |
| assert results["stats"]["mean_delta"] == pytest.approx(2.0) | |
| def test_seismic_analysis_orchestrator_with_injection(mocker, mock_llm): | |
| """ | |
| Testet den Orchestrator mit aktivierter Konzeptinjektion. | |
| """ | |
| mock_deltas = [5.0, 6.0, 7.0] | |
| mock_run_seismic = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=mock_deltas) | |
| # Der `mock_llm` Fixture patcht bereits `get_concept_vector` | |
| mock_get_concept_vector = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_concept_vector') | |
| mock_progress = mocker.MagicMock() | |
| results = run_seismic_analysis( | |
| model_id="mock_model", | |
| prompt_type="test_prompt", | |
| seed=42, | |
| num_steps=3, | |
| concept_to_inject="test_concept", # Konzept wird übergeben | |
| injection_strength=1.5, | |
| progress_callback=mock_progress | |
| ) | |
| # ASSERT: `get_concept_vector` wurde aufgerufen | |
| mock_get_concept_vector.assert_called_once_with(mocker.ANY, "test_concept") | |
| # ASSERT: `run_silent_cogitation_seismic` wurde mit einem Vektor und Stärke aufgerufen | |
| mock_run_seismic.assert_called_once() | |
| call_args, call_kwargs = mock_run_seismic.call_args | |
| assert call_kwargs['injection_vector'] is not None | |
| assert call_kwargs['injection_strength'] == 1.5 | |
| # ASSERT: Die Statistiken sind korrekt | |
| assert results["stats"]["mean_delta"] == pytest.approx(6.0) | |