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

97 of 6,835 cases

Case Name Expected Note Size
004617 empty Focused regression Empty input renders empty output 0 B
004618 no-references Focused regression Plain text with <tags> and "quotes" stays as it … 51 B
004619 utf8-passthrough Focused regression naïve café — 日本語 🎉 Multi-byte UTF-8 is copied byte for byte 31 B
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
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
004826 raw-cr-lf-nul Focused regression a␍␊b␍c␀d Raw CR and NUL are copied, not normalised 8 B
004831 large-plain Focused regression abcdefghijabcdefghijabcdefghijabcdefghijabcdefgh… 97.7 KiB
004832 large-ampersands Focused regression &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&… 48.8 KiB
004851 generated/0016 Generated Z 1 B
004858 generated/0023 Generated " 1 B
004879 generated/0044 Generated x7 2 B
004898 generated/0063 Generated 日# 4 B
004907 generated/0072 Generated >␍ 2 B
004918 generated/0083 Generated a>f 4 B
004933 generated/0098 Generated # 1 B
004965 generated/0130 Generated ␊ 1 B
004986 generated/0151 Generated ␉éxf 5 B
005000 generated/0165 Generated 🎉🎉␉ 9 B
005063 generated/0228 Generated 🎉␍日€x␍; 14 B
005081 generated/0246 Generated ; 1 B
005086 generated/0251 Generated 9 1 B
005098 generated/0263 Generated 日<éf 7 B
005141 generated/0306 Generated '€␊9f 7 B
005144 generated/0309 Generated 9- 2 B
005146 generated/0311 Generated > 1 B
005149 generated/0314 Generated f' 2 B
005159 generated/0324 Generated xa日&'x 8 B
005163 generated/0328 Generated ␉"> 3 B
005165 generated/0330 Generated ␀ 1 B
005175 generated/0340 Generated x< 2 B
005190 generated/0355 Generated ␀- 2 B
005212 generated/0377 Generated f 1 B
005220 generated/0385 Generated € 3 B
005233 generated/0398 Generated - 1 B
005330 generated/0495 Generated 9& 2 B
005333 generated/0498 Generated €€ 7 B
005342 generated/0507 Generated 0 1 B
005362 generated/0527 Generated 1 B
005373 generated/0538 Generated = 1 B
005374 generated/0539 Generated =0 2 B
005377 generated/0542 Generated 日€ 7 B
005379 generated/0544 Generated =a 2 B
005380 generated/0545 Generated é 2 B
005426 generated/0591 Generated 7␀ 2 B
005442 generated/0607 Generated a 1 B
005445 generated/0610 Generated 'a 2 B
005488 generated/0653 Generated "0 2 B
005599 generated/0764 Generated &␊aé 5 B
005645 generated/0810 Generated ' 1 B
005647 generated/0812 Generated 日€ 6 B
005731 generated/0896 Generated &␊F&- 5 B
005751 generated/0916 Generated ␉# 2 B
005767 generated/0932 Generated F 1 B
005811 generated/0976 Generated 7 1 B
005871 generated/1036 Generated a␉␀;␉ 5 B
005880 generated/1045 Generated -- 2 B
005895 generated/1060 Generated -9 2 B
005916 generated/1081 Generated Z␍f 3 B
005923 generated/1088 Generated ␍ 1 B
005932 generated/1097 Generated ␀ >0; 5 B
005950 generated/1115 Generated F'␍ 日␍ 8 B
005960 generated/1125 Generated &␀-Z 4 B
005985 generated/1150 Generated 0x& 3 B
006076 generated/1241 Generated ␉ 1 B
006101 generated/1266 Generated x 1 B
006225 generated/1390 Generated ;é-xx 6 B
006247 generated/1412 Generated ␀; 2 B
006269 generated/1434 Generated 🎉 4 B
006271 generated/1436 Generated #; 2 B
006276 generated/1441 Generated 9> 2 B
006288 generated/1453 Generated aZ-9= 5 B
006306 generated/1471 Generated aé␍ 7日x< 11 B
006403 generated/1568 Generated 7= 2 B
006417 generated/1582 Generated ␀f 2 B
006433 generated/1598 Generated a; 2 B
006466 generated/1631 Generated #x日 5 B
006472 generated/1637 Generated x€ 4 B
006496 generated/1661 Generated ;&🎉 6 B
006538 generated/1703 Generated #🎉 5 B
006548 generated/1713 Generated 日 3 B
006556 generated/1721 Generated << 2 B
006624 generated/1789 Generated 9 9- 4 B
006666 generated/1831 Generated 🎉␀Z 6 B
006734 generated/1899 Generated 0€ 4 B
006789 generated/1954 Generated 7-x 3 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.