..Invalid syntax '\n' Invalid syntax '\t' Invalid syntax '\x00' ----- CASE '' sh '' qsn maybe '' qsn UTF-8 '' qsn U '' qsn X '' decoded = '' ----- CASE '"' sh '"' qsn maybe '"' qsn UTF-8 '"' qsn U '"' qsn X '"' decoded = '"' ----- CASE "'" sh $'\'' qsn maybe '\'' qsn UTF-8 '\'' qsn U '\'' qsn X '\'' decoded = "'" ----- CASE '\\' sh $'\\' qsn maybe '\\' qsn UTF-8 '\\' qsn U '\\' qsn X '\\' decoded = '\\' ----- CASE 'hello' sh hello qsn maybe hello qsn UTF-8 'hello' qsn U 'hello' qsn X 'hello' decoded = 'hello' ----- CASE '_my-report.c' sh _my-report.c qsn maybe _my-report.c qsn UTF-8 '_my-report.c' qsn U '_my-report.c' qsn X '_my-report.c' decoded = '_my-report.c' ----- CASE 'a+b' sh 'a+b' qsn maybe 'a+b' qsn UTF-8 'a+b' qsn U 'a+b' qsn X 'a+b' decoded = 'a+b' ----- CASE '()[]{}' sh '()[]{}' qsn maybe '()[]{}' qsn UTF-8 '()[]{}' qsn U '()[]{}' qsn X '()[]{}' decoded = '()[]{}' ----- CASE 'one two' sh 'one two' qsn maybe 'one two' qsn UTF-8 'one two' qsn U 'one two' qsn X 'one two' decoded = 'one two' ----- CASE 'one\ttwo\r\n' sh $'one\ttwo\r\n' qsn maybe 'one\ttwo\r\n' qsn UTF-8 'one\ttwo\r\n' qsn U 'one\ttwo\r\n' qsn X 'one\ttwo\r\n' decoded = 'one\ttwo\r\n' ----- CASE "'one\x00two'" sh $'\'one\x00two\'' qsn maybe '\'one\0two\'' qsn UTF-8 '\'one\0two\'' qsn U '\'one\0two\'' qsn X '\'one\0two\'' decoded = "'one\x00two'" ----- CASE '\x00\x01' sh $'\x00\x01' qsn maybe '\0\x01' qsn UTF-8 '\0\x01' qsn U '\0\u{1}' qsn X '\0\x01' decoded = '\x00\x01' ----- CASE '[\xce\xbc]' sh '[μ]' qsn maybe '[μ]' qsn UTF-8 '[μ]' qsn U '[\u{3bc}]' qsn X '[\xce\xbc]' decoded = '[\xce\xbc]' ----- CASE '\xce\xbc' sh 'μ' qsn maybe 'μ' qsn UTF-8 'μ' qsn U '\u{3bc}' qsn X '\xce\xbc' decoded = '\xce\xbc' ----- CASE '\xce\xbc\xce' sh $'μ\xce' qsn maybe 'μ\xce' qsn UTF-8 'μ\xce' qsn U '\u{3bc}\xce' qsn X '\xce\xbc\xce' decoded = '\xce\xbc\xce' ----- CASE '\xce\xce\xbc' sh $'\xceμ' qsn maybe '\xceμ' qsn UTF-8 '\xceμ' qsn U '\xce\u{3bc}' qsn X '\xce\xce\xbc' decoded = '\xce\xce\xbc' ----- CASE '\xce\xce\xce\xbe' sh $'\xce\xceξ' qsn maybe '\xce\xceξ' qsn UTF-8 '\xce\xceξ' qsn U '\xce\xce\u{3be}' qsn X '\xce\xce\xce\xbe' decoded = '\xce\xce\xce\xbe' ----- CASE 'z \xce\xbb \xe4\xb8\x89 \xf0\x9f\x98\x98' sh 'z λ 三 😘' qsn maybe 'z λ 三 😘' qsn UTF-8 'z λ 三 😘' qsn U 'z \u{3bb} \u{4e09} \u{1f618}' qsn X 'z \xce\xbb \xe4\xb8\x89 \xf0\x9f\x98\x98' decoded = 'z \xce\xbb \xe4\xb8\x89 \xf0\x9f\x98\x98' ----- CASE '\xe4\xb8\x89' sh '三' qsn maybe '三' qsn UTF-8 '三' qsn U '\u{4e09}' qsn X '\xe4\xb8\x89' decoded = '\xe4\xb8\x89' ----- CASE '\xe4\xb8a' sh $'\xe4\xb8a' qsn maybe '\xe4\xb8a' qsn UTF-8 '\xe4\xb8a' qsn U '\xe4\xb8a' qsn X '\xe4\xb8a' decoded = '\xe4\xb8a' ----- CASE '\xe4a' sh $'\xe4a' qsn maybe '\xe4a' qsn UTF-8 '\xe4a' qsn U '\xe4a' qsn X '\xe4a' decoded = '\xe4a' ----- CASE '\xf0\x9f\x98\x98' sh '😘' qsn maybe '😘' qsn UTF-8 '😘' qsn U '\u{1f618}' qsn X '\xf0\x9f\x98\x98' decoded = '\xf0\x9f\x98\x98' ----- CASE '\xf0\x9f\x98.' sh $'\xf0\x9f\x98.' qsn maybe '\xf0\x9f\x98.' qsn UTF-8 '\xf0\x9f\x98.' qsn U '\xf0\x9f\x98.' qsn X '\xf0\x9f\x98.' decoded = '\xf0\x9f\x98.' ----- CASE '\xf0\x9f.' sh $'\xf0\x9f.' qsn maybe '\xf0\x9f.' qsn UTF-8 '\xf0\x9f.' qsn U '\xf0\x9f.' qsn X '\xf0\x9f.' decoded = '\xf0\x9f.' ----- CASE '\xf0.' sh $'\xf0.' qsn maybe '\xf0.' qsn UTF-8 '\xf0.' qsn U '\xf0.' qsn X '\xf0.' decoded = '\xf0.' 956 qsn \u{3bc} decoded = '\xce\xbc' 1 qsn \u{1} decoded = '\x01' 65536 qsn \u{10000} decoded = '\xf0\x90\x80\x80' qsn = '\"' decoded = '"' qsn = decoded = '' qsn = %%% decoded = '%%%' Invalid syntax '\\' Invalid syntax '\\' CASE 'a' --- a CASE 'one two' -...s1 128 s2 32 s3 16 s4 8 cont 64 . ---------------------------------------------------------------------- Ran 6 tests in 0.003s OK -- 'one two' CASE '\xce' --- $'\xce' CASE '\xce\xce\xbc' --- $'\xceμ' CASE '\xce\xbc\xce' --- $'μ\xce' CASE '\xcea' --- $'\xcea' CASE 'a\xce' --- $'a\xce' CASE 'a\xce\xce' --- $'a\xce\xce' CASE '\xbc' --- $'\xbc' CASE '\xbc\xbc' --- $'\xbc\xbc' CASE '\xbca' --- $'\xbca' CASE 'a\xbc' --- $'a\xbc' CASE '\xbcab' --- $'\xbcab' CASE '\xbc\x00\x01' --- $'\xbc\x00\x01' 'a' ('a', None, None, None, None) '\xce\xbc' (None, '\xce\xbc', None, None, None) '\xce' (None, None, None, None, '\xce') '\xbc' (None, None, None, None, '\xbc')