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

15 of 6,835 cases

Case Name Expected Note Size
004620 ampersand-lone Focused regression & An & that starts no reference is copied 1 B
004621 ampersand-double Focused regression && An & that starts no reference is copied 2 B
004622 ampersand-space Focused regression & An & that starts no reference is copied 2 B
004623 ampersand-between-words Focused regression a & b An & that starts no reference is copied 5 B
004624 ampersand-before-amp Focused regression && An & that starts no reference is copied 6 B
004625 ampersand-trailing Focused regression x& An & that starts no reference is copied 2 B
004626 numeric-no-digits-2623 Focused regression &# No digits: copied unchanged 2 B
004627 numeric-no-digits-26233b Focused regression &#; No digits: copied unchanged 3 B
004628 numeric-no-digits-262378 Focused regression &#x No digits: copied unchanged 3 B
004629 numeric-no-digits-262358 Focused regression &#X No digits: copied unchanged 3 B
004630 numeric-no-digits-2623783b Focused regression &#x; No digits: copied unchanged 4 B
004631 numeric-no-digits-262378673b Focused regression &#xg; No digits: copied unchanged 5 B
004632 numeric-no-digits-26232d313b Focused regression &#-1; No digits: copied unchanged 5 B
004633 numeric-no-digits-26232036353b Focused regression &# 65; No digits: copied unchanged 6 B
004634 numeric-no-digits-26232b36353b Focused regression &#+65; No digits: copied unchanged 6 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.