Compliance cases

These are the 6,835 inputs a submission must decode. Each output must match the expected text byte for byte. You can run the suite without reading it, or open any case to see its input and expected output.

Run the full compliance suite locally. Replace your-component.wasm with your compiled component. Download the suite

curl -fLo unescape_html.comply.wasm https://calculated.world/comply/unescape_html.wasm
qipx comply your-component.wasm --with unescape_html.comply.wasm
Clear

2,241 of 6,835 cases

Case Name Expected Note Size
004781 overflow-wrap64-e9-decimal Focused regression � Must not wrap: U+FFFD 23 B
004782 overflow-wrap64-e9-hex Focused regression � Must not wrap: U+FFFD 20 B
004783 numeric-one-digit-26233978 Focused regression ␉x One digit without ; still decodes 4 B
004784 numeric-one-digit-262330 Focused regression � One digit without ; still decodes 3 B
004785 numeric-one-digit-26233720 Focused regression ␇ One digit without ; still decodes 4 B
004786 numeric-one-digit-262335 Focused regression ␅ One digit without ; still decodes 3 B
004787 numeric-one-digit-2623332623343b Focused regression ␃␄ One digit without ; still decodes 7 B
004788 leading-zeros Focused regression AA 37 B
004789 hex-mixed-case Focused regression ꯍꯍ 16 B
004790 numeric-followed-by-letter Focused regression AxAgaF Digits stop at the first non-digit 16 B
004824 no-double-decode Focused regression & & < The output of one reference is never decoded again 28 B
004827 reference-then-raw Focused regression &␀A␍&␍ 12 B
004833 large-max-code-point Focused regression ⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩… 97.7 KiB
004834 large-legacy-mix Focused regression © ∉ &x €© ∉ &x €© ∉ &x €© ∉ &x €© ∉ &x €© ∉ &x €… 101.6 KiB
004835 generated/0000 Generated x-A €--�€ ⪥<9ø&󳇟" 53 B
004837 generated/0002 Generated 9򛉙⪮⟨U+00A0⟩&g␉␉&gla␊f🎉日 47 B
004838 generated/0003 Generated 󺔆�Ÿ ∉&andan␊&boxhé 50 B
004839 generated/0004 Generated 日򹰙񏞽gA;▪🎉⟨U+2061⟩&odi񁌛 60 B
004840 generated/0005 Generated &€&varph&bump񖾪 €;񴢠…󅰟g&u&lbrkslϑ-&b 76 B
004841 generated/0006 Generated ==ℂ#␊␀␉-�&subd�䠧g񖧻gé 63 B
004842 generated/0007 Generated ␉ 󃻨gx􃆫€∻9&n␀򛝧 52 B
004843 generated/0008 Generated ␊F>񮡏g9A€FaÊ&cir򆬣� &blackt 59 B
004844 generated/0009 Generated 󉗬&cc'&Aogo🎉9󛏆g⇙F…␊'&=� 62 B
004845 generated/0010 Generated …񆞳Ģ&p-& ␍􌭄g␉&i 44 B
004846 generated/0011 Generated -␍␀f␍∽€&ŸΘ 27 B
004847 generated/0012 Generated ␍񨣸g&€x9&>�x 30 B
004848 generated/0013 Generated =&rig򞲊󲰭gF 23 B
004850 generated/0015 Generated &Not⟨U+FFFF⟩ "ċ򧞵g(Ğ'␊�􍯁񯮉 75 B
004852 generated/0017 Generated "#􂅝𝔾񕜎g񴊳g=€ 41 B
004853 generated/0018 Generated &&NotGre␍╩ 20 B
004854 generated/0019 Generated �g󎁿&s␉␉≺;ﳵg�;␀é< 49 B
004855 generated/0020 Generated 󼑠򧽙gx&Left>🎉␍�g…x 46 B
004856 generated/0021 Generated 9Ÿf 8 B
004857 generated/0022 Generated 󺂘&r␍ -�򚰮&a򦁊⋫Z&r& 55 B
004860 generated/0025 Generated 砫⎱🎉𺼹󪪐�&g€>&scedi;񒺃g 72 B
004862 generated/0027 Generated &lurdshar-Fг;A' 24 B
004863 generated/0028 Generated 򏸱g&al␉&f⊕&vscr… &LeftTri⟨U+00A0⟩ 𽥷 60 B
004865 generated/0030 Generated €9&dzf񧙱g' 18 B
004866 generated/0031 Generated f<␀>&nlE&日>&ntrian日aé�x 33 B
004867 generated/0032 Generated ы󦐓g&Ic⇁0𚤜"� ⟨U+10FFFF⟩&ge🎉 71 B
004868 generated/0033 Generated =-🎉Ÿ⇔∇>07␉日␍􋨯⟹a🎉 68 B
004869 generated/0034 Generated &varsigma⋫񐲨g&swar'&Medium& 40 B
004870 generated/0035 Generated Й><򘳦&gsiě"&YIЏ&co≷� 65 B
004871 generated/0036 Generated ↪>'>'€>#␊€x>&RightTeeA&xhA#񸦵 57 B
004872 generated/0037 Generated &򩀵g񀘳g񿯳Ÿ⟨U+10FFFF⟩&nsuc񌔚␍ x󑽻 򧛷g≍ 89 B
004873 generated/0038 Generated & €97␀…񐘱g&Melli 32 B
004874 generated/0039 Generated &af􁂉Ï🎉␍␍ 23 B
004875 generated/0040 Generated a&boxd򴃴𯹦g ;&é>򦻘򎧻&up 51 B
004876 generated/0041 Generated 򡧑<07 11 B
004877 generated/0042 Generated €�g 13 B

Where these rules come from

Expected outputs come from Python’s html.unescape, changed to keep references to controls and noncharacters the way the WHATWG tokenizer does.