Ë
    %´˜j“  ã                   óf   — d dl mZmZ  G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d	e«      Zy
)é    )ÚcopysignÚisnanc                   óL   — e Zd Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Z	d
d	„Z
y)ÚExtraAssertionsNc                 ón   — t        ||«      ry |›d|›�}| j                  | j                  ||«      «       y )Nz is not a subclass of ©Ú
issubclassÚfailÚ_formatMessage©ÚselfÚclsÚ
superclassÚmsgÚstandardMsgs        ú'lib/python3.12/test/support/testcase.pyÚassertIsSubclassz ExtraAssertions.assertIsSubclass   s9   € Ü�c˜:Ô&ØØ˜Ð5°j°^ÐDˆØ�	‰	�$×%Ñ% c¨;Ó7Õ8ó    c                 ón   — t        ||«      sy |›d|›�}| j                  | j                  ||«      «       y )Nz is a subclass of r   r   s        r   ÚassertNotIsSubclassz#ExtraAssertions.assertNotIsSubclass   s9   € Ü˜#˜zÔ*ØØ˜Ð1°*°Ð@ˆØ�	‰	�$×%Ñ% c¨;Ó7Õ8r   c                 ó4  — t        ||«      sŒt        |t        j                  «      rd|j                  ›d|›�}n=t        |t
        «      rd|j                  ›d|›�}nt        |«      j                  ›d|›�}| j                  | j                  ||«      «       y y )Númodule z has no attribute útype object z object has no attribute ©ÚhasattrÚ
isinstanceÚtypesÚ
ModuleTypeÚ__name__Útyper
   r   ©r   ÚobjÚnamer   r   s        r   ÚassertHasAttrzExtraAssertions.assertHasAttr   s‘   € Ü�s˜DÔ!Ü˜#œu×/Ñ/Ô0Ø '¨¯©Ð'7Ð7IÈ$ÈÐR‘Ü˜C¤Ô&Ø ,¨S¯\©\Ð,<Ð<NÈtÈhÐW‘ä!% c£×!3Ñ!3Ð 6Ð6OÐPTÈxÐX�Ø�I‰I�d×)Ñ)¨#¨{Ó;Õ<ð "r   c                 ó4  — t        ||«      rŒt        |t        j                  «      rd|j                  ›d|›�}n=t        |t
        «      rd|j                  ›d|›�}nt        |«      j                  ›d|›�}| j                  | j                  ||«      «       y y )Nr   z has unexpected attribute r   z! object has unexpected attribute r   r!   s        r   ÚassertNotHasAttrz ExtraAssertions.assertNotHasAttr   s–   € Ü�3˜ÔÜ˜#œu×/Ñ/Ô0Ø '¨¯©Ð'7Ð7QÐRVÐQYÐZ‘Ü˜C¤Ô&Ø ,¨S¯\©\Ð,<Ð<VÐW[ÐV^Ð_‘ä!% c£×!3Ñ!3Ð 6Ð6WÐX\ÐW_Ð`�Ø�I‰I�d×)Ñ)¨#¨{Ó;Õ<ð r   c                 óx   — |j                  |«      ry |›d|›�}| j                  | j                  ||«      «       y )Nz doesn't start with ©Ú
startswithr
   r   )r   ÚsÚprefixr   r   s        r   ÚassertStartsWithz ExtraAssertions.assertStartsWith&   s;   € Ø�<‰<˜ÔØØ˜Ð1°&°Ð<ˆØ�	‰	�$×%Ñ% c¨;Ó7Õ8r   c                 ót   — |j                  |«      sy | j                  | j                  ||›d|›�«      «       y )Nz starts with r(   )r   r*   r+   r   s       r   ÚassertNotStartsWithz#ExtraAssertions.assertNotStartsWith,   s5   € Ø�|‰|˜FÔ#ØØ�	‰	�$×%Ñ% c¨a¨U°-À¸zÐ+JÓKÕLr   c                 óx   — |j                  |«      ry |›d|›�}| j                  | j                  ||«      «       y )Nz doesn't end with ©Úendswithr
   r   )r   r*   Úsuffixr   r   s        r   ÚassertEndsWithzExtraAssertions.assertEndsWith1   s;   € Ø�:‰:�fÔØØ˜Ð/°¨zÐ:ˆØ�	‰	�$×%Ñ% c¨;Ó7Õ8r   c                 ót   — |j                  |«      sy | j                  | j                  ||›d|›�«      «       y )Nz ends with r0   )r   r*   r2   r   s       r   ÚassertNotEndsWithz!ExtraAssertions.assertNotEndsWith7   s5   € Ø�z‰z˜&Ô!ØØ�	‰	�$×%Ñ% c¨a¨U°+¸f¸ZÐ+HÓIÕJr   )N)r   Ú
