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 |
|---|---|---|---|---|
| 006787 | generated/1952 Generated |
⟨U+FFFF⟩⊺≉Ax␍x&a&xutra�=� �
|
83 B | |
| 006788 | generated/1953 Generated |
␊&rHarf9&
|
22 B | |
| 006790 | generated/1955 Generated |
€␉x=
|
8 B | |
| 006791 | generated/1956 Generated |
gé&⊣
|
26 B | |
| 006792 | generated/1957 Generated |
␊-€&nrarx-␊&ga#&d&eq⟨U+00A0⟩
|
38 B | |
| 006793 | generated/1958 Generated |
9␍ ;⁃÷␊aℍ𝕣⫏␉ηA 日␀
|
55 B | |
| 006794 | generated/1959 Generated |
Ù𝔔Ÿ&
|
37 B | |
| 006795 | generated/1960 Generated |
🎉 &trimi'�x&congdot&homtht🎉é␉7&Otimes#
|
66 B | |
| 006796 | generated/1961 Generated |
g9
|
10 B | |
| 006797 | generated/1962 Generated |
=f&a� ⇿Fⅅ╙-
|
58 B | |
| 006798 | generated/1963 Generated |
�& …&GJcy
|
18 B | |
| 006799 | generated/1964 Generated |
'<𗎚gg-∖
|
47 B | |
| 006800 | generated/1965 Generated |
␀aa70␊x<#
|
22 B | |
| 006801 | generated/1966 Generated |
␉ é7🎉�&cŸ&s-7"<;&CirclePla
|
52 B | |
| 006802 | generated/1967 Generated |
�
|
8 B | |
| 006803 | generated/1968 Generated |
␍xF'␍⩖⟨U+FFFF⟩#⫅̸⋢≿⋑
|
54 B | |
| 006806 | generated/1971 Generated |
��xτ␀⨍g
|
41 B | |
| 006807 | generated/1972 Generated |
-�€€…
|
32 B | |
| 006808 | generated/1973 Generated |
🎉g"•
|
21 B | |
| 006809 | generated/1974 Generated |
&Prim'&boé€┼0
|
48 B | |
| 006810 | generated/1975 Generated |
90🎉⁃␀7␉ €-𨢑⟨U+FFFF⟩⌐⇝g␍&
|
71 B | |
| 006811 | generated/1976 Generated |
␍xZ⥸'&Ov
|
36 B | |
| 006812 | generated/1977 Generated |
"&su&c🎉'𫺵é
|
22 B | |
| 006813 | generated/1978 Generated |
⧍"␉Ÿx&Kap憸&LeftDownVectðF
|
45 B | |
| 006814 | generated/1979 Generated |
>↗;␉x
|
23 B | |
| 006815 | generated/1980 Generated |
⟨U+00A0⟩x0&Diacritical⊗€<␉⟨U+00A0⟩
|
38 B | |
| 006817 | generated/1982 Generated |
7g� xé␉'
|
25 B | |
| 006818 | generated/1983 Generated |
␍Z&Nt0=<Ÿ� 日� -f🎉"
|
41 B | |
| 006819 | generated/1984 Generated |
€#⟨U+00A0⟩©␉⟨U+10FFFF⟩x�
|
34 B | |
| 006820 | generated/1985 Generated |
fflf|┌9"&cw;ℋ�&DoubleLongLeftArrow7
|
81 B | |
| 006821 | generated/1986 Generated |
�🎉&or␉0␍=&angm#x&b⤤'€⋖
|
70 B | |
| 006822 | generated/1987 Generated |
Ÿxa␍x␀ϕ&Barwa⤧
|
43 B | |
| 006823 | generated/1988 Generated |
€ &⥋-�-gZ␉é
|
42 B | |
| 006824 | generated/1989 Generated |
x␀日g╛日&Lesé
|
39 B | |
| 006825 | generated/1990 Generated |
&Fourier"'⟨U+10FFFF⟩ gg�x>>∴␍⇌g7
|
91 B | |
| 006827 | generated/1992 Generated |
⋁7&na&cir
|
24 B | |
| 006829 | generated/1994 Generated |
🎉&napi⦆g9=␀│⊝f&eqvparsl␉
|
76 B | |
| 006831 | generated/1996 Generated |
�&⊇&veee␊🎉"0�g&…x9𝔽⟨U+FFFF⟩
|
81 B | |
| 006832 | generated/1997 Generated |
⊔&h日&&s␀␀␉
|
34 B | |
| 006833 | generated/1998 Generated |
€␀&nleŸ &quest>>;
|
33 B | |
| 006834 | generated/1999 Generated |
⋁&ygg&qop#◯-
|
40 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