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 |
|---|---|---|---|---|
| 006192 | generated/1357 Generated |
a&Ka" xg ⟨U+10FFFF⟩
|
36 B | |
| 006193 | generated/1358 Generated |
<€Fé␀
|
16 B | |
| 006194 | generated/1359 Generated |
&Ocir€€x"9&¬invb=Ÿx&circledR"0&afr�g
|
70 B | |
| 006195 | generated/1360 Generated |
&S␉>␊ &B&␀-7="⟨U+00A0⟩ ‚&hcirg
|
46 B | |
| 006196 | generated/1361 Generated |
# ⋵␀⨆gZ⋫日⟨U+10FFFF⟩x ≶
|
82 B | |
| 006197 | generated/1362 Generated |
é&maps↣€&␊x�g␊
|
43 B | |
| 006198 | generated/1363 Generated |
␊0⟨U+00A0⟩ 7
|
13 B | |
| 006199 | generated/1364 Generated |
é&x&�-Ņ␊�␉x�&rightarrowta7␉#
|
72 B | |
| 006200 | generated/1365 Generated |
;⟨U+FFFF⟩␉g'�␉ ␊&mid
|
36 B | |
| 006201 | generated/1366 Generated |
&siŸ ⟨U+FFFF⟩ >⪿'g&Do⩚𑱿∷
|
77 B | |
| 006202 | generated/1367 Generated |
&sté␊gŸ ʑ
|
29 B | |
| 006203 | generated/1368 Generated |
; ␀≥>A␍fų&'0F7
|
27 B | |
| 006204 | generated/1369 Generated |
€xŸ␉=
|
23 B | |
| 006205 | generated/1370 Generated |
x&gel␉ ␀€𝓅Z䰔gg"0
|
57 B | |
| 006206 | generated/1371 Generated |
&Lstf␍>日&VerticalS🎉&Ÿ&Succeeds&
|
44 B | |
| 006208 | generated/1373 Generated |
␊&blacktri␍Ð�x日
|
30 B | |
| 006209 | generated/1374 Generated |
€;;"�g
|
33 B | |
| 006210 | generated/1375 Generated |
x-␍a␍␊&nVD€␊Ax
|
27 B | |
| 006212 | generated/1377 Generated |
Z>
|
10 B | |
| 006213 | generated/1378 Generated |
&l&
|
16 B | |
| 006214 | generated/1379 Generated |
g�
|
18 B | |
| 006215 | generated/1380 Generated |
␍… €&nsube<Z=F&lesges&ge␊
|
41 B | |
| 006216 | generated/1381 Generated |
␍ �𫥧g ' ␉=&lmoustach⋀
|
69 B | |
| 006217 | generated/1382 Generated |
gé#� Ÿx
|
46 B | |
| 006218 | generated/1383 Generated |
#Aūa⊥␍"䦛
|
40 B | |
| 006220 | generated/1385 Generated |
𝔯7␊𭥹gω=&nlArr
|
34 B | |
| 006222 | generated/1387 Generated |
␉&日⇂é日⟨U+FFFF⟩ Ÿ€79x
|
45 B | |
| 006223 | generated/1388 Generated |
⩴&le<&
|
17 B | |
| 006224 | generated/1389 Generated |
⇔�
|
19 B | |
| 006226 | generated/1391 Generated |
�#g�𨗜g🎉<0fℬ
|
59 B | |
| 006227 | generated/1392 Generated |
␉ a
|
5 B | |
| 006228 | generated/1393 Generated |
&subsetne␉"掸&impe <<<=
|
37 B | |
| 006229 | generated/1394 Generated |
⟨U+FFFF⟩�&nRightarro>␍␍&lEg→
|
48 B | |
| 006230 | generated/1395 Generated |
�
|
16 B | |
| 006231 | generated/1396 Generated |
=#Ÿ ±Z<=&⫐
|
25 B | |
| 006232 | generated/1397 Generated |
;é=␀&ldr鶺ℌ€␍<
|
27 B | |
| 006233 | generated/1398 Generated |
⩼&seswar⟨U+00A0⟩f'␍='�x&éZ
|
38 B | |
| 006234 | generated/1399 Generated |
<;-7→�g"9␀#
|
39 B | |
| 006235 | generated/1400 Generated |
␊x⟨U+00A0⟩&Precedes🎉�
|
27 B | |
| 006236 | generated/1401 Generated |
Z�&l�日&x⟨U+FFFF⟩⩸
|
52 B | |
| 006237 | generated/1402 Generated |
日&tZ␍&Usf& ℩&␀=
|
31 B | |
| 006238 | generated/1403 Generated |
␉␊&Lcaro&nsu&ReverseEle&pA#⇏"é
|
63 B | |
| 006239 | generated/1404 Generated |
&&nsupse;€f⟨U+10FFFF⟩ f▪⇇f�⩽0F
|
65 B | |
| 006240 | generated/1405 Generated |
Z&lbrac#&Eogo日� '␉&⟨U+00A0⟩x
|
40 B | |
| 006241 | generated/1406 Generated |
&ori 0𝔔7;
|
21 B | |
| 006243 | generated/1408 Generated |
&NotGrF&ffr日&ug␊
|
36 B | |
| 006246 | generated/1411 Generated |
&rpa€♪F&Down⪃#Z'
|
41 B | |
| 006248 | generated/1413 Generated |
𱣌#&les-#𗇉#𝕘gFð
|
56 B | |
| 006249 | generated/1414 Generated |
a⥋x&swA>&>0𝔳
|
28 B | |
| 006254 | generated/1419 Generated |
g🎉�g>f&␊&"&d⨣>
|
63 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