File size: 1,533 Bytes
fec5550
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a6ddce9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import pytest
from app import APIResponse, PredictionData, LogisticsPlan

def test_api_response_provenance_fields():
    """Verify that the APIResponse schema includes scientific provenance fields."""
    schema = APIResponse.model_json_schema()
    props = schema["properties"]
    
    assert "data_status" in props
    assert "forecast_type" in props
    assert "model_version" in props
    assert "training_data_type" in props
    assert "disclaimer" in props

def test_logistics_plan_schema():
    """Verify LogisticsPlan includes operational assumptions."""
    schema = LogisticsPlan.model_json_schema()
    props = schema["properties"]
    
    assert "operational_assumptions" in props
    assert "calculation_method" in props

def test_kecamatan_registry_json_integrity():
    """Verify that config/kecamatan_registry.json contains exactly 44 sub-districts with valid metadata."""
    from core.config import KECAMATAN_DATABASE, ALLOWED_LOCATIONS
    assert len(KECAMATAN_DATABASE) == 44, f"Expected 44 kecamatan, got {len(KECAMATAN_DATABASE)}"
    assert len(ALLOWED_LOCATIONS) == 44
    assert "Menteng" in KECAMATAN_DATABASE
    assert "Cakung" in KECAMATAN_DATABASE
    assert "Penjaringan" in KECAMATAN_DATABASE
    assert "Cengkareng" in KECAMATAN_DATABASE
    
    for loc, info in KECAMATAN_DATABASE.items():
        assert "latitude" in info
        assert "longitude" in info
        assert "population_jiwa" in info
        assert "normal_avg" in info
        assert "city" in info
        assert "zone" in info