"""Le jeu d'évaluation et sa notation (sans modèle).""" import json import sys from conftest import RACINE sys.path.insert(0, str(RACINE / "eval")) from run_eval import evaluer_cas # noqa: E402 def test_jeu_de_30_conversations(): cas = json.loads((RACINE / "eval" / "conversations.json").read_text(encoding="utf-8")) assert len(cas) == 30 and len({c["id"] for c in cas}) == 30 tels = [c["tel"] for c in cas if c["canal"] == "whatsapp"] assert len(tels) == len(set(tels)), "un numéro par cas : sinon deux cas partagent une conversation" def test_notation(): cas = {"outils": ["rechercher_aide", ["suivre_colis", "consulter_commande"]], "escalade": False, "contient": [["3,90", "3.90"]], "ne_contient_pas": ["**"]} assert evaluer_cas(cas, ["rechercher_aide", "consulter_commande"], ["Point relais : 3.90 €"], False) == [] ecarts = evaluer_cas(cas, ["rechercher_aide"], ["**Gratuit**"], True) assert len(ecarts) == 4 assert evaluer_cas({"contient": [["préparation"]]}, [], ["En PREPARATION"], False) == [], "casse et accents ignorés"