Files
2025-etpgrf/tests/test_codec.py

668 lines
73 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# tests/test_codec.py
import pytest
from etpgrf import codec
# Справочники html-мнемоник для любопытных:
# https://www.compart.com/en/unicode/html
# https://symbl.cc/ru/html-entities/
# Вообще, проверять кодирование HTML-мнемоников в Unicode не обязательно, так как это внутренняя библиотека html,
# но так как мнемоники были собраны из разных сторонников, полезно проверить какие из них работают, а какие нет...
# Это способствует тому, что обратное преобразование из Unicode в HTML-мнемоники будет работать корректно.
STRINGS_FOR_DECODE = [
# Тестовые строки для декодирования html-метаккода в uft-8
("", ""), # Пустая строка
("Hello world!", "Hello world!"), # Строка
("Привет типограф!", "Привет типограф!"), # Строка русского текста
("&lt; &gt; &amp; &quot;", "< > & \""), # Самый простой набор HTML-мнемоников
("&shy;", "\u00AD"), # Мягкий перенос
("&nbsp;&ensp;&emsp;&thinsp;&zwj;&zwnj;", "\u00A0\u2002\u2003\u2009\u200D\u200C"), # Набор пробелов и невидимых символов
("&ndash; &mdash; &hyphen; &horbar;", ""), # Набор тире и дефисов
("&dollar; &cent; &pound; &curren; &yen; &euro;", "$ ¢ £ ¤ ¥ €"), # Валютные символы
("&#1423; &#8381; &#8372; &#8376; &#8377; &#8380; &#8382;", "֏ ₽ ₴ ₸ ₹ ₼ ₾"), # Валютные символы
# Набор из html.entities.name2codepoint
("&AElig; &Aacute; &Acirc; &Agrave; &Alpha; &Aring; &Atilde; &Auml; &Auml;", "Æ Á Â À Α Å Ã Ä Ä"),
("&Beta; &Ccedil; &Chi; &Dagger; &Delta; &ETH; &Eacute; &Ecirc; &Egrave;", "Β Ç Χ ‡ Δ Ð É Ê È"),
("&Epsilon; &Eta; &Euml; &Gamma; &Iacute; &Icirc; &Igrave; &Iota; &Iuml;", "Ε Η Ë Γ Í Î Ì Ι Ï"),
("&Kappa; &Lambda; &Mu; &Ntilde; &Nu; &OElig; &Oacute; &Ocirc; &Ograve; &Ouml;", "Κ Λ Μ Ñ Ν Œ Ó Ô Ò Ö"),
("&Omega; &Omicron; &Oslash; &Otilde; &Phi; &Pi; &Prime; &Psi; &Rho; &Scaron;", "Ω Ο Ø Õ Φ Π ″ Ψ Ρ Š"),
("&Sigma; &THORN; &Tau; &Theta; &Uacute; &Ucirc; &Ugrave; &Upsilon; &Uuml;", "Σ Þ Τ Θ Ú Û Ù Υ Ü"),
("&Xi; &Yacute; &Yuml; &Zeta; &aacute; &acirc; &acute; &aelig; &agrave;", "Ξ Ý Ÿ Ζ á â ´ æ à"),
("&alefsym; &alpha; &amp; &and; &ang; &apos; &aring; &asymp; &atilde; &auml;", "α & ∧ ∠ ' å ≈ ã ä"),
("&bdquo; &beta; &brvbar; &bull; &cap; &ccedil; &cedil; &cent; &chi; &circ;", "„ β ¦ • ∩ ç ¸ ¢ χ ˆ"),
("&clubs; &cong; &copy; &crarr; &cup; &curren; &dArr; &dagger; &darr; &deg;", "♣ ≅ © ↵ ¤ ⇓ † ↓ °"),
("&delta; &diams; &divide; &eacute; &ecirc; &egrave; &empty; &emsp; &ensp;", "δ ♦ ÷ é ê è ∅ \u2003 \u2002"),
("&epsilon; &equiv; &eta; &eth; &euml; &euro; &exist; &fnof; &forall; &frac12;", "ε ≡ η ð ë € ∃ ƒ ∀ ½"),
("&frac14; &frac34; &frasl; &gamma; &ge; &gt; &hArr; &harr; &hearts; &hellip;", "¼ ¾ γ ≥ > ⇔ ↔ ♥ …"),
("&iacute; &icirc; &iexcl; &igrave; &image; &infin; &int; &iota; &iquest; &isin;", "í î ¡ ì ∞ ∫ ι ¿ ∈"),
("&iuml; &kappa; &lArr; &lambda; &lang; &laquo; &larr; &lceil; &ldquo; &le;", "ï κ ⇐ λ ⟨ « ← ⌈ “ ≤"),
("&lfloor; &lowast; &loz; &lrm; &lsaquo; &lsquo; &lt; &macr; &mdash; &micro;", "\u200e < ¯ — µ"),
("&middot; &minus; &mu; &nabla; &nbsp; &ndash; &ne; &ni; &not; &notin;", "· μ ∇ \u00A0 ≠ ∋ ¬ ∉"),
("&nsub; &ntilde; &nu; &oacute; &ocirc; &oelig; &ograve; &oline; &omega;", "⊄ ñ ν ó ô œ ò ‾ ω"),
("&omicron; &oplus; &or; &ordf; &ordm; &oslash; &otilde; &otimes; &ouml;", "ο ª º ø õ ⊗ ö"),
("&para; &part; &permil; &perp; &phi; &pi; &piv; &plusmn; &pound; &prime; &prod;", "¶ ∂ ‰ ⊥ φ π ϖ ± £ "),
("&prop; &psi; &quot; &rArr; &radic; &rang; &raquo; &rarr; &rceil; &rdquo;", "∝ ψ \" ⇒ √ ⟩ » → ⌉ ”"),
("&real; &reg; &rfloor; &rho; &rlm; &rsaquo; &rsquo; &sbquo; &scaron;", " ® ⌋ ρ \u200f š"),
("&sdot; &sect; &shy; &sigma; &sigmaf; &sim; &spades; &sub; &sube; &sum;", "⋅ § \u00AD σ ς ♠ ⊂ ⊆ ∑"),
("&sup; &sup1; &sup2; &sup3; &supe; &szlig; &tau; &there4; &theta; &thetasym;", "⊃ ¹ ² ³ ⊇ ß τ ∴ θ ϑ"),
("&thinsp; &thorn; &tilde; &times; &trade; &uArr; &uacute; &uarr; &ucirc;", "\u2009 þ ˜ × ™ ⇑ ú ↑ û"),
("&ugrave; &uml; &upsih; &upsilon; &uuml; &weierp; &xi; &yacute; &yen; &yuml;", "ù ¨ ϒ υ ü ℘ ξ ý ¥ ÿ"),
("&zeta; &zwj; &zwnj; &plus; &equals; &percnt;", "ζ \u200D \u200C + = %"),
# Набор из html.entities.html5 (только новые html-мнемоники)
("&Abreve; &abreve; &ac; &acd; &acE; &acute; &Acy; &acy; &af; &Afr; &afr;", "Ă ă ∾ ∿ ∾̳ ´ А а \u2061 𝔄 𝔞"),
("&aleph; &Amacr; &amacr; &amalg; &AMP; &And; &andand; &andd; &andslope;", "ℵ Ā ā ⨿ & ⩓ ⩕ ⩜ ⩘"),
("&andv; &ang; &ange; &angle; &angmsd; &angmsdaa; &angmsdab; &angmsdac;", "⩚ ∠ ⦤ ∠ ∡ ⦨ ⦩ ⦪"),
("&angmsdad; &angmsdae; &angmsdaf; &angmsdag; &angmsdah; &angrt; &angrtvb;", "⦫ ⦬ ⦭ ⦮ ⦯ ∟ ⊾"),
("&angrtvbd; &angsph; &angst; &angzarr; &Aogon; &aogon; &Aopf; &aopf; &ap;", "⦝ ∢ Å ⍼ Ą ą 𝔸 𝕒"),
("&apacir; &apE; &ape; &apid; &apos; &ApplyFunction; &approx; &approxeq;", "⩯ ⩰ ≊ ≋ ' \u2061 ≈ ≊"),
("&Ascr; &ascr; &Assign; &ast; &asympeq; &awconint; &awint; &backcong;", "𝒜 𝒶 ≔ * ≍ ∳ ⨑ ≌"),
("&backepsilon; &backprime; &backsim; &bsime; &Backslash; &Barv; &barvee;", "϶ ∽ ⋍ ⫧ ⊽"),
("&Barwed; &barwed; &barwedge; &bbrk; &bbrktbrk; &bcong; &Bcy; &bcy; &bdquo;", "⌆ ⌅ ⌅ ⎵ ⎶ ≌ Б б"),
("&becaus; &Because; &because; &bemptyv; &bepsi; &bernou; &Bernoullis; &beth;", "∵ ∵ ∵ ⦰ ϶ "),
("&between; &Bfr; &bfr; &bigcap; &bigcirc; &bigcup; &bigodot; &bigoplus;", "𝔅 𝔟 ⋂ ◯ ⨀ ⨁"),
("&bigotimes; &bigsqcup; &bigstar; &bigtriangledown; &bigtriangleup; &biguplus;", "⨂ ⨆ ★ ▽ △ ⨄"),
("&bigvee; &bigwedge; &bkarow; &blacklozenge; &blacksquare; &blacktriangle;", " ⋀ ⤍ ⧫ ▪ ▴"),
("&blacktriangledown; &blacktriangleleft; &blacktriangleright; &blank; &blk12;", "▾ ◂ ▸ ␣ ▒"),
("&blk14; &blk34; &block; &bne; &bnequiv; &bNot; &bnot; &Bopf; &bopf; &bot;", "░ ▓ █ =⃥ ≡⃥ ⫭ ⌐ 𝔹 𝕓"),
("&bottom; &bowtie; &boxbox; &boxDL; &boxDl; &boxdL; &boxdl; &boxDR;", "⊥ ⋈ ⧉ ╗ ╖ ╕ ┐ ╔"),
("&boxDr; &boxdR; &boxdr; &boxH; &boxh; &boxHD; &boxHd; &boxhD; &boxhd;", "╓ ╒ ┌ ═ ─ ╦ ╤ ╥ ┬"),
("&boxHU; &boxHu; &boxhU; &boxhu; &boxminus; &boxplus; &boxtimes;", "╩ ╧ ╨ ┴ ⊟ ⊞ ⊠"),
("&boxUL; &boxUl; &boxuL; &boxul; &boxUR; &boxUr; &boxuR; &boxur; &boxV; &boxv;", "╝ ╜ ╛ ┘ ╚ ╙ ╘ └ ║ │"),
("&boxVH; &boxVh; &boxvH; &boxvh; &boxVL; &boxVl; &boxvL; &boxvl; &boxVR;", "╬ ╫ ╪ ┼ ╣ ╢ ╡ ┤ ╠"),
("&boxVr; &boxvR; &boxvr; &bprime; &Breve; &breve; &brvbar; &Bscr; &bscr;", "╟ ╞ ├ ˘ ˘ ¦ 𝒷"),
("&bsemi; &bsim; &bsime; &bsol; &bsolb; &bsolhsub; &bull; &bullet; &bump;", "⁏ ∽ ⋍ \\ ⧅ ⟈ • • ≎"),
("&bumpE; &bumpe; &Bumpeq; &bumpeq; &Cacute; &cacute; &Cap; &cap; &capand;", "⪮ ≏ ≎ ≏ Ć ć ⋒ ∩ ⩄"),
("&capbrcup; &capcap; &capcup; &capdot; &CapitalDifferentialD; &caps; &caret;", "⩉ ⩋ ⩇ ⩀ ∩︀ "),
("&caron; &Cayleys; &ccaps; &Ccaron; &ccaron; &Ccedil; &ccirc; &Cconint;", "ˇ ⩍ Č č Ç ĉ ∰"),
("&ccups; &ccupssm; &Cdot; &cdot; &cedil; &Cedilla; &cemptyv; &cent;", "⩌ ⩐ Ċ ċ ¸ ¸ ⦲ ¢"),
("&CenterDot; &centerdot; &Cfr; &cfr; &CHcy; &chcy; &check; &checkmark;", "· · 𝔠 Ч ч ✓ ✓"),
("&Chi; &chi; &cir; &circ; &circeq; &circlearrowleft; &circlearrowright;", "Χ χ ○ ˆ ≗ ↺ ↻"),
("&circledast; &circledcirc; &circleddash; &CircleDot; &circledR; &circledS;", "⊛ ⊚ ⊝ ⊙ ® Ⓢ"),
("&CircleMinus; &CirclePlus; &CircleTimes; &cirE; &cire; &cirfnint; &cirmid;", "⊖ ⊕ ⊗ ⧃ ≗ ⨐ ⫯"),
("&cirscir; &ClockwiseContourIntegral; &CloseCurlyDoubleQuote; &CloseCurlyQuote;", "⧂ ∲ ” "),
("&clubs; &clubsuit; &Colon; &colon; &Colone; &colone; &coloneq; &comma; &commat;", "♣ ♣ ∷ : ⩴ ≔ ≔ , @"),
("&comp; &compfn; &complement; &complexes; &cong; &congdot; &Congruent;", "∁ ∘ ∁ ≅ ⩭ ≡"),
("&Conint; &conint; &ContourIntegral; &Copf; &copf; &coprod; &Coproduct;", "∯ ∮ ∮ 𝕔 ∐ ∐"),
("&COPY; &copysr; &CounterClockwiseContourIntegral; &crarr; &Cross; &cross;", "© ℗ ∳ ↵ "),
("&Cscr; &cscr; &csub; &csube; &csup; &csupe; &ctdot; &cudarrl; &cudarrr;", "𝒞 𝒸 ⫏ ⫑ ⫐ ⫒ ⋯ ⤸ ⤵"),
("&cuepr; &cuesc; &cularr; &cularrp; &Cup; &cup; &cupbrcap; &CupCap; &cupcap;", "⋞ ⋟ ↶ ⤽ ⋓ ⩈ ≍ ⩆"),
("&cupcup; &cupdot; &cupor; &cups; &curarr; &curarrm; &curlyeqprec; &curlyeqsucc;", "⩊ ⊍ ⩅ \ufe00 ↷ ⤼ ⋞ ⋟"),
("&curlyvee; &curlywedge; &curren; &curvearrowleft; &curvearrowright; &cuvee;", "⋎ ⋏ ¤ ↶ ↷ ⋎"),
("&cuwed; &cwconint; &cwint; &cylcty; &daleth; &Darr; &dArr; &darr; &dash;", "⋏ ∲ ∱ ⌭ ℸ ↡ ⇓ ↓ "),
("&Dashv; &dashv; &dbkarow; &dblac; &Dcaron; &dcaron; &Dcy; &dcy; &DD; &dd;", "⫤ ⊣ ⤏ ˝ Ď ď Д д "),
("&ddagger; &ddarr; &DDotrahd; &ddotseq; &deg; &Del; &Delta; &delta;", "‡ ⇊ ⤑ ⩷ ° ∇ Δ δ"),
("&demptyv; &dfisht; &Dfr; &dfr; &dHar; &dharl; &dharr; &DiacriticalAcute;", "⦱ ⥿ 𝔇 𝔡 ⥥ ⇃ ⇂ ´"),
("&DiacriticalDot; &DiacriticalDoubleAcute; &DiacriticalGrave; &DiacriticalTilde;", "˙ ˝ ` ˜"),
("&diam; &Diamond; &diamond; &diamondsuit; &diams; &die; &DifferentialD;", "⋄ ⋄ ⋄ ♦ ♦ ¨ "),
("&digamma; &disin; &div; &divide; &divideontimes; &divonx; &DJcy; &djcy;", "ϝ ⋲ ÷ ÷ ⋇ ⋇ Ђ ђ"),
("&dlcorn; &dlcrop; &Dopf; &dopf; &Dot; &dot; &DotDot; &doteq; &doteqdot;", "⌞ ⌍ 𝔻 𝕕 ¨ ˙ ⃜ ≐ ≑"),
("&DotEqual; &dotminus; &dotplus; &dotsquare; &doublebarwedge;", "≐ ∸ ∔ ⊡ ⌆"),
("&DoubleContourIntegral; &DoubleDot; &DoubleDownArrow; &DoubleLeftArrow;", "∯ ¨ ⇓ ⇐"),
("&DoubleLeftRightArrow; &DoubleLeftTee; &DoubleLongLeftArrow;", "⇔ ⫤ ⟸"),
("&DoubleLongLeftRightArrow; &DoubleLongRightArrow; &DoubleRightArrow;", "⟺ ⟹ ⇒"),
("&DoubleRightTee; &DoubleUpArrow; &DoubleUpDownArrow; &DoubleVerticalBar;", "⊨ ⇑ ⇕ ∥"),
("&DownArrow; &Downarrow; &downarrow; &DownArrowBar; &DownArrowUpArrow;", "↓ ⇓ ↓ ⤓ ⇵"),
("&DownBreve; &downdownarrows; &downharpoonleft; &downharpoonright;", "̑ ⇊ ⇃ ⇂"),
("&DownLeftRightVector; &DownLeftTeeVector; &DownLeftVector; &DownLeftVectorBar;", "⥐ ⥞ ↽ ⥖"),
("&DownRightTeeVector; &DownRightVector; &DownRightVectorBar; &DownTee;", "⥟ ⇁ ⥗ "),
("&DownTeeArrow; &drbkarow; &drcorn; &drcrop; &Dscr; &dscr; &DScy; &dscy; &dsol;", "↧ ⤐ ⌟ ⌌ 𝒟 𝒹 Ѕ ѕ"),
("&Dstrok; &dstrok; &dtdot; &dtri; &dtrif; &duarr; &duhar; &dwangle; &DZcy;", "Đ đ ⋱ ▿ ▾ ⇵ ⥯ ⦦ Џ"),
("&dzcy; &dzigrarr; &Eacute; &eacute; &Eacute; &eacute; &easter; &Ecaron;", "џ ⟿ É é É é ⩮ Ě"),
("&ecaron; &ecir; &Ecirc; &ecirc; &Ecirc; &ecirc; &ecolon; &Ecy; &ecy; &eDDot;", "ě ≖ Ê ê Ê ê ≕ Э э ⩷"),
("&Edot; &eDot; &edot; &ee; &efDot; &Efr; &efr; &eg; &Egrave; &egrave; &Egrave;", "Ė ≑ ė 𝔈 𝔢 ⪚ È è È"),
("&egrave; &egs; &egsdot; &el; &Element; &elinters; &ell; &els; &elsdot; &Emacr;", "è ⪖ ⪘ ⪙ ∈ ⏧ ⪕ ⪗ Ē"),
("&emacr; &empty; &emptyset; &EmptySmallSquare; &emptyv; &EmptyVerySmallSquare;", "ē ∅ ∅ ◻ ∅ ▫"),
("&emsp13; &emsp14; &emsp; &ENG; &eng; &ensp; &Eogon; &eogon; &Eopf;", "\u2004 \u2005 \u2003 Ŋ ŋ \u2002 Ę ę 𝔼"),
("&eopf; &epar; &eparsl; &eplus; &epsi; &Epsilon; &epsilon; &epsiv; &eqcirc; &eqcolon;", "𝕖 ⋕ ⧣ ⩱ ε Ε ε ϵ ≖ ≕"),
("&eqsim; &eqslantgtr; &eqslantless; &Equal; &equals; &EqualTilde; &equest;", "≂ ⪖ ⪕ ⩵ = ≂ ≟"),
("&Equilibrium; &equiv; &equivDD; &eqvparsl; &erarr; &erDot; &Escr; &escr;", "⇌ ≡ ⩸ ⧥ ⥱ ≓ "),
("&esdot; &Esim; &esim; &Eta; &eta; &ETH; &eth; &ETH; &eth; &Euml; &euml; &Euml;", "≐ ⩳ ≂ Η η Ð ð Ð ð Ë ë Ë"),
("&euml; &euro; &excl; &exist; &Exists; &expectation; &ExponentialE;", "ë € ! ∃ ∃ "),
("&exponentiale; &fallingdotseq; &Fcy; &fcy; &female; &ffilig; &fflig; &ffllig;", " ≒ Ф ф ♀ ffi ff ffl"),
("&Ffr; &ffr; &filig; &FilledSmallSquare; &FilledVerySmallSquare; &fjlig; &flat;", "𝔉 𝔣 fi ◼ ▪ fj ♭"),
("&fllig; &fltns; &fnof; &Fopf; &fopf; &ForAll; &forall; &fork; &forkv;", "fl ▱ ƒ 𝔽 𝕗 ∀ ∀ ⋔ ⫙"),
("&Fouriertrf; &fpartint; &frac12; &frac12; &frac13; &frac14; &frac14; &frac15;", " ⨍ ½ ½ ⅓ ¼ ¼ ⅕"),
("&frac16; &frac18; &frac23; &frac25; &frac34; &frac34; &frac35; &frac38;", "⅙ ⅛ ⅔ ⅖ ¾ ¾ ⅗ ⅜"),
("&frac45; &frac56; &frac58; &frac78; &frasl; &frown; &Fscr; &fscr; &gacute;", "⅘ ⅚ ⅝ ⅞ 𝒻 ǵ"),
("&Gamma; &gamma; &Gammad; &gammad; &gap; &Gbreve; &gbreve; &Gcedil; &Gcirc;", "Γ γ Ϝ ϝ ⪆ Ğ ğ Ģ Ĝ"),
("&gcirc; &Gcy; &gcy; &Gdot; &gdot; &gE; &ge; &gEl; &gel; &geq; &geqq;", "ĝ Г г Ġ ġ ≧ ≥ ⪌ ⋛ ≥ ≧"),
("&geqslant; &ges; &gescc; &gesdot; &gesdoto; &gesdotol; &gesl; &gesles; &Gfr;", "⩾ ⩾ ⪩ ⪀ ⪂ ⪄ ⋛︀ ⪔ 𝔊"),
("&gfr; &Gg; &gg; &ggg; &gimel; &GJcy; &gjcy; &gl; &gla; &glE; &glj; &gnap;", "𝔤 ⋙ ≫ ⋙ ℷ Ѓ ѓ ≷ ⪥ ⪒ ⪤ ⪊"),
("&gnapprox; &gnE; &gne; &gneq; &gneqq; &gnsim; &Gopf; &gopf; &grave;", "⪊ ≩ ⪈ ⪈ ≩ ⋧ 𝔾 𝕘 `"),
("&GreaterEqual; &GreaterEqualLess; &GreaterFullEqual; &GreaterGreater;", "≥ ⋛ ≧ ⪢"),
("&GreaterLess; &GreaterSlantEqual; &GreaterTilde; &Gscr; &gscr; &gsim; &gsime;", "≷ ⩾ ≳ 𝒢 ≳ ⪎"),
("&gsiml; &GT; &gt; &GT; &Gt; &gt; &gtcc; &gtcir; &gtdot; &gtlPar; &gtquest;", "⪐ > > > ≫ > ⪧ ⩺ ⋗ ⦕ ⩼"),
("&gtrapprox; &gtrarr; &gtrdot; &gtreqless; &gtreqqless; &gtrless; &gtrsim;", "⪆ ⥸ ⋗ ⋛ ⪌ ≷ ≳"),
("&gvertneqq; &gvnE; &Hacek; &hairsp; &half; &hamilt; &HARDcy; &hardcy; &hArr;", "≩︀ ≩︀ ˇ \u200a ½ Ъ ъ ⇔"),
("&harr; &harrcir; &harrw; &Hat; &hbar; &Hcirc; &hcirc; &hearts; &heartsuit;", "↔ ⥈ ↭ ^ ℏ Ĥ ĥ ♥ ♥"),
("&hellip; &hercon; &Hfr; &hfr; &HilbertSpace; &hksearow; &hkswarow; &hoarr;", "… ⊹ 𝔥 ⤥ ⤦ ⇿"),
("&homtht; &hookleftarrow; &hookrightarrow; &Hopf; &hopf; &horbar;", "∻ ↩ ↪ 𝕙"),
("&HorizontalLine; &Hscr; &hscr; &hslash; &Hstrok; &hstrok; &HumpDownHump;", " 𝒽 ℏ Ħ ħ ≎"),
("&HumpEqual; &hybull; &hyphen; &Iacute; &iacute; &Iacute; &iacute; &ic; &Icirc;", " Í í Í í \u2063 Î"),
("&icirc; &Icirc; &icirc; &Icy; &icy; &Idot; &IEcy; &iecy; &iexcl; &iexcl; &iff;", "î Î î И и İ Е е ¡ ¡ ⇔"),
("&Ifr; &ifr; &Igrave; &igrave; &Igrave; &igrave; &ii; &iiiint; &iiint; &iinfin;", " 𝔦 Ì ì Ì ì ⨌ ∭ ⧜"),
("&iiota; &IJlig; &ijlig; &Im; &Imacr; &imacr; &image; &ImaginaryI; &imagline;", "℩ IJ ij Ī ī "),
("&imagpart; &imath; &imof; &imped; &Implies; &in; &incare; &infin; &infintie;", " ı ⊷ Ƶ ⇒ ∈ ℅ ∞ ⧝"),
("&inodot; &Int; &int; &intcal; &integers; &Integral; &intercal; &Intersection;", "ı ∬ ∫ ⊺ ∫ ⊺ ⋂"),
("&intlarhk; &intprod; &InvisibleComma; &InvisibleTimes; &IOcy; &iocy; &Iogon;", "⨗ ⨼ \u2063 \u2062 Ё ё Į"),
("&iogon; &Iopf; &iopf; &Iota; &iota; &iprod; &iquest; &iquest; &Iscr; &iscr;", "į 𝕀 𝕚 Ι ι ⨼ ¿ ¿ 𝒾"),
("&isin; &isindot; &isinE; &isins; &isinsv; &isinv; &it; &Itilde; &itilde;", "∈ ⋵ ⋹ ⋴ ⋳ ∈ \u2062 Ĩ ĩ"),
("&Iukcy; &iukcy; &Iuml; &iuml; &Iuml; &iuml; &Jcirc; &jcirc; &Jcy; &jcy; &Jfr;", "І і Ï ï Ï ï Ĵ ĵ Й й 𝔍"),
("&jfr; &jmath; &Jopf; &jopf; &Jscr; &jscr; &Jsercy; &jsercy; &Jukcy; &jukcy;", "𝔧 ȷ 𝕁 𝕛 𝒥 𝒿 Ј ј Є є"),
("&Kappa; &kappa; &kappav; &Kcedil; &kcedil; &Kcy; &kcy; &Kfr; &kfr; &kgreen;", "Κ κ ϰ Ķ ķ К к 𝔎 𝔨 ĸ"),
("&KHcy; &khcy; &KJcy; &kjcy; &Kopf; &kopf; &Kscr; &kscr; &lAarr; &Lacute;", "Х х Ќ ќ 𝕂 𝕜 𝒦 𝓀 ⇚ Ĺ"),
("&lacute; &laemptyv; &lagran; &Lambda; &lambda; &Lang; &lang; &langd; &langle;", "ĺ ⦴ Λ λ ⟪ ⟨ ⦑ ⟨"),
("&lap; &Laplacetrf; &laquo; &laquo; &Larr; &lArr; &larr; &larrb; &larrbfs;", " « « ↞ ⇐ ← ⇤ ⤟"),
("&larrfs; &larrhk; &larrlp; &larrpl; &larrsim; &larrtl; &lat; &lAtail; &latail;", "⤝ ↩ ↫ ⤹ ⥳ ↢ ⪫ ⤛ ⤙"),
("&late; &lates; &lBarr; &lbarr; &lbbrk; &lbrace; &lbrack; &lbrke; &lbrksld;", "⪭ ⪭︀ ⤎ ⤌ { [ ⦋ ⦏"),
("&lbrkslu; &Lcaron; &lcaron; &Lcedil; &lcedil; &lceil; &lcub; &Lcy; &lcy;", "⦍ Ľ ľ Ļ ļ ⌈ { Л л"),
("&ldca; &ldquo; &ldquor; &ldrdhar; &ldrushar; &ldsh; &lE; &le;", "⤶ “ „ ⥧ ⥋ ↲ ≦ ≤"),
("&LeftAngleBracket; &LeftArrow; &Leftarrow; &leftarrow; &LeftArrowBar;", "⟨ ← ⇐ ← ⇤"),
("&LeftArrowRightArrow; &leftarrowtail; &LeftCeiling; &LeftDoubleBracket;", "⇆ ↢ ⌈ ⟦"),
("&LeftDownTeeVector; &LeftDownVector; &LeftDownVectorBar; &LeftFloor;", "⥡ ⇃ ⥙ ⌊"),
("&leftharpoondown; &leftharpoonup; &leftleftarrows; &LeftRightArrow;", "↽ ↼ ⇇ ↔"),
("&Leftrightarrow; &leftrightarrow; &leftrightarrows; &leftrightharpoons;", "⇔ ↔ ⇆ ⇋"),
("&leftrightsquigarrow; &LeftRightVector; &LeftTee; &LeftTeeArrow;", "↭ ⥎ ⊣ ↤"),
("&LeftTeeVector; &leftthreetimes; &LeftTriangle; &LeftTriangleBar;", "⥚ ⋋ ⊲ ⧏"),
("&LeftTriangleEqual; &LeftUpDownVector; &LeftUpTeeVector; &LeftUpVector;", "⊴ ⥑ ⥠ ↿"),
("&LeftUpVectorBar; &LeftVector; &LeftVectorBar; &lEg; &leg; &leq; &leqq;", "⥘ ↼ ⥒ ⪋ ⋚ ≤ ≦"),
("&leqslant; &les; &lescc; &lesdot; &lesdoto; &lesdotor; &lesg; &lesges;", "⩽ ⩽ ⪨ ⩿ ⪁ ⪃ ⋚︀ ⪓"),
("&lessapprox; &lessdot; &lesseqgtr; &lesseqqgtr; &LessEqualGreater;", "⪅ ⋖ ⋚ ⪋ ⋚"),
("&LessFullEqual; &LessGreater; &lessgtr; &LessLess; &lesssim; &LessSlantEqual;", "≦ ≶ ≶ ⪡ ≲ ⩽"),
("&LessTilde; &lfisht; &lfloor; &Lfr; &lfr; &lg; &lgE; &lHar; &lhard; &lharu;", "≲ ⥼ ⌊ 𝔏 𝔩 ≶ ⪑ ⥢ ↽ ↼"),
("&lharul; &lhblk; &LJcy; &ljcy; &Ll; &ll; &llarr; &llcorner; &Lleftarrow;", "⥪ ▄ Љ љ ⋘ ≪ ⇇ ⌞ ⇚"),
("&llhard; &lltri; &Lmidot; &lmidot; &lmoust; &lmoustache; &lnap; &lnapprox;", "⥫ ◺ Ŀ ŀ ⎰ ⎰ ⪉ ⪉"),
("&lnE; &lne; &lneq; &lneqq; &lnsim; &loang; &loarr; &lobrk; &LongLeftArrow;", "≨ ⪇ ⪇ ≨ ⋦ ⟬ ⇽ ⟦ ⟵"),
("&Longleftarrow; &longleftarrow; &LongLeftRightArrow; &Longleftrightarrow;", "⟸ ⟵ ⟷ ⟺"),
("&longleftrightarrow; &longmapsto; &LongRightArrow; &Longrightarrow;", "⟷ ⟼ ⟶ ⟹"),
("&longrightarrow; &looparrowleft; &looparrowright; &lopar; &Lopf; &lopf;", "⟶ ↫ ↬ ⦅ 𝕃 𝕝"),
("&loplus; &lotimes; &lowast; &lowbar; &LowerLeftArrow; &LowerRightArrow; &loz;", "⨭ ⨴ _ ↙ ↘ ◊"),
("&lozenge; &lozf; &lpar; &lparlt; &lrarr; &lrcorner; &lrhar; &lrhard; &lrm;", "◊ ⧫ ( ⦓ ⇆ ⌟ ⇋ ⥭ \u200E"),
("&lrtri; &lsaquo; &Lscr; &lscr; &Lsh; &lsh; &lsim; &lsime; &lsimg; &lsqb;", " 𝓁 ↰ ↰ ≲ ⪍ ⪏ ["),
("&lsquo; &lsquor; &Lstrok; &lstrok; &LT; &lt; &LT; &Lt; &lt; &ltcc; &ltcir;", " Ł ł < < < ≪ < ⪦ ⩹"),
("&ltdot; &lthree; &ltimes; &ltlarr; &ltquest; &ltri; &ltrie; &ltrif; &ltrPar;", "⋖ ⋋ ⋉ ⥶ ⩻ ◃ ⊴ ◂ ⦖"),
("&lurdshar; &luruhar; &lvertneqq; &lvnE; &macr; &macr; &male; &malt; &maltese;", "⥊ ⥦ ≨︀ ≨︀ ¯ ¯ ♂ ✠ ✠"),
("&Map; &map; &mapsto; &mapstodown; &mapstoleft; &mapstoup; &marker; &mcomma;", "⤅ ↦ ↦ ↧ ↤ ↥ ▮ ⨩"),
("&Mcy; &mcy; &mdash; &mDDot; &measuredangle; &MediumSpace; &Mellintrf; &Mfr;", "М м — ∺ ∡ \u205F 𝔐"),
("&mfr; &mho; &micro; &micro; &mid; &midast; &midcir; &middot; &middot; &minus;", "𝔪 ℧ µ µ * ⫰ · · "),
("&minusb; &minusd; &minusdu; &MinusPlus; &mlcp; &mldr; &mnplus; &models; &Mopf;", "⊟ ∸ ⨪ ∓ ⫛ … ∓ ⊧ 𝕄"),
("&mopf; &mp; &Mscr; &mscr; &mstpos; &Mu; &mu; &multimap; &mumap; &nabla;", "𝕞 ∓ 𝓂 ∾ Μ μ ⊸ ⊸ ∇"),
("&Nacute; &nacute; &nang; &nap; &napE; &napid; &napos; &napprox; &natur;", "Ń ń ∠⃒ ≉ ⩰̸ ≋̸ ʼn ≉ ♮"),
("&natural; &naturals; &nbsp; &nbsp; &nbump; &nbumpe; &ncap; &Ncaron; &ncaron;", " \u00A0 \u00A0 ≎̸ ≏̸ ⩃ Ň ň"),
("&Ncedil; &ncedil; &ncong; &ncongdot; &ncup; &Ncy; &ncy; &ndash; &ne; &nearhk;", "Ņ ņ ≇ ⩭̸ ⩂ Н н ≠ ⤤"),
("&neArr; &nearr; &nearrow; &nedot; &NegativeMediumSpace; &NegativeThickSpace;", "⇗ ↗ ↗ ≐̸ \u200b \u200b"),
("&NegativeThinSpace; &NegativeVeryThinSpace; &nequiv; &nesear; &nesim;", "\u200b \u200b ≢ ⤨ ≂̸"),
("&NestedGreaterGreater; &NestedLessLess; &NewLine; &nexist; &nexists; &Nfr;", "≫ ≪ \n ∄ ∄ 𝔑"),
("&nfr; &ngE; &nge; &ngeq; &ngeqq; &ngeqslant; &nges; &nGg; &ngsim; &nGt; &ngt;", "𝔫 ≧̸ ≱ ≱ ≧̸ ⩾̸ ⩾̸ ⋙̸ ≵ ≫⃒ ≯"),
("&ngtr; &nGtv; &nhArr; &nharr; &nhpar; &ni; &nis; &nisd; &niv; &NJcy; &njcy;", "≯ ≫̸ ⇎ ↮ ⫲ ∋ ⋼ ⋺ ∋ Њ њ"),
("&nlArr; &nlarr; &nldr; &nlE; &nle; &nLeftarrow; &nleftarrow; &nLeftrightarrow;", "⇍ ↚ ‥ ≦̸ ≰ ⇍ ↚ ⇎"),
("&nleftrightarrow; &nleq; &nleqq; &nleqslant; &nles; &nless; &nLl; &nlsim;", "↮ ≰ ≦̸ ⩽̸ ⩽̸ ≮ ⋘̸ ≴"),
("&nLt; &nlt; &nltri; &nltrie; &nLtv; &nmid; &NoBreak; &NonBreakingSpace; &Nopf;", "≪⃒ ≮ ⋪ ⋬ ≪̸ ∤ \u2060 \u00A0 "),
("&nopf; &not; &Not; &not; &NotCongruent; &NotCupCap; &NotDoubleVerticalBar;", "𝕟 ¬ ⫬ ¬ ≢ ≭ ∦"),
("&NotElement; &NotEqual; &NotEqualTilde; &NotExists; &NotGreater;", "∉ ≠ ≂̸ ∄ ≯"),
("&NotGreaterEqual; &NotGreaterFullEqual; &NotGreaterGreater; &NotGreaterLess;", "≱ ≧̸ ≫̸ ≹"),
("&NotGreaterSlantEqual; &NotGreaterTilde; &NotHumpDownHump; &NotHumpEqual;", "⩾̸ ≵ ≎̸ ≏̸"),
("&notin; &notindot; &notinE; &notinva; &notinvb; &notinvc; &NotLeftTriangle;", "∉ ⋵̸ ⋹̸ ∉ ⋷ ⋶ ⋪"),
("&NotLeftTriangleBar; &NotLeftTriangleEqual; &NotLess; &NotLessEqual;", "⧏̸ ⋬ ≮ ≰"),
("&NotLessGreater; &NotLessLess; &NotLessSlantEqual; &NotLessTilde;", "≸ ≪̸ ⩽̸ ≴"),
("&NotNestedGreaterGreater; &NotNestedLessLess; &notni; &notniva; &notnivb;", "⪢̸ ⪡̸ ∌ ∌ ⋾"),
("&notnivc; &NotPrecedes; &NotPrecedesEqual; &NotPrecedesSlantEqual;", "⋽ ⊀ ⪯̸ ⋠"),
("&NotReverseElement; &NotRightTriangle; &NotRightTriangleBar;", "∌ ⋫ ⧐̸"),
("&NotRightTriangleEqual; &NotSquareSubset; &NotSquareSubsetEqual;", "⋭ ⊏̸ ⋢"),
("&NotSquareSuperset; &NotSquareSupersetEqual; &NotSubset; &NotSubsetEqual;", "⊐̸ ⋣ ⊂⃒ ⊈"),
("&NotSucceeds; &NotSucceedsEqual; &NotSucceedsSlantEqual; &NotSucceedsTilde;", "⊁ ⪰̸ ⋡ ≿̸"),
("&NotSuperset; &NotSupersetEqual; &NotTilde; &NotTildeEqual;", "⊃⃒ ⊉ ≁ ≄"),
("&NotTildeFullEqual; &NotTildeTilde; &NotVerticalBar; &npar; &nparallel;", "≇ ≉ ∤ ∦ ∦"),
("&nparsl; &npart; &npolint; &npr; &nprcue; &npre; &nprec; &npreceq; &nrArr;", "⫽⃥ ∂̸ ⨔ ⊀ ⋠ ⪯̸ ⊀ ⪯̸ ⇏"),
("&nrarr; &nrarrc; &nrarrw; &nRightarrow; &nrightarrow; &nrtri; &nrtrie; &nsc;", "↛ ⤳̸ ↝̸ ⇏ ↛ ⋫ ⋭ ⊁"),
("&nsccue; &nsce; &Nscr; &nscr; &nshortmid; &nshortparallel; &nsim; &nsime;", "⋡ ⪰̸ 𝒩 𝓃 ∤ ∦ ≁ ≄"),
("&nsimeq; &nsmid; &nspar; &nsqsube; &nsqsupe; &nsub; &nsubE; &nsube; &nsubset;", "≄ ∤ ∦ ⋢ ⋣ ⊄ ⫅̸ ⊈ ⊂⃒"),
("&nsubseteq; &nsubseteqq; &nsucc; &nsucceq; &nsup; &nsupE; &nsupe; &nsupset;", "⊈ ⫅̸ ⊁ ⪰̸ ⊅ ⫆̸ ⊉ ⊃⃒"),
("&nsupseteq; &nsupseteqq; &ntgl; &Ntilde; &ntilde; &Ntilde; &ntilde; &ntlg;", "⊉ ⫆̸ ≹ Ñ ñ Ñ ñ ≸"),
("&ntriangleleft; &ntrianglelefteq; &ntriangleright; &ntrianglerighteq; &Nu;", "⋪ ⋬ ⋫ ⋭ Ν"),
("&nu; &num; &numero; &numsp; &nvap; &nVDash; &nVdash; &nvDash; &nvdash; &nvge;", "ν # № \u2007 ≍⃒ ⊯ ⊮ ⊭ ⊬ ≥⃒"),
("&nvgt; &nvHarr; &nvinfin; &nvlArr; &nvle; &nvlt; &nvltrie; &nvrArr; &nvrtrie;", ">⃒ ⤄ ⧞ ⤂ ≤⃒ <⃒ ⊴⃒ ⤃ ⊵⃒"),
("&nvsim; &nwarhk; &nwArr; &nwarr; &nwarrow; &nwnear; &Oacute; &oacute; &Oacute;", "∼⃒ ⤣ ⇖ ↖ ↖ ⤧ Ó ó Ó"),
("&oacute; &oast; &ocir; &Ocirc; &ocirc; &Ocirc; &ocirc; &Ocy; &ocy; &odash;", "ó ⊛ ⊚ Ô ô Ô ô О о"),
("&Odblac; &odblac; &odiv; &odot; &odsold; &OElig; &oelig; &ofcir; &Ofr; &ofr;", "Ő ő ⨸ ⊙ ⦼ Œ œ ⦿ 𝔒 𝔬"),
("&ogon; &Ograve; &ograve; &Ograve; &ograve; &ogt; &ohbar; &ohm; &oint; &olarr;", "˛ Ò ò Ò ò ⧁ ⦵ Ω ∮ ↺"),
("&olcir; &olcross; &oline; &olt; &Omacr; &omacr; &Omega; &omega; &Omicron;", "⦾ ⦻ ‾ ⧀ Ō ō Ω ω Ο"),
("&omicron; &omid; &ominus; &Oopf; &oopf; &opar; &OpenCurlyDoubleQuote;", "ο ⦶ ⊖ 𝕆 𝕠 ⦷ “"),
("&OpenCurlyQuote; &operp; &oplus; &Or; &or; &orarr; &ord; &order; &orderof;", " ⦹ ⊕ ⩔ ↻ ⩝ "),
("&ordf; &ordf; &ordm; &ordm; &origof; &oror; &orslope; &orv; &oS; &Oscr; &oscr;", "ª ª º º ⊶ ⩖ ⩗ ⩛ Ⓢ 𝒪 "),
("&Oslash; &oslash; &Oslash; &oslash; &osol; &Otilde; &otilde; &Otilde; &otilde;", "Ø ø Ø ø ⊘ Õ õ Õ õ"),
("&Otimes; &otimes; &otimesas; &Ouml; &ouml; &Ouml; &ouml; &ovbar; &OverBar;", "⨷ ⊗ ⨶ Ö ö Ö ö ⌽ ‾"),
("&OverBrace; &OverBracket; &OverParenthesis; &par; &para; &para; &parallel;", "⏞ ⎴ ⏜ ∥ ¶ ¶ ∥"),
("&parsim; &parsl; &part; &PartialD; &Pcy; &pcy; &percnt; &period; &permil;", "⫳ ⫽ ∂ ∂ П п % . ‰"),
("&perp; &pertenk; &Pfr; &pfr; &Phi; &phi; &phiv; &phmmat; &phone; &Pi; &pi;", "⊥ ‱ 𝔓 𝔭 Φ φ ϕ ☎ Π π"),
("&pitchfork; &piv; &planck; &planckh; &plankv; &plus; &plusacir; &plusb;", "⋔ ϖ ℏ ℏ + ⨣ ⊞"),
("&pluscir; &plusdo; &plusdu; &pluse; &PlusMinus; &plusmn; &plusmn; &plussim;", "⨢ ∔ ⨥ ⩲ ± ± ± ⨦"),
("&plustwo; &pm; &Poincareplane; &pointint; &Popf; &popf; &pound; &pound; &Pr;", "⨧ ± 𝕡 £ £ ⪻"),
("&pr; &prap; &prcue; &prE; &pre; &prec; &precapprox; &preccurlyeq; &Precedes;", "≺ ⪷ ≼ ⪳ ⪯ ≺ ⪷ ≼ ≺"),
("&PrecedesEqual; &PrecedesSlantEqual; &PrecedesTilde; &preceq; &precnapprox;", "⪯ ≼ ≾ ⪯ ⪹"),
("&precneqq; &precnsim; &precsim; &Prime; &prime; &primes; &prnap; &prnE;", "⪵ ⋨ ≾ ″ ⪹ ⪵"),
("&prnsim; &prod; &Product; &profalar; &profline; &profsurf; &prop; &Proportion;", "⋨ ∏ ∏ ⌮ ⌒ ⌓ ∝ ∷"),
("&Proportional; &propto; &prsim; &prurel; &Pscr; &pscr; &Psi; &psi; &puncsp;", "∝ ∝ ≾ ⊰ 𝒫 𝓅 Ψ ψ \u2008"),
("&Qfr; &qfr; &qint; &Qopf; &qopf; &qprime; &Qscr; &qscr; &quaternions;", "𝔔 𝔮 𝕢𝒬 𝓆 "),
("&quatint; &quest; &questeq; &QUOT; &quot; &rAarr; &race;", "⨖ ? ≟ \" \" ⇛ ∽̱"),
("&Racute; &racute; &radic; &raemptyv; &Rang; &rang; &rangd; &range; &rangle;", "Ŕ ŕ √ ⦳ ⟫ ⟩ ⦒ ⦥ ⟩"),
("&raquo; &raquo; &Rarr; &rArr; &rarr; &rarrap; &rarrb; &rarrbfs; &rarrc;", "» » ↠ ⇒ → ⥵ ⇥ ⤠ ⤳"),
("&rarrfs; &rarrhk; &rarrlp; &rarrpl; &rarrsim; &Rarrtl; &rarrtl; &rarrw;", "⤞ ↪ ↬ ⥅ ⥴ ⤖ ↣ ↝"),
("&rAtail; &ratail; &ratio; &rationals; &RBarr; &rBarr; &rbarr; &rbbrk; &rbrace;", "⤜ ⤚ ⤐ ⤏ ⤍ }"),
("&rbrack; &rbrke; &rbrksld; &rbrkslu; &Rcaron; &rcaron; &Rcedil; &rcedil;", "] ⦌ ⦎ ⦐ Ř ř Ŗ ŗ"),
("&rceil; &rcub; &Rcy; &rcy; &rdca; &rdldhar; &rdquo; &rdquor; &rdsh; &Re;", "⌉ } Р р ⤷ ⥩ ” ” ↳ "),
("&real; &realine; &realpart; &reals; &rect; &REG; &reg; &REG; &reg;", " ▭ ® ® ® ®"),
("&ReverseElement; &ReverseEquilibrium; &ReverseUpEquilibrium; &rfisht; &rfloor;", "∋ ⇋ ⥯ ⥽ ⌋"),
("&Rfr; &rfr; &rHar; &rhard; &rharu; &rharul; &Rho; &rho; &rhov;", " 𝔯 ⥤ ⇁ ⇀ ⥬ Ρ ρ ϱ"),
("&RightAngleBracket; &RightArrow; &Rightarrow; &rightarrow; &RightArrowBar;", "⟩ → ⇒ → ⇥"),
("&RightArrowLeftArrow; &rightarrowtail; &RightCeiling; &RightDoubleBracket;", "⇄ ↣ ⌉ ⟧"),
("&RightDownTeeVector; &RightDownVector; &RightDownVectorBar; &RightFloor;", "⥝ ⇂ ⥕ ⌋"),
("&rightharpoondown; &rightharpoonup; &rightleftarrows; &rightleftharpoons;", "⇁ ⇀ ⇄ ⇌"),
("&rightrightarrows; &rightsquigarrow; &RightTee; &RightTeeArrow;", "⇉ ↝ ⊢ ↦"),
("&RightTeeVector; &rightthreetimes; &RightTriangle; &RightTriangleBar;", "⥛ ⋌ ⊳ ⧐"),
("&RightTriangleEqual; &RightUpDownVector; &RightUpTeeVector; &RightUpVector;", "⊵ ⥏ ⥜ ↾"),
("&RightUpVectorBar; &RightVector; &RightVectorBar; &ring; &risingdotseq;", "⥔ ⇀ ⥓ ˚ ≓"),
("&rlarr; &rlhar; &rlm; &rmoust; &rmoustache; &rnmid; &roang; &roarr; &robrk;", "⇄ ⇌ \u200f ⎱ ⎱ ⫮ ⟭ ⇾ ⟧"),
("&ropar; &Ropf; &ropf; &roplus; &rotimes; &RoundImplies; &rpar; &rpargt;", " 𝕣 ⨮ ⨵ ⥰ ) ⦔"),
("&rppolint; &rrarr; &Rrightarrow; &rsaquo; &Rscr; &rscr; &Rsh; &rsh; &rsqb;", "⨒ ⇉ ⇛ 𝓇 ↱ ↱ ]"),
("&rsquo; &rsquor; &rthree; &rtimes; &rtri; &rtrie; &rtrif; &rtriltri;", " ⋌ ⋊ ▹ ⊵ ▸ ⧎"),
("&RuleDelayed; &ruluhar; &rx; &Sacute; &sacute; &sbquo; &Sc; &sc; &scap;", "⧴ ⥨ ℞ Ś ś ⪼ ≻ ⪸"),
("&Scaron; &scaron; &sccue; &scE; &sce; &Scedil; &scedil; &Scirc; &scirc;", "Š š ≽ ⪴ ⪰ Ş ş Ŝ ŝ"),
("&scnap; &scnE; &scnsim; &scpolint; &scsim; &Scy; &scy; &sdot; &sdotb; &sdote;", "⪺ ⪶ ⋩ ⨓ ≿ С с ⋅ ⊡ ⩦"),
("&searhk; &seArr; &searr; &searrow; &sect; &sect; &semi; &seswar; &setminus;", "⤥ ⇘ ↘ ↘ § § ; ⤩ "),
("&setmn; &sext; &Sfr; &sfr; &sfrown; &sharp; &SHCHcy; &shchcy; &SHcy; &shcy;", "𝔖 𝔰 ⌢ ♯ Щ щ Ш ш"),
("&ShortDownArrow; &ShortLeftArrow; &shortmid; &shortparallel; &ShortRightArrow;", "↓ ← ∥ →"),
("&ShortUpArrow; &shy; &Sigma; &sigma; &sigmaf; &sigmav; &sim; &simdot;", "\u00AD Σ σ ς ς "),
("&sime; &simeq; &simg; &simgE; &siml; &simlE; &simne; &simplus; &simrarr;", "≃ ≃ ⪞ ⪠ ⪝ ⪟ ≆ ⨤ ⥲"),
("&slarr; &SmallCircle; &smallsetminus; &smashp; &smeparsl; &smid; &smile; &smt;", "← ∘ ⨳ ⧤ ⌣ ⪪"),
("&smte; &smtes; &SOFTcy; &softcy; &sol; &solb; &solbar; &Sopf; &sopf; &spades;", "⪬ ⪬︀ Ь ь / ⧄ ⌿ 𝕊 𝕤"),
("&spadesuit; &spar; &sqcap; &sqcaps; &sqcup; &sqcups; &Sqrt; &sqsub; &sqsube;", "♠ ∥ ⊓ ⊓︀ ⊔ ⊔︀ √ ⊏ ⊑"),
("&sqsubset; &sqsubseteq; &sqsup; &sqsupe; &sqsupset; &sqsupseteq; &squ;", "⊏ ⊑ ⊐ ⊒ ⊐ ⊒ □"),
("&Square; &square; &SquareIntersection; &SquareSubset; &SquareSubsetEqual;", "□ □ ⊓ ⊏ ⊑"),
("&SquareSuperset; &SquareSupersetEqual; &SquareUnion; &squarf; &squf; &srarr;", "⊐ ⊒ ⊔ ▪ ▪ →"),
("&Sscr; &sscr; &ssetmn; &ssmile; &sstarf; &Star; &star; &starf;", "𝒮 𝓈 ⌣ ⋆ ⋆ ☆ ★"),
("&straightepsilon; &straightphi; &strns; &Sub; &sub; &subdot; &subE; &sube;", "ϵ ϕ ¯ ⋐ ⊂ ⪽ ⫅ ⊆"),
("&subedot; &submult; &subnE; &subne; &subplus; &subrarr; &Subset; &subset;", "⫃ ⫁ ⫋ ⊊ ⪿ ⥹ ⋐ ⊂"),
("&subseteq; &subseteqq; &SubsetEqual; &subsetneq; &subsetneqq; &subsim;", "⊆ ⫅ ⊆ ⊊ ⫋ ⫇"),
("&subsub; &subsup; &succ; &succapprox; &succcurlyeq; &Succeeds; &SucceedsEqual;", "⫕ ⫓ ≻ ⪸ ≽ ≻ ⪰"),
("&SucceedsSlantEqual; &SucceedsTilde; &succeq; &succnapprox; &succneqq;", "≽ ≿ ⪰ ⪺ ⪶"),
("&succnsim; &succsim; &SuchThat; &Sum; &sum; &sung; &sup1; &sup1; &sup2; &sup2;", "⋩ ≿ ∋ ∑ ∑ ♪ ¹ ¹ ² ²"),
("&sup3; &sup3; &Sup; &sup; &supdot; &supdsub; &supE; &supe; &supedot;", "³ ³ ⋑ ⊃ ⪾ ⫘ ⫆ ⊇ ⫄"),
("&Superset; &SupersetEqual; &suphsol; &suphsub; &suplarr; &supmult; &supnE;", "⊃ ⊇ ⟉ ⫗ ⥻ ⫂ ⫌"),
("&supne; &supplus; &Supset; &supset; &supseteq; &supseteqq; &supsetneq;", "⊋ ⫀ ⋑ ⊃ ⊇ ⫆ ⊋"),
("&supsetneqq; &supsim; &supsub; &supsup; &swarhk; &swArr; &swarr; &swarrow;", "⫌ ⫈ ⫔ ⫖ ⤦ ⇙ ↙ ↙"),
("&swnwar; &szlig; &szlig; &Tab; &target; &Tau; &tau; &tbrk; &Tcaron; &tcaron;", "⤪ ß ß ⌖ Τ τ ⎴ Ť ť"),
("&Tcedil; &tcedil; &Tcy; &tcy; &tdot; &telrec; &Tfr; &tfr; &there4; &Therefore;", "Ţ ţ Т т ⃛ ⌕ 𝔗 𝔱 ∴ ∴"),
("&therefore; &Theta; &theta; &thetasym; &thetav; &thickapprox; &thicksim;", "∴ Θ θ ϑ ϑ ≈ "),
("&ThickSpace; &thinsp; &ThinSpace; &thkap; &thksim; &THORN;", "\u205F\u200A \u2009 \u2009 Þ"),
("&thorn; &Tilde; &tilde; &TildeEqual; &TildeFullEqual; &TildeTilde; &times;", "þ ˜ ≃ ≅ ≈ ×"),
("&times; &timesb; &timesbar; &timesd; &tint; &toea; &top; &topbot; &topcir;", "× ⊠ ⨱ ⨰ ∭ ⤨ ⌶ ⫱"),
("&Topf; &topf; &topfork; &tosa; &tprime; &TRADE; &trade; &triangle;", "𝕋 𝕥 ⫚ ⤩ ‴ ™ ™ ▵"),
("&triangledown; &triangleleft; &trianglelefteq; &triangleq; &triangleright;", "▿ ◃ ⊴ ≜ ▹"),
("&trianglerighteq; &tridot; &trie; &triminus; &TripleDot; &triplus; &trisb;", "⊵ ◬ ≜ ⨺ ⃛ ⨹ ⧍"),
("&tritime; &trpezium; &Tscr; &tscr; &TScy; &tscy; &TSHcy; &tshcy; &Tstrok;", "⨻ ⏢ 𝒯 𝓉 Ц ц Ћ ћ Ŧ"),
("&tstrok; &twixt; &twoheadleftarrow; &twoheadrightarrow; &Uacute; &uacute;", "ŧ ≬ ↞ ↠ Ú ú"),
("&Uacute; &uacute; &Uarr; &uArr; &uarr; &Uarrocir; &Ubrcy; &ubrcy; &Ubreve;", "Ú ú ↟ ⇑ ↑ ⥉ Ў ў Ŭ"),
("&ubreve; &Ucirc; &ucirc; &Ucirc; &ucirc; &Ucy; &ucy; &udarr; &Udblac; &udblac;", "ŭ Û û Û û У у ⇅ Ű ű"),
("&udhar; &ufisht; &Ufr; &ufr; &Ugrave; &ugrave; &Ugrave; &ugrave; &uHar;", "⥮ ⥾ 𝔘 𝔲 Ù ù Ù ù ⥣"),
("&uharl; &uharr; &uhblk; &ulcorn; &ulcorner; &ulcrop; &ultri; &Umacr; &umacr;", "↿ ↾ ▀ ⌜ ⌜ ⌏ ◸ Ū ū"),
("&uml; &uml; &UnderBar; &UnderBrace; &UnderBracket; &UnderParenthesis; &Union;", "¨ ¨ _ ⏟ ⎵ ⏝ "),
("&UnionPlus; &Uogon; &uogon; &Uopf; &uopf; &UpArrow; &Uparrow; &uparrow;", "⊎ Ų ų 𝕌 𝕦 ↑ ⇑ ↑"),
("&UpArrowBar; &UpArrowDownArrow; &UpDownArrow; &Updownarrow; &updownarrow;", "⤒ ⇅ ↕ ⇕ ↕"),
("&UpEquilibrium; &upharpoonleft; &upharpoonright; &uplus; &UpperLeftArrow;", "⥮ ↿ ↾ ⊎ ↖"),
("&UpperRightArrow; &Upsi; &upsi; &upsih; &Upsilon; &upsilon; &UpTee;", "ϒ υ ϒ Υ υ"),
("&UpTeeArrow; &upuparrows; &urcorn; &urcorner; &urcrop; &Uring; &uring; &urtri;", "↥ ⇈ ⌝ ⌝ ⌎ Ů ů ◹"),
("&Uscr; &uscr; &utdot; &Utilde; &utilde; &utri; &utrif; &uuarr; &Uuml; &uuml;", "𝒰 𝓊 ⋰ Ũ ũ ▵ ▴ ⇈ Ü ü"),
("&Uuml; &uuml; &uwangle; &vangrt; &varepsilon; &varkappa; &varnothing; &varphi;", "Ü ü ⦧ ⦜ ϵ ϰ ∅ ϕ"),
("&varpi; &varpropto; &vArr; &varr; &varrho; &varsigma; &varsubsetneq;", "ϖ ∝ ⇕ ↕ ϱ ς ⊊︀"),
("&varsubsetneqq; &varsupsetneq; &varsupsetneqq; &vartheta; &vartriangleleft;", "⫋︀ ⊋︀ ⫌︀ ϑ ⊲"),
("&vartriangleright; &Vbar; &vBar; &vBarv; &Vcy; &vcy; &VDash; &Vdash; &vDash;", "⊳ ⫫ ⫨ ⫩ В в ⊫ ⊩ ⊨"),
("&vdash; &Vdashl; &Vee; &vee; &veebar; &veeeq; &vellip; &Verbar; &verbar;", "⊢ ⫦ ⊻ ≚ ⋮ ‖ |"),
("&Vert; &vert; &VerticalBar; &VerticalLine; &VerticalSeparator; &VerticalTilde;", "‖ | | ❘ ≀"),
("&VeryThinSpace; &Vfr; &vfr; &vltri; &vnsub; &vnsup; &Vopf; &vopf; &vprop;", "\u200A 𝔙 𝔳 ⊲ ⊂⃒ ⊃⃒ 𝕍 𝕧"),
("&vrtri; &Vscr; &vscr; &vsubnE; &vsubne; &vsupnE; &vsupne; &Vvdash; &vzigzag;", "𝒱 𝓋 ⫋︀ ⊊︀ ⫌︀ ⊋︀ ⊪ ⦚"),
("&Wcirc; &wcirc; &wedbar; &Wedge; &wedge; &wedgeq; &weierp; &Wfr; &wfr; &Wopf;", "Ŵ ŵ ⩟ ⋀ ∧ ≙ ℘ 𝔚 𝔴 𝕎"),
("&wopf; &wp; &wr; &wreath; &Wscr; &wscr; &xcap; &xcirc; &xcup; &xdtri; &Xfr;", "𝕨 ℘ ≀ ≀ 𝒲 𝓌 ⋂ ◯ 𝔛"),
("&xfr; &xhArr; &xharr; &Xi; &xi; &xlArr; &xlarr; &xmap; &xnis; &xodot; &Xopf;", "𝔵 ⟺ ⟷ Ξ ξ ⟸ ⟵ ⟼ ⋻ ⨀ 𝕏"),
("&xopf; &xoplus; &xotime; &xrArr; &xrarr; &Xscr; &xscr; &xsqcup; &xuplus;", "𝕩 ⨁ ⨂ ⟹ ⟶ 𝒳 𝓍 ⨆ ⨄"),
("&xutri; &xvee; &xwedge; &Yacute; &yacute; &Yacute; &yacute; &YAcy; &yacy;", " ⋀ Ý ý Ý ý Я я"),
("&Ycirc; &ycirc; &Ycy; &ycy; &yen; &yen; &Yfr; &yfr; &YIcy; &yicy; &Yopf;", "Ŷ ŷ Ы ы ¥ ¥ 𝔜 𝔶 Ї ї 𝕐"),
("&yopf; &Yscr; &yscr; &YUcy; &yucy; &yuml; &Yuml; &yuml; &Zacute; &zacute;", "𝕪 𝒴 𝓎 Ю ю ÿ Ÿ ÿ Ź ź"),
("&Zcaron; &zcaron; &Zcy; &zcy; &Zdot; &zdot; &zeetrf; &ZeroWidthSpace; &Zeta;", "Ž ž З з Ż ż \u200b Ζ"),
("&zeta; &Zfr; &zfr; &ZHcy; &zhcy; &zigrarr; &Zopf; &zopf; &Zscr; &zscr; &zwj;", "ζ 𝔷 Ж ж ⇝ 𝕫 𝒵 𝓏 \u200d"),
]
@pytest.mark.parametrize("input_string, expected_output", STRINGS_FOR_DECODE)
def test_html_mnemo_to_utf(input_string, expected_output):
"""
Проверяет ПОВЕДЕНИЕ: декодирование HTML-мнемоников в Unicode-строки.
"""
# Act (действие) - тестируем
actual_output = codec.decode_to_unicode(input_string)
# Assert (проверка)
assert actual_output == expected_output
STRINGS_FOR_ENCODE = [
# Тестовые строки для декодирования html-метаккода в uft-8
("", ""), # Пустая строка
("Hello world!", "Hello world!"), # Строка
("Привет типограф!", "Привет типограф!"), # Строка русского текста
("< > & \"", "&lt; &gt; &amp; &quot;"), # Самый простой набор HTML-мнемоников
("\u00AD", "&shy;"), # Мягкий перенос
("\u00A0\u2002\u2003\u2009\u200D\u200C", "&nbsp;&ensp;&emsp;&thinsp;&zwj;&zwnj;"), # Набор пробелов и невидимых символов
("", "&ndash; &mdash; &hyphen; &horbar;"), # Набор тире и дефисов
("$ ¢ £ ¤ ¥ € ₽", "&dollar; &cent; &pound; &curren; &yen; &euro; &#8381;"), # Валютные символы
("֏ ₽ ₴ ₸ ₹ ₼ ₾", "&#1423; &#8381; &#8372; &#8376; &#8377; &#8380; &#8382;"), # Валютные символы
# Набор из html.entities.name2codepoint
("Æ Á Â À Α Å Ã Ä Ä", "Æ &Aacute; &Acirc; &Agrave; &Alpha; &Aring; &Atilde; &Auml; &Auml;"),
("Β Ç Χ ‡ Δ Ð É Ê È", "&Beta; &Ccedil; &Chi; &Dagger; &Delta; &ETH; &Eacute; &Ecirc; &Egrave;"),
("Ε Η Ë Γ Í Î Ì Ι Ï", "&Epsilon; &Eta; &Euml; &Gamma; &Iacute; &Icirc; &Igrave; &Iota; &Iuml;"),
("Κ Λ Μ Ñ Ν Œ Ó Ô Ò Ö", "&Kappa; &Lambda; &Mu; &Ntilde; &Nu; Œ &Oacute; &Ocirc; &Ograve; &Ouml;"),
("Ω Ο Ø Õ Φ Π ″ Ψ Ρ Š", "&Omega; &Omicron; &Oslash; &Otilde; &Phi; &Pi; &Prime; &Psi; &Rho; &Scaron;"),
("Σ Þ Τ Θ Ú Û Ù Υ Ü", "&Sigma; &THORN; &Tau; &Theta; &Uacute; &Ucirc; &Ugrave; &Upsilon; &Uuml;"),
("Ξ Ý Ÿ Ζ á â ´ æ à", "&Xi; &Yacute; &Yuml; &Zeta; &aacute; &acirc; &acute; æ &agrave;"),
("α & ∧ ∠ ' å ≈ ã ä", "&alefsym; &alpha; &amp; &and; &ang; &apos; &aring; &asymp; &atilde; &auml;"),
("„ β ¦ • ∩ ç ¸ ¢ χ ˆ", "&bdquo; &beta; &brvbar; &bull; &cap; &ccedil; &cedil; &cent; &chi; &circ;"),
("♣ ≅ © ↵ ¤ ⇓ † ↓ °", "&clubs; &cong; &copy; &crarr; &cup; &curren; &dArr; &dagger; &darr; &deg;"),
("δ ♦ ÷ é ê è ∅ \u2003 \u2002", "&delta; &diams; &divide; &eacute; &ecirc; &egrave; &empty; &emsp; &ensp;"),
("ε ≡ η ð ë € ∃ ƒ ∀ ½", "&epsilon; &equiv; &eta; &eth; &euml; &euro; &exist; &fnof; &forall; &frac12;"),
("¼ ¾ γ ≥ > ⇔ ↔ ♥ …", "&frac14; &frac34; &frasl; &gamma; &ge; &gt; &hArr; &harr; &hearts; &hellip;"),
("í î ¡ ì ∞ ∫ ι ¿ ∈", "&iacute; &icirc; &iexcl; &igrave; &image; &infin; &int; &iota; &iquest; &isin;"),
("ï κ ⇐ λ ⟨ « ← ⌈ “ ≤", "&iuml; &kappa; &lArr; &lambda; &lang; &laquo; &larr; &lceil; &ldquo; &le;"),
("\u200e < ¯ — µ", "&lfloor; &lowast; &loz; &lrm; &lsaquo; &lsquo; &lt; &macr; &mdash; &micro;"),
("· μ ∇ \u00A0 ≠ ∋ ¬ ∉", "&middot; &minus; &mu; &nabla; &nbsp; &ndash; &ne; &ni; &not; &notin;"),
("⊄ ñ ν ó ô œ ò ‾ ω", "&nsub; &ntilde; &nu; &oacute; &ocirc; œ &ograve; &oline; &omega;"),
("ο ª º ø õ ⊗ ö", "&omicron; &oplus; &or; &ordf; &ordm; &oslash; &otilde; &otimes; &ouml;"),
("¶ ∂ ‰ ⊥ φ π ϖ ± £ ", "&para; &part; &permil; &perp; &phi; &pi; &piv; &plusmn; &pound; &prime; &prod;"),
("∝ ψ \" ⇒ √ ⟩ » → ⌉ ”", "&prop; &psi; &quot; &rArr; &radic; &rang; &raquo; &rarr; &rceil; &rdquo;"),
(" ® ⌋ ρ \u200f š", "&real; &reg; &rfloor; &rho; &rlm; &rsaquo; &rsquo; &sbquo; &scaron;"),
("⋅ § \u00AD σ ς ♠ ⊂ ⊆ ∑", "&sdot; &sect; &shy; &sigma; &sigmaf; &sim; &spades; &sub; &sube; &sum;"),
("⊃ ¹ ² ³ ⊇ ß τ ∴ θ ϑ", "&sup; &sup1; &sup2; &sup3; &supe; &szlig; &tau; &there4; &theta; &thetasym;"),
("\u2009 þ ˜ × ™ ⇑ ú ↑ û", "&thinsp; &thorn; &tilde; &times; &trade; &uArr; &uacute; &uarr; &ucirc;"),
("ù ¨ ϒ υ ü ℘ ξ ý ¥ ÿ", "&ugrave; &uml; &upsih; &upsilon; &uuml; &weierp; &xi; &yacute; &yen; &yuml;"),
("ζ \u200D \u200C + = %", "&zeta; &zwj; &zwnj; &plus; = %"),
# Набор из html.entities.html5
("Á á Á á Ă ă ∾ ∿ Â", "&Aacute; &aacute; &Aacute; &aacute; &Abreve; &abreve; &ac; &acd; &Acirc;"),
("â Â â ´ ´ А а Æ æ Æ", "&acirc; &Acirc; &acirc; &acute; &acute; А а Æ æ Æ"),
("æ \u2061 𝔄 𝔞 À à À à ℵ ℵ", "æ &af; &Afr; &afr; &Agrave; &agrave; &Agrave; &agrave; &alefsym; &alefsym;"),
("Α α Ā ā ⨿ & & & & ⩓ ∧", "&Alpha; &alpha; &Amacr; &amacr; &amalg; &amp; &amp; &amp; &amp; &And; &and;"),
("⩕ ⩜ ⩘ ⩚ ∠ ⦤ ∠ ∡ ⦨", "&andand; &andd; &andslope; &andv; &ang; &ange; &ang; &angmsd; &angmsdaa;"),
("⦩ ⦪ ⦫ ⦬ ⦭ ⦮ ⦯", "&angmsdab; &angmsdac; &angmsdad; &angmsdae; &angmsdaf; &angmsdag; &angmsdah;"),
("∟ ⊾ ⦝ ∢ Å ⍼ Ą ą 𝔸", "&angrt; &angrtvb; &angrtvbd; &angsph; &Aring; &angzarr; &Aogon; &aogon; &Aopf;"),
("𝕒 ≈ ⩯ ⩰ ≊ ≋ ' \u2061", "&aopf; &asymp; &apacir; &apE; &ape; &apid; &apos; &af; &asymp;"),
("≊ Å å Å å 𝒜 𝒶 ≔ *", "&ape; &Aring; &aring; &Aring; &aring; &Ascr; &ascr; &Assign; *"),
("≈ ≍ Ã ã Ã ã Ä ä Ä", "&asymp; &asympeq; &Atilde; &atilde; &Atilde; &atilde; &Auml; &auml; &Auml;"),
("ä ∳ ⨑ ≌ ϶ ", "&auml; &awconint; &awint; &bcong; &bepsi; &bprime; &bsim;"),
(" ⫧ ⊽ ⌆ ⌅ ⌅ ⎵", "&bsime; &Backslash; &Barv; &barvee; &Barwed; &barwed; &barwed; &bbrk;"),
("⎶ ≌ Б б „ ∵ ⦰", "&bbrktbrk; &bcong; Б б &bdquo; &becaus; &bemptyv;"),
("϶ Β β ℶ ≬ 𝔅 𝔟", "&bepsi; &Bscr; &Bscr; &Beta; &beta; &beth; &between; &Bfr; &bfr;"),
("⋂ ◯ ⨀ ⨁ ⨂ ⨆", "&bigcap; &bigcirc; &bigcup; &bigodot; &bigoplus; &bigotimes; &bigsqcup;"),
("★ ▽ △ ⨄ ", "&bigstar; &bigtriangledown; &bigtriangleup; &biguplus; &bigvee; &bigwedge;"),
("⤍ ⧫ ▪ ▴ ▾", "&bkarow; &blacklozenge; &blacksquare; &blacktriangle; &blacktriangledown;"),
("◂ ▸ ␣ ▒ ░ ▓", "&blacktriangleleft; &blacktriangleright; &blank; &blk12; &blk14; &blk34;"),
("█ ⫭ ⌐ 𝔹 𝕓 ⊥ ⊥ ⋈ ⧉ ╗", "&block; &bNot; &bnot; &Bopf; &bopf; &perp; &perp; &bowtie; &boxbox; &boxDL;"),
("╖ ╕ ┐ ╔ ╓ ╒ ┌ ═ ─ ╦", "&boxDl; &boxdL; &boxdl; &boxDR; &boxDr; &boxdR; &boxdr; &boxH; &boxh; &boxHD;"),
("╤ ╥ ┬ ╩ ╧ ╨ ┴ ⊟ ⊞", "&boxHd; &boxhD; &boxhd; &boxHU; &boxHu; &boxhU; &boxhu; &boxminus; &boxplus;"),
("⊠ ╝ ╜ ╛ ┘ ╚ ╙ ╘ └", "&boxtimes; &boxUL; &boxUl; &boxuL; &boxul; &boxUR; &boxUr; &boxuR; &boxur;"),
("║ │ ╬ ╫ ╪ ┼ ╣ ╢ ╡ ┤", "&boxV; &boxv; &boxVH; &boxVh; &boxvH; &boxvh; &boxVL; &boxVl; &boxvL; &boxvl;"),
("╠ ╟ ╞ ├ ˘ ˘ ¦ ¦", "&boxVR; &boxVr; &boxvR; &boxvr; &bprime; &breve; &breve; &brvbar; &brvbar;"),
(" 𝒷 ⁏ ∽ ⋍ \\ ⧅ ⟈ • •", "&Bscr; &bscr; &bsemi; &bsim; &bsime; \\ &bsolb; &bsolhsub; &bull; &bull;"),
# ("≎ ⪮ ≏ ≎ ≏ Ć ć ⋒ ∩", "&bump; &bumpE; &bumpe; &Bumpeq; &bumpeq; &Cacute; &cacute; &Cap; &cap;"),
# ("⩄ ⩉ ⩋ ⩇ ⩀ ", "&capand; &capbrcup; &capcap; &capcup; &capdot; &CapitalDifferentialD; &caret;"),
# ("ˇ ⩍ Č č Ç ç Ç", "&caron; &Cayleys; &ccaps; &Ccaron; &ccaron; &Ccedil; &ccedil; &Ccedil;"),
# ("ç Ĉ ĉ ∰ ⩌ ⩐ Ċ ċ ¸", "&ccedil; &Ccirc; &ccirc; &Cconint; &ccups; &ccupssm; &Cdot; &cdot; &cedil;"),
# ("¸ ¸ ⦲ ¢ ¢ · · 𝔠", "&cedil; &Cedilla; &cemptyv; &cent; &cent; &CenterDot; &centerdot; &Cfr; &cfr;"),
# ("Ч ч ✓ ✓ Χ χ ○ ˆ ≗", "&CHcy; &chcy; &check; &checkmark; &Chi; &chi; &cir; &circ; &circeq;"),
# ("↺ ↻ ⊛ ⊚ ⊝", "&circlearrowleft; &circlearrowright; &circledast; &circledcirc; &circleddash;"),
# ("⊙ ® Ⓢ ⊖ ⊕ ⊗", "&CircleDot; &circledR; &circledS; &CircleMinus; &CirclePlus; &CircleTimes;"),
# ("⧃ ≗ ⨐ ⫯ ⧂ ∲", "&cirE; &cire; &cirfnint; &cirmid; &cirscir; &ClockwiseContourIntegral;"),
# ("” ♣ ♣ ∷ :", "&CloseCurlyDoubleQuote; &CloseCurlyQuote; &clubs; &clubsuit; &Colon; &colon;"),
# ("⩴ ≔ ≔ , @ ∁ ∘ ∁", "&Colone; &colone; &coloneq; &comma; &commat; &comp; &compfn; &complement;"),
# (" ≅ ⩭ ≡ ∯ ∮ ∮", "&complexes; &cong; &congdot; &Congruent; &Conint; &conint; &ContourIntegral;"),
# (" 𝕔 ∐ ∐ © © © © ℗", "&Copf; &copf; &coprod; &Coproduct; &COPY; &copy; &COPY; &copy; &copysr;"),
# ("∳ ↵ 𝒞 𝒸 ⫏", "&CounterClockwiseContourIntegral; &crarr; &Cross; &cross; &Cscr; &cscr; &csub;"),
# ("⫑ ⫐ ⫒ ⋯ ⤸ ⤵ ⋞ ⋟ ↶", "&csube; &csup; &csupe; &ctdot; &cudarrl; &cudarrr; &cuepr; &cuesc; &cularr;"),
# ("⤽ ⋓ ⩈ ≍ ⩆ ⩊ ⊍ ⩅", "&cularrp; &Cup; &cup; &cupbrcap; &CupCap; &cupcap; &cupcup; &cupdot; &cupor;"),
# ("↷ ⤼ ⋞ ⋟ ⋎ ⋏", "&curarr; &curarrm; &curlyeqprec; &curlyeqsucc; &curlyvee; &curlywedge;"),
# ("¤ ¤ ↶ ↷ ⋎ ⋏", "&curren; &curren; &curvearrowleft; &curvearrowright; &cuvee; &cuwed;"),
# ("∲ ∱ ⌭ ‡ † ℸ ↡ ⇓ ↓", "&cwconint; &cwint; &cylcty; &Dagger; &dagger; &daleth; &Darr; &dArr; &darr;"),
# (" ⫤ ⊣ ⤏ ˝ Ď ď Д д ", "&dash; &Dashv; &dashv; &dbkarow; &dblac; &Dcaron; &dcaron; &Dcy; &dcy; &DD;"),
# (" ‡ ⇊ ⤑ ⩷ ° ° ∇ Δ δ", "&dd; &ddagger; &ddarr; &DDotrahd; &ddotseq; &deg; &deg; &Del; &Delta; &delta;"),
# ("⦱ ⥿ 𝔇 𝔡 ⥥ ⇃ ⇂ ´", "&demptyv; &dfisht; &Dfr; &dfr; &dHar; &dharl; &dharr; &DiacriticalAcute;"),
# ("˙ ˝ `", "&DiacriticalDot; &DiacriticalDoubleAcute; &DiacriticalGrave;"),
# ("˜ ⋄ ⋄ ⋄ ♦ ♦ ¨", "&DiacriticalTilde; &diam; &Diamond; &diamond; &diamondsuit; &diams; &die;"),
# (" ϝ ⋲ ÷ ÷ ÷ ⋇", "&DifferentialD; &digamma; &disin; &div; &divide; &divide; &divideontimes;"),
# ("⋇ Ђ ђ ⌞ ⌍ $ 𝔻 𝕕 ¨ ˙", "&divonx; &DJcy; &djcy; &dlcorn; &dlcrop; &dollar; &Dopf; &dopf; &Dot; &dot;"),
# ("⃜ ≐ ≑ ≐ ∸ ∔ ⊡", "&DotDot; &doteq; &doteqdot; &DotEqual; &dotminus; &dotplus; &dotsquare;"),
# ("⌆ ∯ ¨ ⇓", "&doublebarwedge; &DoubleContourIntegral; &DoubleDot; &DoubleDownArrow;"),
# ("⇐ ⇔ ⫤ ⟸", "&DoubleLeftArrow; &DoubleLeftRightArrow; &DoubleLeftTee; &DoubleLongLeftArrow;"),
# ("⟺ ⟹ ⇒", "&DoubleLongLeftRightArrow; &DoubleLongRightArrow; &DoubleRightArrow;"),
# ("⊨ ⇑ ⇕ ∥", "&DoubleRightTee; &DoubleUpArrow; &DoubleUpDownArrow; &DoubleVerticalBar;"),
# ("↓ ⇓ ↓ ⤓ ⇵", "&DownArrow; &Downarrow; &downarrow; &DownArrowBar; &DownArrowUpArrow;"),
# ("̑ ⇊ ⇃ ⇂", "&DownBreve; &downdownarrows; &downharpoonleft; &downharpoonright;"),
# ("⥐ ⥞ ↽ ⥖", "&DownLeftRightVector; &DownLeftTeeVector; &DownLeftVector; &DownLeftVectorBar;"),
# ("⥟ ⇁ ⥗ ", "&DownRightTeeVector; &DownRightVector; &DownRightVectorBar; &DownTee;"),
# ("↧ ⤐ ⌟ ⌌ 𝒟 𝒹 Ѕ ѕ ⧶", "&DownTeeArrow; &drbkarow; &drcorn; &drcrop; &Dscr; &dscr; &DScy; &dscy; &dsol;"),
# ("Đ đ ⋱ ▿ ▾ ⇵ ⥯ ⦦ Џ", "&Dstrok; &dstrok; &dtdot; &dtri; &dtrif; &duarr; &duhar; &dwangle; &DZcy;"),
# ("џ ⟿ É é É é ⩮ Ě", "&dzcy; &dzigrarr; &Eacute; &eacute; &Eacute; &eacute; &easter; &Ecaron;"),
# ("ě ≖ Ê ê Ê ê ≕ Э э ⩷", "&ecaron; &ecir; &Ecirc; &ecirc; &Ecirc; &ecirc; &ecolon; &Ecy; &ecy; &eDDot;"),
# ("Ė ≑ ė 𝔈 𝔢 ⪚ È è È", "&Edot; &eDot; &edot; &ee; &efDot; &Efr; &efr; &eg; &Egrave; &egrave; &Egrave;"),
# ("è ⪖ ⪘ ⪙ ∈ ⏧ ⪕ ⪗ Ē", "&egrave; &egs; &egsdot; &el; &Element; &elinters; &ell; &els; &elsdot; &Emacr;"),
# ("ē ∅ ∅ ◻ ∅ ▫", "&emacr; &empty; &emptyset; &EmptySmallSquare; &emptyv; &EmptyVerySmallSquare;"),
# (" Ŋ ŋ Ę ę 𝔼 𝕖", "&emsp13; &emsp14; &emsp; &ENG; &eng; &ensp; &Eogon; &eogon; &Eopf; &eopf;"),
# ("⋕ ⧣ ⩱ ε Ε ε ϵ ≖ ≕", "&epar; &eparsl; &eplus; &epsi; &Epsilon; &epsilon; &epsiv; &eqcirc; &eqcolon;"),
# ("≂ ⪖ ⪕ ⩵ = ≂ ≟", "&eqsim; &eqslantgtr; &eqslantless; &Equal; &equals; &EqualTilde; &equest;"),
# ("⇌ ≡ ⩸ ⧥ ⥱ ≓ ", "&Equilibrium; &equiv; &equivDD; &eqvparsl; &erarr; &erDot; &Escr; &escr;"),
# ("≐ ⩳ ≂ Η η Ð ð Ð ð Ë ë Ë", "&esdot; &Esim; &esim; &Eta; &eta; &ETH; &eth; &ETH; &eth; &Euml; &euml; &Euml;"),
# ("ë € ! ∃ ∃ ", "&euml; &euro; &excl; &exist; &Exists; &expectation; &ExponentialE;"),
# (" ≒ Ф ф ♀ ffi ff ffl", "&exponentiale; &fallingdotseq; &Fcy; &fcy; &female; &ffilig; &fflig; &ffllig;"),
# ("𝔉 𝔣 fi ◼ ▪ ♭ fl", "&Ffr; &ffr; &filig; &FilledSmallSquare; &FilledVerySmallSquare; &flat; &fllig;"),
# ("▱ ƒ 𝔽 𝕗 ∀ ∀ ⋔ ⫙ ", "&fltns; &fnof; &Fopf; &fopf; &ForAll; &forall; &fork; &forkv; &Fouriertrf;"),
# ("⨍ ½ ½ ⅓ ¼ ¼ ⅕ ⅙", "&fpartint; &frac12; &frac12; &frac13; &frac14; &frac14; &frac15; &frac16;"),
# ("⅛ ⅔ ⅖ ¾ ¾ ⅗ ⅜ ⅘", "&frac18; &frac23; &frac25; &frac34; &frac34; &frac35; &frac38; &frac45;"),
# ("⅚ ⅝ ⅞ 𝒻 ǵ Γ", "&frac56; &frac58; &frac78; &frasl; &frown; &Fscr; &fscr; &gacute; &Gamma;"),
# ("γ Ϝ ϝ ⪆ Ğ ğ Ģ Ĝ ĝ", "&gamma; &Gammad; &gammad; &gap; &Gbreve; &gbreve; &Gcedil; &Gcirc; &gcirc;"),
# ("Г г Ġ ġ ≧ ≥ ⪌ ⋛ ≥ ≧ ⩾ ⩾", "&Gcy; &gcy; &Gdot; &gdot; &gE; &ge; &gEl; &gel; &geq; &geqq; &geqslant; &ges;"),
# ("⪩ ⪀ ⪂ ⪄ ⪔ 𝔊 𝔤 ⋙ ≫ ⋙", "&gescc; &gesdot; &gesdoto; &gesdotol; &gesles; &Gfr; &gfr; &Gg; &gg; &ggg;"),
# ("ℷ Ѓ ѓ ≷ ⪥ ⪒ ⪤ ⪊ ⪊ ≩ ⪈", "&gimel; &GJcy; &gjcy; &gl; &gla; &glE; &glj; &gnap; &gnapprox; &gnE; &gne;"),
# ("⪈ ≩ ⋧ 𝔾 𝕘 ` ≥ ⋛", "&gneq; &gneqq; &gnsim; &Gopf; &gopf; &grave; &GreaterEqual; &GreaterEqualLess;"),
# ("≧ ⪢ ≷ ⩾", "&GreaterFullEqual; &GreaterGreater; &GreaterLess; &GreaterSlantEqual;"),
# ("≳ 𝒢 ≳ ⪎ ⪐ > > > ≫ >", "&GreaterTilde; &Gscr; &gscr; &gsim; &gsime; &gsiml; &GT; &gt; &GT; &Gt; &gt;"),
# ("⪧ ⩺ ⋗ ⦕ ⩼ ⪆ ⥸ ⋗", "&gtcc; &gtcir; &gtdot; &gtlPar; &gtquest; &gtrapprox; &gtrarr; &gtrdot;"),
# ("⋛ ⪌ ≷ ≳ ˇ ½ ", "&gtreqless; &gtreqqless; &gtrless; &gtrsim; &Hacek; &hairsp; &half; &hamilt;"),
# ("Ъ ъ ⇔ ↔ ⥈ ↭ ^ ℏ Ĥ ĥ", "&HARDcy; &hardcy; &hArr; &harr; &harrcir; &harrw; &Hat; &hbar; &Hcirc; &hcirc;"),
# ("♥ ♥ … ⊹ 𝔥 ⤥", "&hearts; &heartsuit; &hellip; &hercon; &Hfr; &hfr; &HilbertSpace; &hksearow;"),
# ("⤦ ⇿ ∻ ↩ ↪ 𝕙", "&hkswarow; &hoarr; &homtht; &hookleftarrow; &hookrightarrow; &Hopf; &hopf;"),
# ("― ─ 𝒽 ℏ Ħ ħ", "&horbar; &HorizontalLine; &Hscr; &hscr; &hslash; &Hstrok; &hstrok;"),
# ("≎ ≏ Í í Í", "&HumpDownHump; &HumpEqual; &hybull; &hyphen; &Iacute; &iacute; &Iacute;"),
# ("í Î î Î î И и İ Е е", "&iacute; &ic; &Icirc; &icirc; &Icirc; &icirc; &Icy; &icy; &Idot; &IEcy; &iecy;"),
# ("¡ ¡ ⇔ 𝔦 Ì ì Ì ì ", "&iexcl; &iexcl; &iff; &Ifr; &ifr; &Igrave; &igrave; &Igrave; &igrave; &ii;"),
# ("⨌ ∭ ⧜ ℩ IJ ij Ī ī ", "&iiiint; &iiint; &iinfin; &iiota; &IJlig; &ijlig; &Im; &Imacr; &imacr; &image;"),
# (" ı ⊷ Ƶ ⇒ ∈", "&ImaginaryI; &imagline; &imagpart; &imath; &imof; &imped; &Implies; &in;"),
# ("℅ ∞ ⧝ ı ∬ ∫ ⊺ ", "&incare; &infin; &infintie; &inodot; &Int; &int; &intcal; &integers;"),
# ("∫ ⊺ ⋂ ⨗ ⨼ ", "&Integral; &intercal; &Intersection; &intlarhk; &intprod; &InvisibleComma;"),
# (" Ё ё Į į 𝕀 𝕚 Ι ι", "&InvisibleTimes; &IOcy; &iocy; &Iogon; &iogon; &Iopf; &iopf; &Iota; &iota;"),
# ("⨼ ¿ ¿ 𝒾 ∈ ⋵ ⋹ ⋴", "&iprod; &iquest; &iquest; &Iscr; &iscr; &isin; &isindot; &isinE; &isins;"),
# ("⋳ ∈ Ĩ ĩ І і Ï ï Ï", "&isinsv; &isinv; &it; &Itilde; &itilde; &Iukcy; &iukcy; &Iuml; &iuml; &Iuml;"),
# ("ï Ĵ ĵ Й й 𝔍 𝔧 ȷ 𝕁 𝕛 𝒥", "&iuml; &Jcirc; &jcirc; &Jcy; &jcy; &Jfr; &jfr; &jmath; &Jopf; &jopf; &Jscr;"),
# ("𝒿 Ј ј Є є Κ κ ϰ Ķ", "&jscr; &Jsercy; &jsercy; &Jukcy; &jukcy; &Kappa; &kappa; &kappav; &Kcedil;"),
# ("ķ К к 𝔎 𝔨 ĸ Х х Ќ ќ 𝕂", "&kcedil; &Kcy; &kcy; &Kfr; &kfr; &kgreen; &KHcy; &khcy; &KJcy; &kjcy; &Kopf;"),
# ("𝕜 𝒦 𝓀 ⇚ Ĺ ĺ ⦴ Λ", "&kopf; &Kscr; &kscr; &lAarr; &Lacute; &lacute; &laemptyv; &lagran; &Lambda;"),
# ("λ ⟪ ⟨ ⦑ ⟨ ⪅ « «", "&lambda; &Lang; &lang; &langd; &langle; &lap; &Laplacetrf; &laquo; &laquo;"),
# ("↞ ⇐ ← ⇤ ⤟ ⤝ ↩ ↫ ⤹", "&Larr; &lArr; &larr; &larrb; &larrbfs; &larrfs; &larrhk; &larrlp; &larrpl;"),
# ("⥳ ↢ ⪫ ⤛ ⤙ ⪭ ⤎ ⤌ ", "&larrsim; &larrtl; &lat; &lAtail; &latail; &late; &lBarr; &lbarr; &lbbrk;"),
# ("{ [ ⦋ ⦏ ⦍ Ľ ľ Ļ", "&lbrace; &lbrack; &lbrke; &lbrksld; &lbrkslu; &Lcaron; &lcaron; &Lcedil;"),
# ("ļ ⌈ { Л л ⤶ “ „ ⥧", "&lcedil; &lceil; &lcub; &Lcy; &lcy; &ldca; &ldquo; &ldquor; &ldrdhar;"),
# ("⥋ ↲ ≦ ≤ ⟨ ← ⇐", "&ldrushar; &ldsh; &lE; &le; &LeftAngleBracket; &LeftArrow; &Leftarrow;"),
# ("← ⇤ ⇆ ↢ ⌈", "&leftarrow; &LeftArrowBar; &LeftArrowRightArrow; &leftarrowtail; &LeftCeiling;"),
# ("⟦ ⥡ ⇃ ⥙", "&LeftDoubleBracket; &LeftDownTeeVector; &LeftDownVector; &LeftDownVectorBar;"),
# ("⌊ ↽ ↼ ⇇", "&LeftFloor; &leftharpoondown; &leftharpoonup; &leftleftarrows;"),
# ("↔ ⇔ ↔ ⇆", "&LeftRightArrow; &Leftrightarrow; &leftrightarrow; &leftrightarrows;"),
# ("⇋ ↭ ⥎ ⊣", "&leftrightharpoons; &leftrightsquigarrow; &LeftRightVector; &LeftTee;"),
# ("↤ ⥚ ⋋ ⊲", "&LeftTeeArrow; &LeftTeeVector; &leftthreetimes; &LeftTriangle;"),
# ("⧏ ⊴ ⥑ ⥠", "&LeftTriangleBar; &LeftTriangleEqual; &LeftUpDownVector; &LeftUpTeeVector;"),
# ("↿ ⥘ ↼ ⥒ ⪋ ⋚", "&LeftUpVector; &LeftUpVectorBar; &LeftVector; &LeftVectorBar; &lEg; &leg;"),
# ("≤ ≦ ⩽ ⩽ ⪨ ⩿ ⪁ ⪃ ⪓", "&leq; &leqq; &leqslant; &les; &lescc; &lesdot; &lesdoto; &lesdotor; &lesges;"),
# ("⪅ ⋖ ⋚ ⪋ ⋚", "&lessapprox; &lessdot; &lesseqgtr; &lesseqqgtr; &LessEqualGreater;"),
# ("≦ ≶ ≶ ⪡ ≲ ⩽", "&LessFullEqual; &LessGreater; &lessgtr; &LessLess; &lesssim; &LessSlantEqual;"),
# ("≲ ⥼ ⌊ 𝔏 𝔩 ≶ ⪑ ⥢ ↽ ↼", "&LessTilde; &lfisht; &lfloor; &Lfr; &lfr; &lg; &lgE; &lHar; &lhard; &lharu;"),
# ("⥪ ▄ Љ љ ⋘ ≪ ⇇ ⌞ ⇚", "&lharul; &lhblk; &LJcy; &ljcy; &Ll; &ll; &llarr; &llcorner; &Lleftarrow;"),
# ("⥫ ◺ Ŀ ŀ ⎰ ⎰ ⪉ ⪉", "&llhard; &lltri; &Lmidot; &lmidot; &lmoust; &lmoustache; &lnap; &lnapprox;"),
# ("≨ ⪇ ⪇ ≨ ⋦ ⟬ ⇽ ⟦ ⟵", "&lnE; &lne; &lneq; &lneqq; &lnsim; &loang; &loarr; &lobrk; &LongLeftArrow;"),
# ("⟸ ⟵ ⟷ ⟺", "&Longleftarrow; &longleftarrow; &LongLeftRightArrow; &Longleftrightarrow;"),
# ("⟷ ⟼ ⟶ ⟹", "&longleftrightarrow; &longmapsto; &LongRightArrow; &Longrightarrow;"),
# ("⟶ ↫ ↬ ⦅ 𝕃 𝕝", "&longrightarrow; &looparrowleft; &looparrowright; &lopar; &Lopf; &lopf;"),
# ("⨭ ⨴ _ ↙ ↘ ◊", "&loplus; &lotimes; &lowast; &lowbar; &LowerLeftArrow; &LowerRightArrow; &loz;"),
# ("◊ ⧫ ( ⦓ ⇆ ⌟ ⇋ ⥭ ", "&lozenge; &lozf; &lpar; &lparlt; &lrarr; &lrcorner; &lrhar; &lrhard; &lrm;"),
# ("⊿ 𝓁 ↰ ↰ ≲ ⪍ ⪏ [", "&lrtri; &lsaquo; &Lscr; &lscr; &Lsh; &lsh; &lsim; &lsime; &lsimg; &lsqb;"),
# (" Ł ł < < < ≪ < ⪦ ⩹", "&lsquo; &lsquor; &Lstrok; &lstrok; &LT; &lt; &LT; &Lt; &lt; &ltcc; &ltcir;"),
# ("⋖ ⋋ ⋉ ⥶ ⩻ ◃ ⊴ ◂ ⦖", "&ltdot; &lthree; &ltimes; &ltlarr; &ltquest; &ltri; &ltrie; &ltrif; &ltrPar;"),
# ("⥊ ⥦ ¯ ¯ ♂ ✠ ✠ ⤅ ↦", "&lurdshar; &luruhar; &macr; &macr; &male; &malt; &maltese; &Map; &map;"),
# ("↦ ↧ ↤ ↥ ▮ ⨩ М м", "&mapsto; &mapstodown; &mapstoleft; &mapstoup; &marker; &mcomma; &Mcy; &mcy;"),
# ("— ∺ ∡ 𝔐 𝔪 ℧", "&mdash; &mDDot; &measuredangle; &MediumSpace; &Mellintrf; &Mfr; &mfr; &mho;"),
# ("µ µ * ⫰ · · ⊟", "&micro; &micro; &mid; &midast; &midcir; &middot; &middot; &minus; &minusb;"),
# ("∸ ⨪ ∓ ⫛ … ∓ ⊧ 𝕄 𝕞", "&minusd; &minusdu; &MinusPlus; &mlcp; &mldr; &mnplus; &models; &Mopf; &mopf;"),
# ("∓ 𝓂 ∾ Μ μ ⊸ ⊸ ∇ Ń", "&mp; &Mscr; &mscr; &mstpos; &Mu; &mu; &multimap; &mumap; &nabla; &Nacute;"),
# ("ń ≉ ʼn ≉ ♮ ♮    ", "&nacute; &nap; &napos; &napprox; &natur; &natural; &naturals; &nbsp; &nbsp;"),
# ("⩃ Ň ň Ņ ņ ≇ ⩂ Н н ", "&ncap; &Ncaron; &ncaron; &Ncedil; &ncedil; &ncong; &ncup; &Ncy; &ncy; &ndash;"),
# ("≠ ⤤ ⇗ ↗ ↗ ", "&ne; &nearhk; &neArr; &nearr; &nearrow; &NegativeMediumSpace;"),
# (" ≢", "&NegativeThickSpace; &NegativeThinSpace; &NegativeVeryThinSpace; &nequiv;"),
# ("⤨ ≫ ≪ \n # ∄ ∄", "&nesear; &NestedGreaterGreater; &NestedLessLess; &NewLine; &nexist; &nexists;"),
# ("𝔑 𝔫 ≱ ≱ ≵ ≯ ≯ ⇎ ↮ ⫲ ∋", "&Nfr; &nfr; &nge; &ngeq; &ngsim; &ngt; &ngtr; &nhArr; &nharr; &nhpar; &ni;"),
# ("⋼ ⋺ ∋ Њ њ ⇍ ↚ ‥ ≰ ⇍", "&nis; &nisd; &niv; &NJcy; &njcy; &nlArr; &nlarr; &nldr; &nle; &nLeftarrow;"),
# ("↚ ⇎ ↮ ≰ ≮ ≴ ≮", "&nleftarrow; &nLeftrightarrow; &nleftrightarrow; &nleq; &nless; &nlsim; &nlt;"),
# ("⋪ ⋬ ∤   𝕟 ¬ ⫬", "&nltri; &nltrie; &nmid; &NoBreak; &NonBreakingSpace; &Nopf; &nopf; &not; &Not;"),
# ("¬ ≢ ≭ ∦ ∉", "&not; &NotCongruent; &NotCupCap; &NotDoubleVerticalBar; &NotElement;"),
# ("≠ ∄ ≯ ≱ ≹", "&NotEqual; &NotExists; &NotGreater; &NotGreaterEqual; &NotGreaterLess;"),
# ("≵ ∉ ∉ ⋷ ⋶ ⋪", "&NotGreaterTilde; &notin; &notinva; &notinvb; &notinvc; &NotLeftTriangle;"),
# ("⋬ ≮ ≰ ≸", "&NotLeftTriangleEqual; &NotLess; &NotLessEqual; &NotLessGreater;"),
# ("≴ ∌ ∌ ⋾ ⋽ ⊀", "&NotLessTilde; &notni; &notniva; &notnivb; &notnivc; &NotPrecedes;"),
# ("⋠ ∌ ⋫", "&NotPrecedesSlantEqual; &NotReverseElement; &NotRightTriangle;"),
# ("⋭ ⋢ ⋣", "&NotRightTriangleEqual; &NotSquareSubsetEqual; &NotSquareSupersetEqual;"),
# ("⊈ ⊁ ⋡ ⊉", "&NotSubsetEqual; &NotSucceeds; &NotSucceedsSlantEqual; &NotSupersetEqual;"),
# ("≁ ≄ ≇ ≉", "&NotTilde; &NotTildeEqual; &NotTildeFullEqual; &NotTildeTilde;"),
# ("∤ ∦ ∦ ⨔ ⊀ ⋠ ⊀ ⇏", "&NotVerticalBar; &npar; &nparallel; &npolint; &npr; &nprcue; &nprec; &nrArr;"),
# ("↛ ⇏ ↛ ⋫ ⋭ ⊁ ⋡ 𝒩", "&nrarr; &nRightarrow; &nrightarrow; &nrtri; &nrtrie; &nsc; &nsccue; &Nscr;"),
# ("𝓃 ∤ ∦ ≁ ≄ ≄ ∤ ∦", "&nscr; &nshortmid; &nshortparallel; &nsim; &nsime; &nsimeq; &nsmid; &nspar;"),
# ("⋢ ⋣ ⊄ ⊈ ⊈ ⊁ ⊅ ⊉", "&nsqsube; &nsqsupe; &nsub; &nsube; &nsubseteq; &nsucc; &nsup; &nsupe;"),
# ("⊉ ≹ Ñ ñ Ñ ñ ≸ ⋪", "&nsupseteq; &ntgl; &Ntilde; &ntilde; &Ntilde; &ntilde; &ntlg; &ntriangleleft;"),
# ("⋬ ⋫ ⋭ Ν ν # №", "&ntrianglelefteq; &ntriangleright; &ntrianglerighteq; &Nu; &nu; &num; &numero;"),
# (" ⊯ ⊮ ⊭ ⊬ ⤄ ⧞ ⤂", "&numsp; &nVDash; &nVdash; &nvDash; &nvdash; &nvHarr; &nvinfin; &nvlArr;"),
# ("⤃ ⤣ ⇖ ↖ ↖ ⤧ Ó ó", "&nvrArr; &nwarhk; &nwArr; &nwarr; &nwarrow; &nwnear; &Oacute; &oacute;"),
# ("Ó ó ⊛ ⊚ Ô ô Ô ô О о", "&Oacute; &oacute; &oast; &ocir; &Ocirc; &ocirc; &Ocirc; &ocirc; &Ocy; &ocy;"),
# ("⊝ Ő ő ⨸ ⊙ ⦼ Œ œ ⦿ 𝔒", "&odash; &Odblac; &odblac; &odiv; &odot; &odsold; &OElig; &oelig; &ofcir; &Ofr;"),
# ("𝔬 ˛ Ò ò Ò ò ⧁ ⦵ Ω ∮", "&ofr; &ogon; &Ograve; &ograve; &Ograve; &ograve; &ogt; &ohbar; &ohm; &oint;"),
# ("↺ ⦾ ⦻ ‾ ⧀ Ō ō Ω ω", "&olarr; &olcir; &olcross; &oline; &olt; &Omacr; &omacr; &Omega; &omega;"),
# ("Ο ο ⦶ ⊖ 𝕆 𝕠 ⦷", "&Omicron; &omicron; &omid; &ominus; &Oopf; &oopf; &opar;"),
# ("“ ⦹ ⊕ ⩔ ↻", "&OpenCurlyDoubleQuote; &OpenCurlyQuote; &operp; &oplus; &Or; &or; &orarr;"),
# ("⩝ ª ª º º ⊶ ⩖ ⩗", "&ord; &order; &orderof; &ordf; &ordf; &ordm; &ordm; &origof; &oror; &orslope;"),
# ("⩛ Ⓢ 𝒪 Ø ø Ø ø ⊘ Õ", "&orv; &oS; &Oscr; &oscr; &Oslash; &oslash; &Oslash; &oslash; &osol; &Otilde;"),
# ("õ Õ õ ⨷ ⊗ ⨶ Ö ö Ö", "&otilde; &Otilde; &otilde; &Otimes; &otimes; &otimesas; &Ouml; &ouml; &Ouml;"),
# ("ö ⌽ ‾ ⏞ ⎴ ⏜ ∥", "&ouml; &ovbar; &OverBar; &OverBrace; &OverBracket; &OverParenthesis; &par;"),
# ("¶ ¶ ∥ ⫳ ⫽ ∂ ∂ П п", "&para; &para; &parallel; &parsim; &parsl; &part; &PartialD; &Pcy; &pcy;"),
# ("% . ‰ ⊥ ‱ 𝔓 𝔭 Φ φ ϕ", "&percnt; &period; &permil; &perp; &pertenk; &Pfr; &pfr; &Phi; &phi; &phiv;"),
# (" ☎ Π π ⋔ ϖ ℏ ℏ", "&phmmat; &phone; &Pi; &pi; &pitchfork; &piv; &planck; &planckh; &plankv;"),
# ("+ ⨣ ⊞ ⨢ ∔ ⨥ ⩲ ±", "&plus; &plusacir; &plusb; &pluscir; &plusdo; &plusdu; &pluse; &PlusMinus;"),
# ("± ± ⨦ ⨧ ± ", "&plusmn; &plusmn; &plussim; &plustwo; &pm; &Poincareplane; &pointint; &Popf;"),
# ("𝕡 £ £ ⪻ ≺ ⪷ ≼ ⪳ ⪯ ≺", "&popf; &pound; &pound; &Pr; &pr; &prap; &prcue; &prE; &pre; &prec;"),
# ("⪷ ≼ ≺ ⪯ ≼", "&precapprox; &preccurlyeq; &Precedes; &PrecedesEqual; &PrecedesSlantEqual;"),
# ("≾ ⪯ ⪹ ⪵ ⋨ ≾ ″", "&PrecedesTilde; &preceq; &precnapprox; &precneqq; &precnsim; &precsim; &Prime;"),
# (" ⪹ ⪵ ⋨ ∏ ∏ ⌮", "&prime; &primes; &prnap; &prnE; &prnsim; &prod; &Product; &profalar;"),
# ("⌒ ⌓ ∝ ∷ ∝ ∝ ≾", "&profline; &profsurf; &prop; &Proportion; &Proportional; &propto; &prsim;"),
# ("⊰ 𝒫 𝓅 Ψ ψ 𝔔 𝔮 𝕢", "&prurel; &Pscr; &pscr; &Psi; &psi; &puncsp; &Qfr; &qfr; &qint; &Qopf; &qopf;"),
# ("⁗ 𝒬 𝓆 ⨖ ? ≟ " "", "&qprime; &Qscr; &qscr; &quaternions; &quatint; &quest; &questeq; &QUOT; &quot;"),
# ("" " ⇛ Ŕ ŕ √ ⦳ ⟫ ⟩", "&QUOT; &quot; &rAarr; &Racute; &racute; &radic; &raemptyv; &Rang; &rang;"),
# ("⦒ ⦥ ⟩ » » ↠ ⇒ → ⥵ ⇥", "&rangd; &range; &rangle; &raquo; &raquo; &Rarr; &rArr; &rarr; &rarrap; &rarrb;"),
# ("⤠ ⤳ ⤞ ↪ ↬ ⥅ ⥴ ⤖", "&rarrbfs; &rarrc; &rarrfs; &rarrhk; &rarrlp; &rarrpl; &rarrsim; &Rarrtl;"),
# ("↣ ↝ ⤜ ⤚ ⤐ ⤏ ⤍", "&rarrtl; &rarrw; &rAtail; &ratail; &ratio; &rationals; &RBarr; &rBarr; &rbarr;"),
# (" } ] ⦌ ⦎ ⦐ Ř ř", "&rbbrk; &rbrace; &rbrack; &rbrke; &rbrksld; &rbrkslu; &Rcaron; &rcaron;"),
# ("Ŗ ŗ ⌉ } Р р ⤷ ⥩ ” ”", "&Rcedil; &rcedil; &rceil; &rcub; &Rcy; &rcy; &rdca; &rdldhar; &rdquo; &rdquor;"),
# ("↳ ▭ ® ® ® ®", "&rdsh; &Re; &real; &realine; &realpart; &reals; &rect; &REG; &reg; &REG; &reg;"),
# ("∋ ⇋ ⥯ ⥽ ⌋", "&ReverseElement; &ReverseEquilibrium; &ReverseUpEquilibrium; &rfisht; &rfloor;"),
# (" 𝔯 ⥤ ⇁ ⇀ ⥬ Ρ ρ ϱ", "&Rfr; &rfr; &rHar; &rhard; &rharu; &rharul; &Rho; &rho; &rhov;"),
# ("⟩ → ⇒ → ⇥", "&RightAngleBracket; &RightArrow; &Rightarrow; &rightarrow; &RightArrowBar;"),
# ("⇄ ↣ ⌉ ⟧", "&RightArrowLeftArrow; &rightarrowtail; &RightCeiling; &RightDoubleBracket;"),
# ("⥝ ⇂ ⥕ ⌋", "&RightDownTeeVector; &RightDownVector; &RightDownVectorBar; &RightFloor;"),
# ("⇁ ⇀ ⇄ ⇌", "&rightharpoondown; &rightharpoonup; &rightleftarrows; &rightleftharpoons;"),
# ("⇉ ↝ ⊢ ↦", "&rightrightarrows; &rightsquigarrow; &RightTee; &RightTeeArrow;"),
# ("⥛ ⋌ ⊳ ⧐", "&RightTeeVector; &rightthreetimes; &RightTriangle; &RightTriangleBar;"),
# ("⊵ ⥏ ⥜ ↾", "&RightTriangleEqual; &RightUpDownVector; &RightUpTeeVector; &RightUpVector;"),
# ("⥔ ⇀ ⥓ ˚ ≓", "&RightUpVectorBar; &RightVector; &RightVectorBar; &ring; &risingdotseq;"),
# ("⇄ ⇌ ⎱ ⎱ ⫮ ⟭ ⇾ ⟧", "&rlarr; &rlhar; &rlm; &rmoust; &rmoustache; &rnmid; &roang; &roarr; &robrk;"),
# ("⦆ 𝕣 ⨮ ⨵ ⥰ ) ⦔", "&ropar; &Ropf; &ropf; &roplus; &rotimes; &RoundImplies; &rpar; &rpargt;"),
# ("⨒ ⇉ ⇛ 𝓇 ↱ ↱ ]", "&rppolint; &rrarr; &Rrightarrow; &rsaquo; &Rscr; &rscr; &Rsh; &rsh; &rsqb;"),
# (" ⋌ ⋊ ▹ ⊵ ▸ ⧎", "&rsquo; &rsquor; &rthree; &rtimes; &rtri; &rtrie; &rtrif; &rtriltri;"),
# ("⧴ ⥨ ℞ Ś ś ⪼ ≻ ⪸", "&RuleDelayed; &ruluhar; &rx; &Sacute; &sacute; &sbquo; &Sc; &sc; &scap;"),
# ("Š š ≽ ⪴ ⪰ Ş ş Ŝ ŝ", "&Scaron; &scaron; &sccue; &scE; &sce; &Scedil; &scedil; &Scirc; &scirc;"),
# ("⪺ ⪶ ⋩ ⨓ ≿ С с ⋅ ⊡ ⩦", "&scnap; &scnE; &scnsim; &scpolint; &scsim; &Scy; &scy; &sdot; &sdotb; &sdote;"),
# ("⤥ ⇘ ↘ ↘ § § ; ⤩ ", "&searhk; &seArr; &searr; &searrow; &sect; &sect; &semi; &seswar; &setminus;"),
# ("𝔖 𝔰 ⌢ ♯ Щ щ Ш ш", "&setmn; &sext; &Sfr; &sfr; &sfrown; &sharp; &SHCHcy; &shchcy; &SHcy; &shcy;"),
# ("↓ ← ∥ →", "&ShortDownArrow; &ShortLeftArrow; &shortmid; &shortparallel; &ShortRightArrow;"),
# ("↑ ­ ­ Σ σ ς ς ⩪", "&ShortUpArrow; &shy; &shy; &Sigma; &sigma; &sigmaf; &sigmav; &sim; &simdot;"),
# ("≃ ≃ ⪞ ⪠ ⪝ ⪟ ≆ ⨤ ⥲", "&sime; &simeq; &simg; &simgE; &siml; &simlE; &simne; &simplus; &simrarr;"),
# ("← ∘ ⨳ ⧤ ⌣ ⪪", "&slarr; &SmallCircle; &smallsetminus; &smashp; &smeparsl; &smid; &smile; &smt;"),
# ("⪬ Ь ь / ⧄ ⌿ 𝕊 𝕤 ♠", "&smte; &SOFTcy; &softcy; &sol; &solb; &solbar; &Sopf; &sopf; &spades;"),
# ("♠ ∥ ⊓ ⊔ √ ⊏ ⊑ ⊏", "&spadesuit; &spar; &sqcap; &sqcup; &Sqrt; &sqsub; &sqsube; &sqsubset;"),
# ("⊑ ⊐ ⊒ ⊐ ⊒ □ □ □", "&sqsubseteq; &sqsup; &sqsupe; &sqsupset; &sqsupseteq; &squ; &Square; &square;"),
# ("⊓ ⊏ ⊑ ⊐", "&SquareIntersection; &SquareSubset; &SquareSubsetEqual; &SquareSuperset;"),
# ("⊒ ⊔ ▪ ▪ → 𝒮 𝓈", "&SquareSupersetEqual; &SquareUnion; &squarf; &squf; &srarr; &Sscr; &sscr;"),
# (" ⌣ ⋆ ⋆ ☆ ★ ϵ", "&ssetmn; &ssmile; &sstarf; &Star; &star; &starf; &straightepsilon;"),
# ("ϕ ¯ ⋐ ⊂ ⪽ ⫅ ⊆ ⫃ ⫁", "&straightphi; &strns; &Sub; &sub; &subdot; &subE; &sube; &subedot; &submult;"),
# ("⫋ ⊊ ⪿ ⥹ ⋐ ⊂ ⊆ ⫅", "&subnE; &subne; &subplus; &subrarr; &Subset; &subset; &subseteq; &subseteqq;"),
# ("⊆ ⊊ ⫋ ⫇ ⫕ ⫓ ≻", "&SubsetEqual; &subsetneq; &subsetneqq; &subsim; &subsub; &subsup; &succ;"),
# ("⪸ ≽ ≻ ⪰ ≽", "&succapprox; &succcurlyeq; &Succeeds; &SucceedsEqual; &SucceedsSlantEqual;"),
# ("≿ ⪰ ⪺ ⪶ ⋩ ≿", "&SucceedsTilde; &succeq; &succnapprox; &succneqq; &succnsim; &succsim;"),
# ("∋ ∑ ∑ ♪ ¹ ¹ ² ² ³ ³ ⋑", "&SuchThat; &Sum; &sum; &sung; &sup1; &sup1; &sup2; &sup2; &sup3; &sup3; &Sup;"),
# ("⊃ ⪾ ⫘ ⫆ ⊇ ⫄ ⊃ ⊇", "&sup; &supdot; &supdsub; &supE; &supe; &supedot; &Superset; &SupersetEqual;"),
# ("⟉ ⫗ ⥻ ⫂ ⫌ ⊋ ⫀ ⋑", "&suphsol; &suphsub; &suplarr; &supmult; &supnE; &supne; &supplus; &Supset;"),
# ("⊃ ⊇ ⫆ ⊋ ⫌ ⫈ ⫔", "&supset; &supseteq; &supseteqq; &supsetneq; &supsetneqq; &supsim; &supsub;"),
# ("⫖ ⤦ ⇙ ↙ ↙ ⤪ ß ß ", "&supsup; &swarhk; &swArr; &swarr; &swarrow; &swnwar; &szlig; &szlig; &Tab;"),
# ("⌖ Τ τ ⎴ Ť ť Ţ ţ Т т", "&target; &Tau; &tau; &tbrk; &Tcaron; &tcaron; &Tcedil; &tcedil; &Tcy; &tcy;"),
# ("⃛ ⌕ 𝔗 𝔱 ∴ ∴ ∴ Θ θ", "&tdot; &telrec; &Tfr; &tfr; &there4; &Therefore; &therefore; &Theta; &theta;"),
# ("ϑ ϑ ≈ ≈", "&thetasym; &thetav; &thickapprox; &thicksim; &thinsp; &ThinSpace; &thkap;"),
# (" Þ þ Þ þ ˜ ≃", "&thksim; &THORN; &thorn; &THORN; &thorn; &Tilde; &tilde; &TildeEqual;"),
# ("≅ ≈ × × ⊠ ⨱ ⨰", "&TildeFullEqual; &TildeTilde; &times; &times; &timesb; &timesbar; &timesd;"),
# ("∭ ⤨ ⌶ ⫱ 𝕋 𝕥 ⫚ ⤩ ‴", "&tint; &toea; &top; &topbot; &topcir; &Topf; &topf; &topfork; &tosa; &tprime;"),
# ("™ ™ ▵ ▿ ◃ ⊴", "&TRADE; &trade; &triangle; &triangledown; &triangleleft; &trianglelefteq;"),
# ("≜ ▹ ⊵ ◬ ≜ ⨺", "&triangleq; &triangleright; &trianglerighteq; &tridot; &trie; &triminus;"),
# ("⃛ ⨹ ⧍ ⨻ ⏢ 𝒯 𝓉 Ц ц", "&TripleDot; &triplus; &trisb; &tritime; &trpezium; &Tscr; &tscr; &TScy; &tscy;"),
# ("Ћ ћ Ŧ ŧ ≬ ↞", "&TSHcy; &tshcy; &Tstrok; &tstrok; &twixt; &twoheadleftarrow;"),
# ("↠ Ú ú Ú ú ↟ ⇑ ↑", "&twoheadrightarrow; &Uacute; &uacute; &Uacute; &uacute; &Uarr; &uArr; &uarr;"),
# ("⥉ Ў ў Ŭ ŭ Û û Û û", "&Uarrocir; &Ubrcy; &ubrcy; &Ubreve; &ubreve; &Ucirc; &ucirc; &Ucirc; &ucirc;"),
# ("У у ⇅ Ű ű ⥮ ⥾ 𝔘 𝔲 Ù", "&Ucy; &ucy; &udarr; &Udblac; &udblac; &udhar; &ufisht; &Ufr; &ufr; &Ugrave;"),
# ("ù Ù ù ⥣ ↿ ↾ ▀ ⌜ ⌜", "&ugrave; &Ugrave; &ugrave; &uHar; &uharl; &uharr; &uhblk; &ulcorn; &ulcorner;"),
# ("⌏ ◸ Ū ū ¨ ¨ _ ⏟", "&ulcrop; &ultri; &Umacr; &umacr; &uml; &uml; &UnderBar; &UnderBrace;"),
# ("⎵ ⏝ ⊎ Ų ų 𝕌", "&UnderBracket; &UnderParenthesis; &Union; &UnionPlus; &Uogon; &uogon; &Uopf;"),
# ("𝕦 ↑ ⇑ ↑ ⤒ ⇅", "&uopf; &UpArrow; &Uparrow; &uparrow; &UpArrowBar; &UpArrowDownArrow;"),
# ("↕ ⇕ ↕ ⥮ ↿", "&UpDownArrow; &Updownarrow; &updownarrow; &UpEquilibrium; &upharpoonleft;"),
# ("↾ ⊎ ↖ ↗ ϒ υ", "&upharpoonright; &uplus; &UpperLeftArrow; &UpperRightArrow; &Upsi; &upsi;"),
# ("ϒ Υ υ ⊥ ↥ ⇈ ⌝", "&upsih; &Upsilon; &upsilon; &perp; &UpTeeArrow; &upuparrows; &urcorn;"),
# ("⌝ ⌎ Ů ů ◹ 𝒰 𝓊 ⋰ Ũ", "&urcorner; &urcrop; &Uring; &uring; &urtri; &Uscr; &uscr; &utdot; &Utilde;"),
# ("ũ ▵ ▴ ⇈ Ü ü Ü ü ⦧ ⦜", "&utilde; &utri; &utrif; &uuarr; &Uuml; &uuml; &Uuml; &uuml; &uwangle; &vangrt;"),
# ("ϵ ϰ ∅ ϕ ϖ ∝ ⇕", "&varepsilon; &varkappa; &varnothing; &varphi; &varpi; &varpropto; &vArr;"),
# ("↕ ϱ ς ϑ ⊲ ⊳", "&varr; &varrho; &varsigma; &vartheta; &vartriangleleft; &vartriangleright;"),
# ("⫫ ⫨ ⫩ В в ⊫ ⊩ ⊨ ⊢ ⫦", "&Vbar; &vBar; &vBarv; &Vcy; &vcy; &VDash; &Vdash; &vDash; &vdash; &Vdashl;"),
# (" ⊻ ≚ ⋮ ‖ | ‖ |", "&Vee; &vee; &veebar; &veeeq; &vellip; &Verbar; &verbar; &Vert; &vert;"),
# (" | ❘ ≀", "&VerticalBar; &VerticalLine; &VerticalSeparator; &VerticalTilde;"),
# (" 𝔙 𝔳𝕍 𝕧 ∝ ⊳ 𝒱", "&VeryThinSpace; &Vfr; &vfr; &vltri; &Vopf; &vopf; &vprop; &vrtri; &Vscr;"),
# ("𝓋 ⊪ ⦚ Ŵ ŵ ⩟ ⋀ ∧ ≙", "&vscr; &Vvdash; &vzigzag; &Wcirc; &wcirc; &wedbar; &Wedge; &wedge; &wedgeq;"),
# ("℘ 𝔚 𝔴 𝕎 𝕨 ℘ ≀ ≀ 𝒲 𝓌 ⋂", "&weierp; &Wfr; &wfr; &Wopf; &wopf; &wp; &wr; &wreath; &Wscr; &wscr; &xcap;"),
# ("◯ 𝔛 𝔵 ⟺ ⟷ Ξ ξ ⟸ ⟵", "&xcirc; &xcup; &xdtri; &Xfr; &xfr; &xhArr; &xharr; &Xi; &xi; &xlArr; &xlarr;"),
# ("⟼ ⋻ ⨀ 𝕏 𝕩 ⨁ ⨂ ⟹ ⟶ 𝒳", "&xmap; &xnis; &xodot; &Xopf; &xopf; &xoplus; &xotime; &xrArr; &xrarr; &Xscr;"),
# ("𝓍 ⨆ ⨄ △ ⋀ Ý ý Ý", "&xscr; &xsqcup; &xuplus; &xutri; &xvee; &xwedge; &Yacute; &yacute; &Yacute;"),
# ("ý Я я Ŷ ŷ Ы ы ¥ ¥ 𝔜 𝔶", "&yacute; &YAcy; &yacy; &Ycirc; &ycirc; &Ycy; &ycy; &yen; &yen; &Yfr; &yfr;"),
# ("Ї ї 𝕐 𝕪 𝒴 𝓎 Ю ю ÿ Ÿ ÿ", "&YIcy; &yicy; &Yopf; &yopf; &Yscr; &yscr; &YUcy; &yucy; &yuml; &Yuml; &yuml;"),
# ("Ź ź Ž ž З з Ż ż ", "&Zacute; &zacute; &Zcaron; &zcaron; &Zcy; &zcy; &Zdot; &zdot; &zeetrf;"),
# (" Ζ ζ 𝔷 Ж ж ⇝ ", "&ZeroWidthSpace; &Zeta; &zeta; &Zfr; &zfr; &ZHcy; &zhcy; &zigrarr; &Zopf;"),
]
@pytest.mark.parametrize("input_string, expected_output", STRINGS_FOR_ENCODE)
def test_utf_to_html_mnemo(input_string, expected_output):
"""
Проверяет ПОВЕДЕНИЕ: кодирование Unicode-строк в HTML-мнемоники.
"""
# Act (действие) - тестируем
actual_output = codec.encode_from_unicode(input_string, mode="mnemonic")
# Assert (проверка)
assert actual_output == expected_output