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 |
|---|---|---|---|---|
| 004900 | generated/0065 Generated |
№9␉0&rfloo0é
|
20 B | |
| 004901 | generated/0066 Generated |
F"& ÷ontimes<'#€∥€€x
|
42 B | |
| 004902 | generated/0067 Generated |
|
17 B | |
| 004903 | generated/0068 Generated |
▱␊7&Jukc€&uZ£
|
36 B | |
| 004904 | generated/0069 Generated |
⟨U+00A0⟩x𑜊🎉&v-é
|
33 B | |
| 004905 | generated/0070 Generated |
€<f99
|
16 B | |
| 004906 | generated/0071 Generated |
a&rdca<Ÿ ␊␉␉⟨U+10FFFF⟩ 7/∱
|
39 B | |
| 004907 | generated/0072 Generated |
>␍
|
2 B | |
| 004908 | generated/0073 Generated |
F&mal&a�⩜g;
|
44 B | |
| 004909 | generated/0074 Generated |
␍ég&nvF⋉␀-é'
|
30 B | |
| 004910 | generated/0075 Generated |
&scn𝔐 '◯>f
|
22 B | |
| 004911 | generated/0076 Generated |
#& &x'0é&LsZ␀a
|
30 B | |
| 004912 | generated/0077 Generated |
␉␊&Ba
|
5 B | |
| 004913 | generated/0078 Generated |
␉Z&uAĵ⊀⥅� <#⪎7
|
68 B | |
| 004914 | generated/0079 Generated |
€� #&SHcy↺0>≓'0=#f&vBarvf&frac3
|
51 B | |
| 004915 | generated/0080 Generated |
␉x
|
5 B | |
| 004916 | generated/0081 Generated |
Z⦏ℑ&ig≹&ntlg&ratŸ⌎
|
70 B | |
| 004917 | generated/0082 Generated |
&l
|
3 B | |
| 004918 | generated/0083 Generated |
a>f
|
4 B | |
| 004919 | generated/0084 Generated |
␉ ⟨U+10FFFF⟩&Cc␉↽␉&middx␊Ÿxë
|
77 B | |
| 004920 | generated/0085 Generated |
0⊳€≈�≼␍�x ␍
|
70 B | |
| 004921 | generated/0086 Generated |
a&Ic-
|
14 B | |
| 004922 | generated/0087 Generated |
0⌈� f#
|
35 B | |
| 004923 | generated/0088 Generated |
⋌&twoheadrightarro⟨U+10FFFF⟩ � <
|
53 B | |
| 004924 | generated/0089 Generated |
␉-;�🎉
|
26 B | |
| 004925 | generated/0090 Generated |
>9&Wscr∋🎉0€x
|
28 B | |
| 004926 | generated/0091 Generated |
=é<g€ZF<…
|
33 B | |
| 004927 | generated/0092 Generated |
&ag⥒€&NotRigh◸x
|
54 B | |
| 004928 | generated/0093 Generated |
𝕋é7ZF&in日F9
|
19 B | |
| 004929 | generated/0094 Generated |
<蜹🎉日𝓎"9f-'日F␀
|
37 B | |
| 004930 | generated/0095 Generated |
Z9␉x<0🎉�↚Ÿx⟨U+10FFFF⟩ Ÿx⋚F;
|
74 B | |
| 004931 | generated/0096 Generated |
-𝔟↵�🎉␍=0>⋬╠g␊⋀é
|
78 B | |
| 004932 | generated/0097 Generated |
>⊨𘇵🎉≿
|
61 B | |
| 004933 | generated/0098 Generated |
#
|
1 B | |
| 004934 | generated/0099 Generated |
&pr⟨U+10FFFF⟩xA
|
18 B | |
| 004935 | generated/0100 Generated |
&emaa⨍
|
15 B | |
| 004936 | generated/0101 Generated |
🎉g=&range日>🎉␉xx>g>'&bum⋛
|
69 B | |
| 004937 | generated/0102 Generated |
&cce⫙∘␀↦
|
28 B | |
| 004938 | generated/0103 Generated |
�=
|
9 B | |
| 004939 | generated/0104 Generated |
Zg;#␍≈℗日#
|
42 B | |
| 004940 | generated/0105 Generated |
aā′⟨U+FFFF⟩
|
23 B | |
| 004941 | generated/0106 Generated |
-ㅛ&lceil€#␊<
|
27 B | |
| 004942 | generated/0107 Generated |
Z'✗
|
9 B | |
| 004943 | generated/0108 Generated |
#&inf>#;g9
|
19 B | |
| 004944 | generated/0109 Generated |
␊&tr␀ςxf␍>>F
|
21 B | |
| 004945 | generated/0110 Generated |
Ÿx&ua␍
|
10 B | |
| 004946 | generated/0111 Generated |
␍Ÿ🎉⨆␀&aÌ𧩼9⟨U+00A0⟩
|
45 B | |
| 004947 | generated/0112 Generated |
F⁃-&<⇿⋡"x⧝…
|
48 B | |
| 004948 | generated/0113 Generated |
Г␉g"
|
17 B | |
| 004949 | generated/0114 Generated |
␍ &LongLeftArré0⇕<␉
|
49 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