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 |
|---|---|---|---|---|
| 004850 | generated/0015 Generated |
&Not⟨U+FFFF⟩ "ċg(Ğ'␊�
|
75 B | |
| 004851 | generated/0016 Generated |
Z
|
1 B | |
| 004852 | generated/0017 Generated |
"#𝔾gg=€
|
41 B | |
| 004853 | generated/0018 Generated |
&&NotGre␍╩
|
20 B | |
| 004854 | generated/0019 Generated |
�g&s␉␉≺;ﳵg�;␀é<
|
49 B | |
| 004855 | generated/0020 Generated |
gx&Left>🎉␍�g…x
|
46 B | |
| 004856 | generated/0021 Generated |
9Ÿf
|
8 B | |
| 004857 | generated/0022 Generated |
&r␍ -�&a⋫Z&r&
|
55 B | |
| 004858 | generated/0023 Generated |
"
|
1 B | |
| 004859 | generated/0024 Generated |
9<&sa
|
5 B | |
| 004860 | generated/0025 Generated |
砫⎱🎉�&g€>&scedi;g
|
72 B | |
| 004861 | generated/0026 Generated |
&rfr&si&nltrie
|
14 B | |
| 004862 | generated/0027 Generated |
&lurdshar-Fг;A'
|
24 B | |
| 004863 | generated/0028 Generated |
g&al␉&f⊕&vscr… &LeftTri⟨U+00A0⟩
|
60 B | |
| 004864 | generated/0029 Generated |
">&Zet&=0𝒞#<
|
17 B | |
| 004865 | generated/0030 Generated |
€9&dzfg'
|
18 B | |
| 004866 | generated/0031 Generated |
f<␀>&nlE&日>&ntrian日aé�x
|
33 B | |
| 004867 | generated/0032 Generated |
ыg&Ic⇁0"� ⟨U+10FFFF⟩&ge🎉
|
71 B | |
| 004868 | generated/0033 Generated |
=-🎉Ÿ⇔∇>07␉日␍⟹a🎉
|
68 B | |
| 004869 | generated/0034 Generated |
&varsigma⋫g&swar'&Medium&
|
40 B | |
| 004870 | generated/0035 Generated |
Й><&gsiě"&YIЏ&co≷�
|
65 B | |
| 004871 | generated/0036 Generated |
↪>'>'€>#␊€x>&RightTeeA&xhA#
|
57 B | |
| 004872 | generated/0037 Generated |
&ggŸ⟨U+10FFFF⟩&nsuc␍ x g≍
|
89 B | |
| 004873 | generated/0038 Generated |
& €97␀…g&Melli
|
32 B | |
| 004874 | generated/0039 Generated |
&afÏ🎉␍␍
|
23 B | |
| 004875 | generated/0040 Generated |
a&boxdg ;&é>&up
|
51 B | |
| 004876 | generated/0041 Generated |
<07
|
11 B | |
| 004877 | generated/0042 Generated |
€�g
|
13 B | |
| 004878 | generated/0043 Generated |
⋺🎉&lpafx#<'
|
36 B | |
| 004879 | generated/0044 Generated |
x7
|
2 B | |
| 004880 | generated/0045 Generated |
𝕨⟨U+10FFFF⟩&<éـf
|
27 B | |
| 004881 | generated/0046 Generated |
=g7&nV⟨U+FFFF⟩Ÿ<>⟨U+FFFF⟩&
|
58 B | |
| 004882 | generated/0047 Generated |
7&A&ag𞋮
|
24 B | |
| 004883 | generated/0048 Generated |
↑;␍‴ν'9␍␊
|
40 B | |
| 004884 | generated/0049 Generated |
é🎉0⋃g⫚'&X& &Differentiag� " <
|
83 B | |
| 004885 | generated/0050 Generated |
� Z€x&=€-
|
31 B | |
| 004886 | generated/0051 Generated |
␍⥡'agg
|
41 B | |
| 004887 | generated/0052 Generated |
'€-Z🎉f日7a
|
27 B | |
| 004888 | generated/0053 Generated |
�'x"Ÿxg � &gc&dotplu;&sF
|
59 B | |
| 004889 | generated/0054 Generated |
&iqu𝒳ěé&R>␊>𝓌⤃␉#日
|
52 B | |
| 004890 | generated/0055 Generated |
¶x␉g
|
18 B | |
| 004891 | generated/0056 Generated |
é-&Gsc…x�
|
16 B | |
| 004892 | generated/0057 Generated |
0␍ ␉&wsc␍7↫&ié7⟨U+00A0⟩
|
39 B | |
| 004893 | generated/0058 Generated |
…& €'&� Axϱg⊔°7Ú&wf
|
86 B | |
| 004894 | generated/0059 Generated |
é⟨U+00A0⟩&Lsh≎⟨U+00A0⟩#g…x
|
60 B | |
| 004895 | generated/0060 Generated |
ێ&cced
|
19 B | |
| 004896 | generated/0061 Generated |
&eD9&lrh日#␉ &loplus<
|
22 B | |
| 004897 | generated/0062 Generated |
&dagger&prure0&g&lacutef;0gZ�-
|
49 B | |
| 004898 | generated/0063 Generated |
日#
|
4 B | |
| 004899 | generated/0064 Generated |
€…&<&Jukcy9␊>A
|
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