|
|
import pytest |
|
|
import pandas as pd |
|
|
|
|
|
|
|
|
from app import run_and_display |
|
|
from cognitive_mapping_probe.orchestrator_seismograph import run_seismic_analysis |
|
|
|
|
|
def test_end_to_end_with_mock_llm(mock_llm, mocker): |
|
|
""" |
|
|
Ein End-to-End-Integrationstest, der den gesamten Datenfluss von der App |
|
|
über den Orchestrator bis zum (gemockten) LLM validiert. |
|
|
""" |
|
|
|
|
|
results = run_seismic_analysis( |
|
|
model_id="mock_model", |
|
|
prompt_type="control_long_prose", |
|
|
seed=42, |
|
|
num_steps=5, |
|
|
concept_to_inject="test_concept", |
|
|
injection_strength=1.0, |
|
|
progress_callback=mocker.MagicMock() |
|
|
) |
|
|
|
|
|
|
|
|
assert "stats" in results |
|
|
assert len(results["state_deltas"]) == 5 |
|
|
assert results["stats"]["mean_delta"] > 0 |
|
|
|
|
|
|
|
|
mocker.patch('app.run_seismic_analysis', return_value=results) |
|
|
|
|
|
|
|
|
_, plot_df, _ = run_and_display( |
|
|
model_id="mock_model", |
|
|
prompt_type="control_long_prose", |
|
|
seed=42, |
|
|
num_steps=5, |
|
|
concept_to_inject="test_concept", |
|
|
injection_strength=1.0, |
|
|
progress=mocker.MagicMock() |
|
|
) |
|
|
|
|
|
|
|
|
assert isinstance(plot_df, pd.DataFrame) |
|
|
assert len(plot_df) == 5 |
|
|
assert "State Change (Delta)" in plot_df.columns |
|
|
|