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
5,931 of 6,835 cases
| Case | Name | Expected | Note | Size |
|---|---|---|---|---|
| 005007 | generated/0172 Generated |
日х9&imag0é␉x=𝕐=Z⟨U+00A0⟩ о
|
51 B | |
| 005008 | generated/0173 Generated |
日日𢗹�␊&thiℜ⋭"� ␀ℜ
|
70 B | |
| 005009 | generated/0174 Generated |
&sqsube&>Ÿ;A
|
28 B | |
| 005010 | generated/0175 Generated |
𝓁&NotTildeT&cudar'
|
32 B | |
| 005011 | generated/0176 Generated |
a� &Cayley␍x𰵵&emé0€␊ xx
|
55 B | |
| 005012 | generated/0177 Generated |
␉Z␍"�xgŸx&ruluhℝГ␊x&is⟨U+10FFFF⟩ ⟨U+FFFF⟩&lneqq
|
94 B | |
| 005013 | generated/0178 Generated |
⟨U+FFFF⟩ ĩ𝕎0␉
|
24 B | |
| 005014 | generated/0179 Generated |
-"⫳#&eqsim
|
18 B | |
| 005015 | generated/0180 Generated |
€&hamilt␊ĵ&loa�&e␍␉
|
36 B | |
| 005016 | generated/0181 Generated |
gʼn↓&€0&top𣏏Ī#é<
|
56 B | |
| 005017 | generated/0182 Generated |
f&supsetneqq#'&cu;ⶄga
|
38 B | |
| 005018 | generated/0183 Generated |
&rlha&v
|
7 B | |
| 005020 | generated/0185 Generated |
♠"�€&rZ𝔘…&ati𝔗òZ␍gg
|
70 B | |
| 005021 | generated/0186 Generated |
gZ�g&lea
|
30 B | |
| 005022 | generated/0187 Generated |
�xf&Ax€&xcup日⟨U+10FFFF⟩ 0=;9ax
|
45 B | |
| 005023 | generated/0188 Generated |
␀fZ&ogtx'é␉;ĝ∝&ntg␉x ␉
|
62 B | |
| 005024 | generated/0189 Generated |
x⊳&NotL␍gff␀
|
36 B | |
| 005025 | generated/0190 Generated |
9 0␍&n␀хf
|
40 B | |
| 005026 | generated/0191 Generated |
a&osc&c⟨U+00A0⟩x-&lmous&KH;🎉日
|
40 B | |
| 005027 | generated/0192 Generated |
g⦕®&Aci&su␍𝒲9€&pr
|
51 B | |
| 005028 | generated/0193 Generated |
;&𝔼F␉␊€x
|
21 B | |
| 005029 | generated/0194 Generated |
⟨U+00A0⟩ gx&rar␊日<&iiiin日⟨U+10FFFF⟩x>
|
53 B | |
| 005031 | generated/0196 Generated |
␀gŸ f7⊞'
|
38 B | |
| 005032 | generated/0197 Generated |
⟨U+10FFFF⟩x&So� ;␀7␊
|
27 B | |
| 005034 | generated/0199 Generated |
<␊∔#⟨U+00A0⟩␀F aFg␍⫧
|
46 B | |
| 005035 | generated/0200 Generated |
>fx=Z0g⊅g
|
47 B | |
| 005036 | generated/0201 Generated |
&nsu&sq ␊
|
12 B | |
| 005037 | generated/0202 Generated |
日7␍7Z🎉⦅ϑ&varka-⟨U+200D⟩
|
54 B | |
| 005038 | generated/0203 Generated |
€x&mapst> &nexists
|
22 B | |
| 005039 | generated/0204 Generated |
g␉⋹␊=€&Larr
|
28 B | |
| 005040 | generated/0205 Generated |
&SquareSubsetEqua&cudarx⌋␉<;gf日99
|
63 B | |
| 005041 | generated/0206 Generated |
g=g↺&sda
|
40 B | |
| 005042 | generated/0207 Generated |
&pre&osoZ9>&Z␊x-a⊋‚� ℋ
|
64 B | |
| 005044 | generated/0209 Generated |
g'"⟨U+200D⟩␉"⨱&Hfr-&xx7<
|
46 B | |
| 005045 | generated/0210 Generated |
x⎰≮x'🎉␀<F
|
47 B | |
| 005046 | generated/0211 Generated |
Z'␊&maltefZ&
|
12 B | |
| 005047 | generated/0212 Generated |
🎉&pitcg&⋛🎉¸
|
47 B | |
| 005048 | generated/0213 Generated |
Z&Vsc
|
5 B | |
| 005049 | generated/0214 Generated |
&La⟨U+FFFF⟩ &frac38
|
18 B | |
| 005050 | generated/0215 Generated |
␀;#⟼⟨U+00A0⟩ 7&mapstouf𝔵'F&scp&«#
|
51 B | |
| 005052 | generated/0217 Generated |
&⅙&ifr
|
13 B | |
| 005053 | generated/0218 Generated |
&NoB<7&ea ⦱🎉&Et
|
26 B | |
| 005054 | generated/0219 Generated |
&DS
|
3 B | |
| 005055 | generated/0220 Generated |
日⩾日9⦚␇x⧂&wcir0␊€
|
60 B | |
| 005056 | generated/0221 Generated |
F⪯�x �⊥&xd
|
37 B | |
| 005058 | generated/0223 Generated |
0gZ7xgŸx&js�x00"␉↿
|
72 B | |
| 005059 | generated/0224 Generated |
"Ÿx&topforx&s&l>&permil=<-"0"
|
49 B | |
| 005060 | generated/0225 Generated |
F;⅓7€xFé𝕍g&THOR↡&rtri>
|
52 B | |
| 005061 | generated/0226 Generated |
&xcapa-;0&fra◸&Succee
|
27 B | |
| 005064 | generated/0229 Generated |
⇐f&lcedil9€�x9'�
|
40 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