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
004700 control-81-hex Focused regression ⟨U+0081⟩ Kept, unlike CPython's html.unescape 6 B
004701 control-8d-decimal Focused regression ⟨U+008D⟩ Kept, unlike CPython's html.unescape 6 B
004702 control-8d-hex Focused regression ⟨U+008D⟩ Kept, unlike CPython's html.unescape 6 B
004703 control-8f-decimal Focused regression ⟨U+008F⟩ Kept, unlike CPython's html.unescape 6 B
004704 control-8f-hex Focused regression ⟨U+008F⟩ Kept, unlike CPython's html.unescape 6 B
004705 control-90-decimal Focused regression ⟨U+0090⟩ Kept, unlike CPython's html.unescape 6 B
004706 control-90-hex Focused regression ⟨U+0090⟩ Kept, unlike CPython's html.unescape 6 B
004707 control-9d-decimal Focused regression ⟨U+009D⟩ Kept, unlike CPython's html.unescape 6 B
004708 control-9d-hex Focused regression ⟨U+009D⟩ Kept, unlike CPython's html.unescape 6 B
004709 noncharacter-fdd0 Focused regression ⟨U+FDD0⟩ Kept, unlike CPython's html.unescape 8 B
004710 noncharacter-fdef Focused regression ⟨U+FDEF⟩ Kept, unlike CPython's html.unescape 8 B
004711 noncharacter-fffe Focused regression ⟨U+FFFE⟩ Kept, unlike CPython's html.unescape 8 B
004712 noncharacter-ffff Focused regression ⟨U+FFFF⟩ Kept, unlike CPython's html.unescape 8 B
004713 noncharacter-1fffe Focused regression ⟨U+1FFFE⟩ Kept, unlike CPython's html.unescape 9 B
004714 noncharacter-1ffff Focused regression ⟨U+1FFFF⟩ Kept, unlike CPython's html.unescape 9 B
004715 noncharacter-10fffe Focused regression ⟨U+10FFFE⟩ Kept, unlike CPython's html.unescape 10 B
004716 noncharacter-10ffff Focused regression ⟨U+10FFFF⟩ Kept, unlike CPython's html.unescape 10 B
004717 c1-80-decimal Focused regression € Windows-1252 remapping without ; 5 B
004718 c1-81-decimal Focused regression ⟨U+0081⟩ Windows-1252 remapping without ; 5 B
004719 c1-82-decimal Focused regression ‚ Windows-1252 remapping without ; 5 B
004720 c1-83-decimal Focused regression ƒ Windows-1252 remapping without ; 5 B
004721 c1-84-decimal Focused regression „ Windows-1252 remapping without ; 5 B
004722 c1-85-decimal Focused regression … Windows-1252 remapping without ; 5 B
004723 c1-86-decimal Focused regression † Windows-1252 remapping without ; 5 B
004724 c1-87-decimal Focused regression ‡ Windows-1252 remapping without ; 5 B
004725 c1-88-decimal Focused regression ˆ Windows-1252 remapping without ; 5 B
004726 c1-89-decimal Focused regression ‰ Windows-1252 remapping without ; 5 B
004727 c1-8a-decimal Focused regression Š Windows-1252 remapping without ; 5 B
004728 c1-8b-decimal Focused regression ‹ Windows-1252 remapping without ; 5 B
004729 c1-8c-decimal Focused regression Œ Windows-1252 remapping without ; 5 B
004730 c1-8d-decimal Focused regression ⟨U+008D⟩ Windows-1252 remapping without ; 5 B
004731 c1-8e-decimal Focused regression Ž Windows-1252 remapping without ; 5 B
004732 c1-8f-decimal Focused regression ⟨U+008F⟩ Windows-1252 remapping without ; 5 B
004733 c1-90-decimal Focused regression ⟨U+0090⟩ Windows-1252 remapping without ; 5 B
004734 c1-91-decimal Focused regression ‘ Windows-1252 remapping without ; 5 B
004735 c1-92-decimal Focused regression ’ Windows-1252 remapping without ; 5 B
004736 c1-93-decimal Focused regression “ Windows-1252 remapping without ; 5 B
004737 c1-94-decimal Focused regression ” Windows-1252 remapping without ; 5 B
004738 c1-95-decimal Focused regression • Windows-1252 remapping without ; 5 B
004739 c1-96-decimal Focused regression – Windows-1252 remapping without ; 5 B
004740 c1-97-decimal Focused regression — Windows-1252 remapping without ; 5 B
004741 c1-98-decimal Focused regression ˜ Windows-1252 remapping without ; 5 B
004742 c1-99-decimal Focused regression ™ Windows-1252 remapping without ; 5 B
004743 c1-9a-decimal Focused regression š Windows-1252 remapping without ; 5 B
004744 c1-9b-decimal Focused regression › Windows-1252 remapping without ; 5 B
004745 c1-9c-decimal Focused regression œ Windows-1252 remapping without ; 5 B
004746 c1-9d-decimal Focused regression ⟨U+009D⟩ Windows-1252 remapping without ; 5 B
004747 c1-9e-decimal Focused regression ž Windows-1252 remapping without ; 5 B
004748 c1-9f-decimal Focused regression Ÿ Windows-1252 remapping without ; 5 B
004749 range-d7ff Focused regression ퟿ Surrogates and values past U+10FFFF become U+FFFD 8 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.