
    8tf0                         d dl mZ d dlZd dlZd dlmZ d dlZd dlmZmZmZ d dl	m
Z
mZmZ d Zd Z G d d	      Z G d
 de      Z G d de      Zy)    )with_statementN)TestCase)encoderdecoderscanner)PY3	long_typebc                  &    t         j                  d uS N)r   c_make_encoder     h/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/simplejson/tests/test_speedups.pyhas_speedupsr      s    !!--r   c                       fd}|S )Nc                      t               sEt        t        d      rt        j                  d      t        j
                  j                  d       y  | i |S )NSkipTestzC Extension not available)r   hasattrunittestr   sysstdoutwrite)argskwargsfuncs     r   wrapperz)skip_if_speedups_missing.<locals>.wrapper   sJ    ~x,''(CDD

  !<=T$V$$r   r   )r   r   s   ` r   skip_if_speedups_missingr      s    % Nr   c                       e Zd Zd ZeZy)BadBoolc                     ddz   y N   r   r   selfs    r   __bool__zBadBool.__bool__   s	    	!r   N)__name__
__module____qualname__r&   __nonzero__r   r   r   r    r       s    Kr   r    c                   ,    e Zd Zed        Zed        Zy)
TestDecodec                 N    | j                  t        t        j                  d       y )Nr#   )assertRaisesAttributeErrorr   c_make_scannerr$   s    r   test_make_scannerzTestDecode.test_make_scanner$   s    .'*@*@!Dr   c                     d }| j                  t        |d       | j                  t        |d       t        s/| j                  t        |d       | j                  t        |d       y y )Nc                 ^    t        j                  t                     j                  |        y )N)strict)r   JSONDecoderr    decode)values    r   testz+TestDecode.test_bad_bool_args.<locals>.test*   s    wy188?r   z""z{})r.   ZeroDivisionErrorr   r%   r8   s     r   test_bad_bool_argszTestDecode.test_bad_bool_args(   s\    	@+T48+T48/u=/u= r   N)r'   r(   r)   r   r1   r;   r   r   r   r,   r,   #   s*    E E > >r   r,   c                   b    e Zd Zed        Zed        Zed        Zed        Zer	ed        Z	yy)
TestEncodec                 R    | j                  t        t        j                  d dd        y )Nu   Í}=NLùy×Rºò'J} Êu)r.   	TypeErrorr   r   r$   s    r   test_make_encoderzTestEncode.test_make_encoder3   s'    ""8	
r   c                 x   dd l }d }t        j                  d d |d dddddi dddd d ddd|j                  d      }| j	                  t
        |dd	       | j	                  t
        |dd
id	       d }t        j                  d d |d dddddi dddd d ddd|j                  d      }| j	                  t        |dd	       y )Nr   c                       y r   r   r   s    r   bad_encoder1z5TestEncode.test_bad_str_encoder.<locals>.bad_encoder1C   s    r   c                     t        |       S r   strobjs    r   <lambda>z1TestEncode.test_bad_str_encoder.<locals>.<lambda>F   
    #c( r   z: z, Fzutf-8spam   *   c                      ddz   y r"   r   rC   s    r   bad_encoder2z5TestEncode.test_bad_str_encoder.<locals>.bad_encoder2M   s	    aCr   c                     t        |       S r   rF   rH   s    r   rJ   z1TestEncode.test_bad_str_encoder.<locals>.<lambda>P   rK   r   )decimalr   r   Decimalr.   r?   r9   )r%   rR   rD   encrP   s        r   test_bad_str_encoderzTestEncode.test_bad_str_encoder>   s     		$$*dD$ueRudGUE7??E	K
 	)S&!4)S62,:	$$*dD$ueRudGUE7??E	K
 	+S&!<r   c                 2   d }| j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d	       | j                  t        |d
       | j                  t        |d       | j                  t        |d       | j                  t        |d       y )Nc                 `    t        j                  di | t               ij                  i        y )Nr   )r   JSONEncoderr    encode)names    r   r8   z+TestEncode.test_bad_bool_args.<locals>.testX   s%    44"34;;B?r   skipkeysensure_asciicheck_circular	allow_nan	sort_keysuse_decimalnamedtuple_as_objecttuple_as_arraybigint_as_stringfor_json
ignore_naniterable_as_array)r.   r9   r:   s     r   r;   zTestEncode.test_bad_bool_argsV   s    	@+T:>+T>B+T3CD+T;?+T;?+T=A+T3IJ+T3CD+T3EF+T:>+T<@+T3FGr   c                 j    t        d      dz  dz   fd}| j                  t        t        f|       y )N          c                  P    t        j                         j                  d       y )N)int_as_string_bitcountr   )r   rX   rY   )
long_counts   r   r8   z=TestEncode.test_int_as_string_bitcount_overflow.<locals>.testj   s    zBII!Lr   )r	   r.   r?   OverflowError)r%   r8   rm   s     @r   $test_int_as_string_bitcount_overflowz/TestEncode.test_int_as_string_bitcount_overflowg   s1    q\2%b(
	M9m4d;r   c                     | j                  t              5  t        j                  d      j	                  t        d      di       d d d        y # 1 sw Y   y xY w)Nu   )encodingkey{   )r.   UnicodeEncodeErrorr   rX   rY   r
   r$   s    r   test_bad_encodingzTestEncode.test_bad_encodingo   sK    ""#56 O##X6==qxoNO O Os   1AAN)
r'   r(   r)   r   r@   rU   r;   ro   r   ru   r   r   r   r=   r=   2   sp    
 
 = =. H H  < < 	!	O 
"	O r   r=   )
__future__r   r   r   r   
simplejsonr   r   r   simplejson.compatr   r	   r
   r   r   r    r,   r=   r   r   r   <module>ry      sP    % 
    0 0 / /.
 > >@O @Or   