a 8êdg/ã@sNddlZddlmZmZGdd„dƒZGdd„deeƒZGdd„deeƒZdS) éN)ÚPyTestÚCTestc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚTestScanstringcCsž|jjj}| |dddƒd¡| |dddƒd¡| |dddƒd¡| |d d dƒd ¡| |d d dƒd ¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |dd dƒd¡| |d d!dƒd"¡| |d#d dƒd$¡| |d%d dƒd&¡| |d'd dƒd(¡| |d)d dƒd*¡| |d+d dƒd,¡dS)-Nu"zð„ x"éT)õzð„ xéz"\u007b")ú{éz<"A JSON payload should be an object or array, not a string.")z:A JSON payload should be an object or array, not a string.é<z["Unclosed array"é)zUnclosed arrayéz["extra comma",])z extra commaéz["double extra comma",,])zdouble extra commaéz["Comma after the close"],)zComma after the closeéz["Extra close"]])z Extra closer z{"Extra comma": true,})z Extra commar z:{"Extra value after close": true} "misplaced quoted value")zExtra value after closeéz{"Illegal expression": 1 + 2})zIllegal expressionrz{"Illegal invocation": alert()})zIllegal invocationrz+{"Numbers cannot have leading zeroes": 013})z"Numbers cannot have leading zeroesé%z{"Numbers cannot be hex": 0x14})zNumbers cannot be hexrz2[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]r)zToo deepéz{"Missing colon" null})z Missing colonéz{"Double colon":: null})z Double colonéz {"Comma instead of colon", null})zComma instead of colonéz!["Colon instead of comma": false])zColon instead of commarz["Bad value", truth])z Bad valueé )ÚjsonÚdecoderÚ scanstringÚ assertEqual)Úselfr©rú:/usr/local/lib/python3.9/test/test_json/test_scanstring.pyÚtest_scanstrings¢  þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þzTestScanstring.test_scanstringcsvˆjjj‰‡‡fdd„}|ddƒ|ddƒ|ddƒ|d d ƒ|d d ƒ|d dƒ|ddƒ|ddƒ|dd ƒdS)Ncs ˆ ˆ|ddƒ|t|ƒf¡dS)NrT)rÚlen)ZgivenÚexpect©rrrrÚ assertScanZs ÿz2TestScanstring.test_surrogates..assertScanz"z\ud834\u0079x"uzí ´yxz"z\ud834\udd20x"rz"z\ud834\ud834\udd20x"u zí ´ð„ xz "z\ud834x"uzí ´xu"z\ud834í´ x12345"u zí ´í´ x12345z "z\udd20x"uzí´ xu "zí ´í´ x"uzí ´í´ xu "zí ´\udd20x"u"zí ´x")rrr)rr"rr!rÚtest_surrogatesXs         zTestScanstring.test_surrogatesc Cs\|jjj}gd¢}|D]@}|j|j|d||ddƒWdƒq1sL0YqdS)N)z"\"z"\x"z"\u"z"\u0"z"\u01"z"\u012"z"\uz012"z"\u0z12"z"\u01z2"z"\u012z"z"\u0x12"z"\u0X12"z "\ud834\"z "\ud834\u"z "\ud834\ud"z "\ud834\udd"z "\ud834\udd2"z"\ud834\uzdd2"z"\ud834\udzd2"z"\ud834\uddz2"z"\ud834\udd2z"z"\ud834\u0x20"z"\ud834\u0X20")ÚmsgrT)rrrÚ assertRaisesZJSONDecodeError)rrZ bad_escapesÚsrrrÚtest_bad_escapeshs  zTestScanstring.test_bad_escapescCsD| t¡&|jj dtjd¡Wdƒn1s60YdS)Nsxxxr)r%Ú OverflowErrorrrrÚsysÚmaxsize)rrrrÚ test_overflow‡s zTestScanstring.test_overflowN)Ú__name__Ú __module__Ú __qualname__rr#r'r+rrrrrsRrc@s eZdZdS)ÚTestPyScanstringN©r,r-r.rrrrr/Œór/c@s eZdZdS)ÚTestCScanstringNr0rrrrr2r1r2)r)Ztest.test_jsonrrrr/r2rrrrÚs