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