
    <i0                         S SK Jr  S SKrS SKrS SKJr  S SKrS SKJrJrJr  S SK	J
r
JrJr  S rS r " S S	5      r " S
 S\5      r " S S\5      rg)    )with_statementN)TestCase)encoderdecoderscanner)PY3	long_typebc                  &    [         R                  S L$ N)r   c_make_encoder     X/home/james-whalen/.local/lib/python3.13/site-packages/simplejson/tests/test_speedups.pyhas_speedupsr      s    !!--r   c                    ^  U 4S jnU$ )Nc                     > [        5       (       dK  [        [        S5      (       a  [        R                  " S5      e[        R
                  R                  S5        g T" U 0 UD6$ )NSkipTestzC Extension not available)r   hasattrunittestr   sysstdoutwrite)argskwargsfuncs     r   wrapper)skip_if_speedups_missing.<locals>.wrapper   sO    ~~x,,''(CDD

  !<=T$V$$r   r   )r   r   s   ` r   skip_if_speedups_missingr      s    % Nr   c                       \ rS rSrS r\rSrg)BadBool   c                     SS-    g N   r   r   selfs    r   __bool__BadBool.__bool__   s	    	!r   r   N)__name__
__module____qualname____firstlineno__r(   __nonzero____static_attributes__r   r   r   r!   r!      s    Kr   r!   c                   4    \ rS rSr\S 5       r\S 5       rSrg)
TestDecode#   c                 N    U R                  [        [        R                  S5        g )Nr%   )assertRaisesAttributeErrorr   c_make_scannerr&   s    r   test_make_scannerTestDecode.test_make_scanner$   s    .'*@*@!Dr   c                     S nU R                  [        US5        U R                  [        US5        [        (       d/  U R                  [        US5        U R                  [        US5        g g )Nc                 Z    [         R                  " [        5       S9R                  U 5        g )N)strict)r   JSONDecoderr!   decode)values    r   test+TestDecode.test_bad_bool_args.<locals>.test*   s    wy188?r   z""z{})r4   ZeroDivisionErrorr   r'   r?   s     r   test_bad_bool_argsTestDecode.test_bad_bool_args(   s^    	@+T48+T48s/u=/u= r   r   N)r*   r+   r,   r-   r   r7   rC   r/   r   r   r   r1   r1   #   s*    E E > >r   r1   c                   x    \ rS rSr\S 5       r\S 5       r\S 5       r\S 5       r\	(       a  \S 5       r
SrgSrg)	
TestEncode2   c                 R    U R                  [        [        R                  S SS 5        g )Nu   Í}=NLùy×Rºò'J} Êu)r4   	TypeErrorr   r   r&   s    r   test_make_encoderTestEncode.test_make_encoder3   s'    ""8	
r   c                 |   SS K nS n[        R                  " S S US SSSSS0 SSSS S SSSUR                  S5      nU R	                  [
        USS	5        U R	                  [
        USS
0S	5        S n[        R                  " S S US SSSSS0 SSSS S SSSUR                  S5      nU R	                  [        USS	5        g )Nr   c                      g r   r   r   s    r   bad_encoder15TestEncode.test_bad_str_encoder.<locals>.bad_encoder1C   s    r   c                     [        U 5      $ r   strobjs    r   <lambda>1TestEncode.test_bad_str_encoder.<locals>.<lambda>F       #c(r   z: z, Fzutf-8spam   *   c                      SS-    g r$   r   rN   s    r   bad_encoder25TestEncode.test_bad_str_encoder.<locals>.bad_encoder2M   s	    aCr   c                     [        U 5      $ r   rR   rT   s    r   rV   rW   P   rX   r   )decimalr   r   Decimalr4   rI   rA   )r'   r`   rO   encr]   s        r   test_bad_str_encoder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   S nU R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        US5        U R                  [        US	5        U R                  [        US
5        U R                  [        US5        U R                  [        US5        U R                  [        US5        g )Nc                 b    [         R                  " S0 U [        5       0D6R                  0 5        g )Nr   )r   JSONEncoderr!   encode)names    r   r?   +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)r4   rA   rB   s     r   rC   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                 l   ^ [        S5      S-  S-   mU4S jnU R                  [        [        4U5        g )N          c                  L   > [         R                  " T S9R                  S5        g )N)int_as_string_bitcountr   )r   rg   rh   )
long_counts   r   r?   =TestEncode.test_int_as_string_bitcount_overflow.<locals>.testj   s    zBII!Lr   )r	   r4   rI   OverflowError)r'   r?   r~   s     @r   $test_int_as_string_bitcount_overflow/TestEncode.test_int_as_string_bitcount_overflowg   s1    q\2%b(
	M9m4d;r   c                     U R                  [        5         [        R                  " SS9R	                  [        S5      S05        S S S 5        g ! , (       d  f       g = f)Nu   )encodingkey{   )r4   UnicodeEncodeErrorr   rg   rh   r
   r&   s    r   test_bad_encodingTestEncode.test_bad_encodingo   s>    ""#56##X6==qxoN 766s   /A
Ar   N)r*   r+   r,   r-   r   rJ   rc   rC   r   r   r   r/   r   r   r   rF   rF   2   sp    
 
 = =. H H  < < 	!	O 
"	O r   rF   )
__future__r   r   r   r   
simplejsonr   r   r   simplejson.compatr   r	   r
   r   r   r!   r1   rF   r   r   r   <module>r      sP    % 
    0 0 / /.
 > >@O @Or   