
    8tft(                         d dl mZ d dlmZmZmZmZmZmZ d dl	Z
 G d de      Z G d de      Zd Zd	 Z G d
 de      Zy)    )TestCase)StringIO	long_typebbinary_type	text_typePY3Nc                       e Zd Zd Zy)MisbehavingTextSubtypec                      y)NzFAIL! selfs    d/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/simplejson/tests/test_dump.py__str__zMisbehavingTextSubtype.__str__   s        N)__name__
__module____qualname__r   r   r   r   r   r      s    r   r   c                        e Zd ZddZd Zd Zy)MisbehavingBytesSubtypeNc                      y)Nz
bad decoder   )r   encodings     r   decodezMisbehavingBytesSubtype.decode
   s    r   c                      y)Nzbad __str__r   r   s    r   r   zMisbehavingBytesSubtype.__str__   s    r   c                     t        d      S )Nzbad __bytes__r   r   s    r   	__bytes__z!MisbehavingBytesSubtype.__bytes__   s    !!r   N)r   r   r   r   r   r   r   r   r   r   r   	   s    "r   r   c                 T    t         r!t        | t              r| j                  d      S | S )Nascii)r	   
isinstancebytesr   )ss    r   as_text_typer%      s"    
z!U#xx  Hr   c                 &     | j                   d      S )Niso-8859-15)r   r   s    r   decode_iso_8859_15r(      s    188M""r   c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)TestDumpc                     t               }t        j                  i |       | j                  |j	                         d       y N{})r   jsondumpassertEqualgetvalue)r   sios     r   	test_dumpzTestDump.test_dump   s-    j		"c.r   c           	      z   dD ]  }| j                  t        j                  t        j                  |            |u        | j                  t        j                  t        j                  |g            d   |u        | j                  t        j                  t        j                  d|i            d   |u         y )N)NTFr   a)
assertTruer.   loadsdumps)r   cs     r   test_constantszTestDump.test_constants   s    $ 	HAOODJJtzz!}5:;OODJJtzz1#7:a?@OODJJtzz3(';<SAQFG	Hr   c                    t        d      dfdddddt        d      dfg}|D ]  \  }}| j                  t        j                  t        j
                  ||i            ||i       | j                  t        j                  t        j
                  ||id	
            ||i        | j                  t        t        j
                  t        di       i ddit        d      dddifD ]  }dD ]  }t        |      }d|t        <   t        d |j                         D              }| j                  t        j                  t        j
                  |d	|            |       | j                  t        j                  t        j
                  d|id	|            d|i       | j                  t        j                  t        j
                  |gd	|            |g         y )Nr#   )g      ?z1.0)
   10)Ttrue)Ffalse)Nnulld   100T	sort_keys   otherderpherp   )FTc              3   <   K   | ]  \  }}t        |      |f  y wr   )r%   ).0keyvals      r   	<genexpr>z.TestDump.test_stringify_key.<locals>.<genexpr>9   s     OzS<,c2Os   )skipkeysrD    )
r   r   r0   r.   r7   r8   assertRaises	TypeErrordictitems)r   rT   kexpectvrD   v0v1s           r   test_stringify_keyzTestDump.test_stringify_key%   s   G*g&!C.%(*  	"IAv

4::q&k23 " 

4::q&kTBC "		" 	)TZZ$;wlQvY61$=> 	A* 	!W4OQWWYOO  JJtzz"tyQR   JJtzz2r(TYWXH   JJtzz2$STD	r   c                 N    | j                  t        j                  i       d       y r,   )r0   r.   r8   r   s    r   
test_dumpszTestDump.test_dumpsD   s    B.r   c                     | j                  t        j                  dddd      d       | j                  t        j                  dddt        d	      dd
t        d      dddid      d       y )NFT)TFrC   z{"false": true, "true": false}rI   g      @g      @   rE      7r   z3{"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1})r0   r.   r8   r   r   s    r   test_encode_truefalsezTestDump.test_encode_truefalseG   sv    d+t=1	3 	JJCil1ta	
   B	Cr   c                     g d}t        j                  t        j                  |            }| j                  |d       y )N))onerE   )tworI   )three   )four   )fiver^   z6{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5})r.   r8   OrderedDictr0   )r   rT   r$   s      r   test_ordered_dictzTestDump.test_ordered_dictU   s5    PJJt''./D	Fr   c                      G d dt               }t        j                  g d |d            }| j                  |d       y)a  
        A test against the regression mentioned at `github issue 29`_.

        The indent parameter should accept any type which pretends to be
        an instance of int or long when it comes to being multiplied by
        strings, even if it is not actually an int or long, for
        backwards compatibility.

        .. _github issue 29:
           http://github.com/simplejson/simplejson/issue/29
        c                       e Zd ZdZd Zd Zy)@TestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeIntz'An awesome reimplementation of integersc                 ^    t        |      dkD  rt        |d   t              r|d   | _        y y y )Nr   )lenr"   int_int)r   argskwargss      r   __init__zITestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__init__m   s2    t9q=
 "$q'3/$(G	 0 !r   c                 N    t        | d      r| j                  |z  S t        d      )Nrr   zOTo do non-awesome things with this object, please construct it from an integer!)hasattrrr   NotImplementedError)r   rF   s     r   __mul__zHTestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__mul__x   s2     4(99u,,- /M N Nr   N)r   r   r   __doc__ru   ry   r   r   r   
