Spaces:
Build error
Build error
| """ | |
| 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 | |