RICS / backend /tests /test_notes_expander_tiers.py
StormShadow308's picture
Add demo documentation and Docker setup for v2 report generation system
aad7814
Raw
History Blame Contribute Delete
1.75 kB
"""Tier-aware notes expander prompt tests."""
from __future__ import annotations
from backend.models.schema import RatingSystem, RatingValue, TemplateSchema
from backend.prompts.notes_expander import (
EXPANDER_SYSTEM_BASE_MAXIMUM,
EXPANDER_SYSTEM_BASE_MEDIUM,
EXPANDER_SYSTEM_BASE_MINIMUM,
build_expander_messages,
select_expander_prompt,
)
def _schema(*, rating: bool) -> TemplateSchema:
rs = RatingSystem(
detected=rating,
name="Condition Rating",
values=[RatingValue(value="1"), RatingValue(value="2"), RatingValue(value="3")],
)
return TemplateSchema(rating_system=rs)
def test_select_expander_prompt_routes_tiers():
assert select_expander_prompt("minimum") is EXPANDER_SYSTEM_BASE_MINIMUM
assert select_expander_prompt("medium") is EXPANDER_SYSTEM_BASE_MEDIUM
assert select_expander_prompt("maximum") is EXPANDER_SYSTEM_BASE_MAXIMUM
assert select_expander_prompt("bogus") is EXPANDER_SYSTEM_BASE_MAXIMUM
assert select_expander_prompt(None) is EXPANDER_SYSTEM_BASE_MAXIMUM
def test_build_expander_messages_respects_interference_level():
schema = _schema(rating=False)
min_msgs = build_expander_messages(schema, "det to DPC", interference_level="minimum")
med_msgs = build_expander_messages(schema, "det to DPC", interference_level="medium")
max_msgs = build_expander_messages(schema, "det to DPC", interference_level="maximum")
assert "zero-inference" in min_msgs[0]["content"]
assert "proofreading assistant" in med_msgs[0]["content"]
assert "expert UK RICS surveyor" in max_msgs[0]["content"]
assert min_msgs[0]["content"] != med_msgs[0]["content"] != max_msgs[0]["content"]
assert min_msgs[1]["content"] == "det to DPC"