Spaces:
Sleeping
Sleeping
File size: 2,030 Bytes
b81a86b | 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | """
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
|