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 |
|---|---|---|---|---|
| 006700 | generated/1865 Generated |
␍↔9з⟨U+FFFF⟩日F€#🎉⥵F
|
54 B | |
| 006701 | generated/1866 Generated |
š….7xg&Co␀⟭⟨U+00A0⟩ 日-∫␊;
|
65 B | |
| 006702 | generated/1867 Generated |
␀x-9"€ŷ⊹0𬐝€Ÿ𝕛
|
48 B | |
| 006703 | generated/1868 Generated |
… 'A𢘠g#␊;é⋈Z✓:␉x
|
70 B | |
| 006704 | generated/1869 Generated |
f�&r=€
|
17 B | |
| 006705 | generated/1870 Generated |
␉𤤖é¡&que≷⌈∝&b#
|
68 B | |
| 006706 | generated/1871 Generated |
␊f␊ã&n␀€
|
19 B | |
| 006707 | generated/1872 Generated |
␍x
|
5 B | |
| 006708 | generated/1873 Generated |
;↠ -&gsif=�x #� мA 𣭷
|
78 B | |
| 006709 | generated/1874 Generated |
#л<<""&mc"
|
24 B | |
| 006710 | generated/1875 Generated |
F␉⊟< &larrt><’f0Ÿ Z
|
38 B | |
| 006711 | generated/1876 Generated |
g
|
9 B | |
| 006712 | generated/1877 Generated |
≩ℌ∨;&frac1€x␍Ÿa𦝖&LeftAngleB'␉
|
83 B | |
| 006713 | generated/1878 Generated |
F€xx&east𝕓f日
|
49 B | |
| 006714 | generated/1879 Generated |
🎉⪔𡉻åЗ-"⋮&l
|
45 B | |
| 006715 | generated/1880 Generated |
;<ℱ€x>>9Z&Negati
|
34 B | |
| 006716 | generated/1881 Generated |
Z&el★9␀&ns⨕€🎉&zhcyŸ… ␉
|
51 B | |
| 006717 | generated/1882 Generated |
&eaFÞ&So⇐␊𒓡&inf€x
|
65 B | |
| 006718 | generated/1883 Generated |
␀&De;
|
21 B | |
| 006719 | generated/1884 Generated |
␉␍␊⟨U+00A0⟩ 日␍>�x日;}&t
|
34 B | |
| 006720 | generated/1885 Generated |
7␉&curre&&Di␊€日a
|
24 B | |
| 006721 | generated/1886 Generated |
␊⧤<␍xf␀🎉=⥶𦾱g7
|
46 B | |
| 006722 | generated/1887 Generated |
�9🎉𝪂gď
|
32 B | |
| 006723 | generated/1888 Generated |
€␉g&SquareInfé9 🎉'𱨪-␉…
|
49 B | |
| 006724 | generated/1889 Generated |
&e==⟨U+FFFF⟩&ods"g-"∦
|
50 B | |
| 006725 | generated/1890 Generated |
⟨U+10FFFF⟩⟨U+FFFF⟩ Z
|
26 B | |
| 006726 | generated/1891 Generated |
🂃€9&L&vopf
|
29 B | |
| 006727 | generated/1892 Generated |
-␊🎉7&bx␉⪐xxé⩀� ␉
|
41 B | |
| 006728 | generated/1893 Generated |
&Fopfx␍⦫g␊&Lsh␀-⟨U+00A0⟩x7🎉'&cudar
|
52 B | |
| 006729 | generated/1894 Generated |
¸
|
15 B | |
| 006730 | generated/1895 Generated |
␉>;&cuv&ced99&&righ&pun␍xZ
|
48 B | |
| 006731 | generated/1896 Generated |
␊≇ℜég-g…x€ ␍
|
64 B | |
| 006732 | generated/1897 Generated |
␉␊ag&0&larrsim7⋏␊&dbkg⩔
|
53 B | |
| 006733 | generated/1898 Generated |
&zf€… =␉á␀
|
22 B | |
| 006734 | generated/1899 Generated |
0€
|
4 B | |
| 006735 | generated/1900 Generated |
Ï&nm&nsug
|
22 B | |
| 006736 | generated/1901 Generated |
日f7#-␉⟨U+2062⟩日&epsa€xf
|
36 B | |
| 006737 | generated/1902 Generated |
-7>>;>€x🎉
|
49 B | |
| 006738 | generated/1903 Generated |
�xℯ="gA
|
34 B | |
| 006739 | generated/1904 Generated |
&gne9&swnwa7
|
13 B | |
| 006740 | generated/1905 Generated |
⪒€&egs␀␊ ␍x⟨U+200C⟩7&Ax␉&E"
|
49 B | |
| 006741 | generated/1906 Generated |
Z␍� -日#0ʉ𝕙𝕦 &l
|
47 B | |
| 006742 | generated/1907 Generated |
#f�g9␉&aŸx
|
30 B | |
| 006743 | generated/1908 Generated |
<
|
9 B | |
| 006744 | generated/1909 Generated |
␍=⥣
|
8 B | |
| 006745 | generated/1910 Generated |
9Z€a>&boxVh€=xé=⃥
|
35 B | |
| 006746 | generated/1911 Generated |
&ntrianglerigh␉ =�&AEl>
|
34 B | |
| 006747 | generated/1912 Generated |
&ia7␊↔F"><
|
43 B | |
| 006748 | generated/1913 Generated |
␍9&trade
|
8 B | |
| 006749 | generated/1914 Generated |
⌝0&&JAx
|
25 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