|
|
import pandas as pd |
|
|
import pytest |
|
|
|
|
|
|
|
|
from app import run_and_display |
|
|
|
|
|
def test_run_and_display_logic(mocker): |
|
|
""" |
|
|
Testet die Datenverarbeitungs- und UI-Formatierungslogik in `app.py`. |
|
|
Wir mocken die teure `run_seismic_analysis`-Funktion, um uns nur auf die |
|
|
Logik von `run_and_display` zu konzentrieren. |
|
|
""" |
|
|
|
|
|
mock_results = { |
|
|
"verdict": "Mock Verdict", |
|
|
"stats": { |
|
|
"mean_delta": 0.5, |
|
|
"std_delta": 0.1, |
|
|
"max_delta": 1.0, |
|
|
}, |
|
|
"state_deltas": [0.4, 0.5, 0.6] |
|
|
} |
|
|
mocker.patch('app.run_seismic_analysis', return_value=mock_results) |
|
|
|
|
|
|
|
|
mock_progress = mocker.MagicMock() |
|
|
|
|
|
|
|
|
verdict_md, plot_df, raw_json = run_and_display( |
|
|
model_id="mock_model", |
|
|
prompt_type="mock_prompt", |
|
|
seed=42, |
|
|
num_steps=3, |
|
|
progress=mock_progress |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert "Mock Verdict" in verdict_md |
|
|
assert "Mean Delta:" in verdict_md |
|
|
assert "0.5000" in verdict_md |
|
|
assert "Std Dev Delta:" in verdict_md |
|
|
assert "0.1000" in verdict_md |
|
|
|
|
|
|
|
|
assert isinstance(plot_df, pd.DataFrame) |
|
|
assert "Internal Step" in plot_df.columns |
|
|
assert "State Change (Delta)" in plot_df.columns |
|
|
assert len(plot_df) == 3 |
|
|
assert plot_df["State Change (Delta)"].tolist() == [0.4, 0.5, 0.6] |
|
|
|
|
|
|
|
|
assert raw_json == mock_results |
|
|
|