a
     RîhZ  ã                   @   sz   d dl Z d dlZd dlmZ d dlmZ d dlZd dlZG dd„ deejƒZ	G dd„ dejƒZ
dd	„ Zed
krve ¡  dS )é    N)Úsupport)ÚAbstractPickleTestsc                   @   s6   e Zd Zd
dd„Zdd„ ZdZdZdd„ Zdd	„ ZdS )ÚOptimizedPickleTestsNc                 K   s   t  tj||fi |¤Ž¡S ©N)ÚpickletoolsÚoptimizeÚpickleÚdumps)ÚselfÚargÚprotoÚkwargs© r   ú=/opt/python-3.9.24/usr/lib/python3.9/test/test_pickletools.pyr	   
   s    zOptimizedPickleTests.dumpsc                 K   s   t j|fi |¤ŽS r   )r   Úloads)r
   ÚbufÚkwdsr   r   r   r      s    zOptimizedPickleTests.loadsc                 C   s¾   dd„ t dƒD ƒ}| |d ¡ t tjd ƒD ]Š}t ||¡}t |¡}|  ||¡ |  |d |d ¡ t 	|¡}t |¡}|  ||¡ |  |d |d ¡ |  
tj|¡ |  
tj|¡ q.d S )Nc                 S   s   g | ]}t |ƒ‘qS r   )Ústr)Ú.0Úir   r   r   Ú
<listcomp>   ó    zBOptimizedPickleTests.test_optimize_long_binget.<locals>.<listcomp>i  éÿÿÿÿé   éþÿÿÿ)ÚrangeÚappendr   ÚHIGHEST_PROTOCOLr	   r   ÚassertEqualÚassertIsr   r   ÚassertNotInÚLONG_BINGETÚLONG_BINPUT)r
   Údatar   ÚpickledÚ	unpickledÚpickled2Ú
unpickled2r   r   r   Útest_optimize_long_binget   s    


z.OptimizedPickleTests.test_optimize_long_bingetc                 C   sŠ   d}|   tj|¡ t |¡}|  |g d¢¡ |  |d |d ¡ t |¡}t |¡}|  |g d¢¡ |  |d |d ¡ |  tj|¡ d S )Ns    €•       ]”(ŒspamqŒham”he.)ZspamÚhamr)   r   é   )	ZassertInr   ÚBINPUTr   r   r   r   r   r    )r
   r$   r%   r&   r'   r   r   r   Ú test_optimize_binput_and_memoize&   s    


z5OptimizedPickleTests.test_optimize_binput_and_memoize)N)	Ú__name__Ú
__module__Ú__qualname__r	   r   Ztest_pickle_to_2xZ+test_framed_write_sizes_with_delayed_writerr(   r,   r   r   r   r   r      s   
r   c                   @   s   e Zd Zdd„ ZdS )ÚMiscTestCasec                 C   s   h d£}t j| t|d d S )N>O   Zint4Zbytes8Zbytes1Zuint8Z
bytearray8Zread_string1Zpyinteger_or_boolZcode2opZ	read_int4Z
read_uint1Zread_stringnl_noescapeZdecimalnl_shortZlong4Zread_unicodestring8Zread_unicodestring4ZUP_TO_NEWLINEZ
read_long4Zpybytes_or_strZ
read_uint2Zread_decimalnl_longZlong1Z	anyobjectZ
OpcodeInfoZTAKEN_FROM_ARGUMENT4ZTAKEN_FROM_ARGUMENT8UZuint4ZpylistZuint2Zread_unicodestring1Z
read_long1ZpylongZ
read_uint4Zstring4Zdecimalnl_longZpyboolZread_bytes1Zstring1Zstringnl_noescapeZpybytearrayZTAKEN_FROM_ARGUMENT1Zread_float8Zfloat8Zunicodestring8ZstringnlZread_unicodestringnlZpysetZpyintZread_string4Zread_stringnl_noescape_pairZbytes4Zunicodestring4Zread_bytes4Z
read_uint8Úbytes_typesZTAKEN_FROM_ARGUMENT4UZopcodesZread_decimalnl_shortZread_stringnlZpybufferZ
stacksliceZStackObjectZread_bytearray8ZpybytesZpydictZunicodestringnlZunicodestring1Zuint1ZpystringZstringnl_noescape_pairZArgumentDescriptorZ	pyunicodeZpynoneZread_bytes8Zread_floatnlZpyfrozensetZpyfloatZpytupleZ
markobjectZfloatnl)Ú	blacklist)r   Zcheck__all__r   )r
   r2   r   r   r   Útest__all__B   s    zMiscTestCase.test__all__N)r-   r.   r/   r3   r   r   r   r   r0   A   s   r0   c                 C   s   |  t t¡¡ |S r   )ZaddTestÚdoctestZDocTestSuiter   )ÚloaderZtestsÚpatternr   r   r   Ú
load_testsa   s    r7   Ú__main__)r   r   Útestr   Ztest.pickletesterr   r4   ZunittestZTestCaser   r0   r7   r-   Úmainr   r   r   r   Ú<module>   s   9 