Add marker_analysis/tests/test_core.py

This commit is contained in:
Mika 2026-01-18 17:11:12 +00:00
parent 958c20e7b7
commit 5466db83c0

View file

@ -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'])