
    DUf                     V    d dl Z d dlmZ d dlZd dlZd dlmZmZ  G d de          Z	dS )    N)TestCase)bPY3c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestScanStringc                 N    |                      t          j        j                   d S )N)_test_scanstring
simplejsondecoderpy_scanstringselfs    ]/var/www/html/software/conda/lib/python3.11/site-packages/simplejson/tests/test_scanstring.pytest_py_scanstringz!TestScanString.test_py_scanstring   s"    j0>?????    c                    t           j        j        sd S |                     t           j        j                   |                     t          t           j                            dd          d         t                               d S )Nz""r   )r
   r   c_scanstringr	   
assertTrue
isinstancestrr   s    r   test_c_scanstringz TestScanString.test_c_scanstring   sj    !. 	Fj0=>>>
:#5#B#B4#K#KA#NPSTTUUUUUr   c           	      	   t           j        dk    r#|                      |ddd d          d           n"|                      |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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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 d          d&           |                      |d'dd d          d(           |                      |d)dd d          d*           |                      |d+dd d          d,           |                      |d-dd d          d.           t          t          t          d/d0                    D ]K}|                      ||d1z   d/d d2          |df           |                     t          ||d1z   d/d d           L|                     t          |d3d/d d           |                     t          |d4d/d d           |                     t          |d5d/d d           |                     t          |d6d/d d           |                     t          |d7d/d d           |                     t          |d8d/d d           |                     t          |d9d/d d           |                     t          |d:d/d d           t           j        dk    r>|                     t          |d;d/d d           |                     t          |d<d/d d           |                     t          j	        |d=d/d d           |                     t          j	        |d>d/d d           d S )?Ni  u   "z𝄠x"   T)   z𝄠x   )r      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   r      "F a\z\uz\u0z\u01z\u012z\u0123z	\ud834\u"z\ud834\x0123"z\u-123"z\u EDD")
sys
maxunicodeassertEqualmapchrrangeassertRaises
ValueErrorjsonJSONDecodeError)r   
scanstringcs      r   r	   zTestScanString._test_scanstring   sI   >U""
,at<<$& & & & 
,at<<$& & & 	J{AtT22	 	 	 	JUWXZ^`deeO	Q 	Q 	Q 	J*AtT::#	% 	% 	% 	J)1dD99 	" 	" 	" 	J11dDAA'	) 	) 	) 	J3QdCC*	, 	, 	, 	J)1dD99 	" 	" 	" 	J/D$?? 	" 	" 	" 	JSUVX\^bcc,	. 	. 	. 	J64FF'	) 	) 	) 	J8!T4HH'	) 	) 	) 	JDatTT7	9 	9 	9 	J8!T4HH*	, 	, 	, 	JKRQUW[\\	 	 	 	J/D$??"	$ 	$ 	$ 	J0!T4@@!	# 	# 	# 	J91dDII+	- 	- 	- 	J:AtTJJ+	- 	- 	- 	J-q$==	  	  	  S%d++,, 	4 	4A
1s7AtU33A   AGQd4 4 4 4 	*j"atDDD*j#q$EEE*j$4FFF*j%D$GGG*j&!T4HHH*j'1dDIII*j(AtTJJJ*j)QdKKK>E!!j(-D$H H Hj(*;QdL L L 	$.
J4QUVVV$.
J4QUVVVVVr   c                     |                      t          t          j        j        ddd           |                      t
          t          j        j        t          d                     d S )Nxxxr   u   xxÿ)	r7   r8   r9   r   r;   UnicodeDecodeErrorencoderencode_basestring_asciir   r   s    r   test_issue3623zTestScanString.test_issue3623   sd    *dl&=ua	! 	! 	!,,>(	M 	M 	M 	M 	Mr   c           	          t          t          dt          t          dd                     }|J |                     t          t          j        j        d|dz              d S )Nmaxsizemaxintr>   r   )getattrr1   r7   OverflowErrorr9   r   r;   )r   rD   s     r   test_overflowzTestScanString.test_overflow   s_    #y'#x*F*FGG"""-)@%!A+	' 	' 	' 	' 	'r   c                 :    t           j        j        d fd	} |dd            |dd            |dd            |d	d
            |dd            |dd
            |dd                    ddg                      |dd                    ddg                      |d                    ddg          d                    ddg          d                                t
          ddd d                                t
          ddd d           d S )NTc                    | g}t           s*|r(|                    |                     d                     |D ]L}  | dd d          \  }}                    t	          |           |                               ||           Md S )Nutf8r   T)r   appendencoder3   len)givenexpect	test_utf8givensrescountr;   r   s         r   
assertScanz2TestScanString.test_surrogates.<locals>.assertScan   s    WF 49 4ell622333 . .)z%D$??e  UU333  f----. .r   z"z\ud834\u0079x"u   zyxz"z\ud834\udd20x"r   z"z\ud834\ud834\udd20x"u	   z𝄠xz
"z\ud834x"u   zxz
"z\udd20x"u   zxu   "zx"u   "z\ud834x12345"r.   u   zu	   x12345u   "z\udd20x"u   xu   "zu   x"F)rQ   z	"z\ud83x"r   z"z\ud834\udd2x")T)r9   r   r;   joinr7   r8   )r   rU   r;   s   ` @r   test_surrogateszTestScanString.test_surrogates   s   \,
	. 	. 	. 	. 	. 	. 	. 	
!	 	 	 	
!	 	 	 	
(!	# 	# 	# 	
	 	 	 	
	 	 	 	
	 	 	
 	
%HHj/233	5 	5 	5 	
 HHj*-..	0 	0 	0
 	
HHk;/00HHj*-..	 	 	 	
 	*$mQd	D 	D 	D*$&:AtT	K 	K 	K 	K 	Kr   N)	__name__
__module____qualname__r   r   r	   rB   rH   rW    r   r   r   r      s        @ @ @V V VnW nW nW`M M M' ' '0K 0K 0K 0K 0Kr   r   )
r1   unittestr   r
   r9   simplejson.decodersimplejson.compatr   r   r   r[   r   r   <module>r_      s    



               $ $ $ $ $ $ $ $@K @K @K @K @KX @K @K @K @K @Kr   