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 |
|---|---|---|---|---|
| 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 | |
| 006449 | generated/1614 Generated |
&GreaterTil0ag⅝⟶𩲃g⦓"𑠳g
|
75 B | |
| 006450 | generated/1615 Generated |
&Bc�&n⟨U+10FFFF⟩ º{g é0f0=
|
53 B | |
| 006451 | generated/1616 Generated |
␀&box␀
|
15 B | |
| 006452 | generated/1617 Generated |
A ␉ℏ🎉🎉#×&fork&se&E€
|
43 B | |
| 006453 | generated/1618 Generated |
;↛⟨U+2061⟩↣-🎉␊&
|
38 B | |
| 006454 | generated/1619 Generated |
>&us"&boxuL�⟨U+FFFF⟩=∸=F⟨U+FFFF⟩Ѕ␍
|
49 B | |
| 006455 | generated/1620 Generated |
€⊃⃒
|
12 B | |
| 006456 | generated/1621 Generated |
a␍x&lopf€g
|
23 B | |
| 006457 | generated/1622 Generated |
-Faé≳&loopa
|
25 B | |
| 006459 | generated/1624 Generated |
7␉∈&sfro=␀&lh⋟⋗7<
|
53 B | |
| 006461 | generated/1626 Generated |
↭>🎉x␀⪩�é&Ograf0
|
46 B | |
| 006462 | generated/1627 Generated |
␍␍⋏␉ &lhard"…␉é覜…
|
47 B | |
| 006463 | generated/1628 Generated |
🎉<"€=&qprime' ␍&NotLeftTr
|
30 B | |
| 006464 | generated/1629 Generated |
;&ohba>"Z€
|
13 B | |
| 006465 | generated/1630 Generated |
⟨U+2062⟩🎉␍g␍é<'␍&pZ⟨U+10FFFF⟩ €
|
61 B | |
| 006467 | generated/1632 Generated |
␍#␉7><&L7a␊F&Jukcy&laq
|
22 B | |
| 006468 | generated/1633 Generated |
≡"=&r&=>=#&triang-&box
|
54 B | |
| 006469 | generated/1634 Generated |
⋍�x�x& &E␊&b Ê翫
|
61 B | |
| 006470 | generated/1635 Generated |
␉>&u⍼⇤#''≐&⎴#&&Scy
|
51 B | |
| 006471 | generated/1636 Generated |
␊␉€g&utilde&l<
|
33 B | |
| 006473 | generated/1638 Generated |
&d⇕␀9⫆̸&LessEqualGx
|
34 B | |
| 006474 | generated/1639 Generated |
�g␉>F-␊f#żx€g
|
46 B | |
| 006475 | generated/1640 Generated |
"9Õ␊Ax#🎉#ℭ€
|
56 B | |
| 006476 | generated/1641 Generated |
с日ℬ
|
16 B | |
| 006477 | generated/1642 Generated |
&awc␍€
|
18 B | |
| 006478 | generated/1643 Generated |
#9&angx&squar⟨U+FFFF⟩
|
21 B | |
| 006479 | generated/1644 Generated |
=⥩
|
18 B | |
| 006481 | generated/1646 Generated |
&NotTildeFug�g-⋉
|
50 B | |
| 006482 | generated/1647 Generated |
f<=Ax<␍&n␉f0Z
|
16 B | |
| 006483 | generated/1648 Generated |
⊵#'0␍9&pref 7
|
32 B | |
| 006484 | generated/1649 Generated |
⟨U+10FFFF⟩⟨U+00A0⟩␊€⋔€&oh&bé-0F
|
41 B | |
| 006487 | generated/1652 Generated |
𒒨g>⟨U+2062⟩�
|
53 B | |
| 006488 | generated/1653 Generated |
"日&a9'a␉␀≍日&'="
|
35 B | |
| 006489 | generated/1654 Generated |
A&backco日𝔸🎉␊
|
34 B | |
| 006490 | generated/1655 Generated |
9&b<&horbar␉7
|
23 B | |
| 006491 | generated/1656 Generated |
&su&cuv�x␊𣭓>&ca
|
25 B | |
| 006492 | generated/1657 Generated |
7»&�x<⃒&lg€⟨U+10FFFF⟩x¹F7< &leftl&
|
76 B | |
| 006493 | generated/1658 Generated |
g�␍ 🎉␊&supdsF>f🎉… >⩼A 日g
|
76 B | |
| 006494 | generated/1659 Generated |
9A&&Fourx'&-␍
|
20 B | |
| 006497 | generated/1662 Generated |
&xdtr=
|
6 B | |
| 006498 | generated/1663 Generated |
g#&for<
|
15 B | |
| 006499 | generated/1664 Generated |
f␍9␉␀g;<é&IJl"&b;
|
35 B | |
| 006500 | generated/1665 Generated |
"⪅
|
6 B | |
| 006501 | generated/1666 Generated |
日'⅖𝕌␍;♦š
|
44 B | |
| 006503 | generated/1668 Generated |
7泑g␀fxé&&Sub
|
36 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