
    3hht                     `    S SK r S SKJrJr   " S S5      r " S S\\5      r " S S\\5      rg)	    N)PyTestCTestc                   ,    \ rS rSrS rS rS rS rSrg)TestScanstring   c                 T   U R                   R                  R                  nU R                  U" SSS5      S5        U R                  U" SSS5      S5        U R                  U" SSS5      S5        U R                  U" S	S
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" SS
S5      S5        U R                  U" S S!S5      S"5        U R                  U" S#S
S5      S$5        U R                  U" S%S
S5      S&5        U R                  U" S'S
S5      S(5        U R                  U" S)S
S5      S*5        U R                  U" S+S
S5      S,5        g )-Nu   "z𝄠x"   T)   z𝄠xr   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"   )zUnclosed array   z["extra comma",])zextra comma   z["double extra comma",,])zdouble extra comma   z["Comma after the close"],)zComma 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")zExtra value after close   z{"Illegal expression": 1 + 2})zIllegal expressionr   z{"Illegal invocation": alert()})zIllegal invocationr   z+{"Numbers cannot have leading zeroes": 013})z"Numbers cannot have leading zeroes%   z{"Numbers cannot be hex": 0x14})zNumbers cannot be hexr   z2[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]r   )zToo deep   z{"Missing colon" null})zMissing colon   z{"Double colon":: null})zDouble colon   z {"Comma instead of colon", null})zComma instead of colon   z!["Colon instead of comma": false])zColon instead of commar   z["Bad value", truth])z	Bad value   )jsondecoder
scanstringassertEqual)selfr   s     G/opt/python-3.13.8/usr/lib/python3.13/test/test_json/test_scanstring.pytest_scanstringTestScanstring.test_scanstring   s   YY&&11
'D1	! 	{At,	 	UWXZ^_N	P 	*At4"	$ 	)1d3	! 	11d;&	( 	3Q=)	+ 	)1d3	! 	/D9	! 	SUVX\]+	- 	64@&	( 	8!TB&	( 	DaN6	8 	8!TB)	+ 	KRQUV	 	/D9!	# 	0!T: 	" 	91dC*	, 	:AtD*	, 	-q$7	    c                    ^ ^ T R                   R                  R                  mUU 4S jnU" SS5        U" SS5        U" SS5        U" SS	5        U" S
S5        U" SS5        U" SS5        U" SS5        U" SS	5        g )Nc                 P   > TR                  T" U SS5      U[        U 5      45        g )Nr	   T)r   len)givenexpectr   r   s     r   
assertScan2TestScanstring.test_surrogates.<locals>.assertScanZ   s(    Zq$7$c%j13r"   z"z\ud834\u0079x"u   zyxz"z\ud834\udd20x"r
   z"z\ud834\ud834\udd20x"u	   z𝄠xz
"z\ud834x"u   zxu   "z\ud834x12345"u   zx12345z
"z\udd20x"u   zxu
   "zx"u   zxu   "z\udd20x"u   "zx")r   r   r   )r   r(   r   s   ` @r   test_surrogatesTestScanstring.test_surrogatesX   s    YY&&11
	3 	'5'8.0DE=*-+-BC=*-%'78&(89<,r"   c                    U R                   R                  R                  n/ SPSPSPSPSPSPSPSPS	PS
PSPSPSR                  S5      PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSR                  S5      PSPS PS!PS"PnU H0  nU R	                  U R
                  US#9   U" US$S%5        S S S 5        M2     g ! , (       d  f       MD  = f)&Nz"\"z"\x"z"\u"z"\u0"z"\u01"z"\u012"z"\uz012"z"\u0z12"z"\u01z2"z"\u012z"z"\u0x12"z"\u0X12"z"\u{0}"u   ００００z"\u 123"z"\u-123"z"\u+123"z"\u1_23"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"z"\ud834\u{0}"z"\ud834\u 123"z"\ud834\u-123"z"\ud834\u+123"z"\ud834\u1_23")msgr	   T)r   r   r   formatassertRaisesJSONDecodeError)r   r   bad_escapesss       r   test_bad_escapesTestScanstring.test_bad_escapesh   s   YY&&11
"
"
"
 "
 	"

 "
 "
 "
 "
 "
 "
 "
 "
 l+"
 "
 "
  !"
" #"
$ %"
& '"
( )"
* +"
, -"
. /"
0 1"
2 3"
4 5"
6 7"
8 9"
: $$\2;"
< ="
> ?"
@ A"
B C"
F A""4#7#7Q"?1a& @? ??s   "B::
C		c                     U R                  [        5         U R                  R                  R	                  S[
        R                  S-   5        S S S 5        g ! , (       d  f       g = f)Ns   xxxr	   )r/   OverflowErrorr   r   r   sysmaxsize)r   s    r   test_overflowTestScanstring.test_overflow   s>    }-II((Q? .--s   8A
A% N)	__name__
__module____qualname____firstlineno__r    r*   r3   r9   __static_attributes__r;   r"   r   r   r      s    Pd- ''R@r"   r   c                       \ rS rSrSrg)TestPyScanstring   r;   Nr<   r=   r>   r?   r@   r;   r"   r   rB   rB      s    r"   rB   c                       \ rS rSrSrg)TestCScanstring   r;   NrD   r;   r"   r   rF   rF      s    dr"   rF   )r7   test.test_jsonr   r   r   rB   rF   r;   r"   r   <module>rI      s0    
 (N@ N@b 5~v 4 2ne 2r"   