
    daf7
                         d Z ddl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)z7Unit tests for __instancecheck__ and __subclasscheck__.    Nc                       e Zd Zd Zd Zy)ABCc                 V     t         fdt        |      |j                  hD              S )z Implement isinstance(inst, cls).c              3   @   K   | ]  }j                  |        y wN)__subclasscheck__).0cclss     //root/Python-3.12.4/Lib/test/test_typechecks.py	<genexpr>z(ABC.__instancecheck__.<locals>.<genexpr>
   s$      : ((+ :s   )anytype	__class__)r   insts   ` r   __instancecheck__zABC.__instancecheck__   s*     :!$Z8: : 	:    c                     | j                   j                  dt                     | hz  t        fd|j	                         D              S )zImplement issubclass(sub, cls).__subclass__c              3   &   K   | ]  }|v  
 y wr    )r	   r
   
candidatess     r   r   z(ABC.__subclasscheck__.<locals>.<genexpr>   s     6q1
?6s   )__dict__getsetr   mro)r   subr   s     @r   r   zABC.__subclasscheck__   s9    \\%%nce<uD
6CGGI666r   N)__name__
__module____qualname__r   r   r   r   r   r   r      s    :
7r   r   c                       e Zd ZehZy)IntegerN)r   r   r    intr   r   r   r   r"   r"      s	    5Lr   r"   )	metaclassc                       e Zd Zy)SubIntN)r   r   r    r   r   r   r&   r&      s    r   r&   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TypeChecksTestc                     | j                  t        j                  t              d       | j                  t        j                  t              d       y NTF)assertEqualr"   r   r#   floatselfs    r   testIsSubclassInternalz%TypeChecksTest.testIsSubclassInternal   s8    2237>22595Ar   c                 (   | j                  t        t        t              d       | j                  t        t        t        f      d       | j                  t        t        t              d       | j                  t        t        t        f      d       y r*   )r+   
issubclassr#   r"   r,   r-   s    r   testIsSubclassBuiltinz$TypeChecksTest.testIsSubclassBuiltin!   sb    C148C'4d;E73U;EG:6>r   c                    | j                  t        dt              d       | j                  t        dt        f      d       | j                  t        dt              d       | j                  t        dt        f      d       y )N*   TgQ	@Fr+   
isinstancer"   r-   s    r   testIsInstanceBuiltinz$TypeChecksTest.testIsInstanceBuiltin'   sb    B0$7B
3T:D'2E:D7*5u=r   c                     | j                  t        t               t              d       | j                  t        t               t        f      d       y NTr5   r-   s    r   testIsInstanceActualz#TypeChecksTest.testIsInstanceActual-   s6    GIw7>GIz:DAr   c                     | j                  t        t        t              d       | j                  t        t        t        f      d       y r9   )r+   r1   r"   r-   s    r   testIsSubclassActualz#TypeChecksTest.testIsSubclassActual1   s2    GW5t<GgZ8$?r   c                    | j                  t        t        t              d       | j                  t        t        t        f      d       | j                  t        t        t              d       | j                  t        t        t        f      d       | j                  t        t        t              d       | j                  t        t        t        f      d       | j                  t        t        t              d       | j                  t        t        t        f      d       | j                  t        t               t              d       | j                  t        t               t        f      d       | j                  t        t               t              d       | j                  t        t               t        f      d       | j                  t        dt              d       | j                  t        dt        f      d       y )NTFr4   )r+   r1   r&   r"   r#   r6   r-   s    r   testSubclassBehaviorz#TypeChecksTest.testSubclassBehavior5   sZ   FG4d;FWJ7>FF3T:FVI6=GV4e<GfY7?C0%8C&3U;FHg6=FHwj94@FHf5t<FHvi8$?B/7B	2E:r   N)	r   r   r    r/   r2   r7   r:   r<   r>   r   r   r   r(   r(      s#    B?>B@;r   r(   __main__)
__doc__unittestr   r   r"   r&   TestCaser(   r   mainr   r   r   <module>rD      s\    = 
7$ 
7 	W 	(;X&& (;V zHMMO r   