Add measurements_analysis/tests/test_core.py
This commit is contained in:
parent
960aa4e66c
commit
47a4fdf4a4
1 changed files with 36 additions and 0 deletions
36
measurements_analysis/tests/test_core.py
Normal file
36
measurements_analysis/tests/test_core.py
Normal 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
|
||||
Loading…
Reference in a new issue