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]