__module__Ú__qualname__r   r   r$   r&   r,   r.   r3   r5   © r   r   r   r      s,   „ ó9ó9ó=ó=ó9óMó
9ôKr   r   c                   ó   — e Zd Zd„ Zy)ÚExceptionIsLikeMixinc                 ó^  — |€|€y|€| j                  d|› �«       |€| j                  d|›d�«       t        |t        «      sS| j                  |j                  |j                  «       | j                  |j
                  d   |j
                  d   «       y| j                  |j                  |j                  «       | j                  t        |j                  «      t        |j                  «      «       t        |j                  |j                  «      D ]  \  }}| j                  ||«       Œ y)a	  
        Passes when the provided `exc` matches the structure of `template`.
        Individual exceptions don't have to be the same objects or even pass
        an equality test: they only need to be the same type and contain equal
        `exc_obj.args`.
        Nzunexpected exception: zexpected an exception like z
, got Noner   )r
   r   ÚExceptionGroupÚassertEqualÚ	__class__ÚargsÚmessageÚlenÚ
exceptionsÚzipÚassertExceptionIsLike)r   ÚexcÚtemplateÚeÚts        r   rD   z*ExceptionIsLikeMixin.assertExceptionIsLike>   sù   € ð ˆ;˜8Ð+ØàÐØ�I‰IÐ.¨s¨eÐ4Ô5àˆ;Ø�I‰IÐ3°H°<¸zÐJÔKä˜#œ~Ô.Ø×Ñ˜SŸ]™]¨H×,>Ñ,>Ô?Ø×Ñ˜SŸX™X a™[¨(¯-©-¸Ñ*:Õ;à×Ñ˜SŸ[™[¨(×*:Ñ*:Ô;Ø×ÑœS §¡Ó0´#°h×6IÑ6IÓ2JÔKÜ˜CŸN™N¨H×,?Ñ,?Ö@‘��1Ø×*Ñ*¨1¨aÕ0ñ Ar   N)r   r6   r7   rD   r8   r   r   r:   r:   =   s   „ ó1r   r:   c                   ó   — e Zd Zd„ Zy)ÚFloatsAreIdenticalMixinc                 óø   — d}t        |«      st        |«      rt        |«      r6t        |«      r+y||k(  r%|dk7  ryt        d|«      t        d|«      k(  ry|dz  }| j                  |j                  ||«      «       y)a#  Fail unless floats x and y are identical, in the sense that:
        (1) both x and y are nans, or
        (2) both x and y are infinities, with the same sign, or
        (3) both x and y are zeros, with the same sign, or
        (4) x and y are both finite and nonzero, and x == y

        z&floats {!r} and {!r} are not identicalNg        g      ð?z: zeros have different signs)r   r   r
   Úformat)r   ÚxÚyr   s       r   ÚassertFloatsAreIdenticalz0FloatsAreIdenticalMixin.assertFloatsAreIdenticalY   sr   € ð 7ˆä�Œ8”u˜Q”xÜ�QŒxœE !œHØØ�!ŠVØ�CŠxØä˜#˜qÓ!¤X¨c°1Ó%5Ò5ØàÐ5Ñ5�Ø�	‰	�#—*‘*˜Q Ó"Õ#r   N)r   r6   r7   rO   r8   r   r   rJ   rJ   X   s   „ ó$r   rJ   c                   ó   — e Zd Zd„ Zy)ÚComplexesAreIdenticalMixinc                 óœ   — | j                  |j                  |j                  «       | j                  |j                  |j                  «       y)z×Fail unless complex numbers x and y have equal values and signs.

        In particular, if x and y both have real (or imaginary) part
        zero, but the zeros have different signs, this test will fail.

        N)rO   ÚrealÚimag)r   rM   rN   s      r   ÚassertComplexesAreIdenticalz6ComplexesAreIdenticalMixin.assertComplexesAreIdenticalr   s4   € ð 	×%Ñ% a§f¡f¨a¯f©fÔ5Ø×%Ñ% a§f¡f¨a¯f©fÕ5r   N)r   r6   r7   rU   r8   r   r   rQ   rQ   q   s   „ ó6r   rQ   N)Úmathr   r   r   r:   rJ   rQ   r8   r   r   Ú<module>rW      s6   ðß  ÷6Kñ 6K÷r1ñ 1÷6$ñ $ô2	6Ð!8õ 	6r   