"""Uji modul AI: deteksi spam & klasifikasi kategori (revisi UC-02 & UC-04).""" from src.constants import CATEGORIES, LABEL_LAYAK, LABEL_SPAM def test_spam_terdeteksi(classifier): res = classifier.predict("asdkjasd test test 123 wkwkwk iseng doang") assert res.is_spam is True assert res.spam_label == LABEL_SPAM assert res.kategori is None # spam tidak dikategorikan def test_laporan_layak_tidak_dianggap_spam(classifier): res = classifier.predict( "Jalan di depan rumah saya berlubang besar dan membahayakan pengendara" ) assert res.is_spam is False assert res.spam_label == LABEL_LAYAK assert res.kategori in CATEGORIES def test_klasifikasi_kategori_infrastruktur(classifier): res = classifier.predict("Lampu jalan mati dan jalan berlubang membahayakan pengendara") assert res.kategori == "Infrastruktur" assert 0.0 <= res.kategori_confidence <= 1.0 def test_klasifikasi_kategori_lingkungan(classifier): res = classifier.predict("Sampah menumpuk di sungai menyebabkan banjir dan bau busuk") assert res.kategori == "Lingkungan" def test_teks_kosong_dianggap_spam(classifier): res = classifier.predict(" ") assert res.is_spam is True assert res.kategori is None def test_confidence_dalam_rentang_valid(classifier): res = classifier.predict("Pelayanan KTP di kecamatan sangat lambat dan berbelit") assert 0.0 <= res.spam_confidence <= 1.0 assert 0.0 <= res.kategori_confidence <= 1.0