Hetansh Waghela
PUSH?
419099f
Raw
History Blame Contribute Delete
1.44 kB
"""
LabParser unit tests (backend/src/services/lab_parser.py).
"""
from src.services.lab_parser import LabParser
def test_parse_reference_range_variants():
p = LabParser()
assert p.parse_reference_range("13.0-17.0") == (13.0, 17.0)
assert p.parse_reference_range("< 5.0") == (None, 5.0)
assert p.parse_reference_range("> 100") == (100.0, None)
def test_parse_line_extracts_metric_value_unit_and_ranges():
p = LabParser()
metric = p.parse_line("HEMOGLOBIN (HB) 12.8 g/dl 13.0-17.0 Low", page_num=2)
assert metric is not None
assert metric.test_name.lower().startswith("hemoglobin")
assert metric.canonical_key == "hemoglobin"
assert metric.value == 12.8
assert metric.unit == "g/dL"
assert metric.ref_range_low == 13.0
assert metric.ref_range_high == 17.0
assert metric.flag.lower() == "low"
assert metric.page_num == 2
def test_parse_skips_headers_and_blank_lines():
p = LabParser()
assert p.parse_line("") is None
assert p.parse_line("TEST NAME RESULT UNIT") is None
def test_parse_tracks_page_numbers():
p = LabParser()
text = "\n".join(
[
"=== PAGE 1 ===",
"GLUCOSE 95 mg/dL 70-100",
"=== PAGE 2 ===",
"LDL CHOLESTEROL 160 mg/dL 0-130 High",
]
)
metrics = p.parse(text)
assert len(metrics) == 2
assert metrics[0].page_num == 1
assert metrics[1].page_num == 2