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 |
|---|---|---|---|---|
| 005300 | generated/0465 Generated |
⟨U+00A0⟩'<&lsqu⟨U+10FFFF⟩␍␉
|
35 B | |
| 005301 | generated/0466 Generated |
🎉#€⟨U+00A0⟩x⇘
|
24 B | |
| 005302 | generated/0467 Generated |
""F"Ş
|
20 B | |
| 005303 | generated/0468 Generated |
&Exis␊>9é-&gneq日-&lg
|
23 B | |
| 005304 | generated/0469 Generated |
日79𝒸&b€=9Ÿg
|
40 B | |
| 005305 | generated/0470 Generated |
"🎉&Wcir
|
10 B | |
| 005306 | generated/0471 Generated |
␉a❏x� '&sl&var&gel␍x
|
51 B | |
| 005307 | generated/0472 Generated |
-�===≲9🎉�a␍
|
38 B | |
| 005308 | generated/0473 Generated |
©Ÿ ⦴&
|
30 B | |
| 005309 | generated/0474 Generated |
7'⨪=
|
12 B | |
| 005310 | generated/0475 Generated |
⌜=␉ Z⋑9fZ
|
25 B | |
| 005311 | generated/0476 Generated |
&␍日<#
|
28 B | |
| 005312 | generated/0477 Generated |
日f␉≳F�␍≮␀
|
43 B | |
| 005313 | generated/0478 Generated |
7ZF⤨巚
|
18 B | |
| 005314 | generated/0479 Generated |
&€
|
22 B | |
| 005315 | generated/0480 Generated |
;¸f'
|
20 B | |
| 005316 | generated/0481 Generated |
‐&&suZ
|
20 B | |
| 005317 | generated/0482 Generated |
&no'g≻␀
|
24 B | |
| 005318 | generated/0483 Generated |
␊x🎉€&bdquoa日�x�␉&submult&SquareSup␉-
|
81 B | |
| 005319 | generated/0484 Generated |
␉gAx€&·𦔬'⇔μ€7␊Ě
|
79 B | |
| 005320 | generated/0485 Generated |
;颱 A >é&&sqsu#
|
34 B | |
| 005321 | generated/0486 Generated |
⋟&
|
17 B | |
| 005322 | generated/0487 Generated |
␉;⫋︀g&njcy⟨U+FFFF⟩
|
49 B | |
| 005323 | generated/0488 Generated |
Æf� &l ;╞␊Zၪg
|
34 B | |
| 005324 | generated/0489 Generated |
␀�␊é&#€"日Á�7␀
|
45 B | |
| 005325 | generated/0490 Generated |
>=>>¾&Su&e'"a&c- ␉x&eq␊
|
44 B | |
| 005326 | generated/0491 Generated |
&IEcé"&rBa
|
19 B | |
| 005327 | generated/0492 Generated |
&o-9x
|
5 B | |
| 005328 | generated/0493 Generated |
9'€9é
|
11 B | |
| 005329 | generated/0494 Generated |
� -=⋢#🎉␀␀&erarrx&napid
|
65 B | |
| 005330 | generated/0495 Generated |
9&
|
2 B | |
| 005331 | generated/0496 Generated |
F� ␀éę
|
15 B | |
| 005332 | generated/0497 Generated |
&csupé;&swnwa
|
24 B | |
| 005333 | generated/0498 Generated |
€€
|
7 B | |
| 005334 | generated/0499 Generated |
≱g'𝔊>␊&n-
|
37 B | |
| 005335 | generated/0500 Generated |
≻⊤ � >ℋ␉&T
|
51 B | |
| 005336 | generated/0501 Generated |
Fg
|
10 B | |
| 005337 | generated/0502 Generated |
⇐␀;�">日⟨U+00A0⟩日␉日a
|
55 B | |
| 005338 | generated/0503 Generated |
&␀&␍≅≍&Wop日F␀𝒴𝔒␍>
|
50 B | |
| 005339 | generated/0504 Generated |
Σ<
|
17 B | |
| 005340 | generated/0505 Generated |
&co
|
4 B | |
| 005341 | generated/0506 Generated |
␉<&GreaterEqua"&mal日9⟨U+00A0⟩
|
28 B | |
| 005342 | generated/0507 Generated |
0
|
1 B | |
| 005343 | generated/0508 Generated |
€␉
|
12 B | |
| 005344 | generated/0509 Generated |
&bcon=␉
|
7 B | |
| 005345 | generated/0510 Generated |
&A -gxZa
|
16 B | |
| 005346 | generated/0511 Generated |
� �␍⤂␉ ␍&blk34ℋ
|
47 B | |
| 005347 | generated/0512 Generated |
ζ&simFF日ég↬0
|
36 B | |
| 005348 | generated/0513 Generated |
0裝
|
8 B | |
| 005349 | generated/0514 Generated |
&d␍€ ␍g�⤂␉>␊␉ 䲮g≲日
|
69 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