Add marker_analysis/tests/test_core.py
This commit is contained in:
parent
958c20e7b7
commit
5466db83c0
1 changed files with 51 additions and 0 deletions
51
marker_analysis/tests/test_core.py
Normal file
51
marker_analysis/tests/test_core.py
Normal 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'])
|
||||
Loading…
Reference in a new issue