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 |
|---|---|---|---|---|
| 005905 | generated/1070 Generated |
↙🎉=␍x
|
26 B | |
| 005907 | generated/1072 Generated |
⪨x
|
8 B | |
| 005909 | generated/1074 Generated |
#⟨U+FFFF⟩ &Rfr-9
|
15 B | |
| 005910 | generated/1075 Generated |
&ofci⇀‚g⏧é日&�g
|
62 B | |
| 005911 | generated/1076 Generated |
Μ&asŸ&empt0&&s&x#0éx>
|
30 B | |
| 005912 | generated/1077 Generated |
⟨U+FFFF⟩⛂.'
|
24 B | |
| 005913 | generated/1078 Generated |
7´🎉◃ 7'Zx
|
39 B | |
| 005914 | generated/1079 Generated |
&x𩈺🎉и� &ratio
|
35 B | |
| 005915 | generated/1080 Generated |
&l<␍⋇⨹␊; &nshortm
|
32 B | |
| 005917 | generated/1082 Generated |
Ax…éf␊ >é&OpenCurlyQuo&𗹦g&e
|
56 B | |
| 005918 | generated/1083 Generated |
Θ#⋇"&ovbar
|
23 B | |
| 005919 | generated/1084 Generated |
>🎉Î&f=㺉
|
33 B | |
| 005920 | generated/1085 Generated |
⇉0�υ␉A𝔈>¼
|
57 B | |
| 005921 | generated/1086 Generated |
𝒶x⋈&w&&rang'␍ 日␍ ␊␊ €
|
48 B | |
| 005922 | generated/1087 Generated |
F𠩄g&�x&dagge'7x;𡧚뫎x—
|
67 B | |
| 005924 | generated/1089 Generated |
'g≗&vef&raA &fparti
|
36 B | |
| 005925 | generated/1090 Generated |
⋔9;␊x
|
18 B | |
| 005926 | generated/1091 Generated |
&uogonFθ€x# Fé;日
|
27 B | |
| 005927 | generated/1092 Generated |
9&mi
|
4 B | |
| 005928 | generated/1093 Generated |
∂�gŸf'␉ ;9⟨U+00A0⟩é␍
|
47 B | |
| 005929 | generated/1094 Generated |
␉&rbarr𤄯g⟨U+00A0⟩>␀␊
|
35 B | |
| 005930 | generated/1095 Generated |
-Z&®⤦␊aË
|
38 B | |
| 005931 | generated/1096 Generated |
&sqsubsete&we
|
13 B | |
| 005933 | generated/1098 Generated |
'&emacraxé &latail
|
19 B | |
| 005934 | generated/1099 Generated |
Ş&jukc<F9Ыg=<⫋︀
|
40 B | |
| 005935 | generated/1100 Generated |
=é&rsc
|
7 B | |
| 005936 | generated/1101 Generated |
;fa'&Square∅␉␉ é&Og␉
|
35 B | |
| 005937 | generated/1102 Generated |
a⩾␊⩦f'gx␊f&Om&Mc
|
57 B | |
| 005938 | generated/1103 Generated |
日-"x ␉≏̸Ÿ&rf
|
48 B | |
| 005939 | generated/1104 Generated |
␉xZ&lg&doteF
|
14 B | |
| 005940 | generated/1105 Generated |
"▹
|
16 B | |
| 005942 | generated/1107 Generated |
␊gg7<þ日7␀9"&
|
37 B | |
| 005943 | generated/1108 Generated |
-␊x€>␍x>0é𝒿a
|
26 B | |
| 005944 | generated/1109 Generated |
'�日Ĺ𝔒
|
44 B | |
| 005945 | generated/1110 Generated |
� Ó>qug�x&supdsu&duarr&cirmi7&rs↬ć-=
|
92 B | |
| 005946 | generated/1111 Generated |
x&Cros𘔿gx␊F"
|
28 B | |
| 005947 | generated/1112 Generated |
⊃Ÿ𝕨日␀g
|
34 B | |
| 005948 | generated/1113 Generated |
&c& &bs␊␍0>&TildeFull€
|
40 B | |
| 005949 | generated/1114 Generated |
&€&ndas=a>␍F
|
26 B | |
| 005951 | generated/1116 Generated |
𝕃🎉🎉⟸;⟨U+FFFF⟩␉
|
31 B | |
| 005952 | generated/1117 Generated |
<ñ␉ ;
|
14 B | |
| 005953 | generated/1118 Generated |
⟨U+00A0⟩x&omi ℏ7␍⟨U+00A0⟩
|
54 B | |
| 005954 | generated/1119 Generated |
&lМZ␊>🎉-&supmu&␍�x␉x␍0≋
|
46 B | |
| 005955 | generated/1120 Generated |
07&nlt7#∇
|
13 B | |
| 005956 | generated/1121 Generated |
&ntil� ␍€ 9&𬷘€
|
31 B | |
| 005958 | generated/1123 Generated |
&nGî≂̸<␍&b␊&fr…
|
39 B | |
| 005959 | generated/1124 Generated |
g7⟨U+10FFFF⟩x&␀;&p'&l⋒&pr
|
46 B | |
| 005961 | generated/1126 Generated |
…Z-⦓&Sho xgZ>
|
51 B | |
| 005962 | generated/1127 Generated |
◬&�-…日&nes
|
32 B | |
| 005964 | generated/1129 Generated |
␊9#9␍€∘-&␉"🎉⪰̸€x␍=
|
50 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