AwesomeIntrn   j   s    9,Nr   r{   )r   rE   rI   rf   )indentz[
   0,
   1,
   2
]N)objectr.   r8   r0   )r   r{   r$   s      r   #test_indent_unknown_type_acceptancez,TestDump.test_indent_unknown_type_acceptance]   s7    	N 	N0 JJyA767r   c                     dgdz  }| j                  t        j                  t        j                  |            |       y )Nr   i )r0   r.   r7   r8   )r   lsts     r   test_accumulatorzTestDump.test_accumulator   s.    cFlDJJsO4c:r   c                 p   t        dd      D ]  }t        d t        |      D              }t               }t        j                  ||d       | j                  |j                         t        j                  |d             | j                  t        j                  |j                               |        y )NrI       c              3   6   K   | ]  }t        |      |f  y wr   )str)rK   xs     r   rN   z*TestDump.test_sort_keys.<locals>.<genexpr>   s     :Qc!fa[:s   TrC   )	rangerS   r   r.   r/   r0   r1   r8   r7   )r   num_keyspr2   s       r   test_sort_keyszTestDump.test_sort_keys   s    a 	<H:%/::A*CIIa-S\\^TZZT-JKTZZ7;	<r   c                    d}| j                  t        j                  t        |            t        j                  |             | j                  t        j                  t        |      g      t        j                  |g             | j                  t        j                  t        |      di      t        j                  |di             y )Nzthis is some text*   )r0   r.   r8   r   )r   texts     r   test_misbehaving_text_subtypez&TestDump.test_misbehaving_text_subtype   s    "JJ-d34JJt	
 	JJ.t456JJv	
 	JJ.t4b9:JJbz"	
r   c                    t        d      }| j                  t        j                  t	        |            t        j                  |             | j                  t        j                  t	        |      g      t        j                  |g             | j                  t        j                  t	        |      di      t        j                  |di             y )Nu   this is some data â¬r   )r   r0   r.   r8   r   )r   datas     r   test_misbehaving_bytes_subtypez'TestDump.test_misbehaving_bytes_subtype   s    12JJ.t45JJt	
 	JJ/567JJv	
 	JJ/5r:;JJbz"	
r   c                    | j                  t        j                  t        d            d       | j	                  t
        t        j                  t        d             | j                  t        j                  t        d      d      d       | j                  t        j                  t        d      d      d       t        r| j	                  t        t        j                  t        d      d        | j	                  t        t        j                  t        d      d        | j                  t        j                  t        d      d t              d       y | j                  t        j                  t        d      d       d       | j	                  t
        t        j                  t        d      d        | j	                  t
        t        j                  t        d      d t               y )	N   â¬z"\u20ac"   ¤
iso-8859-1r   z"\u00a4"r'   r   default	r0   r.   r8   r   rQ   UnicodeDecodeErrorr	   rR   r(   r   s    r   test_bytes_toplevelzTestDump.test_bytes_toplevel   sf   An$56D,djj!F)DAfIE$	&AfIF$	&iQ~5F'+  -iQvY'+  -TZZ&	D0BD') TZZ.(9DI(*0$**ai'+  -0$**ai'+5G  Ir   c                    | j                  t        j                  t        d      g      d       | j	                  t
        t        j                  t        d      g       | j                  t        j                  t        d      gd      d       | j                  t        j                  t        d      gd      d       t        r| j	                  t        t        j                  t        d      gd        | j	                  t        t        j                  t        d      gd        | j                  t        j                  t        d      gd t              d       y | j                  t        j                  t        d      gd       d       | j	                  t
        t        j                  t        d      gd        | j	                  t
        t        j                  t        d      gd t               y )	Nr   z
["\u20ac"]r   r   r   z
["\u00a4"]r'   r   r   r   s    r   test_bytes_nestedzTestDump.test_bytes_nested   s}   Q~%6$78-H,djj1V9+FQvYK,G&	(QvYK-H&	(ia6G5H'+  -iai['+  -TZZ6d0BD*, TZZ>):(;dK*,0$**qyk'+  -0$**qyk'+5G  Ir   c                    | j                  t        j                  t        d      di      d       | j	                  t
        t        j                  t        d      di       | j                  t        j                  t        d      did      d       | j                  t        j                  t        d      did      d       t        r| j	                  t        t        j                  t        d      did        | j	                  t        t        j                  t        d      did        | j	                  t        t        j                  t        d      did t        	       | j                  t        j                  t        d      did d
      d       y | j                  t        j                  t        d      did       d       | j	                  t
        t        j                  t        d      did        | j	                  t
        t        j                  t        d      did t        	       | j	                  t
        t        j                  t        d      did d
       y )Nr   r   z{"\u20ac": 42}r   r   r   z{"\u00a4": 42}r'   r   T)r   rO   r-   r   r   s    r   test_bytes_keyzTestDump.test_bytes_key   s   Q~%6$;<>OP,djj1V9b/JQvYOlK*	,QvYOmL*	,ia6G5L'+  -iai_'+  -iai_'+5G  ITZZ6B$157"$ TZZ>):B(?$O.00$**qy"o'+  -0$**qy"o'+5G  I0$**qy"o'+d  <r   N)r   r   r   r3   r:   rZ   r\   ra   rk   r~   r   r   r   r   r   r   r   r   r   r   r*   r*      sN    /
H>/CF&8P;
<
 
I.I.<r   r*   )unittestr   simplejson.compatr   r   r   r   r   r	   
simplejsonr.   r   r   r%   r(   r*   r   r   r   <module>r      sA     Q Q Y "k "
#`<x `<r   