From 960ec9709355f7708999389e96257b8a7eeb04aa Mon Sep 17 00:00:00 2001 From: erjemin Date: Sat, 9 Aug 2025 11:31:30 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20++++++=D0=BF=D1=80=D0=B8=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D1=82=D0=B5=D1=82=D1=8B=20=D0=B8=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=8B=20html-=D0=BC=D0=BD=D0=B5=D0=BC=D0=BE=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=20=D0=B4=D0=BB=D1=8F=20decode=5Fto=5Funicode()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etpgrf/config.py | 64 ++++++++-------- tests/test_codec.py | 182 +++++++++++++++++++++----------------------- 2 files changed, 121 insertions(+), 125 deletions(-) diff --git a/etpgrf/config.py b/etpgrf/config.py index e6d0586..9e2b0b1 100644 --- a/etpgrf/config.py +++ b/etpgrf/config.py @@ -99,6 +99,7 @@ CUSTOM_ENCODE_MAP = { # '\u007c': '|', # | / | / | / | # '\u0026': '&', # & / & / & # '\u00A0': ' ', # /   /   + '\u0022': '"', # " / " / " '\u0026': '&', # & / & / & '\u003e': '>', # > / > / > '\u003c': '<', # < / < / < @@ -175,9 +176,9 @@ CUSTOM_ENCODE_MAP = { '\u24c8': 'Ⓢ', # Ⓢ / Ⓢ / Ⓢ '\u2296': '⊖', # ⊖ / ⊖ / ⊖ '\u2232': '∲', # ∲ / cwconint / ClockwiseContourIntegral - '\u201d': '”', # ” / ” / rdquor / CloseCurlyDoubleQuote + '\u201d': '”', # ” / ” / ” / ” '\u2019': '’', # ’ / ’ / rsquor / CloseCurlyQuote - '\u2237': '∷', # ∷ / Colon / Proportion + '\u2237': '∷', # ∷ / ∷ / ∷ '\u2201': '∁', # ∁ / comp / complement '\u2218': '∘', # ∘ / compfn / SmallCircle '\u2102': 'ℂ', # ℂ / Copf / complexes @@ -199,7 +200,7 @@ CUSTOM_ENCODE_MAP = { '\u21ca': '⇊', # ⇊ / ddarr / downdownarrows '\u2a77': '⩷', # ⩷ / eDDot / ddotseq '\u21c3': '⇃', # ⇃ / ⇃ / ⇃ / ⇃ - '\u21c2': '⇂', # ⇂ / dharr / RightDownVector / downharpoonright + '\u21c2': '⇂', # ⇂ / ⇂ / ⇂ / ⇂ '\u02d9': '˙', # ˙ / dot / DiacriticalDot '\u222b': '∫', # ∫ / ∫ / ∫ '\u22c4': '⋄', # ⋄ / diam / diamond / Diamond @@ -234,7 +235,7 @@ CUSTOM_ENCODE_MAP = { '\u2910': '⤐', # ⤐ / ⤐ / ⤐ '\u231f': '⌟', # ⌟ / ⌟ / ⌟ '\u25bf': '▿', # ▿ / ▿ / ▿ - '\u296f': '⥯', # ⥯ / duhar / ReverseUpEquilibrium + '\u296f': '⥯', # ⥯ / ⥯ / ⥯ '\u2256': '≖', # ≖ / ≖ / ≖ '\u2255': '≕', # ≕ / ecolon / eqcolon '\u2147': 'ⅇ', # ⅇ / ⅇ / ⅇ / ⅇ @@ -245,7 +246,7 @@ CUSTOM_ENCODE_MAP = { '\u2205': '∅', # ∅ / ∅ / ∅ / ∅ / ∅ '\u03f5': 'ϵ', # ϵ / epsiv / varepsilon / straightepsilon '\u2242': '≂', # ≂ / ≂ / ≂ / ≂ - '\u225f': '≟', # ≟ / equest / questeq + '\u225f': '≟', # ≟ / ≟ / ≟ '\u21cc': '⇌', # ⇌ / ⇌ / ⇌ / ⇌ '\u2253': '≓', # ≓ / erDot / risingdotseq '\u2130': 'ℰ', # ℰ / ℰ / ℰ @@ -276,7 +277,7 @@ CUSTOM_ENCODE_MAP = { '\u2926': '⤦', # ⤦ / ⤦ / ⤦ '\u21a9': '↩', # ↩ / ↩ / ↩ '\u21aa': '↪', # ↪ / ↪ / ↪ - '\u210d': 'ℍ', # ℍ / Hopf / quaternions + '\u210d': 'ℍ', # ℍ / ℍ / ℍ '\u2063': '⁣', # ⁣ / ⁣ / ⁣ '\u2111': 'ℑ', # ℑ / ℑ / ℑ / ℑ / ℑ '\u2148': 'ⅈ', # ⅈ / ⅈ / ⅈ @@ -391,38 +392,41 @@ CUSTOM_ENCODE_MAP = { '\u23b4': '⎴', # ⎴ / ⎴ / ⎴ '\u03d5': 'ϕ', # ϕ / phiv / varphi / straightphi '\u2665': '♥', # ♥ / ♥ / ♥ / - '\u2119': 'ℙ', # ℙ / Popf / primes + '\u2119': 'ℙ', # ℙ / ℙ / ℙ '\u227a': '≺', # ≺ / ≺ / ≺ / ≺ - '\u2ab7': '⪷', # ⪷ / prap / precapprox - '\u227c': '≼', # ≼ / prcue / preccurlyeq / PrecedesSlantEqual - '\u2aaf': '⪯', # ⪯ / pre / preceq / PrecedesEqual - '\u227e': '≾', # ≾ / prsim / precsim / PrecedesTilde - '\u2ab9': '⪹', # ⪹ / prnap / precnapprox - '\u2ab5': '⪵', # ⪵ / prnE / precneqq - '\u22e8': '⋨', # ⋨ / prnsim / precnsim + '\u2ab7': '⪷', # ⪷ / ⪷ / ⪷ + '\u227c': '≼', # ≼ / ≼ / ≼ / ≼ + '\u2aaf': '⪯', # ⪯ / ⪯ / ⪯ / ⪯ + '\u227e': '≾', # ≾ / ≾ / ≾ / ≾ + '\u2ab9': '⪹', # ⪹ / ⪹ / ⪹ + '\u2ab5': '⪵', # ⪵ / ⪵ / ⪵ + '\u22e8': '⋨', # ⋨ / ⋨ / ⋨ + '\u220f': '∏', # ∏ / ∏ / ∏ '\u221d': '∝', # ∝ / ∝ / ∝ / ∝ / ∝ / ∝ - '\u211a': 'ℚ', # ℚ / Qopf / rationals + '\u211a': 'ℚ', # ℚ / ℚ / ℚ '\u21db': '⇛', # ⇛ / rAarr / Rrightarrow '\u27e9': '⟩', # ⟩ / ⟩ / ⟩ / ⟩ '\u21a0': '↠', # ↠ / Rarr / twoheadrightarrow - '\u21e5': '⇥', # ⇥ / rarrb / RightArrowBar - '\u21a3': '↣', # ↣ / rarrtl / rightarrowtail - '\u219d': '↝', # ↝ / rarrw / rightsquigarrow + '\u21e5': '⇥', # ⇥ / ⇥ / ⇥ + '\u21a3': '↣', # ↣ / ↣ / ↣ + '\u2309': '⌉', # ⌉ / ⌉ / ⌉ + '\u219d': '↝', # ↝ / ↝ / ↝ '\u03a9': 'Ω', # Ω / Ω / Ω '\u211c': 'ℜ', # ℜ / ℜ / ℜ / ℜ / ℜ - '\u211b': 'ℛ', # ℛ / Rscr / realine - '\u211d': 'ℝ', # ℝ / Ropf / reals - '\u21c0': '⇀', # ⇀ / rharu / RightVector / rightharpoonup + '\u211b': 'ℛ', # ℛ / ℛ / ℛ + '\u211d': 'ℝ', # ℝ / ℝ / ℝ + '\u21c0': '⇀', # ⇀ / ⇀ / ⇀ / ⇀ '\u03f1': 'ϱ', # ϱ / rhov / varrho '\u2192': '→', # → / → / → / → / → / → - '\u21c4': '⇄', # ⇄ / rlarr / rightleftarrows / RightArrowLeftArrow - '\u27e7': '⟧', # ⟧ / robrk / RightDoubleBracket - '\u21c9': '⇉', # ⇉ / rrarr / rightrightarrows - '\u22a2': '⊢', # ⊢ / vdash / RightTee - '\u22cc': '⋌', # ⋌ / rthree / rightthreetimes - '\u22b3': '⊳', # ⊳ / vrtri / RightTriangle / vartriangleright - '\u22b5': '⊵', # ⊵ / rtrie / trianglerighteq / RightTriangleEqual - '\u21be': '↾', # ↾ / uharr / RightUpVector / upharpoonright + '\u21c4': '⇄', # ⇄ / ⇄ / ⇄ / ⇄ + '\u27e7': '⟧', # ⟧ / ⟧ / ⟧ + '\u230b': '⌋', # ⌋ / ⌋ / ⌋ + '\u21c9': '⇉', # ⇉ / ⇉ / ⇉ + '\u22a2': '⊢', # ⊢ / ⊢ / ⊢ + '\u22cc': '⋌', # ⋌ / ⋌ / ⋌ + '\u22b3': '⊳', # ⊳ / ⊳ / ⊳ / ⊳ + '\u22b5': '⊵', # ⊵ / ⊵ / ⊵ / ⊵ + '\u21be': '↾', # ↾ / ↾ / ↾ / ↾ '\u23b1': '⎱', # ⎱ / rmoust / rmoustache '\u201c': '“', # “ / “ / “ '\u2018': '‘', # ‘ / ‘ / ‘ @@ -474,7 +478,7 @@ CUSTOM_ENCODE_MAP = { '\u2016': '‖', # ‖ / Vert / Verbar '\u2240': '≀', # ≀ / wr / wreath / VerticalTilde - '\u2128': 'ℨ', # ℨ / Zfr / zeetrf + '\u2128': 'ℨ', # ℨ / ℨ / ℨ } # === Динамическая генерация карт преобразования === diff --git a/tests/test_codec.py b/tests/test_codec.py index 33e0754..4b1318d 100644 --- a/tests/test_codec.py +++ b/tests/test_codec.py @@ -359,7 +359,7 @@ STRINGS_FOR_ENCODE = [ ("Β Ç Χ ‡ Δ Ð É Ê È", "Β Ç Χ ‡ Δ Ð É Ê È"), ("Ε Η Ë Γ Í Î Ì Ι Ï", "Ε Η Ë Γ Í Î Ì Ι Ï"), ("Κ Λ Μ Ñ Ν Œ Ó Ô Ò Ö", "Κ Λ Μ Ñ Ν Œ Ó Ô Ò Ö"), - ("Ω Ο Ø Õ Φ Π ″ Ψ Ρ Š", "Ω Ο Ø Õ Φ Π ″ Ψ Ρ Š"), + ("Ω Ο Ø Õ Φ Π ″ Ψ Ρ Š", "Ω Ο Ø Õ Φ Π ″ Ψ Ρ Š"), ("Σ Þ Τ Θ Ú Û Ù Υ Ü", "Σ Þ Τ Θ Ú Û Ù Υ Ü"), ("Ξ Ý Ÿ Ζ á â ´ æ à", "Ξ Ý Ÿ Ζ á â ´ æ à"), ("ℵ α & ∧ ∠ ' å ≈ ã ä", "ℵ α & ∧ ∠ ' å ≈ ã ä"), @@ -367,7 +367,7 @@ STRINGS_FOR_ENCODE = [ ("♣ ≅ © ↵ ∪ ¤ ⇓ † ↓ °", "♣ ≅ © ↵ ∪ ¤ ⇓ † ↓ °"), ("δ ♦ ÷ é ê è ∅ \u2003 \u2002", "δ ♦ ÷ é ê è ∅    "), ("ε ≡ η ð ë € ∃ ƒ ∀ ½", "ε ≡ η ð ë € ∃ ƒ ∀ ½"), - ("¼ ¾ ⁄ γ ≥ > ⇔ ↔ ♥ …", "¼ ¾ ⁄ γ ≥ > ⇔ ↔ ♥ …"), + ("¼ ¾ ⁄ γ ≥ > ⇔ ↔ ♥ …", "¼ ¾ ⁄ γ ≥ > ⇔ ↔ ♥ …"), ("í î ¡ ì ℑ ∞ ∫ ι ¿ ∈", "í î ¡ ì ℑ ∞ ∫ ι ¿ ∈"), ("ï κ ⇐ λ ⟨ « ← ⌈ “ ≤", "ï κ ⇐ λ ⟨ « ← ⌈ “ ≤"), ("⌊ ∗ ◊ \u200e ‹ ‘ < ¯ — µ", "⌊ ∗ ◊ ‎ ‹ ‘ < ¯ — µ"), @@ -472,7 +472,7 @@ STRINGS_FOR_ENCODE = [ ("⪧ ⩺ ⋗ ⦕ ⩼ ⪆ ⥸ ⋗", "⪧ ⩺ ⋗ ⦕ ⩼ ⪆ ⥸ ⋗"), ("⋛ ⪌ ≷ ≳ ˇ \u200a ½ ℋ", "⋛ ⪌ ≷ ≳ ˇ   ½ ℋ"), ("Ъ ъ ⇔ ↔ ⥈ ↭ ^ ℏ Ĥ ĥ", "Ъ ъ ⇔ ↔ ⥈ ↭ ^ ℏ Ĥ ĥ"), - ("♥ … ⊹ ℌ 𝔥 ℋ ⤥", "♥ … ⊹ ℌ 𝔥 ℋ ⤥"), + ("♥ … ⊹ ℌ 𝔥 ℋ ⤥", "♥ … ⊹ ℌ 𝔥 ℋ ⤥"), ("⤦ ⇿ ∻ ↩ ↪ ℍ 𝕙", "⤦ ⇿ ∻ ↩ ↪ ℍ 𝕙"), ("― ─ ℋ 𝒽 ℏ Ħ ħ", "― ─ ℋ 𝒽 ℏ Ħ ħ"), ("≎ ≏ ⁃ ‐ Í í Í", "≎ ≏ ⁃ ‐ Í í Í"), @@ -498,96 +498,88 @@ STRINGS_FOR_ENCODE = [ ("← ⇤ ⇆ ↢ ⌈", "← ⇤ ⇆ ↢ ⌈"), ("⟦ ⥡ ⇃ ⥙", "⟦ ⥡ ⇃ ⥙"), ("⌊ ↽ ↼ ⇇", "⌊ ↽ ↼ ⇇"), - # ("↔ ⇔ ↔ ⇆", "↔ ⇔ ↔ ⇆"), - # ("⇋ ↭ ⥎ ⊣", "⇋ ↭ ⥎ ⊣"), - # ("↤ ⥚ ⋋ ⊲", "↤ ⥚ ⋋ ⊲"), - # ("⧏ ⊴ ⥑ ⥠", "⧏ ⊴ ⥑ ⥠"), - # ("↿ ⥘ ↼ ⥒ ⪋ ⋚", "↿ ⥘ ↼ ⥒ ⪋ ⋚"), - # ("≤ ≦ ⩽ ⩽ ⪨ ⩿ ⪁ ⪃ ⪓", "≤ ≦ ⩽ ⩽ ⪨ ⩿ ⪁ ⪃ ⪓"), - # ("⪅ ⋖ ⋚ ⪋ ⋚", "⪅ ⋖ ⋚ ⪋ ⋚"), - # ("≦ ≶ ≶ ⪡ ≲ ⩽", "≦ ≶ ≶ ⪡ ≲ ⩽"), - # ("≲ ⥼ ⌊ 𝔏 𝔩 ≶ ⪑ ⥢ ↽ ↼", "≲ ⥼ ⌊ 𝔏 𝔩 ≶ ⪑ ⥢ ↽ ↼"), - # ("⥪ ▄ Љ љ ⋘ ≪ ⇇ ⌞ ⇚", "⥪ ▄ Љ љ ⋘ ≪ ⇇ ⌞ ⇚"), - # ("⥫ ◺ Ŀ ŀ ⎰ ⎰ ⪉ ⪉", "⥫ ◺ Ŀ ŀ ⎰ ⎰ ⪉ ⪉"), - # ("≨ ⪇ ⪇ ≨ ⋦ ⟬ ⇽ ⟦ ⟵", "≨ ⪇ ⪇ ≨ ⋦ ⟬ ⇽ ⟦ ⟵"), - # ("⟸ ⟵ ⟷ ⟺", "⟸ ⟵ ⟷ ⟺"), - # ("⟷ ⟼ ⟶ ⟹", "⟷ ⟼ ⟶ ⟹"), - # ("⟶ ↫ ↬ ⦅ 𝕃 𝕝", "⟶ ↫ ↬ ⦅ 𝕃 𝕝"), - # ("⨭ ⨴ ∗ _ ↙ ↘ ◊", "⨭ ⨴ ∗ _ ↙ ↘ ◊"), - # ("◊ ⧫ ( ⦓ ⇆ ⌟ ⇋ ⥭ ‎", "◊ ⧫ ( ⦓ ⇆ ⌟ ⇋ ⥭ ‎"), - # ("⊿ ‹ ℒ 𝓁 ↰ ↰ ≲ ⪍ ⪏ [", "⊿ ‹ ℒ 𝓁 ↰ ↰ ≲ ⪍ ⪏ ["), - # ("‘ ‚ Ł ł < < < ≪ < ⪦ ⩹", "‘ ‚ Ł ł < < < ≪ < ⪦ ⩹"), - # ("⋖ ⋋ ⋉ ⥶ ⩻ ◃ ⊴ ◂ ⦖", "⋖ ⋋ ⋉ ⥶ ⩻ ◃ ⊴ ◂ ⦖"), - # ("⥊ ⥦ ¯ ¯ ♂ ✠ ✠ ⤅ ↦", "⥊ ⥦ ¯ ¯ ♂ ✠ ✠ ⤅ ↦"), - # ("↦ ↧ ↤ ↥ ▮ ⨩ М м", "↦ ↧ ↤ ↥ ▮ ⨩ М м"), - # ("— ∺ ∡   ℳ 𝔐 𝔪 ℧", "— ∺ ∡   ℳ 𝔐 𝔪 ℧"), - # ("µ µ ∣ * ⫰ · · − ⊟", "µ µ ∣ * ⫰ · · − ⊟"), - # ("∸ ⨪ ∓ ⫛ … ∓ ⊧ 𝕄 𝕞", "∸ ⨪ ∓ ⫛ … ∓ ⊧ 𝕄 𝕞"), - # ("∓ ℳ 𝓂 ∾ Μ μ ⊸ ⊸ ∇ Ń", "∓ ℳ 𝓂 ∾ Μ μ ⊸ ⊸ ∇ Ń"), - # ("ń ≉ ʼn ≉ ♮ ♮ ℕ    ", "ń ≉ ʼn ≉ ♮ ♮ ℕ    "), - # ("⩃ Ň ň Ņ ņ ≇ ⩂ Н н –", "⩃ Ň ň Ņ ņ ≇ ⩂ Н н –"), - # ("≠ ⤤ ⇗ ↗ ↗ ​", "≠ ⤤ ⇗ ↗ ↗ ​"), - # ("​ ​ ​ ≢", "​ ​ ​ ≢"), - # ("⤨ ≫ ≪ \n # ∄ ∄", "⤨ ≫ ≪ ∄ ∄"), - # ("𝔑 𝔫 ≱ ≱ ≵ ≯ ≯ ⇎ ↮ ⫲ ∋", "𝔑 𝔫 ≱ ≱ ≵ ≯ ≯ ⇎ ↮ ⫲ ∋"), - # ("⋼ ⋺ ∋ Њ њ ⇍ ↚ ‥ ≰ ⇍", "⋼ ⋺ ∋ Њ њ ⇍ ↚ ‥ ≰ ⇍"), - # ("↚ ⇎ ↮ ≰ ≮ ≴ ≮", "↚ ⇎ ↮ ≰ ≮ ≴ ≮"), - # ("⋪ ⋬ ∤ ⁠   ℕ 𝕟 ¬ ⫬", "⋪ ⋬ ∤ ⁠   ℕ 𝕟 ¬ ⫬"), - # ("¬ ≢ ≭ ∦ ∉", "¬ ≢ ≭ ∦ ∉"), - # ("≠ ∄ ≯ ≱ ≹", "≠ ∄ ≯ ≱ ≹"), - # ("≵ ∉ ∉ ⋷ ⋶ ⋪", "≵ ∉ ∉ ⋷ ⋶ ⋪"), - # ("⋬ ≮ ≰ ≸", "⋬ ≮ ≰ ≸"), - # ("≴ ∌ ∌ ⋾ ⋽ ⊀", "≴ ∌ ∌ ⋾ ⋽ ⊀"), - # ("⋠ ∌ ⋫", "⋠ ∌ ⋫"), - # ("⋭ ⋢ ⋣", "⋭ ⋢ ⋣"), - # ("⊈ ⊁ ⋡ ⊉", "⊈ ⊁ ⋡ ⊉"), - # ("≁ ≄ ≇ ≉", "≁ ≄ ≇ ≉"), - # ("∤ ∦ ∦ ⨔ ⊀ ⋠ ⊀ ⇏", "∤ ∦ ∦ ⨔ ⊀ ⋠ ⊀ ⇏"), - # ("↛ ⇏ ↛ ⋫ ⋭ ⊁ ⋡ 𝒩", "↛ ⇏ ↛ ⋫ ⋭ ⊁ ⋡ 𝒩"), - # ("𝓃 ∤ ∦ ≁ ≄ ≄ ∤ ∦", "𝓃 ∤ ∦ ≁ ≄ ≄ ∤ ∦"), - # ("⋢ ⋣ ⊄ ⊈ ⊈ ⊁ ⊅ ⊉", "⋢ ⋣ ⊄ ⊈ ⊈ ⊁ ⊅ ⊉"), - # ("⊉ ≹ Ñ ñ Ñ ñ ≸ ⋪", "⊉ ≹ Ñ ñ Ñ ñ ≸ ⋪"), - # ("⋬ ⋫ ⋭ Ν ν # №", "⋬ ⋫ ⋭ Ν ν # №"), - # ("  ⊯ ⊮ ⊭ ⊬ ⤄ ⧞ ⤂", "  ⊯ ⊮ ⊭ ⊬ ⤄ ⧞ ⤂"), - # ("⤃ ⤣ ⇖ ↖ ↖ ⤧ Ó ó", "⤃ ⤣ ⇖ ↖ ↖ ⤧ Ó ó"), - # ("Ó ó ⊛ ⊚ Ô ô Ô ô О о", "Ó ó ⊛ ⊚ Ô ô Ô ô О о"), - # ("⊝ Ő ő ⨸ ⊙ ⦼ Œ œ ⦿ 𝔒", "⊝ Ő ő ⨸ ⊙ ⦼ Œ œ ⦿ 𝔒"), - # ("𝔬 ˛ Ò ò Ò ò ⧁ ⦵ Ω ∮", "𝔬 ˛ Ò ò Ò ò ⧁ ⦵ Ω ∮"), - # ("↺ ⦾ ⦻ ‾ ⧀ Ō ō Ω ω", "↺ ⦾ ⦻ ‾ ⧀ Ō ō Ω ω"), - # ("Ο ο ⦶ ⊖ 𝕆 𝕠 ⦷", "Ο ο ⦶ ⊖ 𝕆 𝕠 ⦷"), - # ("“ ‘ ⦹ ⊕ ⩔ ∨ ↻", "“ ‘ ⦹ ⊕ ⩔ ∨ ↻"), - # ("⩝ ℴ ℴ ª ª º º ⊶ ⩖ ⩗", "⩝ ℴ ℴ ª ª º º ⊶ ⩖ ⩗"), - # ("⩛ Ⓢ 𝒪 ℴ Ø ø Ø ø ⊘ Õ", "⩛ Ⓢ 𝒪 ℴ Ø ø Ø ø ⊘ Õ"), - # ("õ Õ õ ⨷ ⊗ ⨶ Ö ö Ö", "õ Õ õ ⨷ ⊗ ⨶ Ö ö Ö"), - # ("ö ⌽ ‾ ⏞ ⎴ ⏜ ∥", "ö ⌽ ‾ ⏞ ⎴ ⏜ ∥"), - # ("¶ ¶ ∥ ⫳ ⫽ ∂ ∂ П п", "¶ ¶ ∥ ⫳ ⫽ ∂ ∂ П п"), - # ("% . ‰ ⊥ ‱ 𝔓 𝔭 Φ φ ϕ", "% . ‰ ⊥ ‱ 𝔓 𝔭 Φ φ ϕ"), - # ("ℳ ☎ Π π ⋔ ϖ ℏ ℎ ℏ", "ℳ ☎ Π π ⋔ ϖ ℏ ℎ ℏ"), - # ("+ ⨣ ⊞ ⨢ ∔ ⨥ ⩲ ±", "+ ⨣ ⊞ ⨢ ∔ ⨥ ⩲ ±"), - # ("± ± ⨦ ⨧ ± ℌ ⨕ ℙ", "± ± ⨦ ⨧ ± ℌ ⨕ ℙ"), - # ("𝕡 £ £ ⪻ ≺ ⪷ ≼ ⪳ ⪯ ≺", "𝕡 £ £ ⪻ ≺ ⪷ ≼ ⪳ ⪯ ≺"), - # ("⪷ ≼ ≺ ⪯ ≼", "⪷ ≼ ≺ ⪯ ≼"), - # ("≾ ⪯ ⪹ ⪵ ⋨ ≾ ″", "≾ ⪯ ⪹ ⪵ ⋨ ≾ ″"), - # ("′ ℙ ⪹ ⪵ ⋨ ∏ ∏ ⌮", "′ ℙ ⪹ ⪵ ⋨ ∏ ∏ ⌮"), - # ("⌒ ⌓ ∝ ∷ ∝ ∝ ≾", "⌒ ⌓ ∝ ∷ ∝ ∝ ≾"), - # ("⊰ 𝒫 𝓅 Ψ ψ   𝔔 𝔮 ⨌ ℚ 𝕢", "⊰ 𝒫 𝓅 Ψ ψ   𝔔 𝔮 ⨌ ℚ 𝕢"), - # ("⁗ 𝒬 𝓆 ℍ ⨖ ? ≟ " "", "⁗ 𝒬 𝓆 ℍ ⨖ ? ≟ " ""), - # ("" " ⇛ Ŕ ŕ √ ⦳ ⟫ ⟩", "" " ⇛ Ŕ ŕ √ ⦳ ⟫ ⟩"), - # ("⦒ ⦥ ⟩ » » ↠ ⇒ → ⥵ ⇥", "⦒ ⦥ ⟩ » » ↠ ⇒ → ⥵ ⇥"), - # ("⤠ ⤳ ⤞ ↪ ↬ ⥅ ⥴ ⤖", "⤠ ⤳ ⤞ ↪ ↬ ⥅ ⥴ ⤖"), - # ("↣ ↝ ⤜ ⤚ ∶ ℚ ⤐ ⤏ ⤍", "↣ ↝ ⤜ ⤚ ∶ ℚ ⤐ ⤏ ⤍"), - # ("❳ } ] ⦌ ⦎ ⦐ Ř ř", "❳ } ] ⦌ ⦎ ⦐ Ř ř"), - # ("Ŗ ŗ ⌉ } Р р ⤷ ⥩ ” ”", "Ŗ ŗ ⌉ } Р р ⤷ ⥩ ” ”"), - # ("↳ ℜ ℜ ℛ ℜ ℝ ▭ ® ® ® ®", "↳ ℜ ℜ ℛ ℜ ℝ ▭ ® ® ® ®"), - # ("∋ ⇋ ⥯ ⥽ ⌋", "∋ ⇋ ⥯ ⥽ ⌋"), - # ("ℜ 𝔯 ⥤ ⇁ ⇀ ⥬ Ρ ρ ϱ", "ℜ 𝔯 ⥤ ⇁ ⇀ ⥬ Ρ ρ ϱ"), - # ("⟩ → ⇒ → ⇥", "⟩ → ⇒ → ⇥"), - # ("⇄ ↣ ⌉ ⟧", "⇄ ↣ ⌉ ⟧"), - # ("⥝ ⇂ ⥕ ⌋", "⥝ ⇂ ⥕ ⌋"), - # ("⇁ ⇀ ⇄ ⇌", "⇁ ⇀ ⇄ ⇌"), - # ("⇉ ↝ ⊢ ↦", "⇉ ↝ ⊢ ↦"), - # ("⥛ ⋌ ⊳ ⧐", "⥛ ⋌ ⊳ ⧐"), - # ("⊵ ⥏ ⥜ ↾", "⊵ ⥏ ⥜ ↾"), + ("↔ ⇔ ↔ ⇆", "↔ ⇔ ↔ ⇆"), + ("⇋ ↭ ⥎ ⊣", "⇋ ↭ ⥎ ⊣"), + ("↤ ⥚ ⋋ ⊲", "↤ ⥚ ⋋ ⊲"), + ("⧏ ⊴ ⥑ ⥠", "⧏ ⊴ ⥑ ⥠"), + ("↿ ⥘ ↼ ⥒ ⪋ ⋚", "↿ ⥘ ↼ ⥒ ⪋ ⋚"), + ("≤ ≦ ⩽ ⩽ ⪨ ⩿ ⪁ ⪃ ⪓", "≤ ≦ ⩽ ⩽ ⪨ ⩿ ⪁ ⪃ ⪓"), + ("⪅ ⋖ ⋚ ⪋ ⋚", "⪅ ⋖ ⋚ ⪋ ⋚"), + ("≦ ≶ ≶ ⪡ ≲ ⩽", "≦ ≶ ≶ ⪡ ≲ ⩽"), + ("≲ ⥼ ⌊ 𝔏 𝔩 ≶ ⪑ ⥢ ↽ ↼", "≲ ⥼ ⌊ 𝔏 𝔩 ≶ ⪑ ⥢ ↽ ↼"), + ("⥪ ▄ Љ љ ⋘ ≪ ⇇ ⌞ ⇚", "⥪ ▄ Љ љ ⋘ ≪ ⇇ ⌞ ⇚"), + ("⥫ ◺ Ŀ ŀ ⎰ ⎰ ⪉ ⪉", "⥫ ◺ Ŀ ŀ ⎰ ⎰ ⪉ ⪉"), + ("≨ ⪇ ⪇ ≨ ⋦ ⟬ ⇽ ⟦ ⟵", "≨ ⪇ ⪇ ≨ ⋦ ⟬ ⇽ ⟦ ⟵"), + ("⟸ ⟵ ⟷ ⟺", "⟸ ⟵ ⟷ ⟺"), + ("⟷ ⟼ ⟶ ⟹", "⟷ ⟼ ⟶ ⟹"), + ("⟶ ↫ ↬ ⦅ 𝕃 𝕝", "⟶ ↫ ↬ ⦅ 𝕃 𝕝"), + ("⨭ ⨴ ∗ _ ↙ ↘ ◊", "⨭ ⨴ ∗ _ ↙ ↘ ◊"), + ("◊ ⧫ ( ⦓ ⇆ ⌟ ⇋ ⥭ \u200e", "◊ ⧫ ( ⦓ ⇆ ⌟ ⇋ ⥭ ‎"), + ("⊿ ‹ ℒ 𝓁 ↰ ↰ ≲ ⪍ ⪏ [", "⊿ ‹ ℒ 𝓁 ↰ ↰ ≲ ⪍ ⪏ ["), + ("‘ ‚ Ł ł < < ≪ ⪦ ⩹", "‘ ‚ Ł ł < < ≪ ⪦ ⩹"), + ("⋖ ⋋ ⋉ ⥶ ⩻ ◃ ⊴ ◂ ⦖", "⋖ ⋋ ⋉ ⥶ ⩻ ◃ ⊴ ◂ ⦖"), + ("⥊ ⥦ ¯ ¯ ♂ ✠ ✠ ⤅ ↦", "⥊ ⥦ ¯ ¯ ♂ ✠ ✠ ⤅ ↦"), + ("↦ ↧ ↤ ↥ ▮ ⨩ М м", "↦ ↧ ↤ ↥ ▮ ⨩ М м"), + ("— ∺ ∡   ℳ 𝔐 𝔪 ℧", "— ∺ ∡   ℳ 𝔐 𝔪 ℧"), + ("µ µ ∣ * ⫰ · · − ⊟", "µ µ ∣ * ⫰ · · − ⊟"), + ("∸ ⨪ ∓ ⫛ … ∓ ⊧ 𝕄 𝕞", "∸ ⨪ ∓ ⫛ … ∓ ⊧ 𝕄 𝕞"), + ("∓ ℳ 𝓂 ∾ Μ μ ⊸ ⊸ ∇ Ń", "∓ ℳ 𝓂 ∾ Μ μ ⊸ ⊸ ∇ Ń"), + ("ń ≉ ʼn ≉ ♮ ♮ ℕ \u00A0", "ń ≉ ʼn ≉ ♮ ♮ ℕ  "), + ("⩃ Ň ň Ņ ņ ≇ ⩂ Н н –", "⩃ Ň ň Ņ ņ ≇ ⩂ Н н –"), + ("≠ ⤤ ⇗ ↗ ↗ \u200b ≢", "≠ ⤤ ⇗ ↗ ↗ ​ ≢"), + ("⤨ ≫ ≪ \n # ∄ ∄", "⤨ ≫ ≪ \n # ∄ ∄"), + ("𝔑 𝔫 ≱ ≱ ≵ ≯ ⇎ ↮ ⫲ ∋", "𝔑 𝔫 ≱ ≱ ≵ ≯ ⇎ ↮ ⫲ ∋"), + ("⋼ ⋺ ∋ Њ њ ⇍ ↚ ‥ ≰ ⇍", "⋼ ⋺ ∋ Њ њ ⇍ ↚ ‥ ≰ ⇍"), + ("↚ ⇎ ↮ ≰ ≮ ≴ ≮", "↚ ⇎ ↮ ≰ ≮ ≴ ≮"), + ("⋪ ⋬ ∤ \u2060 \u00A0 ℕ 𝕟 ¬ ⫬", "⋪ ⋬ ∤ ⁠   ℕ 𝕟 ¬ ⫬"), + ("¬ ≢ ≭ ∦ ∉ ⊈ ⊁ ⋡ ⊉", "¬ ≢ ≭ ∦ ∉ ⊈ ⊁ ⋡ ⊉"), + ("≠ ∄ ≯ ≱ ≹ ⋭ ⋢ ⋣", "≠ ∄ ≯ ≱ ≹ ⋭ ⋢ ⋣"), + ("≵ ∉ ∉ ⋷ ⋶ ⋪", "≵ ∉ ∉ ⋷ ⋶ ⋪"), + ("⋬ ≮ ≰ ≸ ⋠ ∌ ⋫", "⋬ ≮ ≰ ≸ ⋠ ∌ ⋫"), + ("≴ ∌ ∌ ⋾ ⋽ ⊀ ≁ ≄ ≇ ≉", "≴ ∌ ∌ ⋾ ⋽ ⊀ ≁ ≄ ≇ ≉"), + ("∤ ∦ ∦ ⨔ ⊀ ⋠ ⊀ ⇏", "∤ ∦ ∦ ⨔ ⊀ ⋠ ⊀ ⇏"), + ("↛ ⇏ ↛ ⋫ ⋭ ⊁ ⋡ 𝒩", "↛ ⇏ ↛ ⋫ ⋭ ⊁ ⋡ 𝒩"), + ("𝓃 ∤ ∦ ≁ ≄ ≄ ∤ ∦", "𝓃 ∤ ∦ ≁ ≄ ≄ ∤ ∦"), + ("⋢ ⋣ ⊄ ⊈ ⊈ ⊁ ⊅ ⊉", "⋢ ⋣ ⊄ ⊈ ⊈ ⊁ ⊅ ⊉"), + ("⊉ ≹ Ñ ñ Ñ ñ ≸ ⋪", "⊉ ≹ Ñ ñ Ñ ñ ≸ ⋪"), + ("⋬ ⋫ ⋭ Ν ν # №", "⋬ ⋫ ⋭ Ν ν # №"), + ("\u2007 ⊯ ⊮ ⊭ ⊬ ⤄ ⧞ ⤂", "  ⊯ ⊮ ⊭ ⊬ ⤄ ⧞ ⤂"), + ("⤃ ⤣ ⇖ ↖ ↖ ⤧ Ó ó", "⤃ ⤣ ⇖ ↖ ↖ ⤧ Ó ó"), + ("Ó ó ⊛ ⊚ Ô ô Ô ô О о", "Ó ó ⊛ ⊚ Ô ô Ô ô О о"), + ("⊝ Ő ő ⨸ ⊙ ⦼ Œ œ ⦿ 𝔒", "⊝ Ő ő ⨸ ⊙ ⦼ Œ œ ⦿ 𝔒"), + ("𝔬 ˛ Ò ò Ò ò ⧁ ⦵ Ω ∮", "𝔬 ˛ Ò ò Ò ò ⧁ ⦵ Ω ∮"), + ("↺ ⦾ ⦻ ‾ ⧀ Ō ō Ω ω", "↺ ⦾ ⦻ ‾ ⧀ Ō ō Ω ω"), + ("Ο ο ⦶ ⊖ 𝕆 𝕠 ⦷", "Ο ο ⦶ ⊖ 𝕆 𝕠 ⦷"), + ("“ ‘ ⦹ ⊕ ⩔ ∨ ↻", "“ ‘ ⦹ ⊕ ⩔ ∨ ↻"), + ("⩝ ℴ ℴ ª ª º º ⊶ ⩖ ⩗", "⩝ ℴ ℴ ª ª º º ⊶ ⩖ ⩗"), + ("⩛ Ⓢ 𝒪 ℴ Ø ø Ø ø ⊘ Õ", "⩛ Ⓢ 𝒪 ℴ Ø ø Ø ø ⊘ Õ"), + ("õ Õ õ ⨷ ⊗ ⨶ Ö ö Ö", "õ Õ õ ⨷ ⊗ ⨶ Ö ö Ö"), + ("ö ⌽ ‾ ⏞ ⎴ ⏜ ∥", "ö ⌽ ‾ ⏞ ⎴ ⏜ ∥"), + ("¶ ¶ ∥ ⫳ ⫽ ∂ ∂ П п", "¶ ¶ ∥ ⫳ ⫽ ∂ ∂ П п"), + ("% . ‰ ⊥ ‱ 𝔓 𝔭 Φ φ ϕ", "% . ‰ ⊥ ‱ 𝔓 𝔭 Φ φ ϕ"), + ("ℳ ☎ Π π ⋔ ϖ ℏ ℎ ℏ", "ℳ ☎ Π π ⋔ ϖ ℏ ℎ ℏ"), + ("+ ⨣ ⊞ ⨢ ∔ ⨥ ⩲ ±", "+ ⨣ ⊞ ⨢ ∔ ⨥ ⩲ ±"), + ("± ⨦ ⨧ ± ℌ ⨕ ℙ", "± ⨦ ⨧ ± ℌ ⨕ ℙ"), + ("𝕡 £ ⪻ ≺ ⪷ ≼ ⪳ ⪯ ≺", "𝕡 £ ⪻ ≺ ⪷ ≼ ⪳ ⪯ ≺"), + ("⪷ ≼ ≺ ⪯ ≼ ∋ ⇋ ⥯ ⥽ ⌋", "⪷ ≼ ≺ ⪯ ≼ ∋ ⇋ ⥯ ⥽ ⌋"), + ("≾ ⪯ ⪹ ⪵ ⋨ ≾ ″", "≾ ⪯ ⪹ ⪵ ⋨ ≾ ″"), + ("′ ℙ ⪹ ⪵ ⋨ ∏ ∏ ⌮", "′ ℙ ⪹ ⪵ ⋨ ∏ ∏ ⌮"), + ("⌒ ⌓ ∝ ∷ ∝ ∝ ≾", "⌒ ⌓ ∝ ∷ ∝ ∝ ≾"), + ("⊰ 𝒫 𝓅 Ψ ψ \u2008 𝔔 𝔮 ⨌ ℚ 𝕢", "⊰ 𝒫 𝓅 Ψ ψ   𝔔 𝔮 ⨌ ℚ 𝕢"), + ("⁗ 𝒬 𝓆 ℍ ⨖ ? ≟ \" \"", "⁗ 𝒬 𝓆 ℍ ⨖ ? ≟ " ""), + ("⇛ Ŕ ŕ √ ⦳ ⟫ ⟩", "⇛ Ŕ ŕ √ ⦳ ⟫ ⟩"), + ("⦒ ⦥ ⟩ » » ↠ ⇒ → ⥵ ⇥", "⦒ ⦥ ⟩ » » ↠ ⇒ → ⥵ ⇥"), + ("⤠ ⤳ ⤞ ↪ ↬ ⥅ ⥴ ⤖", "⤠ ⤳ ⤞ ↪ ↬ ⥅ ⥴ ⤖"), + ("↣ ↝ ⤜ ⤚ ∶ ℚ ⤐ ⤏ ⤍", "↣ ↝ ⤜ ⤚ ∶ ℚ ⤐ ⤏ ⤍"), + ("❳ } ] ⦌ ⦎ ⦐ Ř ř", "❳ } ] ⦌ ⦎ ⦐ Ř ř"), + ("Ŗ ŗ ⌉ } Р р ⤷ ⥩ ” ”", "Ŗ ŗ ⌉ } Р р ⤷ ⥩ ” ”"), + ("↳ ℜ ℜ ℛ ℜ ℝ ▭ ®", "↳ ℜ ℜ ℛ ℜ ℝ ▭ ®"), + ("ℜ 𝔯 ⥤ ⇁ ⇀ ⥬ Ρ ρ ϱ", "ℜ 𝔯 ⥤ ⇁ ⇀ ⥬ Ρ ρ ϱ"), + ("⟩ → ⇒ → ⇥ ⇄ ↣ ⌉ ⟧", "⟩ → ⇒ → ⇥ ⇄ ↣ ⌉ ⟧"), + ("⥝ ⇂ ⥕ ⌋", "⥝ ⇂ ⥕ ⌋"), + ("⇁ ⇀ ⇄ ⇌ ⇉ ↝ ⊢ ↦", "⇁ ⇀ ⇄ ⇌ ⇉ ↝ ⊢ ↦"), + ("⥛ ⋌ ⊳ ⧐", "⥛ ⋌ ⊳ ⧐"), + ("⊵ ⥏ ⥜ ↾", "⊵ ⥏ ⥜ ↾"), # ("⥔ ⇀ ⥓ ˚ ≓", "⥔ ⇀ ⥓ ˚ ≓"), # ("⇄ ⇌ ‏ ⎱ ⎱ ⫮ ⟭ ⇾ ⟧", "⇄ ⇌ ‏ ⎱ ⎱ ⫮ ⟭ ⇾ ⟧"), # ("⦆ ℝ 𝕣 ⨮ ⨵ ⥰ ) ⦔", "⦆ ℝ 𝕣 ⨮ ⨵ ⥰ ) ⦔"), @@ -653,8 +645,8 @@ STRINGS_FOR_ENCODE = [ # ("𝓍 ⨆ ⨄ △ ⋁ ⋀ Ý ý Ý", "𝓍 ⨆ ⨄ △ ⋁ ⋀ Ý ý Ý"), # ("ý Я я Ŷ ŷ Ы ы ¥ ¥ 𝔜 𝔶", "ý Я я Ŷ ŷ Ы ы ¥ ¥ 𝔜 𝔶"), # ("Ї ї 𝕐 𝕪 𝒴 𝓎 Ю ю ÿ Ÿ ÿ", "Ї ї 𝕐 𝕪 𝒴 𝓎 Ю ю ÿ Ÿ ÿ"), - # ("Ź ź Ž ž З з Ż ż ℨ", "Ź ź Ž ž З з Ż ż ℨ"), - # ("​ Ζ ζ ℨ 𝔷 Ж ж ⇝ ℤ", "​ Ζ ζ ℨ 𝔷 Ж ж ⇝ ℤ"), + ("Ź ź Ž ž З з Ż ż ℨ", "Ź ź Ž ž З з Ż ż ℨ"), + ("\u200b Ζ ζ ℨ 𝔷 Ж ж ⇝ ℤ", "​ Ζ ζ ℨ 𝔷 Ж ж ⇝ ℤ"), ] @pytest.mark.parametrize("input_string, expected_output", STRINGS_FOR_ENCODE)