+
    Bi@	                     T    ^ RI HtHt  ! R R4      t ! R R4      t ! R R]4      tR# )	    )copysignisnanc                   &   a  ] tR t^t o R tRtV tR# )ExceptionIsLikeMixinc                   Vf   Vf   R# Vf   V P                  RV 24       Vf   V P                  RV: R24       \        V\        4      '       g]   V P                  VP                  VP                  4       V P                  VP
                  ^ ,          VP
                  ^ ,          4       R# V P                  VP                  VP                  4       V P                  \        VP                  4      \        VP                  4      4       \        VP                  VP                  4       F  w  r4V P                  W44       K  	  R# )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 None)fail
isinstanceExceptionGroupassertEqual	__class__argsmessagelen
exceptionszipassertExceptionIsLike)selfexctemplateets   &&&  ,/usr/lib/python3.14/test/support/testcase.pyr   *ExceptionIsLikeMixin.assertExceptionIsLike   s     ;8+II.se45;II3H<zJK#~..S]]H,>,>?SXXa[(--*:;S[[(*:*:;S0#h6I6I2JKCNNH,?,?@**10 A     N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     1 1r   r   c                   &   a  ] tR t^t o R tRtV tR# )FloatsAreIdenticalMixinc                B   Rp\        V4      '       g   \        V4      '       d&   \        V4      '       d   \        V4      '       d   R# M5W8X  d0   VR8w  d   R# \        RV4      \        RV4      8X  d   R# VR,          pV P                  VP                  W4      4       R# )zFail 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ymsgs   &&& r   assertFloatsAreIdentical0FloatsAreIdenticalMixin.assertFloatsAreIdentical    sw     788uQxxQxxE!HHVCx#q!Xc1%5555		#**Q"#r   r   N)r   r   r   r   r+   r    r!   r"   s   @r   r%   r%      s     $ $r   r%   c                   &   a  ] tR t^8t o R tRtV tR# )ComplexesAreIdenticalMixinc                    V P                  VP                  VP                  4       V P                  VP                  VP                  4       R# )zFail 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   assertComplexesAreIdentical6ComplexesAreIdenticalMixin.assertComplexesAreIdentical9   s4     	%%affaff5%%affaff5r   r   N)r   r   r   r   r2   r    r!   r"   s   @r   r.   r.   8   s     6 6r   r.   N)mathr   r   r   r%   r.   r   r   r   <module>r5      s)     1 16$ $2	6!8 	6r   