
    dafi	                     t    d dl mZ d dlmZmZ d dlmZmZ  G d d      Z G d dee      Z	 G d d	ee      Z
y
)    )StringIO)PyTestCTest)
bigmemtest_1Gc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestDumpc                     t               }| j                  j                  i |       | j                  |j	                         d       y Nz{})r   jsondumpassertEqualgetvalue)selfsios     3/root/Python-3.12.4/Lib/test/test_json/test_dump.py	test_dumpzTestDump.test_dump   s1    j		r3.    c                 F    | j                  | j                  i       d       y r   r   dumpsr   s    r   
test_dumpszTestDump.test_dumps   s    B.r   c                 P   ddd}| j                  t              5  | j                  j                  |       d d d        | j                  j                  |d      }| j                  j	                  |      }| j                  d|       | j                  d|       y # 1 sw Y   fxY w)NFT)   invalid_key	valid_key)skipkeysr   r   )assertRaises	TypeErrorr   r   loadsassertInassertNotIn)r   vsos       r   test_dump_skipkeyszTestDump.test_dump_skipkeys   s    "6y) 	IIOOA	 IIOOAO-IIOOAk1%+	 	s   BB%c           	          | j                  | j                  dddd      d       | j                  | j                  ddddd	d      d
       y )NFT)TF	sort_keysz{"false": true, "true": false}g      @      )   g      @F   z+{"false": 1, "2": 3.0, "4.0": 5, "6": true}r   r   s    r   test_encode_truefalsezTestDump.test_encode_truefalse   s_    d+t $ =1	3 	ad3t $ E=	?r   c                 r    t               gdz  fd}| j                  | j                  |      d       y )N
   c                     d= y )N )objas    r   crasherz-TestDump.test_encode_mutated.<locals>.crasher$   s
    "r   )defaultz[null, null, null, null, null])objectr   r   )r   r6   r5   s     @r   test_encode_mutatedzTestDump.test_encode_mutated"   s5    XJO	Aw71	3r   c                      G fddt               } G fdd      }t        d      D cg c]	  } |        c} |       }d|d<   | j                  | j                  |d	      d
       y c c}w )Nc                       e Zd Z fdZy))TestDump.test_encode_evil_dict.<locals>.Dc                     S )Nr3   r   Ls    r   keysz.TestDump.test_encode_evil_dict.<locals>.D.keys,   s    r   N)__name__
__module____qualname__r@   r?   s   r   Dr<   +   s    r   rE   c                       e Zd Z fdZd Zy))TestDump.test_encode_evil_dict.<locals>.Xc                     d= y)Nr   9  r3   r>   s    r   __hash__z2TestDump.test_encode_evil_dict.<locals>.X.__hash__0   s    aDr   c                      y)Nr   r3   )r   r%   s     r   __lt__z0TestDump.test_encode_evil_dict.<locals>.X.__lt__4   s    r   N)rA   rB   rC   rJ   rL   rD   s   r   XrG   /   s    r   rM   ib  ztrue.datrI   Tr(   z{"1337": "true.dat"})dictranger   r   )r   rE   rM   idr?   s        @r   test_encode_evil_dictzTestDump.test_encode_evil_dict*   sd    	 		 	  +&QQS&C$A68NO 's   A-N)	rA   rB   rC   r   r   r&   r.   r9   rR   r3   r   r   r	   r	      s!    /
/,?3Pr   r	   c                       e Zd Zy)
TestPyDumpN)rA   rB   rC   r3   r   r   rT   rT   =   s    r   rT   c                   ,    e Zd Z eed      d        Zy)	TestCDumpr+   )sizememusec                 "   t        d|t        z  z        }dg|z  }| j                  |      }| j                  t	        |      |dz         | j                  |d d d       | j                  |dd  d       | j                  |dd d|dz
  z         y )Ni  r+      [z1]z1, )intr   r   r   len)r   rW   Nlencodeds        r   test_large_listzTestCDump.test_large_listF   s     D3J/0C!G**Q-Wq1u-!c*t,2Q8r   N)rA   rB   rC   r   r   rb   r3   r   r   rV   rV   ?   s     S#9 $9r   rV   N)ior   test.test_jsonr   r   test.supportr   r   r	   rT   rV   r3   r   r   <module>rf      s5     ( (4P 4Pn )6 (9% 9r   