a
    "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.21/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hamh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uint4Zcode2opZ
read_uint1Zstring1ZUP_TO_NEWLINEZ
markobjectZTAKEN_FROM_ARGUMENT8UZpydictZstringnlZuint8ZpybytearrayZ
bytearray8Zread_float8ZpynoneZread_string1Z
read_long4Zstring4Zread_string4ZTAKEN_FROM_ARGUMENT4UZ
stacksliceZopcodesZfloat8ZTAKEN_FROM_ARGUMENT4Zbytes4Zbytes8Zlong1Zread_unicodestring8Zread_unicodestring4ZpytupleZint4ZfloatnlZunicodestring8Zuint2Zread_bytearray8ZpyboolZunicodestringnlZstringnl_noescapeZdecimalnl_shortZpybytesZunicodestring4Z	anyobjectZ
read_uint4Zstringnl_noescape_pairZStackObjectZread_floatnlZread_decimalnl_longZread_bytes8Z	pyunicodeZ
read_long1ZpylongZuint1Zread_bytes4Zlong4Zpyinteger_or_boolZunicodestring1bytes_typesZTAKEN_FROM_ARGUMENT1Zbytes1ZpysetZ
OpcodeInfoZread_unicodestringnlZpylistZpyfrozensetZread_bytes1Zread_stringnl_noescape_pairZpyfloatZpystringZdecimalnl_longZpyintZ
read_uint2Z
read_uint8Zread_stringnlZpybufferZ	read_int4Zread_unicodestring1Zpybytes_or_strZread_decimalnl_shortZArgumentDescriptorZread_stringnl_noescape)	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 