Add baseline_recalc_ordering/tests/test_core.py
This commit is contained in:
parent
ff4cde4344
commit
3df6233fde
1 changed files with 49 additions and 0 deletions
49
baseline_recalc_ordering/tests/test_core.py
Normal file
49
baseline_recalc_ordering/tests/test_core.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
import json
|
||||
import pytest
|
||||
from pathlib import Path
|
||||
|
||||
from baseline_recalc_ordering import core
|
||||
|
||||
def load_test_data():
|
||||
data_path = Path(__file__).parent / "data" / "test_order_sequence.json"
|
||||
if not data_path.exists():
|
||||
# Fallback Testdaten, falls Datei nicht existiert
|
||||
return ["opA", "opB", "opC"]
|
||||
with data_path.open("r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
def test_analyze_latency_structure_and_content(tmp_path):
|
||||
order_sequence = load_test_data()
|
||||
result = core.analyze_latency(order_sequence)
|
||||
|
||||
# Struktur prüfen
|
||||
assert isinstance(result, dict), "Rückgabe muss dict sein"
|
||||
assert "order_sequence" in result, "order_sequence-Feld fehlt"
|
||||
assert "latency_metrics" in result, "latency_metrics-Feld fehlt"
|
||||
|
||||
# Feldtypen prüfen
|
||||
assert isinstance(result["order_sequence"], list), "order_sequence muss Liste sein"
|
||||
assert all(isinstance(x, str) for x in result["order_sequence"]), "order_sequence-Elemente müssen Strings sein"
|
||||
assert isinstance(result["latency_metrics"], dict), "latency_metrics muss dict sein"
|
||||
|
||||
# Beispielhafte Keys prüfen
|
||||
for key in ["mean", "median", "stdev"]:
|
||||
assert key in result["latency_metrics"], f"Metrik '{key}' fehlt"
|
||||
assert isinstance(result["latency_metrics"][key], (int, float)), f"Metrik '{key}' hat falschen Typ"
|
||||
|
||||
|
||||
def test_reproducible_results():
|
||||
order_sequence = ["x", "y", "z"]
|
||||
result1 = core.analyze_latency(order_sequence)
|
||||
result2 = core.analyze_latency(order_sequence)
|
||||
assert result1 == result2, "Gleiche Eingaben müssen gleiche Resultate ergeben"
|
||||
|
||||
|
||||
def test_empty_sequence_handling():
|
||||
result = core.analyze_latency([])
|
||||
assert isinstance(result, dict)
|
||||
assert result["order_sequence"] == []
|
||||
assert isinstance(result["latency_metrics"], dict)
|
||||
assert "mean" in result["latency_metrics"]
|
||||
assert result["latency_metrics"]["mean"] == 0
|
||||
Loading…
Reference in a new issue