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
All 6,835 cases
| Case | Name | Expected | Note | Size |
|---|---|---|---|---|
| 005800 | generated/0965 Generated |
␀␍⟨U+FFFF⟩&⟨U+00A0⟩ &sup℘ˇ7&
|
40 B | |
| 005801 | generated/0966 Generated |
&Doⅅ;0…Z
|
15 B | |
| 005802 | generated/0967 Generated |
␉⟨U+FFFF⟩=
|
10 B | |
| 005803 | generated/0968 Generated |
&fZ⪹ѓAx9>&napp⎵&#…x=&Vertica
|
65 B | |
| 005804 | generated/0969 Generated |
#F#∩␉ Z'xZ
|
16 B | |
| 005805 | generated/0970 Generated |
'� é&DiacriticalDoubleAcuteZ7;␀>Я'
|
65 B | |
| 005806 | generated/0971 Generated |
x€Ì� gx␉xF>>7
|
50 B | |
| 005807 | generated/0972 Generated |
F�g&l=fF7&�⟨U+00A0⟩>␀Ю⟨U+10FFFF⟩=
|
58 B | |
| 005808 | generated/0973 Generated |
⟨U+00A0⟩=g⟨U+10FFFF⟩�␊␊x&⇖x&alep�
|
75 B | |
| 005809 | generated/0974 Generated |
╩0&ni⟨U+FFFF⟩ &Empty&Jopf
|
30 B | |
| 005810 | generated/0975 Generated |
g=
|
11 B | |
| 005811 | generated/0976 Generated |
7
|
1 B | |
| 005812 | generated/0977 Generated |
f⟨U+10FFFF⟩<&it
|
32 B | |
| 005813 | generated/0978 Generated |
f;� Ζ␀Z7"9
|
21 B | |
| 005814 | generated/0979 Generated |
␍Ag9␍7é'
|
47 B | |
| 005815 | generated/0980 Generated |
€�
|
10 B | |
| 005816 | generated/0981 Generated |
>€ga␍g⟨U+FFFF⟩;𝔼é0&ga
|
54 B | |
| 005817 | generated/0982 Generated |
&9
|
6 B | |
| 005818 | generated/0983 Generated |
日7Z�-0>9'⥜␍¶
|
69 B | |
| 005819 | generated/0984 Generated |
&urcorn⟨U+FFFF⟩ f␀€g&>r日⊥�x
|
51 B | |
| 005820 | generated/0985 Generated |
a␍
|
15 B | |
| 005821 | generated/0986 Generated |
&␉ф€F⩽␊
|
17 B | |
| 005822 | generated/0987 Generated |
&sup&bdq&efr"Ax7Zg
|
42 B | |
| 005823 | generated/0988 Generated |
g9␉␉9 '€ f7�
|
43 B | |
| 005824 | generated/0989 Generated |
␀⟨U+FFFF⟩ "⟨U+2060⟩g€Fa€&Short=
|
45 B | |
| 005825 | generated/0990 Generated |
⟨U+FFFF⟩�x␀"&succc0␉␀ŸZg≎
|
67 B | |
| 005826 | generated/0991 Generated |
⨿…=é 7ℭ⟨U+10FFFF⟩g0 Z0
|
46 B | |
| 005827 | generated/0992 Generated |
⟨U+10FFFF⟩x🎉 F
|
16 B | |
| 005828 | generated/0993 Generated |
Ax≵>&€#gZx
|
34 B | |
| 005829 | generated/0994 Generated |
⇃é&mapsto␉x"#
|
39 B | |
| 005830 | generated/0995 Generated |
日x-Ź'f␊€
|
19 B | |
| 005831 | generated/0996 Generated |
⊢日&epsi
|
27 B | |
| 005832 | generated/0997 Generated |
0 &mumapa🎉'€A7 ⟨U+00A0⟩0"a
|
40 B | |
| 005833 | generated/0998 Generated |
� &𝒫ℜg␊"
|
38 B | |
| 005834 | generated/0999 Generated |
␉⟶🎉␍&c…x&pcy⟨U+00A0⟩�x&R␀#␉A
|
64 B | |
| 005835 | generated/1000 Generated |
&nVda9
|
6 B | |
| 005836 | generated/1001 Generated |
&frac5='€&sho⊗
|
38 B | |
| 005837 | generated/1002 Generated |
∂̸f🎉…◊ ␍⟨U+10FFFF⟩ €">a≿±
|
76 B | |
| 005838 | generated/1003 Generated |
&Nsc€0
|
8 B | |
| 005839 | generated/1004 Generated |
"&sup�Z日0&
|
14 B | |
| 005840 | generated/1005 Generated |
&swA␍𝕪g
|
20 B | |
| 005841 | generated/1006 Generated |
0Z#⦶">FAx
|
17 B | |
| 005842 | generated/1007 Generated |
#∩Ю⊓︀=&raqu␉é𝔐␊g#&Cap
|
49 B | |
| 005843 | generated/1008 Generated |
&anx日⊥Ã
|
31 B | |
| 005844 | generated/1009 Generated |
␍日&pfA
|
21 B | |
| 005845 | generated/1010 Generated |
<&r⋂𭢱日🎉␊é␍ €-
|
56 B | |
| 005846 | generated/1011 Generated |
&Idoté𝕊&shortpa␉9日𦈩g日€x
|
61 B | |
| 005847 | generated/1012 Generated |
€
|
13 B | |
| 005848 | generated/1013 Generated |
日␍ ⇏Z
|
22 B | |
| 005849 | generated/1014 Generated |
F&z&Tcaro#␀x&plug
|
25 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.
- Named character references — the table of 2,231 names, including the legacy ones that work without a semicolon
- Numeric character reference end state — the Windows-1252 remapping and the rules for 0, surrogates and out-of-range numbers
- html5lib-tests tokenizer tests — the source of the 4,617 html5lib cases