o
    GXîh’  ã                   @   sÄ   d dl Z d dlZd dlmZ G dd„ dƒZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ dejƒZedkr`e ¡  dS dS )é    N)ÚExtensionSaverc                   @   ó   e Zd ZdS )ÚCN©Ú__name__Ú
__module__Ú__qualname__© r	   r	   ú;/opt/python-3.10.19/usr/lib/python3.10/test/test_copyreg.pyr      ó    r   c                   @   r   )ÚWithoutSlotsNr   r	   r	   r	   r
   r   
   r   r   c                   @   ó   e Zd ZdZdS )ÚWithWeakref)Ú__weakref__N©r   r   r   Ú	__slots__r	   r	   r	   r
   r      ó    r   c                   @   r   )ÚWithPrivate©Ú__spamNr   r	   r	   r	   r
   r      r   r   c                   @   r   )Ú _WithLeadingUnderscoreAndPrivater   Nr   r	   r	   r	   r
   r      r   r   c                   @   r   )Ú___r   Nr   r	   r	   r	   r
   r      r   r   c                   @   r   )ÚWithSingleStringÚspamNr   r	   r	   r	   r
   r      r   r   c                   @   r   )ÚWithInherited)ÚeggsNr   r	   r	   r	   r
   r      r   r   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚCopyRegTestCasec                 C   s   |   ttjtd d ¡ d S )N)ÚassertRaisesÚ	TypeErrorÚcopyregÚpickler   ©Úselfr	   r	   r
   Ú
test_class"   s   
ÿzCopyRegTestCase.test_classc                 C   s   |   ttjtdƒd¡ d S ©Né   znot a callable)r   r   r   r    Útyper!   r	   r	   r
   Útest_noncallable_reduce&   s   
ÿz'CopyRegTestCase.test_noncallable_reducec                 C   s   |   ttjtdƒtd¡ d S r$   )r   r   r   r    r&   Úintr!   r	   r	   r
   Útest_noncallable_constructor*   s   

ÿz,CopyRegTestCase.test_noncallable_constructorc                 C   s   dd l }|  d|  d¡¡ d S )Nr   T)ÚcopyÚassertEqual)r"   r*   r	   r	   r
   Ú	test_bool.   s   zCopyRegTestCase.test_boolc              	   C   sæ  d\}}}t |ƒ}z¨|  ttj|||¡ t |||¡ |  tj||f |k¡ |  tj| ||fk¡ |  	|tj
¡ t |||¡ |  ttj|||d ¡ |  ttj|||d ¡ |  ttj|dd … ||¡ |  ttj|dd … ||¡ |  ttj||dd … |¡ |  ttj||dd … |¡ |d tjvr¬|  ttj|dd … |dd … |d ¡ W | ¡  n| ¡  w |  	||ftj¡ dD ]}t |ƒ}zt |||¡ t |||¡ W | ¡  qÂ| ¡  w dD ]}|  ttj|||¡ qäd S )N)zjunk1 z junk2iÍ«  r%   )r%   iÿÿÿ)éÿÿÿÿr   l        )r   r   Ú
ValueErrorr   Úremove_extensionÚadd_extensionZ
assertTrueÚ_extension_registryÚ_inverted_registryZassertNotInÚ_extension_cacheZrestore)r"   ÚmodÚfuncÚcodeÚer	   r	   r
   Útest_extension_registry2   s^   

ÿ

ÿ

ÿ
ÿ
ÿ
ÿ
ÿ
ÿ€
ÿÿz'CopyRegTestCase.test_extension_registryc                 C   s®   |   t t¡g ¡ |   t t¡g ¡ dg}|   t t¡|¡ dg}|   t t¡|¡ |   t t¡dg¡ |   t t¡dg¡ ddg}| 	¡  t t
¡}| 	¡  |   ||¡ d S )NZ_WithPrivate__spamZ&_WithLeadingUnderscoreAndPrivate__spamr   r   r   )r+   r   Ú
_slotnamesr   r   r   r   r   r   Úsortr   )r"   ZexpectedÚresultr	   r	   r
   Útest_slotnamesl   s   ÿ
zCopyRegTestCase.test_slotnamesN)	r   r   r   r#   r'   r)   r,   r8   r<   r	   r	   r	   r
   r       s    :r   Ú__main__)r   ZunittestZtest.pickletesterr   r   Úobjectr   r   r   r   r   r   r   ZTestCaser   r   Úmainr	   r	   r	   r
   Ú<module>   s    ]ÿ