From fff9dda8a0d8df0be99f9881a8bf3977eaac05a1 Mon Sep 17 00:00:00 2001 From: erjemin Date: Sun, 5 Oct 2025 18:07:08 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=81=20=D1=81=D0=BE=D1=8E=D0=B7=D0=BE=D0=BC=20"=D0=B8"=20?= =?UTF-8?q?=D0=B8=20"=D0=BA=D0=B0=D0=BA"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etpgrf/unbreakables.py | 4 ++-- tests/test_typograph.py | 2 +- tests/test_unbreakables.py | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/etpgrf/unbreakables.py b/etpgrf/unbreakables.py index 2bd8b0e..e64fcf4 100644 --- a/etpgrf/unbreakables.py +++ b/etpgrf/unbreakables.py @@ -19,7 +19,7 @@ from etpgrf.defaults import etpgrf_settings _RU_UNBREAKABLE_WORDS = frozenset([ # Предлоги (только короткие... длинные, типа `ввиду`, `ввиду` и т.п., могут быть "висячими") 'в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'с', 'у', 'за', 'над', - 'об', 'под', 'про', 'для', 'ко', 'со', 'без', 'то', 'во', 'из-за', 'из-под', 'как' + 'об', 'под', 'про', 'для', 'ко', 'со', 'без', 'то', 'во', 'из-за', 'из-под', 'как', # Союзы (без сложных, тип `как будто`, `как если бы`, `за то` и т.п.) 'и', 'а', 'но', 'да', 'как', # Частицы @@ -32,7 +32,7 @@ _RU_UNBREAKABLE_WORDS = frozenset([ # Постпозитивные частицы, которые приклеиваются к ПРЕДЫДУЩЕМУ слову _RU_POSTPOSITIVE_PARTICLES = frozenset([ - 'ли', 'ль', 'же', 'ж', 'бы', 'б' + 'ли', 'ль', 'же', 'ж', 'бы', 'б', ]) # Для дореформенной орфографии можно добавить специфичные слова, если нужно diff --git a/tests/test_typograph.py b/tests/test_typograph.py index 749d0bd..99a0e37 100644 --- a/tests/test_typograph.py +++ b/tests/test_typograph.py @@ -32,7 +32,7 @@ TYPOGRAPHER_HTML_TEST_CASES = [ ('mnemonic', '

Союз и слово и еще один союз а текст.

', '

Союз и слово и еще один союз а текст.

'), ('mnemonic', '

Союз а слово а еще один союз а текст.

', - '

Союз а слово а еще один союз а текст.

'), + '

Союз а слово а еще один союз а текст.

'), diff --git a/tests/test_unbreakables.py b/tests/test_unbreakables.py index d2bd833..1ba9655 100644 --- a/tests/test_unbreakables.py +++ b/tests/test_unbreakables.py @@ -8,7 +8,7 @@ from etpgrf.config import CHAR_NBSP, CHAR_THIN_SP RUSSIAN_PREPOSITIONS_TO_TEST = [ # Предлоги (только короткие... длинные, типа `ввиду`, `ввиду` и т.п., могут быть "висячими") 'в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'с', 'у', 'за', 'над', - 'об', 'под', 'про', 'для', 'ко', 'со', 'без', 'то', 'во', 'из-за', 'из-под', 'как' + 'об', 'под', 'про', 'для', 'ко', 'со', 'без', 'то', 'во', 'из-за', 'из-под', 'как', # Союзы (без сложных, тип `как будто`, `как если бы`, `за то` и т.п.) 'и', 'а', 'но', 'да', 'как', # Частицы @@ -94,6 +94,10 @@ def test_russian_postpositive_particle(word): # Тесты для проверки особых случаев в Unbreakables UNBREAKABLES_SPECIAL_TEST_CASES = [ ('ru', "до н.э.", f"до{CHAR_NBSP}н.э."), + ('ru', "слово и тогда", f"слово и{CHAR_NBSP}тогда"), + ('ru', "слово а тогда", f"слово а{CHAR_NBSP}тогда"), + ('ru', "Проверка и тестирование.", f"Проверка и{CHAR_NBSP}тестирование."), + ]