35 lines
982 B
Python
35 lines
982 B
Python
"""Smoke test for the Concept stub. Real algorithm tests come in Stage 1b."""
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
from app.main import app
|
|
|
|
|
|
def test_concept_stub_returns_three_variants() -> None:
|
|
client = TestClient(app)
|
|
payload = {
|
|
"parcel_geojson": {
|
|
"type": "Polygon",
|
|
"coordinates": [
|
|
[
|
|
[60.6, 56.83],
|
|
[60.61, 56.83],
|
|
[60.61, 56.84],
|
|
[60.6, 56.84],
|
|
[60.6, 56.83],
|
|
]
|
|
],
|
|
},
|
|
"housing_class": "comfort",
|
|
"target_floors": 9,
|
|
"development_type": "mid_rise",
|
|
}
|
|
response = client.post("/api/v1/concepts", json=payload)
|
|
assert response.status_code == 200
|
|
variants = response.json()["variants"]
|
|
assert len(variants) == 3
|
|
assert {v["strategy"] for v in variants} == {
|
|
"max_area",
|
|
"max_insolation",
|
|
"balanced",
|
|
}
|