RICS / backend /tests /test_notes_element_labels.py
StormShadow308's picture
Add demo documentation and Docker setup for v2 report generation system
aad7814
Raw
History Blame Contribute Delete
1.49 kB
"""Element-label prefix routing and screenshot regression cases."""
from backend.core.notes_keyword_router import classify_note_cascade
from backend.core.notes_routing import parse_element_label_prefix, route_lines_to_l3_sections
MAIN_ROOF = (
"Main roof: Pitched valley-style roof with imitation slate covering. "
"Some tiles have slipped, lifted, or are laid flat. Valley gutters appear to be in good condition. "
"One ridge tile is broken. Repointing is required and verges are cracked."
)
RAINWATER = (
"Rainwater fittings: UPVC gutters and gullies present. A blockage was noted. "
"The point of discharge is unknown. Front right rainwater downpipe discharges below ground. "
"Some fittings are brittle and faded."
)
def test_element_label_main_roof():
assert parse_element_label_prefix(MAIN_ROOF) == ("D2", MAIN_ROOF)
def test_element_label_rainwater_fittings():
assert parse_element_label_prefix(RAINWATER) == ("D3", RAINWATER)
def test_screenshot_main_roof_routes_d2_not_d3():
sid, score, _ = classify_note_cascade(MAIN_ROOF)
assert sid == "D2"
assert score == 1.0
def test_screenshot_rainwater_routes_d3_not_d4():
sid, score, _ = classify_note_cascade(RAINWATER)
assert sid == "D3"
assert score == 1.0
def test_route_lines_batch():
routed, unmatched = route_lines_to_l3_sections([MAIN_ROOF, RAINWATER])
assert unmatched == []
assert MAIN_ROOF in routed["D2"]
assert RAINWATER in routed["D3"]