gapura-rag / tests /test_language.py
gapura-dev's picture
feat(rag): adaptive retrieval, query profiling, evidence citations
5daf92c
Raw
History Blame Contribute Delete
1.34 kB
from __future__ import annotations
from app.models.types import Language
from app.services import language
def test_detect_language_uses_indonesian_lexical_hints_before_fasttext(monkeypatch):
monkeypatch.setattr(
language,
"_ensure_model",
lambda: (_ for _ in ()).throw(AssertionError("fasttext should not be loaded")),
)
assert (
language.detect_language("berapa batas berat bagasi kabin?")
== Language.ID
)
assert (
language.detect_language(
"jelaskan ketentuan PM 89 Tahun 2015 tentang keterlambatan penerbangan"
)
== Language.ID
)
def test_detect_language_uses_english_lexical_hints_before_fasttext(monkeypatch):
monkeypatch.setattr(
language,
"_ensure_model",
lambda: (_ for _ in ()).throw(AssertionError("fasttext should not be loaded")),
)
assert language.detect_language("what is the cabin baggage limit?") == Language.EN
def test_detect_language_falls_back_to_fasttext_when_lexical_hints_are_weak(
monkeypatch,
):
class FakeModel:
def predict(self, text, k=2):
return (("__label__id", "__label__en"), (0.9, 0.1))
monkeypatch.setattr(language, "_ensure_model", lambda: FakeModel())
assert language.detect_language("operasional") == Language.ID