from siop_ai.decoupage import CHEVAUCHEMENT, TAILLE_CIBLE, decouper


def test_texte_court_un_seul_extrait():
    extraits = decouper("Serrer les vis de fixation des coulisseaux au couple de 25 N·m.")
    assert len(extraits) == 1


def test_les_miettes_sont_ecartees():
    assert decouper("p. 3\n\n7\n\n") == []


def test_long_texte_decoupe_avec_chevauchement():
    paragraphe = "La procédure de maintenance impose un contrôle mensuel des organes. " * 40
    extraits = decouper(paragraphe)
    assert len(extraits) >= 2
    assert all(len(e) <= TAILLE_CIBLE + CHEVAUCHEMENT for e in extraits)


def test_paragraphes_courts_regroupes():
    texte = "\n\n".join(f"Étape {i} : vérifier le verrouillage de la porte palière." for i in range(6))
    extraits = decouper(texte)
    assert len(extraits) == 1
    assert "Étape 0" in extraits[0] and "Étape 5" in extraits[0]
