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
2,241 of 6,835 cases
| Case | Name | Expected | Note | Size |
|---|---|---|---|---|
| 006498 | generated/1663 Generated |
g#&for<
|
15 B | |
| 006499 | generated/1664 Generated |
f␍9␉␀g;<é&IJl"&b;
|
35 B | |
| 006501 | generated/1666 Generated |
日'⅖𝕌␍;♦š
|
44 B | |
| 006502 | generated/1667 Generated |
␉�
|
8 B | |
| 006503 | generated/1668 Generated |
7泑g␀fxé&&Sub
|
36 B | |
| 006505 | generated/1670 Generated |
#&no&lbx<𣱁g⟨U+00A0⟩ ⟨U+10FFFF⟩ ⦪⟨U+00A0⟩
|
51 B | |
| 006506 | generated/1671 Generated |
␍… FZZ�A g⊥éF╧#a
|
54 B | |
| 006507 | generated/1672 Generated |
ø🎉⟨U+FFFF⟩xggA Èf麂g
|
93 B | |
| 006508 | generated/1673 Generated |
"日"'胍gfa9
|
26 B | |
| 006509 | generated/1674 Generated |
<&otim&lcub⪕f�
|
37 B | |
| 006510 | generated/1675 Generated |
␊日� Axa⇃{F
|
61 B | |
| 006511 | generated/1676 Generated |
Ÿ ]&0日9f�g#&boxh
|
52 B | |
| 006514 | generated/1679 Generated |
=9-7Aé-&RightTriangle
|
43 B | |
| 006515 | generated/1680 Generated |
␊묡⥹≨︀"н=␍x𝒞f&
|
51 B | |
| 006516 | generated/1681 Generated |
€⟨U+FFFF⟩ €&plu🎉&ũg
|
60 B | |
| 006517 | generated/1682 Generated |
⟨U+FFFF⟩�x=
|
28 B | |
| 006518 | generated/1683 Generated |
&d&�x�&0&0⟺⫋︀
|
65 B | |
| 006519 | generated/1684 Generated |
日-Џ⇁#xЕ&lsim77
|
52 B | |
| 006520 | generated/1685 Generated |
…&BumpgŸxa⟨U+00A0⟩=𥓗g␊f
|
45 B | |
| 006521 | generated/1686 Generated |
␉㱰日x␍
|
31 B | |
| 006522 | generated/1687 Generated |
Ϝ"Ü�&frac45��xé
|
61 B | |
| 006524 | generated/1689 Generated |
Z𢫡
|
18 B | |
| 006525 | generated/1690 Generated |
€f7
|
8 B | |
| 006526 | generated/1691 Generated |
g� � &nrtr⟨U+00A0⟩ ␀⟹Z<⊪
|
61 B | |
| 006527 | generated/1692 Generated |
␉-;␊&Lo#é-␊x¶llel 🎉
|
49 B | |
| 006528 | generated/1693 Generated |
' =Z⟨U+00A0⟩=� &straightepsi>€ '
|
43 B | |
| 006529 | generated/1694 Generated |
;-0g␊
|
23 B | |
| 006530 | generated/1695 Generated |
¬inv⇀;⋂&ar𝛇⟨U+00A0⟩ ⤎&gap&⟶#9
|
106 B | |
| 006531 | generated/1696 Generated |
ℏ&␉&TH
|
23 B | |
| 006533 | generated/1698 Generated |
7�€
|
10 B | |
| 006534 | generated/1699 Generated |
x&supl𰓀g␍F;&G7&Fg🎉&aleph�g
|
59 B | |
| 006535 | generated/1700 Generated |
&Om=7Ax𐘃Ÿx␊ Ω⥽&box
|
43 B | |
| 006536 | generated/1701 Generated |
Ax␊
|
6 B | |
| 006537 | generated/1702 Generated |
&Gc€␀⟨U+10FFFF⟩ &usc� 𝕦≼f&
|
54 B | |
| 006539 | generated/1704 Generated |
🎉Ax=␊x=>f♭"�=⟨U+FFFF⟩x
|
50 B | |
| 006540 | generated/1705 Generated |
�Ÿ 7g𝔓⟨U+FFFF⟩ 日&i€�_&tria#&vs
|
69 B | |
| 006541 | generated/1706 Generated |
␉⊲⟨U+10FFFF⟩x&beta>é'⁂g;f� &Iscr␍ 𝔟
|
76 B | |
| 006542 | generated/1707 Generated |
x⟨U+FFFF⟩&bigsqcu0␊&nvlAr;␊&nacut9&i-﵊é>
|
48 B | |
| 006543 | generated/1708 Generated |
a␊&nge␉<🎉'ℑZ�␊<do
|
43 B | |
| 006544 | generated/1709 Generated |
Ÿ x∉⟨U+10FFFF⟩x#🎉0⊋<&g
|
57 B | |
| 006545 | generated/1710 Generated |
x∅é ␉&V€&-␉=
|
52 B | |
| 006546 | generated/1711 Generated |
;&xnis␊ ␉-F"&Ubre𮣫g7<␊xé…
|
48 B | |
| 006547 | generated/1712 Generated |
�ç& ⟨U+10FFFF⟩
|
27 B | |
| 006549 | generated/1714 Generated |
=&sacut日⩺;… &oeli␊� ␊⩈⟨U+10FFFF⟩&Uc
|
83 B | |
| 006551 | generated/1716 Generated |
7␉Af="&Ax�
|
24 B | |
| 006552 | generated/1717 Generated |
␊<␍g⫋𱀸✠F"
|
47 B | |
| 006553 | generated/1718 Generated |
ZF#"日A
|
12 B | |
| 006554 | generated/1719 Generated |
�x⟨U+00A0⟩ 0"␍&7=␉ 日 7f…
|
32 B | |
| 006555 | generated/1720 Generated |
�𝓆
|
23 B | |
| 006557 | generated/1722 Generated |
g¸9�
|
27 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