o
    gz                     @   sp   d dl Z d dlZd dlmZ d dlmZ d dlZG dd deZG dd dejZ	dd	 Z
ed
kr6e
  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   K/Users/admin/.pyenv/versions/3.10.0/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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_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pysetZread_string1Zread_stringnl_noescapeZdecimalnl_longZpybufferZbytes1Z	read_int4ZpyfloatZpybytes_or_strZstringnl_noescape_pairZstringnl_noescapeZuint1ZunicodestringnlZread_unicodestring8ZpyintZfloat8Z
read_long1ZpylongZopcodesZTAKEN_FROM_ARGUMENT1Zcode2opZStackObjectZ
read_uint4Zread_bytes4bytes_typesZuint4Zuint8Zread_string4ZTAKEN_FROM_ARGUMENT4UZunicodestring8Zstring1ZArgumentDescriptorZfloatnlZ
bytearray8Zbytes8ZpynoneZstringnlZread_unicodestring4Zint4Zbytes4Z
read_long4Zunicodestring4Zdecimalnl_shortZUP_TO_NEWLINEZread_floatnlZ
markobjectZpytupleZread_bytes8ZpybytearrayZpylistZuint2ZpyfrozensetZTAKEN_FROM_ARGUMENT4Z
OpcodeInfoZlong4Zread_stringnlZread_decimalnl_shortZTAKEN_FROM_ARGUMENT8UZlong1Zread_unicodestringnlZread_unicodestring1Zread_bytes1Zpyinteger_or_boolZ
read_uint2ZpyboolZ
read_uint8Zstring4Z
read_uint1ZpybytesZread_decimalnl_longZ	pyunicodeZread_float8ZpystringZpydictZ	anyobjectZunicodestring1Zread_stringnl_noescape_pairZ
stacksliceZread_bytearray8)not_exported)r   Zcheck__all__r   )r
   r1   r   r   r   test__all__A   s   zMiscTestCase.test__all__N)r,   r-   r.   r2   r   r   r   r   r/   @   s    r/   c                   C   s"   t t t t t t d S r   )r   Zrun_unittestr   r/   Zrun_doctestr   r   r   r   r   	test_maina   s   

r3   __main__)r   r   testr   Ztest.pickletesterr   Zunittestr   ZTestCaser/   r3   r,   r   r   r   r   <module>   s    9!
