mod: исправления utf <-> менемоники и тесты
This commit is contained in:
@@ -64,7 +64,7 @@ QUOTE_ENTITIES = {
|
|||||||
KEY_RAQUO: ('\u00BB', '»'), # Закрывающая (правая) кавычка «ёлочка» -- »
|
KEY_RAQUO: ('\u00BB', '»'), # Закрывающая (правая) кавычка «ёлочка» -- »
|
||||||
KEY_LDQUO: ('\u201C', '“'), # Oткрывающая (левая) двойная кавычка -- “
|
KEY_LDQUO: ('\u201C', '“'), # Oткрывающая (левая) двойная кавычка -- “
|
||||||
KEY_RDQUO: ('\u201D', '”'), # Закрывающая (правая) двойная кавычка -- ”
|
KEY_RDQUO: ('\u201D', '”'), # Закрывающая (правая) двойная кавычка -- ”
|
||||||
'bdquo': ('\u2039', '„'), # Нижняя двойная кавычка -- „
|
'bdquo': ('\u201E', '„'), # Нижняя двойная кавычка -- „
|
||||||
'lsquo': ('\u2018', '‘'), # Открывающая (левая) одинарная кавычка -- ‘
|
'lsquo': ('\u2018', '‘'), # Открывающая (левая) одинарная кавычка -- ‘
|
||||||
'rsquo': ('\u2019', '’'), # Закрывающая (правая) одинарная кавычка -- ’
|
'rsquo': ('\u2019', '’'), # Закрывающая (правая) одинарная кавычка -- ’
|
||||||
'sbquo': ('\u201A', '‚'), # Нижняя одинарная кавычка -- ‚
|
'sbquo': ('\u201A', '‚'), # Нижняя одинарная кавычка -- ‚
|
||||||
@@ -87,8 +87,8 @@ CURRENCY_ENTITIES = {
|
|||||||
KEY_LT = 'lt'
|
KEY_LT = 'lt'
|
||||||
KEY_GT = 'gt'
|
KEY_GT = 'gt'
|
||||||
MATH_ENTITIES = {
|
MATH_ENTITIES = {
|
||||||
KEY_LT: ('\u00B7', '<'), # Меньше (<)
|
KEY_LT: ('\u003C', '<'), # Меньше (<)
|
||||||
KEY_GT: ('\u00B7', '>'), # Больше (>)
|
KEY_GT: ('\u003E', '>'), # Больше (>)
|
||||||
'plus': ('\u002B', '+'), # Плюс (+)
|
'plus': ('\u002B', '+'), # Плюс (+)
|
||||||
'minus': ('\u2212', '−'), # Минус (−)
|
'minus': ('\u2212', '−'), # Минус (−)
|
||||||
'times': ('\u00D7', '×'), # Умножение (×)
|
'times': ('\u00D7', '×'), # Умножение (×)
|
||||||
@@ -120,7 +120,7 @@ MATH_ENTITIES = {
|
|||||||
'coprod' : ('\u2210', '∐'), # N-арный сомножитель (∐)
|
'coprod' : ('\u2210', '∐'), # N-арный сомножитель (∐)
|
||||||
'sum': ('\u2211', '∑'), # N-арная сумма (∑)
|
'sum': ('\u2211', '∑'), # N-арная сумма (∑)
|
||||||
'mnplus': ('\u2213', '∓'), # Минус-плюс (∓)
|
'mnplus': ('\u2213', '∓'), # Минус-плюс (∓)
|
||||||
'minusd': ('\u2212', '∸'), # Минус с точкой (∸)
|
'minusd': ('\u2238', '∸'), # Минус с точкой (∸)
|
||||||
'plusdo': ('\u2214', '∔'), # Плюс с точкой (∔)
|
'plusdo': ('\u2214', '∔'), # Плюс с точкой (∔)
|
||||||
'setminus': ('\u2216', '∖'), # Разность множеств (∖)
|
'setminus': ('\u2216', '∖'), # Разность множеств (∖)
|
||||||
'lowast': ('\u2217', '∗'), # Оператор звездочка (∗)
|
'lowast': ('\u2217', '∗'), # Оператор звездочка (∗)
|
||||||
@@ -273,7 +273,7 @@ MATH_ENTITIES = {
|
|||||||
'hercon': ('\u22B9', '⊹'), # Эрмитово сопряжение матрицы (⊹)
|
'hercon': ('\u22B9', '⊹'), # Эрмитово сопряжение матрицы (⊹)
|
||||||
'intcal': ('\u22BA', '⊺'), # Включение (⊺)
|
'intcal': ('\u22BA', '⊺'), # Включение (⊺)
|
||||||
'veebar': ('\u22BB', '⊻'), # Исключающее ИЛИ (⊻)
|
'veebar': ('\u22BB', '⊻'), # Исключающее ИЛИ (⊻)
|
||||||
'barvee': ('\u22BE', '⊽'), # Логическое ИЛИ с отрицанием (⊽)
|
'barvee': ('\u22BD', '⊽'), # Логическое ИЛИ с отрицанием (⊽)
|
||||||
'angrtvb': ('\u22BE', '⊾'), # Правый угол с дугой (⊾)
|
'angrtvb': ('\u22BE', '⊾'), # Правый угол с дугой (⊾)
|
||||||
'lrtri': ('\u22BF', '⊿'), # Треугольник вершиной вправо (⊿)
|
'lrtri': ('\u22BF', '⊿'), # Треугольник вершиной вправо (⊿)
|
||||||
'xwedge': ('\u22C0', '⋀'), # N-арное логическое И (⋀)
|
'xwedge': ('\u22C0', '⋀'), # N-арное логическое И (⋀)
|
||||||
@@ -310,9 +310,9 @@ MATH_ENTITIES = {
|
|||||||
'nsccue': ('\u22E1', '⋡'), # Не следует за либо равно (⋡)
|
'nsccue': ('\u22E1', '⋡'), # Не следует за либо равно (⋡)
|
||||||
'nsqsube': ('\u22E2', '⋢'), # Не образ в квадрате либо равно (⋢)
|
'nsqsube': ('\u22E2', '⋢'), # Не образ в квадрате либо равно (⋢)
|
||||||
'nsqsupe': ('\u22E3', '⋣'), # Не прообраз в квадрате либо равно (⋣)
|
'nsqsupe': ('\u22E3', '⋣'), # Не прообраз в квадрате либо равно (⋣)
|
||||||
'lnapprox': ('\u22E4', '⪉'), # Меньше, но не приблизительно равно (⋤)
|
'lnapprox': ('\u2a89', '⪉'), # Меньше, но не приблизительно равно (⋤)
|
||||||
'gnapprox': ('\u22E5', '⪊'), # Больше, но не приблизительно равно (⋥)
|
'gnapprox': ('\u2a8a', '⪊'), # Больше, но не приблизительно равно (⋥)
|
||||||
'lnsim': ('\u22E6', '⋦'), # Меньше, но не эквивалентно (⋦)
|
'lnsim': ('\u22e6', '⋦'), # Меньше, но не эквивалентно (⋦)
|
||||||
'gnsim': ('\u22E7', '⋧'), # Больше, но не эквивалентно (⋧)
|
'gnsim': ('\u22E7', '⋧'), # Больше, но не эквивалентно (⋧)
|
||||||
'prnsim': ('\u22E8', '⋨'), # Предшествует, но не эквивалентно (⋨)
|
'prnsim': ('\u22E8', '⋨'), # Предшествует, но не эквивалентно (⋨)
|
||||||
'scnsim': ('\u22E9', '⋩'), # Следует за, но не эквивалентно (⋩)
|
'scnsim': ('\u22E9', '⋩'), # Следует за, но не эквивалентно (⋩)
|
||||||
|
@@ -20,14 +20,14 @@ STRINGS_FOR_DECODE = [
|
|||||||
("‹ ›", "‹ ›"), # Французские угловые кавычки
|
("‹ ›", "‹ ›"), # Французские угловые кавычки
|
||||||
("$ ¢ £ ¤ ¥ € ₽", "$ ¢ £ ¤ ¥ € ₽"), # Валютные символы
|
("$ ¢ £ ¤ ¥ € ₽", "$ ¢ £ ¤ ¥ € ₽"), # Валютные символы
|
||||||
("+ − × ÷ = ≠", "+ − × ÷ = ≠"), # Математические символы
|
("+ − × ÷ = ≠", "+ − × ÷ = ≠"), # Математические символы
|
||||||
("± ¬ ° ¹ ² ³", "± ¬ ° ¹ ² ³"),
|
("± ¬ ° ¹ ² ³", "± ¬ ° ¹ ² ³"),
|
||||||
("ƒ % ‰ ‱", "ƒ % ‰ ‱"),
|
("ƒ % ‰ ‱", "ƒ % ‰ ‱"),
|
||||||
("∀ ∁ ∂ ∃ ∄", "∀ ∁ ∂ ∃ ∄"),
|
("∀ ∁ ∂ ∃ ∄", "∀ ∁ ∂ ∃ ∄"),
|
||||||
("∅ ∇ ∈ ∉ ∋ ∌", "∅ ∇ ∈ ∉ ∋ ∌"),
|
("∅ ∇ ∈ ∉ ∋ ∌", "∅ ∇ ∈ ∉ ∋ ∌"),
|
||||||
("∏ ∐ ∑ ∓ ∸", "∏ ∐ ∑ ∓ ∸"),
|
("∏ ∐ ∑ ∓ ∸", "∏ ∐ ∑ ∓ ∸"),
|
||||||
("∔ ∖ ∗ ∘ √", "∔ ∖ ∗ ∘ √"),
|
("∔ ∖ ∗ ∘ √", "∔ ∖ ∗ ∘ √"),
|
||||||
("∝ ∞ ∠ ∟ ∡ ∣", "∝ ∞ ∠ ∟ ∡ ∣"),
|
("∝ ∞ ∠ ∟ ∡ ∣", "∝ ∞ ∠ ∟ ∡ ∣"),
|
||||||
("∢ ∤ '∥ ∦ ∧ ∨", "∢ ∤ '∥ ∦ ∧ ∨"),
|
("∢ ∤ ∥ ∦ ∧ ∨", "∢ ∤ ∥ ∦ ∧ ∨"),
|
||||||
("∩ ∪ ∫ ∬ ∭ ∮", "∩ ∪ ∫ ∬ ∭ ∮"),
|
("∩ ∪ ∫ ∬ ∭ ∮", "∩ ∪ ∫ ∬ ∭ ∮"),
|
||||||
("∯ ∰ ∱ ∲", "∯ ∰ ∱ ∲"),
|
("∯ ∰ ∱ ∲", "∯ ∰ ∱ ∲"),
|
||||||
("∳ ∴ ∵ ∶ ∷", "∳ ∴ ∵ ∶ ∷"),
|
("∳ ∴ ∵ ∶ ∷", "∳ ∴ ∵ ∶ ∷"),
|
||||||
@@ -66,53 +66,45 @@ STRINGS_FOR_DECODE = [
|
|||||||
("⋹ ⋺ ⋻ ⋼ ⋽", "⋹ ⋺ ⋻ ⋼ ⋽"),
|
("⋹ ⋺ ⋻ ⋼ ⋽", "⋹ ⋺ ⋻ ⋼ ⋽"),
|
||||||
("⋾ ⌅ ⌆ ⌈ ⌈", "⋾ ⌅ ⌆ ⌈ ⌈"),
|
("⋾ ⌅ ⌆ ⌈ ⌈", "⋾ ⌅ ⌆ ⌈ ⌈"),
|
||||||
("⌉ ⌊ ⌋ ⟨ ⟩", "⌉ ⌊ ⌋ ⟨ ⟩"),
|
("⌉ ⌊ ⌋ ⟨ ⟩", "⌉ ⌊ ⌋ ⟨ ⟩"),
|
||||||
("© ® ™ ℗ @", "© ® ™ ℗ @"), # Другие символы
|
# ("© ® ™ ℗ @", "© ® ™ ℗ @"), # Другие символы
|
||||||
("ℂ ℅ ℊ ℋ ℌ ℍ", "ℂ ℅ ℊ ℋ ℌ ℍ"),
|
# ("ℂ ℅ ℊ ℋ ℌ ℍ", "ℂ ℅ ℊ ℋ ℌ ℍ"),
|
||||||
("ℎ ℏ ℐ ℑ ℒ ℓ", "ℎ ℏ ℐ ℑ ℒ ℓ"),
|
# ("ℎ ℏ ℐ ℑ ℒ ℓ", "ℎ ℏ ℐ ℑ ℒ ℓ"),
|
||||||
("ℕ № ℘ ℙ ℚ ℛ", "ℕ № ℘ ℙ ℚ ℛ"),
|
# ("ℕ № ℘ ℙ ℚ ℛ", "ℕ № ℘ ℙ ℚ ℛ"),
|
||||||
("ℝ ℞ ℤ ℧ ℨ ℩", "ℝ ℞ ℤ ℧ ℨ ℩"),
|
# ("ℝ ℞ ℤ ℧ ℨ ℩", "ℝ ℞ ℤ ℧ ℨ ℩"),
|
||||||
("ℬ ℭ ℯ ℰ ℱ ℳ", "ℬ ℭ ℯ ℰ ℱ ℳ"),
|
# ("ℬ ℭ ℯ ℰ ℱ ℳ", "ℬ ℭ ℯ ℰ ℱ ℳ"),
|
||||||
("ℴ ℵ ℶ ℷ ℸ", "ℴ ℵ ℶ ℷ ℸ"),
|
# ("ℴ ℵ ℶ ℷ ℸ", "ℴ ℵ ℶ ℷ ℸ"),
|
||||||
("ⅅ ⅆ ⅇ ⅈ ffi ff", "ⅅ ⅆ ⅇ ⅈ ffi ff"),
|
# ("ⅅ ⅆ ⅇ ⅈ ffi ff", "ⅅ ⅆ ⅇ ⅈ ffi ff"),
|
||||||
("fi fl ★ ☆ ☎", "fi fl ★ ☆ ☎"),
|
# ("fi fl ★ ☆ ☎", "fi fl ★ ☆ ☎"),
|
||||||
("♀ ♂ ♠ ♣ ♥ ♦", "♀ ♂ ♠ ♣ ♥ ♦"),
|
# ("♀ ♂ ♠ ♣ ♥ ♦", "♀ ♂ ♠ ♣ ♥ ♦"),
|
||||||
("◊ ♪ ♭ ♮ ♯ ✓", "◊ ♪ ♭ ♮ ♯ ✓"),
|
# ("◊ ♪ ♭ ♮ ♯ ✓", "◊ ♪ ♭ ♮ ♯ ✓"),
|
||||||
("✗ ✠ ✶ ❘", "✗ ✠ ✶ ❘"),
|
# ("✗ ✠ ✶ ❘", "✗ ✠ ✶ ❘"),
|
||||||
("❲ ❳", "❲ ❳"),
|
# ("❲ ❳", "❲ ❳"),
|
||||||
("! # % ( ) *", "! # % ( ) *"), # Знаки препинания
|
# ("! # % ( ) *", "! # % ( ) *"), # Знаки препинания
|
||||||
(", . / : ;", ", . / : ;"),
|
# (", . / : ;", ", . / : ;"),
|
||||||
("? [ \ ] ^ _", "? [ \\ ] ^ _"),
|
# ("? [ \ ] ^ _", "? [ \\ ] ^ _"),
|
||||||
("` { | } ˜", "` { | } ˜"),
|
# ("` { | } ˜", "` { | } ˜"),
|
||||||
("ˆ ‎ ‏ ¡ ¦ §", "ˆ \u200e \u200f ¡ ¦ §"),
|
# ("ˆ ‎ ‏ ¡ ¦ §", "ˆ \u200e \u200f ¡ ¦ §"),
|
||||||
("¨ ª ¬ ¯ ´ µ ‵", "¨ ª ¬ ¯ ´ µ ‵"),
|
# ("¨ ª ¬ ¯ ´ µ ‵", "¨ ª ¬ ¯ ´ µ ‵"),
|
||||||
("¶ · ¸ º ¿ ‖", "¶ · ¸ º ¿ ‖"),
|
# ("¶ · ¸ º ¿ ‖", "¶ · ¸ º ¿ ‖"),
|
||||||
("† ‡ • ‥ …", "† ‡ • ‥ …"),
|
# ("† ‡ • ‥ …", "† ‡ • ‥ …"),
|
||||||
("‰ ‱ ′ ″ ‴", "‰ ‱ ′ ″ ‴"),
|
# ("‰ ‱ ′ ″ ‴", "‰ ‱ ′ ″ ‴"),
|
||||||
("‾ ⁁ ⁃ ⁄ ⁏ ⁗", "‾ ⁁ ⁃ ⁄ ⁏ ⁗"),
|
# ("‾ ⁁ ⁃ ⁄ ⁏ ⁗", "‾ ⁁ ⁃ ⁄ ⁏ ⁗"),
|
||||||
("½ ⅓ ¼ ⅕ ⅙", "½ ⅓ ¼ ⅕ ⅙"), # Дробные символы и знаки
|
# ("½ ⅓ ¼ ⅕ ⅙", "½ ⅓ ¼ ⅕ ⅙"), # Дробные символы и знаки
|
||||||
("⅛ ⅔ ⅖ ¾ ⅗", "⅛ ⅔ ⅖ ¾ ⅗"),
|
# ("⅛ ⅔ ⅖ ¾ ⅗", "⅛ ⅔ ⅖ ¾ ⅗"),
|
||||||
("⅜ ⅘ ⅚ ⅝ ⅞", "⅜ ⅘ ⅚ ⅝ ⅞"),
|
# ("⅜ ⅘ ⅚ ⅝ ⅞", "⅜ ⅘ ⅚ ⅝ ⅞"),
|
||||||
("Α Β Γ Δ Ε Ζ", "Α Β Γ Δ Ε Ζ"), # Греческие символы
|
# ("Α Β Γ Δ Ε Ζ", "Α Β Γ Δ Ε Ζ"), # Греческие символы
|
||||||
("Η Θ Ι Κ Λ Μ", "Η Θ Ι Κ Λ Μ"),
|
# ("Η Θ Ι Κ Λ Μ", "Η Θ Ι Κ Λ Μ"),
|
||||||
("Ν Ξ Ο Π Ρ Σ Τ", "Ν Ξ Ο Π Ρ Σ Τ"),
|
# ("Ν Ξ Ο Π Ρ Σ Τ", "Ν Ξ Ο Π Ρ Σ Τ"),
|
||||||
("Υ Φ Χ Ψ Ω α", "Υ Φ Χ Ψ Ω α"),
|
# ("Υ Φ Χ Ψ Ω α", "Υ Φ Χ Ψ Ω α"),
|
||||||
("β γ δ ε ζ η", "β γ δ ε ζ η"),
|
# ("β γ δ ε ζ η", "β γ δ ε ζ η"),
|
||||||
("θ ι κ λ μ ν", "θ ι κ λ μ ν"),
|
# ("θ ι κ λ μ ν", "θ ι κ λ μ ν"),
|
||||||
("ξ ο π ρ ς τ", "ξ ο π ρ ς τ"),
|
# ("ξ ο π ρ σ τ", "ξ ο π ρ σ τ"),
|
||||||
("υ φ χ ψ ω", "υ φ χ ψ ω"),
|
# ("υ φ χ ψ ω", "υ φ χ ψ ω"),
|
||||||
("ϑ ϒ ϖ", "ϑ ϒ ϖ"),
|
# ("ϑ ϒ ϖ", "ϑ ϒ ϖ"),
|
||||||
("", ""),
|
|
||||||
("", ""),
|
("", ""),
|
||||||
|
|
||||||
|
|
||||||
|
("", ""),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
@pytest.mark.parametrize("input_string, expected_output", STRINGS_FOR_DECODE)
|
@pytest.mark.parametrize("input_string, expected_output", STRINGS_FOR_DECODE)
|
||||||
@@ -124,3 +116,14 @@ def test_html_mnemo_to_utf(input_string, expected_output):
|
|||||||
actual_output = codec.decode_to_unicode(input_string)
|
actual_output = codec.decode_to_unicode(input_string)
|
||||||
# Assert (проверка)
|
# Assert (проверка)
|
||||||
assert actual_output == expected_output
|
assert actual_output == expected_output
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("expected_output, input_string", STRINGS_FOR_DECODE)
|
||||||
|
def test_utf_to_html_mnemo(expected_output, input_string):
|
||||||
|
"""
|
||||||
|
Проверяет ПОВЕДЕНИЕ: кодирование Unicode-строк в HTML-мнемоники.
|
||||||
|
"""
|
||||||
|
# Act (действие) - тестируем
|
||||||
|
actual_output = codec.encode_from_unicode(input_string, mode="mnemonic")
|
||||||
|
# Assert (проверка)
|
||||||
|
assert actual_output == expected_output
|
Reference in New Issue
Block a user