Add measurements_analysis/tests/test_core.py

This commit is contained in:
Mika 2025-12-14 16:47:08 +00:00
parent 960aa4e66c
commit 47a4fdf4a4

View file

@ -0,0 +1,36 @@
import pytest
import math
from measurements_analysis import core
# Beispielmessdaten entsprechend dem MeasurementData-Datenmodell
data_sample = [
{"spacing_mm": 0.0, "hf_amplitude": 1.0, "spike_outlier_rate": 0.02, "levenes_test_p": 0.8},
{"spacing_mm": 0.5, "hf_amplitude": 0.95, "spike_outlier_rate": 0.03, "levenes_test_p": 0.75},
{"spacing_mm": 1.0, "hf_amplitude": 0.9, "spike_outlier_rate": 0.05, "levenes_test_p": 0.7},
{"spacing_mm": 1.5, "hf_amplitude": 0.85, "spike_outlier_rate": 0.04, "levenes_test_p": 0.65}
]
def test_analyze_measurements_returns_dict():
result = core.analyze_measurements(data_sample)
assert isinstance(result, dict)
def test_analyze_measurements_contains_expected_keys():
result = core.analyze_measurements(data_sample)
expected_keys = {"mean_hf_amplitude", "variance_hf_amplitude", "mean_outlier_rate", "mean_levenes_p"}
assert expected_keys.issubset(result.keys())
def test_analyze_measurements_mean_values():
result = core.analyze_measurements(data_sample)
expected_mean_amp = sum(d["hf_amplitude"] for d in data_sample) / len(data_sample)
expected_mean_outlier = sum(d["spike_outlier_rate"] for d in data_sample) / len(data_sample)
expected_mean_levene = sum(d["levenes_test_p"] for d in data_sample) / len(data_sample)
assert math.isclose(result["mean_hf_amplitude"], expected_mean_amp, rel_tol=1e-9)
assert math.isclose(result["mean_outlier_rate"], expected_mean_outlier, rel_tol=1e-9)
assert math.isclose(result["mean_levenes_p"], expected_mean_levene, rel_tol=1e-9)
def test_analyze_measurements_variance_positive():
result = core.analyze_measurements(data_sample)
assert result["variance_hf_amplitude"] >= 0.0