From 47a4fdf4a4524f94ee0b65b98f05b0fde9a9c845 Mon Sep 17 00:00:00 2001 From: Mika Date: Sun, 14 Dec 2025 16:47:08 +0000 Subject: [PATCH] Add measurements_analysis/tests/test_core.py --- measurements_analysis/tests/test_core.py | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 measurements_analysis/tests/test_core.py diff --git a/measurements_analysis/tests/test_core.py b/measurements_analysis/tests/test_core.py new file mode 100644 index 0000000..cd91ed7 --- /dev/null +++ b/measurements_analysis/tests/test_core.py @@ -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