| """Tests for updated data models.""" |
| from app.models import ProductResult, StatusLevel, TrendDirection, ConfidenceLevel |
|
|
|
|
| def test_indicator_result_new_fields(): |
| result = ProductResult( |
| product_id="ndvi", |
| headline="Test", |
| status=StatusLevel.AMBER, |
| trend=TrendDirection.DETERIORATING, |
| confidence=ConfidenceLevel.MODERATE, |
| map_layer_path="/tmp/test.tif", |
| chart_data={"dates": [], "values": []}, |
| summary="Test summary", |
| methodology="Test methodology", |
| limitations=["Test"], |
| anomaly_months=3, |
| z_score_current=-1.8, |
| hotspot_pct=15.2, |
| confidence_factors={ |
| "temporal": 0.75, |
| "observation_density": 0.5, |
| "baseline_depth": 1.0, |
| "spatial_completeness": 0.9, |
| }, |
| ) |
| assert result.anomaly_months == 3 |
| assert result.z_score_current == -1.8 |
| assert result.hotspot_pct == 15.2 |
| assert result.confidence_factors["baseline_depth"] == 1.0 |
|
|
|
|
| def test_indicator_result_defaults_for_new_fields(): |
| result = ProductResult( |
| product_id="ndvi", |
| headline="Test", |
| status=StatusLevel.GREEN, |
| trend=TrendDirection.STABLE, |
| confidence=ConfidenceLevel.LOW, |
| map_layer_path="/tmp/test.tif", |
| chart_data={}, |
| summary="", |
| methodology="", |
| limitations=[], |
| ) |
| assert result.anomaly_months == 0 |
| assert result.z_score_current == 0.0 |
| assert result.hotspot_pct == 0.0 |
| assert result.confidence_factors == {} |
|
|
|
|
| def test_compound_signal_model(): |
| from app.models import CompoundSignal |
| signal = CompoundSignal( |
| name="land_conversion", |
| triggered=True, |
| confidence="strong", |
| description="NDVI decline overlaps with settlement growth", |
| indicators=["ndvi", "buildup"], |
| overlap_pct=25.3, |
| affected_ha=145.0, |
| ) |
| assert signal.triggered is True |
| assert signal.confidence == "strong" |
| assert len(signal.indicators) == 2 |
|
|