o
    HXh                     @   s~   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r=e  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   ?/opt/python-3.10.19/usr/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stringnl_noescapeZArgumentDescriptorZbytes4ZStackObjectZUP_TO_NEWLINEZuint2ZpybufferZbytes8Z
stacksliceZpybytes_or_strZunicodestring8Zread_stringnl_noescape_pairZ
read_uint8Zbytes1Zstringnl_noescape_pairZdecimalnl_longZpyinteger_or_boolZTAKEN_FROM_ARGUMENT4Zread_string4Zuint1Z	anyobjectZint4Zread_string1Zread_bytes4ZpylistZTAKEN_FROM_ARGUMENT1Zlong4Zread_float8ZpydictZread_unicodestring8Zread_unicodestring1Zstring4ZTAKEN_FROM_ARGUMENT8UZread_decimalnl_shortZpysetZunicodestringnlZread_floatnlZ	read_int4ZpyintZfloatnlZ
read_uint1Zread_stringnlZread_bytes8Zread_stringnl_noescapeZ
read_uint4Zuint4ZpylongZread_bytearray8ZstringnlZunicodestring4ZpynoneZpybytesZ	pyunicodeZread_decimalnl_longZstring1Z
bytearray8Zpyboolbytes_typesZlong1ZpybytearrayZuint8ZpytupleZ
read_uint2Zread_unicodestring4Zcode2opZTAKEN_FROM_ARGUMENT4UZunicodestring1Zdecimalnl_shortZfloat8ZopcodesZ
OpcodeInfoZ
markobjectZpystringZread_bytes1Zread_unicodestringnlZpyfloatZ
read_long1Z
read_long4Zpyfrozenset)not_exported)r   Zcheck__all__r   )r
   r1   r   r   r   test__all__B   s   zMiscTestCase.test__all__N)r,   r-   r.   r2   r   r   r   r   r/   A   s    r/   c                 C   s   | tt |S r   )ZaddTestdoctestZDocTestSuiter   )loaderZtestspatternr   r   r   
load_testsb   s   r6   __main__)r   r   testr   Ztest.pickletesterr   r3   ZunittestZTestCaser   r/   r6   r,   mainr   r   r   r   <module>   s    9!