ó
    F\h“  ã                   óf   • S SK JrJr   " S S5      r " S S5      r " S S5      r " S S	\5      rg
)é    )ÚcopysignÚisnanc                   ód   • \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSrg)ÚExtraAssertionsé   Nc                 óx   • [        X5      (       a  g U< SU< 3nU R                  U R                  X45      5        g )Nz is not a subclass of ©Ú
issubclassÚfailÚ_formatMessage©ÚselfÚclsÚ
superclassÚmsgÚstandardMsgs        Ú,/usr/lib/python3.13/test/support/testcase.pyÚassertIsSubclassÚ ExtraAssertions.assertIsSubclass   s8   € Ü�c×&Ñ&ØØ™Ð5°j±^ÐDˆØ�	‰	�$×%Ñ% cÓ7Õ8ó    c                 óx   • [        X5      (       d  g U< SU< 3nU R                  U R                  X45      5        g )Nz is a subclass of r	   r   s        r   ÚassertNotIsSubclassÚ#ExtraAssertions.assertNotIsSubclass   s8   € Ü˜#×*Ñ*ØØ™Ð1°*±Ð@ˆØ�	‰	�$×%Ñ% cÓ7Õ8r   c                 óZ  • [        X5      (       d›  [        U[        R                  5      (       a  SUR                  < SU< 3nOF[        U[
        5      (       a  SUR                  < SU< 3nO[        U5      R                  < SU< 3nU R                  U R                  X45      5        g g )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   ÚassertHasAttrÚExtraAssertions.assertHasAttr   s–   € Ü�s×!Ñ!Ü˜#œu×/Ñ/×0Ñ0Ø '¨¯©Ñ'7Ð7IÈ$ÉÐR‘Ü˜C¤×&Ñ&Ø ,¨S¯\©\Ñ,<Ð<NÈtÉhÐW‘ä!% c£×!3Ñ!3Ñ 6Ð6OÐPTÉxÐX�Ø�I‰I�d×)Ñ)¨#Ó;Õ<ð "r   c                 óZ  • [        X5      (       a›  [        U[        R                  5      (       a  SUR                  < SU< 3nOF[        U[
        5      (       a  SUR                  < SU< 3nO[        U5      R                  < SU< 3nU R                  U R                  X45      5        g g )Nr   z has unexpected attribute r   z! object has unexpected attribute r   r$   s        r   ÚassertNotHasAttrÚ ExtraAssertions.assertNotHasAttr   s›   € Ü�3×ÑÜ˜#œu×/Ñ/×0Ñ0Ø '¨¯©Ñ'7Ð7QÐRVÑQYÐZ‘Ü˜C¤×&Ñ&Ø ,¨S¯\©\Ñ,<Ð<VÐW[ÑV^Ð_‘ä!% c£×!3Ñ!3Ñ 6Ð6WÐX\ÑW_Ð`�Ø�I‰I�d×)Ñ)¨#Ó;Õ<ð r   c                 ó„   • UR                  U5      (       a  g U< SU< 3nU R                  U R                  X45      5        g )Nz doesn't start with ©Ú
startswithr   r   )r   ÚsÚprefixr   r   s        r   ÚassertStartsWithÚ ExtraAssertions.assertStartsWith&   s<   € Ø�<‰<˜×ÑØØ™Ð1°&±Ð<ˆØ�	‰	�$×%Ñ% cÓ7Õ8r   c                 ó€   • UR                  U5      (       d  g U R                  U R                  X1< SU< 35      5        g )Nz starts with r-   )r   r/   r0   r   s       r   ÚassertNotStartsWithÚ#ExtraAssertions.assertNotStartsWith,   s6   € Ø�|‰|˜F×#Ñ#ØØ�	‰	�$×%Ñ% c©U°-À¹zÐ+JÓKÕLr   c                 ó„   • UR                  U5      (       a  g U< SU< 3nU R                  U R                  X45      5        g )Nz doesn't end with ©Úendswithr   r   )r   r/   Úsuffixr   r   s        r   ÚassertEndsWithÚExtraAssertions.assertEndsWith1   s<   € Ø�:‰:�f×ÑØØ™Ð/°©zÐ:ˆØ�	‰	�$×%Ñ% cÓ7Õ8r   c                 ó€   • UR                  U5      (       d  g U R                  U R                  X1< SU< 35      5        g )Nz ends with r7   )r   r/   r9   r   s       r   ÚassertNotEndsWithÚ!ExtraAssertions.assertNotEndsWith7   s6   € Ø�z‰z˜&×!Ñ!ØØ�	‰	�$×%Ñ% c©U°+¸f¹ZÐ+HÓIÕJr   © )N)r"   Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r'   r*   r1   r4   r:   r=   Ú__static_attributes__r?   r   r   r   r      s,   † ô9ô9ô=ô=ô9ôMô
9÷Kr   r   c                   ó   • \ rS rSrS rSrg)ÚExceptionIsLikeMixiné=   c                 ór  • Uc  Uc  gUc  U R                  SU 35        Uc  U R                  SU< S35        [        U[        5      (       dS  U R                  UR                  UR                  5        U R                  UR
                  S   UR
                  S   5        gU R                  UR                  UR                  5        U R                  [        UR                  5      [        UR                  5      5        [        UR                  UR                  5       H  u  p4U R                  X45        M     g)zá
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   rP   Ú*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Ö0ò Ar   r?   N)r"   r@   rA   rB   rP   rC   r?   r   r   rE   rE   =   s   † õ1r   rE   c                   ó   • \ rS rSrS rSrg)ÚFloatsAreIdenticalMixinéX   c                 ó$  • Sn[        U5      (       d  [        U5      (       a"  [        U5      (       a  [        U5      (       a  gO,X:X  a'  US:w  a  g[        SU5      [        SU5      :X  a  gUS-  nU R                  UR                  X5      5        g)zû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   ÚassertFloatsAreIdenticalÚ0FloatsAreIdenticalMixin.assertFloatsAreIdenticalY   sw   € ð 7ˆä��8‰8”u˜Q—x‘xÜ�Q�x‰xœE !ŸH™HØøØ‹VØ�C‹xØä˜#˜qÓ!¤X¨c°1Ó%5Ó5ØàÐ5Ñ5�Ø�	‰	�#—*‘*˜QÓ"Õ#r   r?   N)r"   r@   rA   rB   r]   rC   r?   r   r   rW   rW   X   s   † õ$r   rW   c                   ó   • \ rS rSrS rSrg)ÚComplexesAreIdenticalMixinéq   c                 óœ   • U R                  UR                  UR                  5        U R                  UR                  UR                  5        g)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)r]   ÚrealÚimag)r   r[   r\   s      r   ÚassertComplexesAreIdenticalÚ6ComplexesAreIdenticalMixin.assertComplexesAreIdenticalr   s4   € ð 	×%Ñ% a§f¡f¨a¯f©fÔ5Ø×%Ñ% a§f¡f¨a¯f©fÕ5r   r?   N)r"   r@   rA   rB   re   rC   r?   r   r   r`   r`   q   s   † õ6r   r`   N)Úmathr   r   r   rE   rW   r`   r?   r   r   Ú<module>rh      s6   ðß  ÷6Kñ 6K÷r1ñ 1÷6$ñ $ô2	6Ð!8õ 	6r   