From e3c5f47947d7765295efa160edb947cde6e8f378 Mon Sep 17 00:00:00 2001 From: Mika Date: Tue, 16 Dec 2025 11:03:59 +0000 Subject: [PATCH] Add trace_agg/tests/test_core.py --- trace_agg/tests/test_core.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 trace_agg/tests/test_core.py diff --git a/trace_agg/tests/test_core.py b/trace_agg/tests/test_core.py new file mode 100644 index 0000000..644432a --- /dev/null +++ b/trace_agg/tests/test_core.py @@ -0,0 +1,35 @@ +import pytest +from trace_agg import core + +def test_aggregate_em_data_returns_dict(): + result = core.aggregate_em_data(num_trials=5) + assert isinstance(result, dict), 'Ergebnis muss ein Dictionary sein.' + + +def test_summary_statistics_keys_present(): + result = core.aggregate_em_data(num_trials=3) + expected_keys = {'peak_amplitude', 'median_bandpower', 'crosscorr_with_clockevents'} + assert expected_keys.issubset(result.keys()), 'Alle Schlüssel der Summary-Statistik müssen vorhanden sein.' + + +def test_value_ranges(): + result = core.aggregate_em_data(num_trials=10) + # Wertebereiche prüfen + assert 0 <= result['peak_amplitude'] < 1e6, 'peak_amplitude unrealistischer Wert.' + assert 0 <= result['median_bandpower'] < 1e5, 'median_bandpower außerhalb erwarteten Bereichs.' + assert -1 <= result['crosscorr_with_clockevents'] <= 1, 'crosscorr_with_clockevents muss zwischen -1 und 1 liegen.' + + +def test_consistency_multiple_calls(): + r1 = core.aggregate_em_data(num_trials=10) + r2 = core.aggregate_em_data(num_trials=10) + # Aufgrund von deterministischer Logik sollten Werte konsistent sein + assert set(r1.keys()) == set(r2.keys()) + for key in r1: + assert isinstance(r1[key], float) + assert isinstance(r2[key], float) + + +def test_invalid_num_trials(): + with pytest.raises(ValueError): + core.aggregate_em_data(num_trials=-5)