Spaces:
Sleeping
Sleeping
| """ | |
| 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) | |