agriflow-api / tests /test_layer0_tier.py
masterAAA123's picture
Space deploy v5: orphan snapshot of main, zero binary files
b81a86b
Raw
History Blame Contribute Delete
2.03 kB
"""
Unit tests Layer 0 — Tier Classification.
"""
import pytest
from matching_engine.constraints import determine_tier, TIER_1_KOTA_IHK
from matching_engine.models import Tier
class TestTierClassification:
def test_kota_surabaya_is_tier1(self):
assert determine_tier("3578") == Tier.HIGH
def test_kota_malang_is_tier1(self):
assert determine_tier("3573") == Tier.HIGH
def test_kota_kediri_is_tier1(self):
assert determine_tier("3571") == Tier.HIGH
def test_kota_madiun_is_tier1(self):
assert determine_tier("3577") == Tier.HIGH
def test_kota_probolinggo_is_tier1(self):
assert determine_tier("3574") == Tier.HIGH
def test_banyuwangi_is_tier1(self):
assert determine_tier("3510") == Tier.HIGH
def test_sumenep_is_tier1(self):
assert determine_tier("3529") == Tier.HIGH
def test_jember_is_tier1(self):
assert determine_tier("3509") == Tier.HIGH
def test_kabupaten_kediri_is_tier2(self):
# Kabupaten Kediri (3506) berbeda dengan Kota Kediri (3571)
assert determine_tier("3506") == Tier.MEDIUM
def test_sidoarjo_is_tier2(self):
# Sidoarjo bukan kota IHK meskipun IPM tinggi
assert determine_tier("3515") == Tier.MEDIUM
def test_sampang_is_tier2(self):
assert determine_tier("3527") == Tier.MEDIUM
def test_pacitan_is_tier2(self):
assert determine_tier("3501") == Tier.MEDIUM
def test_kota_batu_is_tier2(self):
# Kota Batu (3579) bukan kota IHK
assert determine_tier("3579") == Tier.MEDIUM
def test_unknown_kabupaten_is_tier2(self):
# Default fallback untuk kab yang tidak dikenali
assert determine_tier("9999") == Tier.MEDIUM
def test_tier1_count_is_8(self):
"""8 kota IHK Jawa Timur tepat."""
assert len(TIER_1_KOTA_IHK) == 8
def test_tier1_set_membership(self):
expected = {"3578", "3573", "3571", "3577", "3574", "3510", "3529", "3509"}
assert TIER_1_KOTA_IHK == expected