From 5466db83c0825ccabb85b2aed0fe7abefcd1723b Mon Sep 17 00:00:00 2001 From: Mika Date: Sun, 18 Jan 2026 17:11:12 +0000 Subject: [PATCH] Add marker_analysis/tests/test_core.py --- marker_analysis/tests/test_core.py | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 marker_analysis/tests/test_core.py diff --git a/marker_analysis/tests/test_core.py b/marker_analysis/tests/test_core.py new file mode 100644 index 0000000..6872ee7 --- /dev/null +++ b/marker_analysis/tests/test_core.py @@ -0,0 +1,51 @@ +import pytest +from marker_analysis.core import MarkerData, validate_markers + +@pytest.fixture +def valid_markers(): + return [ + MarkerData(marker_id='corr1', timestamp=1.0, status='write_pre'), + MarkerData(marker_id='corr1', timestamp=2.0, status='write_post'), + MarkerData(marker_id='corr2', timestamp=3.0, status='write_pre'), + MarkerData(marker_id='corr3', timestamp=4.0, status='read_between_steps'), + MarkerData(marker_id='corr2', timestamp=5.0, status='write_post'), + ] + +@pytest.fixture +def missing_post_marker(): + return [ + MarkerData(marker_id='c1', timestamp=1.0, status='write_pre'), + MarkerData(marker_id='c2', timestamp=2.0, status='write_pre'), + MarkerData(marker_id='c2', timestamp=3.0, status='write_post'), + ] + +def test_validate_markers_happy_path(valid_markers): + result = validate_markers(valid_markers) + assert isinstance(result, dict) + assert result['valid_pairs'] == 2 + assert result['missing_pre'] == 0 + assert result['missing_post'] == 0 + assert 'retry_free_reads' in result + assert result['retry_free_reads'] == 1 + +def test_validate_markers_missing_post(missing_post_marker): + result = validate_markers(missing_post_marker) + assert result['valid_pairs'] == 1 + assert result['missing_post'] == 1 + +def test_validate_markers_empty_input(): + result = validate_markers([]) + assert result['valid_pairs'] == 0 + assert result['missing_pre'] == 0 + assert result['missing_post'] == 0 + assert result['retry_free_reads'] == 0 + +def test_markerdata_init_and_attrs(): + m = MarkerData(marker_id='x', timestamp=123.45, status='write_pre') + assert m.marker_id == 'x' + assert isinstance(m.timestamp, float) + assert m.status == 'write_pre' + +def test_validate_markers_invalid_input_type(): + with pytest.raises(Exception): + validate_markers(['not_a_marker']) \ No newline at end of file