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 |
|---|---|---|---|---|
| 006400 | generated/1565 Generated |
€↾ξ
|
14 B | |
| 006401 | generated/1566 Generated |
FgFa🎉gϕ≄&eqsim
|
47 B | |
| 006402 | generated/1567 Generated |
⤂<g␉&b∳♂&&LeftAngleBraZ&Rsf𮘀gZ
|
79 B | |
| 006403 | generated/1568 Generated |
7=
|
2 B | |
| 006404 | generated/1569 Generated |
ℏ'⤍€&homtht#<╖
|
39 B | |
| 006405 | generated/1570 Generated |
'-␊&Itilde0g≳g⥬&supseteqŸ&nvrt
|
78 B | |
| 006406 | generated/1571 Generated |
鹾g&Lang9&bacZ
|
19 B | |
| 006407 | generated/1572 Generated |
&ff𦶁g€⟨U+2063⟩␀&␉F&Shor&CciA 𘔪
|
49 B | |
| 006408 | generated/1573 Generated |
Z␀ℋ7F$␉ é€x&plus␊x
|
48 B | |
| 006409 | generated/1574 Generated |
⊔9⌋7=;&subse�⥪a-
|
54 B | |
| 006410 | generated/1575 Generated |
日⤍&boxUR␍ >␉#…
|
46 B | |
| 006411 | generated/1576 Generated |
&co␉␀&cupo⋳�g🎉'日�x"
|
41 B | |
| 006412 | generated/1577 Generated |
'€gg &bo"<␊&Subs¨Z&Ema� 9
|
63 B | |
| 006413 | generated/1578 Generated |
�␉&up⟨U+00A0⟩
|
22 B | |
| 006414 | generated/1579 Generated |
␀f♥"';"Z
|
18 B | |
| 006415 | generated/1580 Generated |
&RightDownVecto� ˝<�⋞é0&T⎵␍
|
86 B | |
| 006416 | generated/1581 Generated |
⟨U+00AD⟩#F
|
7 B | |
| 006417 | generated/1582 Generated |
␀f
|
2 B | |
| 006418 | generated/1583 Generated |
7␉"f🎉">q⟨U+FFFF⟩&FilledVerySmaZ␍&uhf
|
49 B | |
| 006419 | generated/1584 Generated |
9⇏=x�#Z&om日'a�9␊
|
57 B | |
| 006420 | generated/1585 Generated |
9&permx&scircŸ 🎉�ℳ␀𤸶g
|
59 B | |
| 006421 | generated/1586 Generated |
␉�g⟺𧰤-␉x=△
|
66 B | |
| 006422 | generated/1587 Generated |
␊€⟨U+10FFFF⟩xé␍ ⫆0&rra
|
37 B | |
| 006423 | generated/1588 Generated |
&supsetneqq…x7�␊
|
29 B | |
| 006424 | generated/1589 Generated |
&lH0␉> ⫤- 𩪯gg&L␍0f'
|
58 B | |
| 006425 | generated/1590 Generated |
-∁␀" =f0⟨U+00A0⟩&Not&fe∷⨼-🎉
|
47 B | |
| 006426 | generated/1591 Generated |
a>⇒±99Z�
|
27 B | |
| 006427 | generated/1592 Generated |
Ш<⋏�a
|
30 B | |
| 006428 | generated/1593 Generated |
�𝔬
|
14 B | |
| 006429 | generated/1594 Generated |
Z=g
|
19 B | |
| 006430 | generated/1595 Generated |
0&nva␉0'
|
9 B | |
| 006431 | generated/1596 Generated |
�␍ ⊞#"≫&Le贁gé&NotPrecedeg&pre7
|
97 B | |
| 006432 | generated/1597 Generated |
#F; ␊&laq�g<g␍
|
52 B | |
| 006433 | generated/1598 Generated |
a;
|
2 B | |
| 006434 | generated/1599 Generated |
◯&l&;&rightharpo↫⟨…x'�&minus&ra
|
66 B | |
| 006435 | generated/1600 Generated |
␀🎉-=Ь'&Zdot'␍
|
23 B | |
| 006436 | generated/1601 Generated |
⟨U+10FFFF⟩日 a&LessSlantE;é𝕡&d&oro'
|
50 B | |
| 006437 | generated/1602 Generated |
F� ⨌&&d▓…&cup"
|
38 B | |
| 006438 | generated/1603 Generated |
&l&␀x'&c𥩥&≕Z
|
45 B | |
| 006439 | generated/1604 Generated |
␊␍␀␉Fg
|
23 B | |
| 006440 | generated/1605 Generated |
;𓀻g- &blacktriangleright&dArg
|
61 B | |
| 006441 | generated/1606 Generated |
€x7<ℯ日␉g>␍⊗€x篓ćA
|
66 B | |
| 006442 | generated/1607 Generated |
0='𭔯␍A=77-9
|
23 B | |
| 006443 | generated/1608 Generated |
Ax⟨U+10FFFF⟩&in⥕␍->ãa7
|
63 B | |
| 006444 | generated/1609 Generated |
�␊xf�&Z⟼=&longright
|
70 B | |
| 006445 | generated/1610 Generated |
7&RiЈ9⊸∏⊋︀&Gs>Zℋ&pra
|
55 B | |
| 006446 | generated/1611 Generated |
⦴g€ ↮#⊝&#␍g�&prop&DownLeftV
|
112 B | |
| 006447 | generated/1612 Generated |
␍#&rotimes⊵🎉g�
|
60 B | |
| 006448 | generated/1613 Generated |
;g
|
10 B | |
| 006449 | generated/1614 Generated |
&GreaterTil0ag⅝⟶𩲃g⦓"𑠳g
|
75 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