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
Clear

6 of 6,835 cases

Case Name Expected Note Size
004829 large-expansion Focused regression ≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒≫⃒… Worst-case growth: 5 bytes become 6 97.7 KiB
004830 large-amp Focused regression &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&… 97.7 KiB
004831 large-plain Focused regression abcdefghijabcdefghijabcdefghijabcdefghijabcdefgh… 97.7 KiB
004832 large-ampersands Focused regression &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&… 48.8 KiB
004833 large-max-code-point Focused regression ⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩⟨U+10FFFF⟩… 97.7 KiB
004834 large-legacy-mix Focused regression © ∉ &x €© ∉ &x €© ∉ &x €© ∉ &x €© ∉ &x €© ∉ &x €… 101.6 KiB

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.