guide / tests /classifier /test_model.py
Saravanakumar R
openspec add tests for all dl models
b2ef214
Raw
History Blame Contribute Delete
2.23 kB
"""
Unit tests for pure-logic functions in src/classifier/predict.py.
No model checkpoint required. Tests _keyword_classify() directly.
Run: pytest tests/classifier/test_model.py
"""
from src.classifier.model import DOMAIN_LABELS
from src.classifier.predict import _keyword_classify
# ---------------------------------------------------------------------------
# Domain routing
# ---------------------------------------------------------------------------
def test_keyword_classify_telecom():
result = _keyword_classify("Airtel deducted from my prepaid account without explanation")
assert result.domain == "telecom"
def test_keyword_classify_banking():
result = _keyword_classify("HDFC Bank deducted funds from my savings account without authorization")
assert result.domain == "banking"
def test_keyword_classify_ecommerce():
result = _keyword_classify("Flipkart has not delivered my order and refused to refund")
assert result.domain == "ecommerce"
def test_keyword_classify_insurance():
result = _keyword_classify("LIC rejected my health insurance claim without reason")
assert result.domain == "insurance"
def test_keyword_classify_cibil():
result = _keyword_classify("My CIBIL credit score dropped due to an incorrect entry")
assert result.domain == "cibil"
def test_keyword_classify_no_keyword_falls_back_to_general():
result = _keyword_classify("I have a problem with a service I received")
assert result.domain == "general"
# ---------------------------------------------------------------------------
# Sentinel values — always 0.0 / True regardless of input
# ---------------------------------------------------------------------------
def test_keyword_classify_confidence_is_zero():
result = _keyword_classify("Airtel deducted from my prepaid account")
assert result.confidence == 0.0
def test_keyword_classify_low_confidence_is_true():
result = _keyword_classify("Airtel deducted from my prepaid account")
assert result.low_confidence is True
def test_keyword_classify_all_probs_has_six_keys():
result = _keyword_classify("Flipkart did not deliver my order")
assert set(result.all_probs.keys()) == set(DOMAIN_LABELS)