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 |
|---|---|---|---|---|
| 005250 | generated/0415 Generated |
␍�<é
|
16 B | |
| 005251 | generated/0416 Generated |
⟨U+10FFFF⟩"𨄴 ␊&udbl>#
|
27 B | |
| 005252 | generated/0417 Generated |
€&nvl0ã0🎉
|
29 B | |
| 005253 | generated/0418 Generated |
⋫␍-&fr
|
30 B | |
| 005254 | generated/0419 Generated |
gf␊&v⇒␍#␊x�
|
40 B | |
| 005255 | generated/0420 Generated |
�≤⤦g⟨U+10FFFF⟩xZ;&anA⇌fg␊"0�g
|
85 B | |
| 005256 | generated/0421 Generated |
a�⫽⃥&Colone&nc↗
|
34 B | |
| 005257 | generated/0422 Generated |
€x&ix##-日F⥉<⧞␍&Hstrok=&ratio⇈
|
58 B | |
| 005258 | generated/0423 Generated |
⩽␉<&Gce∂̸
|
23 B | |
| 005259 | generated/0424 Generated |
≈7␉9␊𭬡g日⟨U+10FFFF⟩™
|
67 B | |
| 005260 | generated/0425 Generated |
"
|
10 B | |
| 005261 | generated/0426 Generated |
🎉╩&X⩻A;
|
36 B | |
| 005262 | generated/0427 Generated |
␀&rightrighta⪑🎉&s"g␊-
|
36 B | |
| 005263 | generated/0428 Generated |
␍& 日&therefo␊日
|
21 B | |
| 005264 | generated/0429 Generated |
Z≈#< &F␊
|
21 B | |
| 005265 | generated/0430 Generated |
&Right<a=''🎉-
|
26 B | |
| 005266 | generated/0431 Generated |
⇇⟨U+00A0⟩x&nsce&Ra�&circl🎉=␍␉␉
|
57 B | |
| 005267 | generated/0432 Generated |
€
|
6 B | |
| 005268 | generated/0433 Generated |
7🎉⇃f'=␊␍-␉&subplu
|
44 B | |
| 005269 | generated/0434 Generated |
éF&C日
|
17 B | |
| 005270 | generated/0435 Generated |
&P�=γ⇏#▪<␊&ori<≪'
|
47 B | |
| 005271 | generated/0436 Generated |
-=0␉ 0&Updow⤏␊x日
|
29 B | |
| 005272 | generated/0437 Generated |
0<⟨U+FFFF⟩
|
10 B | |
| 005273 | generated/0438 Generated |
발𝕪␀␀-
|
26 B | |
| 005274 | generated/0439 Generated |
<€-
|
14 B | |
| 005275 | generated/0440 Generated |
0 &ec日&>␉␍𝔐_�x'#&j␉é
|
46 B | |
| 005276 | generated/0441 Generated |
␍␀⟨U+10FFFF⟩x⟨U+FFFF⟩FaŸ IJ⊋︀
|
42 B | |
| 005277 | generated/0442 Generated |
�<fa␉… 日∡9🎉>
|
58 B | |
| 005278 | generated/0443 Generated |
&spad⟨U+10FFFF⟩🎉&Őf<€&€&
|
37 B | |
| 005279 | generated/0444 Generated |
-g�&Jc<␊␍&Dcaro␉
|
35 B | |
| 005280 | generated/0445 Generated |
&rdca&I€␍"⟧7a�€
|
37 B | |
| 005281 | generated/0446 Generated |
&ka=🎉é╙ "&shc╗
|
39 B | |
| 005282 | generated/0447 Generated |
'x⨤ f#⊝🎉
|
41 B | |
| 005283 | generated/0448 Generated |
é␊
|
7 B | |
| 005284 | generated/0449 Generated |
/␉>␀-'f=#fa↕␀
|
35 B | |
| 005285 | generated/0450 Generated |
␍⥕&␊&baZ=␉␉F ␀⟨U+00A0⟩g
|
54 B | |
| 005286 | generated/0451 Generated |
"F⟨U+00A0⟩𝔛€␉AЙ"𣍖
|
44 B | |
| 005287 | generated/0452 Generated |
∦␊&swAr🎉€-⤶‖gZ&日x
|
78 B | |
| 005288 | generated/0453 Generated |
␍<-g&sset日=
|
31 B | |
| 005289 | generated/0454 Generated |
€x;&UpAr< <ϑ'🎉
|
61 B | |
| 005290 | generated/0455 Generated |
&df&e␍x␍a&o=
|
15 B | |
| 005291 | generated/0456 Generated |
ℏg
|
26 B | |
| 005292 | generated/0457 Generated |
𗇮""⋱0�x->&rbrkeF
|
52 B | |
| 005293 | generated/0458 Generated |
x&TildeFu&ntrianx&ap‐
|
34 B | |
| 005294 | generated/0459 Generated |
9⪾𡨹g&wedbar>0␀<&Double
|
56 B | |
| 005295 | generated/0460 Generated |
#␉␉🎉�
|
17 B | |
| 005296 | generated/0461 Generated |
&Diacritica␀
|
12 B | |
| 005297 | generated/0462 Generated |
␀xa∦FZ
|
29 B | |
| 005298 | generated/0463 Generated |
&HumpEqua'9">ℤ日&p␉A&si
|
35 B | |
| 005299 | generated/0464 Generated |
&HA
|
3 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