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