o
    HXîh‚  ã                   @   s~   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r=e ¡  dS 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.10.19/usr/lib/python3.10/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 ]E}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>   s    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_memoizer   )	Ú__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long1ZpyfrozensetZpylistZread_string4Zuint1Z
read_uint4ZunicodestringnlZ
read_long1ZpyfloatZread_bytearray8Zint4ZpylongZTAKEN_FROM_ARGUMENT4UZStackObjectZdecimalnl_shortZ
stacksliceZTAKEN_FROM_ARGUMENT8UZread_decimalnl_longZpytupleZread_unicodestring4Zread_decimalnl_shortZfloatnlZ
read_uint1Z	pyunicodeZread_floatnlZ
OpcodeInfoZUP_TO_NEWLINEZpybytesZread_bytes1Zbytes4Zfloat8Zdecimalnl_longZread_float8Z	anyobjectZ
read_long4ZstringnlZread_unicodestring1Zread_stringnl_noescapeZlong4ZpystringZ
markobjectZread_unicodestringnlZpynoneZunicodestring8ZTAKEN_FROM_ARGUMENT4ZpyboolZpybytes_or_strZ
bytearray8Zread_string1Zpyinteger_or_boolZpysetZstring1Zread_unicodestring8Úbytes_typesZArgumentDescriptorZpyintZread_stringnlZ	read_int4Z
read_uint8Z
read_uint2Zread_bytes8ZopcodesZbytes1ZpybufferZpydictZread_stringnl_noescape_pairZunicodestring1Zuint2Zread_bytes4Zunicodestring4Zbytes8ZTAKEN_FROM_ARGUMENT1Zstringnl_noescape_pairZstringnl_noescapeZpybytearrayZuint8Zuint4Zcode2opZstring4)Únot_exported)r   Zcheck__all__r   )r
   r1   r   r   r   Útest__all__B   s   zMiscTestCase.test__all__N)r,   r-   r.   r2   r   r   r   r   r/   A   s    r/   c                 C   s   |  t t¡¡ |S r   )ZaddTestÚdoctestZDocTestSuiter   )ÚloaderZtestsÚpatternr   r   r   Ú
load_testsb   s   r6   Ú__main__)r   r   Útestr   Ztest.pickletesterr   r3   ZunittestZTestCaser   r/   r6   r,   Úmainr   r   r   r   Ú<module>   s    9!ÿ