"""D4 (loi 09-08) : rien d'identifiant ne doit survivre à l'ingestion."""

from siop_ai.anonymisation import JETON_CONTACT, JETON_PERSONNE, anonymiser


def test_emails_et_telephones_marocains():
    texte = "Appeler M. Alami au 06 12 34 56 78 ou +212 5 22 34 56 78, sinon gardien@residence.ma"
    resultat = anonymiser(texte, ["M. Alami"])
    assert "06 12" not in resultat
    assert "+212" not in resultat
    assert "gardien@residence.ma" not in resultat
    assert resultat.count(JETON_CONTACT) == 3


def test_noms_connus_meme_sans_accents_ni_casse():
    texte = "Intervention validée par salma idrissi puis contrôlée par AHMED BENALI."
    resultat = anonymiser(texte, ["Salma Idrissi", "Ahmed Benali"])
    assert "idrissi" not in resultat.lower()
    assert "benali" not in resultat.lower()
    assert resultat.count(JETON_PERSONNE) == 2


def test_prenom_seul_est_attrape_mais_pas_les_mots_courts():
    resultat = anonymiser("Vu avec Ahmed sur site.", ["Ahmed Benali"])
    assert "Ahmed" not in resultat
    # « NC-31 » ou « vis » ne doivent jamais être mutilés par un nom court
    resultat2 = anonymiser("Contact NC-31 réglé, vis serrées.", ["N. C."])
    assert "NC-31" in resultat2


def test_le_texte_technique_reste_intact():
    texte = "Serrer les coulisseaux au couple de 25 N·m ; jeu latéral 0,5 mm."
    assert anonymiser(texte, ["Salma Idrissi"]) == texte
