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 |
|---|---|---|---|---|
| 006050 | generated/1215 Generated |
🎉↽␍&sh#&bsol>
|
40 B | |
| 006051 | generated/1216 Generated |
Ÿx;
|
7 B | |
| 006052 | generated/1217 Generated |
7&box␊␍¨&Racu-áa €F
|
59 B | |
| 006053 | generated/1218 Generated |
誙⟨U+10FFFF⟩↷&NotHumpDownH�⥘␍
|
95 B | |
| 006054 | generated/1219 Generated |
À🎉≬g⋭&Zca7ß& "
|
65 B | |
| 006055 | generated/1220 Generated |
'9#a&lo
|
7 B | |
| 006056 | generated/1221 Generated |
≬9'⟨U+FFFF⟩xg&D&<␀�€
|
60 B | |
| 006057 | generated/1222 Generated |
0🎉‖⋐a=g
|
49 B | |
| 006058 | generated/1223 Generated |
Ÿ=␍x7&oro&LeftUpVectΘ␊#&DownRightVect␉F&bo
|
53 B | |
| 006059 | generated/1224 Generated |
&v∄9&nF>&g&ng
|
39 B | |
| 006060 | generated/1225 Generated |
& g␉␉… 9é"🎉␉®&c
|
45 B | |
| 006061 | generated/1226 Generated |
;Zg>日x
|
26 B | |
| 006062 | generated/1227 Generated |
x日#<
|
14 B | |
| 006063 | generated/1228 Generated |
&é9-&h&⟨U+10FFFF⟩x
|
30 B | |
| 006064 | generated/1229 Generated |
|f'>
|
27 B | |
| 006065 | generated/1230 Generated |
;🎉€◯a<c 日␍
|
29 B | |
| 006066 | generated/1231 Generated |
9⟨U+10FFFF⟩ &⨭⧅;€Z
|
32 B | |
| 006067 | generated/1232 Generated |
"&Kap🎉␉<a
|
12 B | |
| 006068 | generated/1233 Generated |
↠Ÿx0␉;&ls&thksi7=⩭f…日0
|
74 B | |
| 006069 | generated/1234 Generated |
9&el&ned00&nGg日f
|
18 B | |
| 006070 | generated/1235 Generated |
&␊x&emptys°ϖŸ␊&u
|
32 B | |
| 006071 | generated/1236 Generated |
&Acif↭F&ZcaronF␀F
|
37 B | |
| 006072 | generated/1237 Generated |
⫁f
|
19 B | |
| 006073 | generated/1238 Generated |
⟨U+00A0⟩&bre␉Å&Ex;g⟨U+10FFFF⟩xZ⊥&Equf
|
51 B | |
| 006074 | generated/1239 Generated |
µ␊ŸZ
|
15 B | |
| 006075 | generated/1240 Generated |
𝔅Z␉ÓF日=↰
|
33 B | |
| 006076 | generated/1241 Generated |
␉
|
1 B | |
| 006077 | generated/1242 Generated |
惼&Pré0Ç&etfg&d<ag'
|
58 B | |
| 006078 | generated/1243 Generated |
␊9␉F⊨🎉f�#🎉�x
|
44 B | |
| 006079 | generated/1244 Generated |
␍␍9-␊€>␍&s&caps∝𝔔0"
|
44 B | |
| 006080 | generated/1245 Generated |
&Gd␊ aF#&va⦶Z&o;&quo…9
|
44 B | |
| 006081 | generated/1246 Generated |
x↻=0␉0€␀Ÿ
|
32 B | |
| 006082 | generated/1247 Generated |
≨<
|
6 B | |
| 006083 | generated/1248 Generated |
␍&nleft␉007␍ Fa-a
|
20 B | |
| 006084 | generated/1249 Generated |
ℤ<
|
11 B | |
| 006085 | generated/1250 Generated |
∼#g =&nleq&l‡…x⟨U+10FFFF⟩톶
|
69 B | |
| 006086 | generated/1251 Generated |
Ŧ0⟨U+10FFFF⟩ 😞&Igraé;&
|
37 B | |
| 006087 | generated/1252 Generated |
&ncongdoZ&9<␉
|
14 B | |
| 006088 | generated/1253 Generated |
␉日𑇧日x🎉&suc#𬪙↔<
|
62 B | |
| 006089 | generated/1254 Generated |
>⊹␍𪔹gΗ日
|
44 B | |
| 006090 | generated/1255 Generated |
9>&xwedge…&c␉␊
|
37 B | |
| 006091 | generated/1256 Generated |
€↥日a✠Z;␀🎉&e
|
43 B | |
| 006092 | generated/1257 Generated |
€€
|
15 B | |
| 006093 | generated/1258 Generated |
>x
|
9 B | |
| 006094 | generated/1259 Generated |
Fł⨮g€ &lg"&Vertic𣣈
|
62 B | |
| 006095 | generated/1260 Generated |
&bowt🎉␍
|
10 B | |
| 006096 | generated/1261 Generated |
=f␍…xg⟨U+FFFF⟩↱
|
30 B | |
| 006097 | generated/1262 Generated |
⥲ ␉&␍&OverP ;
|
23 B | |
| 006098 | generated/1263 Generated |
'é⌈é&f&chcyĤ
|
42 B | |
| 006099 | generated/1264 Generated |
Ÿ fa🎉&␊🎉Z€ 9&&nw&CenterDx
|
54 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