
    daft                     ,   d dl Z d dlZd dlmZ  G d d      Zd Z G d de      Z G d d	e      Z G d
 de      Z	 G d de      Z
 G d de      Z G d de      Z G d de      Z G d dej                        Zedk(  r ej"                          yy)    N)ExtensionSaverc                       e Zd Zy)CN__name__
__module____qualname__     ,/root/Python-3.12.4/Lib/test/test_copyreg.pyr   r          r   r   c                     t         dfS )Nr
   )r   )cs    r   pickle_Cr   	   s    b5Lr   c                       e Zd Zy)WithoutSlotsNr   r
   r   r   r   r      r   r   r   c                       e Zd ZdZy)WithWeakref)__weakref__Nr   r   r	   	__slots__r
   r   r   r   r      s     Ir   r   c                       e Zd ZdZy)WithPrivate__spamNr   r
   r   r   r   r          Ir   r   c                       e Zd ZdZy) _WithLeadingUnderscoreAndPrivater   Nr   r
   r   r   r   r      r   r   r   c                       e Zd ZdZy)___r   Nr   r
   r   r   r    r       r   r   r    c                       e Zd ZdZy)WithSingleStringspamNr   r
   r   r   r"   r"      s    Ir   r"   c                       e Zd ZdZy)WithInherited)eggsNr   r
   r   r   r%   r%      s    Ir   r%   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)CopyRegTestCasec                 @    t        j                  t        t               y )N)copyregpickler   r   selfs    r   
test_classzCopyRegTestCase.test_class%   s    q(#r   c                 X    | j                  t        t        j                  t        d       y Nznot a callable)assertRaises	TypeErrorr*   r+   r   r,   s    r   test_noncallable_reducez'CopyRegTestCase.test_noncallable_reduce(   s    )W^^-	/r   c                 b    | j                  t        t        j                  t        t
        d       y r0   )r1   r2   r*   r+   r   r   r,   s    r   test_noncallable_constructorz,CopyRegTestCase.test_noncallable_constructor,   s     )W^^X'7	9r   c                 N    dd l }| j                  d|j                  d             y )Nr   T)copyassertEqual)r-   r7   s     r   	test_boolzCopyRegTestCase.test_bool0   s    tyy/r   c                    d\  }}}t        |      }	 | j                  t        t        j                  |||       t        j
                  |||       | j                  t        j                  ||f   |k(         | j                  t        j                  |   ||fk(         | j                  |t        j                         t        j
                  |||       | j                  t        t        j
                  |||dz          | j                  t        t        j                  |||dz          | j                  t        t        j
                  |dd  ||       | j                  t        t        j                  |dd  ||       | j                  t        t        j
                  ||dd  |       | j                  t        t        j                  ||dd  |       |dz   t        j                  vr0| j                  t        t        j                  |dd  |dd  |dz          |j                          | j                  ||ft        j                         dD ]L  }t        |      }	 t        j
                  |||       t        j                  |||       |j                          N dD ])  }| j                  t        t        j
                  |||       + y # |j                          w xY w# |j                          w xY w)N)zjunk1 z junk2iͫ     )r;   i)r   l        )r   r1   
ValueErrorr*   remove_extensionadd_extension
assertTrue_extension_registry_inverted_registryassertNotIn_extension_cacherestore)r-   modfunccodees        r   test_extension_registryz'CopyRegTestCase.test_extension_registry4   s   4T44 !	j'*B*B!4/!!#tT2OOG77T	BdJKOOG66t<dKLT7#;#;<!!#tT2j'*?*?!43j'*B*B!43 j'*?*?!!"gtT4j'*B*B!!"gtT4 j'*?*?!48T3j'*B*B!48T3 axw999!!*g.F.F"%ab'48TAX? IIK 	#tg&A&AB " 	Dt$A%%c46((dD9			 & 	/Dj'*?*?!4/	/% IIK 		s   HK	 .K	KK0c                    | j                  t        j                  t              g        | j                  t        j                  t              g        dg}| j                  t        j                  t
              |       dg}| j                  t        j                  t              |       | j                  t        j                  t              dg       | j                  t        j                  t              dg       ddg}|j                          t        j                  t              }|j                          | j                  ||       y )N_WithPrivate__spam&_WithLeadingUnderscoreAndPrivate__spamr   r#   r&   )r8   r*   
_slotnamesr   r   r   r   r    r"   sortr%   )r-   expectedresults      r   test_slotnameszCopyRegTestCase.test_slotnamesn   s    ++L92>++K8"=()++K8(C<=++,LM!	#++C08*=++,<=xHF###M2*r   N)	r   r   r	   r.   r3   r5   r9   rJ   rR   r
   r   r   r(   r(   #   s!    $/908/t+r   r(   __main__)r*   unittesttest.pickletesterr   r   r   objectr   r   r   r   r    r"   r%   TestCaser(   r   mainr
   r   r   <module>rY      s      ,	 		6 	!& !& v & v $ Y+h'' Y+x zHMMO r   