site-intelligence-studio / tests /test_small_model_assistant.py
Eishaan's picture
Prepare submission-ready Space build
c590d67
Raw
History Blame Contribute Delete
2.01 kB
import unittest
from src.evidence import make_evidence
from src.models import SiteSelection
from src.safety import find_forbidden_phrases
from src.small_model_assistant import build_assistant_brief
class SmallModelAssistantTests(unittest.TestCase):
def test_template_fallback_is_safe_and_evidence_bound(self):
selection = SiteSelection(
id="S1",
selection_type="pin_radius",
coordinate_mode="wgs84",
geometry_geojson=None,
local_geometry=None,
anchor_lat=21.0,
anchor_lon=70.0,
radius_m=250,
area_sqm=196000,
perimeter_m=1570,
centroid=(21.0, 70.0),
bbox=None,
unit_source="meters",
accuracy_label="pin-radius approximation",
limitations=["Pin-radius is approximate."],
)
evidence = [
make_evidence(
category="Climate",
finding="Forecast/current climate was retrieved for site-visit timing.",
source_name="Open-Meteo",
source_url="https://open-meteo.com/",
source_type="public weather API",
resolution_or_scope="forecast/current",
confidence="medium",
limitation="Not long-term climate.",
design_implication="Use for site-visit timing.",
verification_needed="Check weather locally.",
output_label="public_data",
)
]
brief = build_assistant_brief(
selection=selection,
evidence_rows=evidence,
warnings=[],
project_type="resort",
)
self.assertIn("template fallback active", brief)
self.assertRegex(brief, r"E\d{3}: Forecast/current climate")
self.assertIn("radius-based context analysis", brief)
self.assertEqual(find_forbidden_phrases(brief), [])
if __name__ == "__main__":
unittest.main()