# tests/test_hyphenation.py import pytest from etpgrf import Hyphenator # --- Тестовые данные для русского языка --- # Формат: (входное_слово, ожидаемый_результат_с_переносами) # Используем \u00AD - это Unicode-представление мягкого переноса (­) RUSSIAN_HYPHENATION_CASES = [ ("дом", "дом"), # Сочень короткое (короче max_unhyphenated_len) не должно меняться ("проверка", "про\u00ADверка"), ("тестирование", "тести\u00ADрова\u00ADние"), ("благотворительностью", "бла\u00ADготво\u00ADритель\u00ADностью"), # Слово с переносом на мягкий знак ("фотоаппаратура", "фотоап\u00ADпара\u00ADтура"), # проверка слова со сдвоенной согласной ("программирование", "про\u00ADграм\u00ADмиро\u00ADвание"), # слова со сдвоенной согласной ("сверхзвуковой", "сверх\u00ADзву\u00ADковой"), ("автомобиль", "авто\u00ADмобиль"), ("интернационализация", "инте\u00ADрнаци\u00ADонали\u00ADзация"), ("электронный", "элек\u00ADтрон\u00ADный"), ("информационный", "инфо\u00ADрма\u00ADцион\u00ADный"), ("автоматизация", "автома\u00ADтиза\u00ADция"), ("многоклеточный", "мно\u00ADгокле\u00ADточный"), ("многофункциональный", "мно\u00ADгофун\u00ADкцио\u00ADналь\u00ADный"), ("непрерывность", "непре\u00ADрывно\u00ADсть"), ("сверхпроводимость", "сверх\u00ADпрово\u00ADдимо\u00ADсть"), ("многообразие", "мно\u00ADгоо\u00ADбра\u00ADзие"), ("противоречивость", "про\u00ADтиво\u00ADречи\u00ADвость"), ("непревзойденный", "непре\u00ADвзой\u00ADден\u00ADный"), ("многослойный", "мно\u00ADгослой\u00ADный"), ("суперкомпьютер", "супе\u00ADрко\u00ADмпью\u00ADтер"), # Неправильный перенос (нужен словарь "приставок/корней/суффиксов") ("сверхчувствительный", "свер\u00ADхчув\u00ADстви\u00ADтель\u00ADный"), # Неправильный перенос ("гиперподъездной", "гипе\u00ADрпо\u00ADдъез\u00ADдной"), # Неправильный перенос ] @pytest.mark.parametrize("input_word, expected_output", RUSSIAN_HYPHENATION_CASES) def test_russian_word_hyphenation(input_word, expected_output): """ Проверяет ПОВЕДЕНИЕ: правильная расстановка переносов в отдельных русских словах. """ # Arrange (подготовка) hyphenator_ru = Hyphenator(langs='ru', max_unhyphenated_len=5, min_tail_len=3) # Act (действие) - тестируем самый "атомарный" метод actual_output = hyphenator_ru.hyp_in_word(input_word) # Assert (проверка) assert actual_output == expected_output