File size: 1,749 Bytes
aad7814
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
"""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"