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