
    (ph                     Z   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr   " S S5      r " S S\5      r " S S5      r  " S	 S
\5      r! " S S\5      r" " S S\5      r# " S S5      r$ " S S5      r% " S S5      r& " S S5      r' " S S5      r( " S S5      r) " S S5      r*S r+S r,S r-S  r.S! r/S" r0S# r1S$ r2S% r3S& r4S' r5 " S( S)\5      r6S* r7\Rp                  Rs                  \(       + S+S,9 " S- S.5      5       r:g)/    N)assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_array_lessbuild_err_msgassert_raisesassert_warnsassert_no_warningsassert_allcloseassert_approx_equalassert_array_almost_equal_nulpassert_array_max_ulpclear_and_catch_warningssuppress_warningsassert_string_equalassert_tempdirtemppathassert_no_gc_cyclesHAS_REFCOUNTc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)_GenericTest   c                 &    U R                  X5        g N_assert_funcselfabs      Q/var/www/html/venv/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py_test_equal_GenericTest._test_equal   s    !    c                 x    [        [        5         U R                  X5        S S S 5        g ! , (       d  f       g = fr   )r	   AssertionErrorr   r   s      r#   _test_not_equal_GenericTest._test_not_equal   s$    >*a# +**s   +
9c                     [         R                  " SS/5      n[         R                  " SS/5      nU R                  X5        g)z/Test two equal array of rank 1 are found equal.      Nnparrayr$   r   s      r#   test_array_rank1_eq _GenericTest.test_array_rank1_eq   s4    HHaVHHaVr&   c                     [         R                  " SS/5      n[         R                  " SS/5      nU R                  X5        g)z7Test two different array of rank 1 are found not equal.r,   r-   Nr/   r0   r)   r   s      r#   test_array_rank1_noteq#_GenericTest.test_array_rank1_noteq#   s4    HHaVHHaVQ"r&   c                     [         R                  " SS/SS//5      n[         R                  " SS/SS//5      nU R                  X5        g)z/Test two equal array of rank 2 are found equal.r,   r-         Nr.   r   s      r#   test_array_rank2_eq _GenericTest.test_array_rank2_eq*   sF    HHq!fq!f%&HHq!fq!f%&r&   c                     [         R                  " SS/5      n[         R                  " SS/SS//5      nU R                  X5        g):Test two arrays with different shapes are found not equal.r,   r-   Nr4   r   s      r#   test_array_diffshape!_GenericTest.test_array_diffshape1   s=    HHaVHHq!fq!f%&Q"r&   c                 ^    [         R                  " SS/[        S9nU R                  US5        g)zTest object arrays.r,   dtypeN)r/   r0   objectr$   r    r!   s     r#   test_objarray_GenericTest.test_objarray8   s&    HHaV6*Ar&   c                 ,    U R                  / SQS5        g )Nr,   r-   r8   )r$   r    s    r#   test_array_likes_GenericTest.test_array_likes=   s    I.r&    N)__name__
__module____qualname____firstlineno__r$   r)   r1   r5   r:   r>   rE   rJ   __static_attributes__rL   r&   r#   r   r      s*     $##
/r&   r   c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TestArrayEqualA   c                     [         U l        g r   )r   r   rI   s    r#   setup_methodTestArrayEqual.setup_methodC   s
    .r&   c                 V   ^  U 4S jnS H  nU" U5        M     S H  nU" U5        M     g)z!Test rank 1 array for all dtypes.c                    > [         R                  " SU 5      nUR                  S5        UR                  5       nUR                  5       nUR                  S5        TR	                  X5        TR                  X25        g )Nr-   r,   r   r/   emptyfillcopyr$   r)   tr!   r"   cr    s       r#   foo.TestArrayEqual.test_generic_rank1.<locals>.fooH   sZ    AAFF1IAAFF1IQ"  &r&   ?bhilqpBHILQPfdgFDGS1U1NrL   r    ra   r_   s   `  r#   test_generic_rank1!TestArrayEqual.test_generic_rank1F   .    	' 'AF ' AF r&   c                 l   [         R                  " S5      n[         R                  " S5      n[        [        U R                  X5        UnU R	                  X5        [         R                  " S5      n[         R                  " S5      n[        [        U R                  X5        UnU R	                  X5        g )Nl   Cj<T"3w-l   (M$c7uv+   
   )r/   r0   r	   r(   r   r    xys      r#   test_0_ndim_array TestArrayEqual.test_0_ndim_arrayY   s    HH9:HH89nd&7&7>!HHRLHHRLnd&7&7>!r&   c                 V   ^  U 4S jnS H  nU" U5        M     S H  nU" U5        M     g)z!Test rank 3 array for all dtypes.c                    > [         R                  " SU 5      nUR                  S5        UR                  5       nUR                  5       nUR                  S5        TR	                  X5        TR                  X25        g )N)r9   r-   r8   r,   r   rZ   r^   s       r#   ra   .TestArrayEqual.test_generic_rank3.<locals>.fooj   s[    A&AFF1IAAFF1IQ"  &r&   rc   rd   NrL   rg   s   `  r#   test_generic_rank3!TestArrayEqual.test_generic_rank3h   rj   r&   c                    [         R                  " SS[         R                  /5      n[         R                  " SS[         R                  /5      nU R                  X5        [         R                  " / SQ5      nU R	                  X25        g)z$Test arrays with nan values in them.r,   r-   rH   N)r/   r0   nanr$   r)   r    r!   r"   r`   s       r#   test_nan_arrayTestArrayEqual.test_nan_array{   s\    HHaBFF^$HHaBFF^$HHYQ"r&   c                     [         R                  " SS/5      n[         R                  " SS/5      nU R                  X5        [         R                  " SS/5      nU R                  X25        g)r=   floupifloupafloupipiN)r/   r0   r$   r)   rz   s       r#   test_string_arrays!TestArrayEqual.test_string_arrays   sW    HHh)*HHh)*HHj(+,Q"r&   c                    [         R                  " SS[        4S[        4/5      nSS/US'   SS/US'   UR                  5       nU R	                  X5        [         R                  " SS[        4S[        4S[        4/5      nUS   R                  5       US'   US   R                  5       US'   [
        R                  " [        5         U R                  X25        SSS5        g! , (       d  f       g= f)zTest record arrays.r-   r~   r   r,   r   N)	r/   r[   floatr]   r$   pytestraises	TypeErrorr)   rz   s       r#   test_recarraysTestArrayEqual.test_recarrays   s    HHQ(E*Xu,=>?!f(!f(FFHHHQ*e,"E*Xu,=? @(((**k&&((]]9%  & &%%s   C""
C0c                    [         R                  R                  / SQ/ SQS9n[         R                  " S[         R                  S/5      nU R                  X5        U R                  X!5        [         R                  R                  / SQ/ SQS9n[         R                  " [         R                  SS/5      nU R                  X5        U R                  X!5        g )N      @      @      @)FTFmaskr   r   )TFFr   )r/   maMaskedArrayr0   ry   r$   infr   s      r#   test_masked_nan_inf"TestArrayEqual.test_masked_nan_inf   s    EEm2FGHHb"&&#&'EEm2FGHHbffb#&'r&   c                     " S S[         R                  5      n[         R                  " SS/5      R                  U5      n[         R                  " SS/5      R                  U5      n[	        [        X":H  5      [        5        [	        X":H  5        [	        X#:g  5        U R                  X"5        U R                  X#5        U R                  X25        g )Nc                        \ rS rSrS rS rSrg)?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray   c                 \    [        [        R                  " X5      R                  5       5      $ r   )boolr/   equalallr    others     r#   __eq__FTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__   s    BHHT155788r&   c                     X:X  + $ r   rL   r   s     r#   __ne__FTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__   s    ((r&   rL   N)rM   rN   rO   rP   r   r   rQ   rL   r&   r#   MyArrayr      s    9)r&   r         ?       @r   )	r/   ndarrayr0   viewr   typer   r$   r)   r    r   r!   r"   s       r#   test_subclass_that_overrides_eq.TestArrayEqual.test_subclass_that_overrides_eq   s    
	)bjj 	) HHb"X##G,HHb"X##G,QVd#Q"Q"r&   c                     " S S[         R                  5      n[         R                  " SS/5      R                  U5      n[         R                  " SS/5      R                  U5      n[	        [
        5         [         R                  " U5        S S S 5        U R                  X"5        U R                  X#5        U R                  X25        g ! , (       d  f       NB= f)Nc                       \ rS rSrS rSrg)KTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray   c                     [         $ r   )NotImplementedr    argskwargss      r#   __array_function__^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__   s    %%r&   rL   N)rM   rN   rO   rP   r   rQ   rL   r&   r#   r   r      s    &r&   r   r   r   r   )	r/   r   r0   r   r	   r   r   r$   r)   r   s       r#   +test_subclass_that_does_not_implement_npall:TestArrayEqual.test_subclass_that_does_not_implement_npall   s    	&bjj 	& HHb"X##G,HHb"X##G,9%FF1I &Q"Q"	 &%s   7C


Cc           	         [         R                  " [        5         [        R                  " SS9   [        R
                  R                  [        R                  " / SQ[        R                  5      [        R                  " / SQ[        R                  5      5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nraise)r   rH   )r,   gWw'&l7r8   )	r   r   r(   r/   errstatetestingr   r0   float32rI   s    r#   test_suppress_overflow_warnings.TestArrayEqual.test_suppress_overflow_warnings   sm    ]]>*)

--HHY

3HH]BJJ79 * +*)) +*s#   B=A+B,B=,
B:	6B==
Cc                 Z    [         R                  " / SQ5      nSnU R                  X5        g)z@Test comparing an array with a scalar when all values are equal.r   r   r   r   Nr.   r   s      r#   test_array_vs_scalar_is_equal,TestArrayEqual.test_array_vs_scalar_is_equal   s#    HH\"r&   c                 Z    [         R                  " / SQ5      nSnU R                  X5        g)z@Test comparing an array with a scalar when not all values equal.r   r   r   r   Nr4   r   s      r#   test_array_vs_scalar_not_equal-TestArrayEqual.test_array_vs_scalar_not_equal   s#    HH\"Q"r&   c                     [         R                  " / SQ5      nSn[        R                  " [        5         [        XSS9  SSS5        g! , (       d  f       g= f)z9Test comparing an array with a scalar with strict option.r   r   TstrictNr/   r0   r   r   r(   r   r   s      r#   test_array_vs_scalar_strict*TestArrayEqual.test_array_vs_scalar_strict   s7    HH\"]]>*qD1 +**s   A		
Ac                 x    [         R                  " / SQ5      n[         R                  " / SQ5      n[        XSS9  g)-Test comparing two arrays with strict option.r   Tr   N)r/   r0   r   r   s      r#   test_array_vs_array_strict)TestArrayEqual.test_array_vs_array_strict   s(    HH\"HH\"1-r&   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " [        5         [        XSS9  SSS5        g! , (       d  f       g= f)r   )r,   r,   r,   r   Tr   Nr   r   s      r#    test_array_vs_float_array_strict/TestArrayEqual.test_array_vs_float_array_strict   s@    HHYHH\"]]>*qD1 +**s   A
A-r   N)rM   rN   rO   rP   rV   rh   rq   rv   r{   r   r   r   r   r   r   r   r   r   r   r   rQ   rL   r&   r#   rS   rS   A   sR    /& &#	#'"	#*#9#2.2r&   rS   c                   ,    \ rS rSrS rS rS rS rSrg)TestBuildErrorMessage   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X/U5      nSn[        XE5        g )NgrZ|
 ?rZ|
  @& @g㈵ ?&  @㈵ @There is a mismatchz
Items are not equal: There is a mismatch
 ACTUAL: array([1.00001, 2.00002, 3.00003])
 DESIRED: array([1.00002, 2.00003, 3.00004])r/   r0   r   r   r    ro   rp   err_msgr!   r"   s         r#   test_build_err_msg_defaults1TestBuildErrorMessage.test_build_err_msg_defaults   sD    HH01HH01'1&'*" 	Qr&   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X/USS9nSn[        XE5        g )Nr   r   r   F)verbosez)
Items are not equal: There is a mismatchr   r   s         r#   test_build_err_msg_no_verbose3TestBuildErrorMessage.test_build_err_msg_no_verbose	  sB    HH01HH01'1&'598Qr&   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X/USS9nSn[        XE5        g )Nr   r   r   )FOOBAR)namesz{
Items are not equal: There is a mismatch
 FOO: array([1.00001, 2.00002, 3.00003])
 BAR: array([1.00002, 2.00003, 3.00004])r   r   s         r#   test_build_err_msg_custom_names5TestBuildErrorMessage.test_build_err_msg_custom_names  sF    HH01HH01'1&'@ 	Qr&   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X/USS9nSn[        XE5        g )N)g0D   ?r   r   )g_p   ?r   r   r   rm   )	precisionz
Items are not equal: There is a mismatch
 ACTUAL: array([1.000000001, 2.00002    , 3.00003    ])
 DESIRED: array([1.000000002, 2.00003    , 3.00004    ])r   r   s         r#   #test_build_err_msg_custom_precision9TestBuildErrorMessage.test_build_err_msg_custom_precision  sF    HH45HH45'1&'R87 	Qr&   rL   N)	rM   rN   rO   rP   r   r   r   r   rQ   rL   r&   r#   r   r      s    			r&   r   c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)	TestEquali)  c                     [         U l        g r   )r   r   rI   s    r#   rV   TestEqual.setup_method+  s
    (r&   c                 ^   U R                  [        R                  [        R                  5        U R                  [        R                  /[        R                  /5        U R                  [        R                  [        R                  /5        U R                  [        R                  S5        g Nr,   )r   r/   ry   r)   rI   s    r#   test_nan_itemsTestEqual.test_nan_items.  sd    "&&"&&)266(RVVH-RVVbffX.RVVQ'r&   c                    U R                  [        R                  [        R                  5        U R                  [        R                  /[        R                  /5        U R                  [        R                  [        R                  /5        g r   )r   r/   r   r)   rI   s    r#   test_inf_itemsTestEqual.test_inf_items4  sP    "&&"&&)266(RVVH-RVVbffX.r&   c                    U R                  [        R                  " SS5      [        R                  " SS5      5        U R                  [        R                  " SS5      [        R                  " SS5      5        U R                  [        R                  " SS5      [        R                  " SS5      5        U R                  [        R                  " SS5      [        R                  " SS5      5        g )N
2017-01-01smz
2017-01-02)r$   r/   
datetime64r)   rI   s    r#   test_datetimeTestEqual.test_datetime9  s    MM,,MM,,	
 	MM,,MM,,	
 	MM,,MM,,	
 	MM,,MM,,	
r&   c                 l   [         R                  " S5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " S5      n[         R                  " SS5      n[         R                  " SS5      nXU/nXEU/n[        R                  " Xw5       H=  u  pU R                  X5        U R                  U	/U
/5        U R                  U	/U
5        M?     [        R                  " X5       H=  u  pU R                  X5        U R                  U	/U
/5        U R                  U	/U
5        M?     [        R                  " X5       H  u  pU R                  X5        U R                  X/5        U R                  U	/U
/5        U R                  U	/[         R                  " SS5      5        U R                  U
/[         R                  " SS5      5        U R                  U	/[         R                  " SS5      5        U R                  U
/[         R                  " SS5      5        M     g )NNaTr  nsr  {   )r/   r  timedelta64	itertoolsproductr   r)   )r    nadt_no_unitnadt_snadt_dnatd_no_unitnatd_snatd_ddtstdsr!   r"   s              r#   test_nat_itemsTestEqual.test_nat_itemsM  s   }}U+uc*ud+~~e,s+t,V,V,%%c/DAa#qcA3'  !a( 0
 %%c/DAa#qcA3'  !a( 0
 %%c/DA  &  C(  !qc*  !bmmL#&FG  !bmmL#&FG  !bnnS#&>?  !bnnS#&>? 0r&   c                 L    U R                  SS5        U R                  SS5        g )Nababb)r   r)   rI   s    r#   test_non_numericTestEqual.test_non_numericl  s"    $%T5)r&   c                 `   U R                  [        SS5      [        SS5      5        U R                  [        S[        R                  5      [        S[        R                  5      5        U R	                  [        S[        R                  5      [        SS5      5        U R	                  [        [        R                  S5      [        S[        R                  5      5        U R	                  [        [        R                  [        R
                  5      [        [        R                  S5      5        g Nr,   r-   )r   complexr/   ry   r)   r   rI   s    r#   test_complex_itemTestEqual.test_complex_itemp  s    '!Q-A7'!RVV,ga.@AWQ/A?WRVVQ/BFF1CDWRVVRVV4gbffa6HIr&   c                 `    U R                  [        R                  [        R                  5        g r   )r)   r/   PZERONZEROrI   s    r#   test_negative_zeroTestEqual.test_negative_zerow  s    RXXrxx0r&   c                    [         R                  " [        SS5      [        S[         R                  5      /5      n[         R                  " [        SS5      [        SS5      /5      nU R	                  X5        U R                  X5        g r  r/   r0   r  ry   r   r)   rn   s      r#   test_complexTestEqual.test_complexz  sa    HHgamWQ%789HHgamWQ]34!Q"r&   c                     SS K n[        R                  " UR                  SSS5      UR                  SSS5      /5      nU R                  X"S S S2   5        g )Nr   i  r,   r-   )datetimer/   r0   r)   )r    r-  r!   s      r#   test_objectTestEqual.test_object  sQ    HHh''a3''a35 6Q$B$(r&   r   N)rM   rN   rO   rP   rV   r   r   r  r  r  r   r%  r)  r.  rQ   rL   r&   r#   r   r   )  s6    )(/

(@>*J1#)r&   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestArrayAlmostEquali  c                     [         U l        g r   )r   r   rI   s    r#   rV   !TestArrayAlmostEqual.setup_method  s
    5r&   c                    ^  T R                  SSSS9  [        [        U 4S j5        T R                  S/S/SS9  [        [        U 4S j5        g )N?        r   decimalc                  &   > T R                  SSSS9$ Ng      ?r6  r   r7  r   rI   s   r#   <lambda>5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>  s    $"3"3Ca"3"Hr&   c                  *   > T R                  S/S/SS9$ r:  r   rI   s   r#   r;  r<    s    $"3"3SEC5!"3"Lr&   r   r	   r(   rI   s   `r#   test_closeness#TestArrayAlmostEqual.test_closeness  sQ     	(C3nH	J 	8*seQ7nL	Nr&   c                    ^ ^^ [         R                  " S/5      m[         R                  " S/5      mT R                  TTSS9  T R                  TTSS9  [        [        U UU4S j5        g )NgeH@gwH@r8   r7  r9   c                  &   > T R                  TTSS9$ )N   r7  r   rn   s   r#   r;  2TestArrayAlmostEqual.test_simple.<locals>.<lambda>  s    ))!Q):r&   r/   r0   r   r	   r(   rn   s   `@@r#   test_simple TestArrayAlmostEqual.test_simple  sZ    HHi[!HHi[!!Q*!Q*n:	<r&   c                 v  ^ ^^^ [         R                  " [         R                  /5      m[         R                  " S/5      m[         R                  " [         R                  /5      mT R	                  TT5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   ananaoner    s   r#   r;  /TestArrayAlmostEqual.test_nan.<locals>.<lambda>      ))$5r&   c                  (   > TR                  TT 5      $ r   r   ainfrK  r    s   r#   r;  rM    rN  r&   c                  (   > TR                  T T5      $ r   r   rP  s   r#   r;  rM    rN  r&   r/   r0   ry   r   r   r	   r(   r    rQ  rK  rL  s   `@@@r#   test_nanTestArrayAlmostEqual.test_nan  sq    xx!xx}xx!$%n5	7n5	7n5	7r&   c                   ^ ^^ [         R                  " SS/SS//5      mTR                  5       m[         R                  TS'   [	        [
        UUU 4S j5        [         R                  * TS'   [	        [
        UUU 4S j5        g )Nr   r   r   r   )r   r   c                  (   > TR                  T T5      $ r   r   r!   r"   r    s   r#   r;  /TestArrayAlmostEqual.test_inf.<locals>.<lambda>      ))!Q/r&   c                  (   > TR                  T T5      $ r   r   rY  s   r#   r;  rZ    r[  r&   )r/   r0   r]   r   r	   r(   r   s   `@@r#   test_infTestArrayAlmostEqual.test_inf  s_    HHr2hR)*FFH&&$n/	166'$n/	1r&   c                    [         R                  " SS/SS//5      n[         R                  R                  SS/SS//SS/SS//5      nU R	                  X5        U R	                  X!5        U R	                  X"5        [         R                  R                  SSS	9n[         R                  " / S
Q5      nU R                  X5        U R                  X!5        [         R                  R                  n[         R                  " / S
Q5      nU R                  X5        U R                  X!5        [         R                  R                  / S
Q/ SQS	9n[         R                  " / SQ5      nU R                  X5        U R                  X!5        [         R                  R                  / S
Q/ SQS	9n[         R                  " S5      nU R                  X5        U R                  X!5        g )Nr   r   r   r   r6  FTg      @r   r   )TTTr   )r/   r0   r   masked_arrayr   r   r$   maskedr   s      r#   test_subclass"TestArrayAlmostEqual.test_subclass  s~   HHr2hR)*EER2r(3!&u>@!!! EEc-HH]#EELLHH]#EEm2DEHH\"EEm2DEHHRLr&   c                      " S S[         R                  5      n[         R                  " SS/5      R                  U5      nU R	                  X"5        g )Nc                   :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )GTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayi  c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   superr   r   r/   r   r    r   	__class__s     r#   r   NTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  !    w~e,11"**==r&   c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   ri  __lt__r   r/   r   rj  s     r#   rp  NTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__  rm  r&   c                     [         er   NotImplementedErrorr   s      r#   r   KTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all      ))r&   rL   	rM   rN   rO   rP   r   rp  r   rQ   __classcell__rk  s   @r#   r   rf        >>* *r&   r   r   r   r/   r   r0   r   r   r    r   r!   s      r#   !test_subclass_that_cannot_be_bool6TestArrayAlmostEqual.test_subclass_that_cannot_be_bool  ?    
	*bjj 	* HHb"X##G,!r&   r   N)rM   rN   rO   rP   rV   r?  rF  rU  r]  rb  r}  rQ   rL   r&   r#   r1  r1    s&    6N"<
714 r&   r1  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestAlmostEquali  c                     [         U l        g r   )r   r   rI   s    r#   rV   TestAlmostEqual.setup_method  
    /r&   c                    ^  T R                  SSSS9  [        [        U 4S j5        T R                  S/S/SS9  [        [        U 4S j5        g )Nr5  r6  r   r7  c                  &   > T R                  SSSS9$ r:  r   rI   s   r#   r;  0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//S!/Dr&   c                  *   > T R                  S/S/SS9$ r:  r   rI   s   r#   r;  r    s    d//ua/Hr&   r>  rI   s   `r#   r?  TestAlmostEqual.test_closeness  sQ     	(C3nD	F 	8*seQ7nH	Jr&   c                    ^  T R                  [        R                  [        R                  5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        g )Nc                  D   > T R                  [        R                  S5      $ r   )r   r/   ry   rI   s   r#   r;  /TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//:r&   c                  `   > T R                  [        R                  [        R                  5      $ r   )r   r/   ry   r   rI   s   r#   r;  r        d//?r&   c                  `   > T R                  [        R                  [        R                  5      $ r   )r   r/   r   ry   rI   s   r#   r;  r    r  r&   )r   r/   ry   r	   r(   rI   s   `r#   test_nan_itemTestAlmostEqual.test_nan_item   sD    "&&"&&)n:	<n?	An?	Ar&   c                   ^  T R                  [        R                  [        R                  5        T R                  [        R                  * [        R                  * 5        [        [        U 4S j5        [        [        U 4S j5        g )Nc                  D   > T R                  [        R                  S5      $ r   r   r/   r   rI   s   r#   r;  /TestAlmostEqual.test_inf_item.<locals>.<lambda>  r  r&   c                  b   > T R                  [        R                  * [        R                  5      $ r   r  rI   s   r#   r;  r    s    d//@r&   )r   r/   r   r	   r(   rI   s   `r#   test_inf_itemTestAlmostEqual.test_inf_item	  sR    "&&"&&)266'BFF7+n:	<n@	Br&   c                 (    U R                  SS5        g r  )r)   rI   s    r#   test_simple_item TestAlmostEqual.test_simple_item  s    Q"r&   c                    U R                  [        SS5      [        SS5      5        U R                  [        S[        R                  5      [        S[        R                  5      5        U R                  [        [        R                  [        R                  5      [        [        R                  [        R                  5      5        U R                  [        S[        R                  5      [        SS5      5        U R                  [        [        R                  S5      [        S[        R                  5      5        U R                  [        [        R                  [        R                  5      [        [        R                  S5      5        g r  )r   r  r/   ry   r   r)   rI   s    r#   r   !TestAlmostEqual.test_complex_item  s    '!Q-A7'!RVV,ga.@A'"&&"&&172662663JKWQ/A?WRVVQ/BFF1CDWRVVRVV4gbffa6HIr&   c                    [         R                  " [        SS5      [        S[         R                  5      /5      n[         R                  " [        SS5      [        [         R                  S5      /5      n[         R                  " [        SS5      [        SS5      /5      nU R	                  X5        U R                  X5        U R                  X5        g r  r(  )r    ro   zrp   s       r#   r)  TestAlmostEqual.test_complex  s    HHgamWQ%789HHgamWRVVQ%789HHgamWQ]34!Q"Q"r&   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " [        5       nU R                  XSS9  SSS5        [        WR                  5      R                  S5      n[        US   S5        [        US	   S
5        [        US   S5        [        US   S5        [        US   S5        [        R                  " [        5       nU R                  X5        SSS5        [        UR                  5      R                  S5      n[        US   S5        [        US	   S
5        [        US   S5        [        US   S5        [        US   S5        [         R                  " [         R                  S/5      n[         R                  " [         R                  S/5      n[        R                  " [        5       nU R                  X5        SSS5        [        UR                  5      R                  S5      n[        US   S5        [        US	   S5        [        US   S5        [        US   S5        [        US   S5        [         R                  " SS/5      n[         R                  " SS/5      n[        R                  " [        5       nU R                  X5        SSS5        [        UR                  5      R                  S5      n[        US   S5        [        US	   S5        [        US   S5        g! , (       d  f       GN= f! , (       d  f       GN5= f! , (       d  f       GNX= f! , (       d  f       N= f)zCheck the message is formatted correctly for the decimal value.
Also check the message when input includes inf or nan (gh12200))g    ?g     @r   )g_   ?g    @r      r7  N
r8   z!Mismatched elements: 3 / 3 (100%)r9   zMax absolute difference: 1.e-05rC  z'Max relative difference: 3.33328889e-06   z8 x: array([1.00000000001, 2.00000000002, 3.00003      ])   z8 y: array([1.00000000002, 2.00000000003, 3.00004      ])z"Mismatched elements: 1 / 3 (33.3%)z& x: array([1.     , 2.     , 3.00003])z& y: array([1.     , 2.     , 3.00004])r   r,   z Mismatched elements: 1 / 2 (50%)Max absolute difference: 1.Max relative difference: 1.z x: array([inf,  0.])z y: array([inf,  1.])r-   z!Mismatched elements: 2 / 2 (100%)zMax absolute difference: 2zMax relative difference: inf)r/   r0   r   r   r(   r   strvaluesplitr   r   r    ro   rp   exc_infomsgss        r#   test_error_message"TestAlmostEqual.test_error_message$  s    HH<=HH<= ]]>*haB/ +8>>"((.T!WABT!W?@T!WGHGF	H 	GF	H ]]>*ha# +8>>"((.T!WBCT!W?@T!WGHT!WFGT!WFG HHbffa[!HHbffa[!]]>*ha# +8>>"((.T!W@AT!W;<T!W;<T!W56T!W56 HHaVHHaV]]>*ha# +8>>"((.T!WABT!W:;T!W<=[ +*  +* +* +*s0   L-L-L?/M
L*-
L<?
M
Mc                    Sn[         R                  " S5      n[        R                  " [        5       nU R                  X5        SSS5        [        WR                  5      R                  S5      n[        US   S5        [        US   S5        [        US	   S
5        Sn[         R                  " S5      n[        R                  " [        5       nU R                  X5        SSS5        [        UR                  5      R                  S5      n[        US   S5        [        US   S5        [        US	   S5        g! , (       d  f       N= f! , (       d  f       Nq= f)zHCheck the message is formatted correctly when either x or y is a scalar.r-      Nr  r8   z#Mismatched elements: 20 / 20 (100%)r9   r  rC  r  Max relative difference: 0.5)
r/   onesr   r   r(   r   r  r  r  r   r  s        r#   test_error_message_2$TestAlmostEqual.test_error_message_2Z  s   GGBK]]>*ha# +8>>"((.T!WCDT!W;<T!W;<GGBK]]>*ha# +8>>"((.T!WCDT!W;<T!W<= +* +*s   D<E<
E

Ec                      " S S[         R                  5      n[         R                  " SS/5      R                  U5      nU R	                  X"5        g )Nc                   :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )BTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayis  c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   rh  rj  s     r#   r   ITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__t  rm  r&   c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   ro  rj  s     r#   rp  ITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__w  rm  r&   c                     [         er   rs  r   s      r#   r   FTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allz  rv  r&   rL   rw  ry  s   @r#   r   r  s  rz  r&   r   r   r   r{  r|  s      r#   r}  1TestAlmostEqual.test_subclass_that_cannot_be_booln  r  r&   r   N)rM   rN   rO   rP   rV   r?  r  r  r  r   r)  r  r  r}  rQ   rL   r&   r#   r  r    s9    0J"AB#J#4>l>( r&   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestApproxEquali  c                     [         U l        g r   )r   r   rI   s    r#   rV   TestApproxEqual.setup_method  r  r&   c                    ^ ^^ [         R                  " S5      m[         R                  " S5      mT R                  TTSS9  T R                  TTSS9  [        [        U UU4S j5        g )N{GH@RH@rC  significantr  c                  &   > T R                  TTSS9$ Nr  r  r   rn   s   r#   r;  7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>      d//1!/Dr&   rE  rn   s   `@@r#   test_simple_0d_arrays%TestApproxEqual.test_simple_0d_arrays  sW    HHWHHW!QA.!QA.nD	Fr&   c                    ^ ^^ SmSmT R                  TTSS9  T R                  TTSS9  T R                  TTSS9  [        [        U UU4S j5        g )Nr  r  r9   r  rC  r  c                  &   > T R                  TTSS9$ r  r   rn   s   r#   r;  3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r&   r>  rn   s   `@@r#   test_simple_items!TestApproxEqual.test_simple_items  sZ    !QA.!QA.!QA.nD	Fr&   c                 p  ^ ^^^ [         R                  " [         R                  5      m[         R                  " S5      m[         R                  " [         R                  5      mT R	                  TT5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   rJ  s   r#   r;  0TestApproxEqual.test_nan_array.<locals>.<lambda>      d.?.?d.Kr&   c                  (   > TR                  TT 5      $ r   r   rP  s   r#   r;  r    r  r&   c                  (   > TR                  T T5      $ r   r   rP  s   r#   r;  r    r  r&   rS  rT  s   `@@@r#   r{   TestApproxEqual.test_nan_array  e    xxxx{xx$%n&KLn&KLn&KLr&   c                 p  ^ ^^^ [         R                  " [         R                  5      m[         R                  " S5      m[         R                  " [         R                  5      mT R	                  TT5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   rJ  s   r#   r;  0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r&   c                  (   > TR                  TT 5      $ r   r   rP  s   r#   r;  r    r  r&   c                  (   > TR                  T T5      $ r   r   rP  s   r#   r;  r    r  r&   rS  rT  s   `@@@r#   r   TestApproxEqual.test_nan_items  r  r&   r   N)
rM   rN   rO   rP   rV   r  r  r{   r   rQ   rL   r&   r#   r  r    s    0FFMMr&   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestArrayAssertLessi  c                     [         U l        g r   )r   r   rI   s    r#   rV    TestArrayAssertLess.setup_method  s
    -r&   c                 B  ^ ^^ [         R                  " SS/5      m[         R                  " SS/5      mT R                  TT5        [        [        U UU4S j5        [         R                  " SS/5      m[        [        U UU4S j5        [        [        U UU4S j5        g )	N皙?皙@333333?ffffff@c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>      d.?.?1.Er&   r   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   rE  rn   s   `@@r#   test_simple_arrays&TestArrayAssertLess.test_simple_arrays  sj    HHc3Z HHc3Z !Qn&EFHHc3Z n&EFn&EFr&   c                 Z  ^ ^^ [         R                  " SS/SS//5      m[         R                  " SS/SS//5      mT R                  TT5        [        [        U UU4S	 j5        [         R                  " S
S/SS//5      m[        [        U UU4S j5        [        [        U UU4S j5        g )Nr  r  ffffff
@g@r  r  g333333@g      @c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r&   r   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   rE  rn   s   `@@r#   
test_rank2TestArrayAssertLess.test_rank2  s    HHsCj3*-.HHsCj3*-.!Qn&EFHHsCj3*-.n&EFn&EFr&   c                   ^ ^^ [         R                  " SS9m[         R                  " SS9S-   mT R                  TT5        [        [        U UU4S j5        STS'   [        [        U UU4S j5        [        [        U UU4S j5        g )	N)r-   r-   r-   )shaper,   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r&   r   )r   r   r   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   )r/   r  r   r	   r(   rn   s   `@@r#   
test_rank3TestArrayAssertLess.test_rank3  s^    GG)$GG)$Q&!Qn&EF'
n&EFn&EFr&   c                 >  ^ ^^ SmSmT R                  TT5        [        [        U UU4S j5        [        R                  " SS/5      mT R                  TT5        [        [        U UU4S j5        [        R                  " SS/5      m[        [        U UU4S j5        g )Nr  r  c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r&   r  c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   r   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   )r   r	   r(   r/   r0   rn   s   `@@r#   r  %TestArrayAssertLess.test_simple_items  sr    !Qn&EFHHc3Z !Qn&EFHHc3Z n&EFr&   c                   ^ ^^^ [         R                  " [         R                  5      m[         R                  " S5      m[         R                  " [         R                  5      mT R	                  TT5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        g )Nr,   c                  (   > TR                  TT 5      $ r   r   rJ  s   r#   r;  9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>  r  r&   c                  (   > TR                  T T5      $ r   r   rJ  s   r#   r;  r    r  r&   c                  (   > TR                  TT 5      $ r   r   rP  s   r#   r;  r    r  r&   c                  (   > TR                  T T5      $ r   r   rP  s   r#   r;  r    r  r&   rS  rT  s   `@@@r#   test_nan_noncompare'TestArrayAssertLess.test_nan_noncompare  sp    xxxx{xx$%n&KLn&KLn&KLn&KLr&   c                    ^ ^^^ [         R                  " / SQ5      m[         R                  " [         R                  5      m[        [        UU U4S j5        [        [        UU U4S j5        [         R                  " SS[         R                  /5      m[        [        UU U4S j5        [        [        UU U4S j5        [         R                  " SS	[         R                  /5      mT R                  TT5        [        [        U UU4S
 j5        g )N)r  r  r  c                  (   > TR                  TT 5      $ r   r   rK  r    ro   s   r#   r;  ?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>      d.?.?4.Hr&   c                  (   > TR                  T T5      $ r   r   r  s   r#   r;  r        d.?.?a.Hr&   r  r  c                  (   > TR                  TT 5      $ r   r   r  s   r#   r;  r    r  r&   c                  (   > TR                  T T5      $ r   r   r  s   r#   r;  r    r  r&   r   r   c                  (   > T R                  TT5      $ r   r   rn   s   r#   r;  r    r  r&   )r/   r0   ry   r	   r(   r   )r    rK  ro   rp   s   `@@@r#   test_nan_noncompare_array-TestArrayAssertLess.test_nan_noncompare_array  s    HH_%xxn&HIn&HIHHc3'(n&HIn&HIHHc3'(!Qn&EFr&   c                   ^ ^^ [         R                  " S5      m[         R                  " [         R                  5      mT R                  TT5        T R                  T* T5        T R                  T* T5        [	        [
        UUU 4S j5        [	        [
        UUU 4S j5        [	        [
        UU 4S j5        [	        [
        UU 4S j5        [	        [
        UU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   rQ  rL  r    s   r#   r;  6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>  r  r&   c                  *   > TR                  TT * 5      $ r   r   r  s   r#   r;  r         d.?.?te.Lr&   c                  (   > TR                  T T 5      $ r   r   rQ  r    s   r#   r;  r   	  r  r&   c                  *   > TR                  T T * 5      $ r   r   r$  s   r#   r;  r   
  r"  r&   c                  ,   > TR                  T * T * 5      $ r   r   r$  s   r#   r;  r     s    d.?.?u.Mr&   )r/   r0   r   r   r	   r(   )r    rQ  rL  s   `@@r#   test_inf_compare$TestArrayAssertLess.test_inf_compare   s    xx{xx$%4%&4%&n&KLn&LMn&KLn&LMn&MNr&   c                   ^ ^^ [         R                  " SS[         R                  /5      m[         R                  " [         R                  5      m[        [        UU U4S j5        [        [        UU U4S j5        [        [        UU U4S j5        [        [        UU U4S j5        [        [        UU U4S j5        T R                  T* T5        g )Nr  r  c                  (   > TR                  TT 5      $ r   r   rQ  r    ro   s   r#   r;  <TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  r  r&   c                  (   > TR                  T T5      $ r   r   r+  s   r#   r;  r,    r  r&   c                  *   > TR                  TT * 5      $ r   r   r+  s   r#   r;  r,    s    d.?.?D5.Ir&   c                  ,   > TR                  T* T * 5      $ r   r   r+  s   r#   r;  r,    s    d.?.?TE.Jr&   c                  ,   > TR                  T * T* 5      $ r   r   r+  s   r#   r;  r,    s    d.?.?r.Jr&   )r/   r0   r   r	   r(   r   )r    rQ  ro   s   `@@r#   test_inf_compare_array*TestArrayAssertLess.test_inf_compare_array  sw    HHc3'(xxn&HIn&HIn&IJn&JKn&JK4%#r&   r   N)rM   rN   rO   rP   rV   r  r  r  r  r  r  r'  r1  rQ   rL   r&   r#   r  r    s6    .
G
G
GG MG"O	$r&   r  c                   &    \ rS rSrS rS rS rSrg)	TestWarnsi  c                 (   S n[         R                  S   R                  S S  n[        [	        [
        U5      S5        [         R                  S   R                  n[        [        [        U5        [        [        S S5      S5        [        X#S5        g )Nc                  0    [         R                  " S5        g)Nyor8   warningswarnrL   r&   r#   fTestWarns.test_warn.<locals>.f  s    MM$r&   r9  r8   c                     U $ r   rL   )ro   s    r#   r;  %TestWarns.test_warn.<locals>.<lambda>%  s    !r&   r,   .assert_warns does not preserver warnings state)	sysmodulesfiltersr   r
   UserWarningr	   r(   r   )r    r;  before_filtersafter_filterss       r#   	test_warnTestWarns.test_warn  sv    	 Z088;\+q115J/77n&8!<'Q7; 	^E	Gr&   c                 :   [         R                  S   R                  S S  n[        [        5         [
        R                  " S5        S S S 5        [         R                  S   R                  nS n[        [        U5        [        XS5        g ! , (       d  f       NK= f)Nr9  r7  c                  x    [        5          [        R                  " S5        S S S 5        g ! , (       d  f       g = fNr7  )r   r9  r:  rL   r&   r#   no_warnings3TestWarns.test_context_manager.<locals>.no_warnings2  s     #%d# &%%s   +
9r?  )
r@  rA  rB  r
   rC  r9  r:  r	   r(   r   )r    rD  rE  rK  s       r#   test_context_managerTestWarns.test_context_manager+  sp    Z088;+&MM$ 'J/77	$ 	nk2^E	G '&s   B
Bc                    S nSn[         R                  " 5          [         R                  " S[        5         [	        [
        U5        SnS S S 5        U(       a  [        S5      eg ! [         a     N'f = f! , (       d  f       N1= f)Nc                  :    [         R                  " S[        5        g rJ  )r9  r:  DeprecationWarningrL   r&   r#   r;  ,TestWarns.test_warn_wrong_warning.<locals>.f;  s    MM$ 23r&   FerrorTz#wrong warning caught by assert_warn)r9  catch_warningssimplefilterrQ  r
   rC  r(   )r    r;  faileds      r#   test_warn_wrong_warning!TestWarns.test_warn_wrong_warning:  sw    	4 $$&!!'+=>[!, '  !FGG  &  '&s(   A5A%%
A2/A51A22A55
BrL   N)rM   rN   rO   rP   rF  rM  rW  rQ   rL   r&   r#   r4  r4    s    G GHr&   r4  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestAssertAllcloseiL  c                 v   SnSn[        XSS9  [        [        [         X5        [        R                  " XX/5      n[        R                  " XX/5      n[        X4SS9  [        [        [         X45        US-  US'   [        X45        [        [        [         X4SS9  [        SS	S
S9  [        [        [         S	SS
S9  g )NgMbP?g&.>r,   atolg1  ?r,  )rtolr  rm   g      ?)r   r	   r(   r/   r0   )r    ro   rp   r!   r"   s        r#   rF  TestAssertAllclose.test_simpleN  s    1%noq<HHaA\"HHaA\"1%noq<X"noq$G2C(nor13Gr&   c                     [         R                  " [         R                  " [         R                  5      R                  /[         R                  S9n[        X5        g )NrA   )r/   r0   iinfoint_minr   rD   s     r#   test_min_intTestAssertAllclose.test_min_intb  s4    HHbhhrww'++,BGG<r&   c                 (   [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " [        5       n[        X5        S S S 5        [        WR                  5      n[        SU;   5        g ! , (       d  f       N2= f)N)r,   r,   r,   r,   )r,   r,   r,   r-   zXMismatched elements: 1 / 4 (25%)
Max absolute difference: 1
Max relative difference: 0.5	r/   r0   r   r   r(   r   r  r  r   r    r!   r"   r  msgs        r#   test_report_fail_percentage.TestAssertAllclose.test_report_fail_percentageg  se    HH\"HH\"]]>*hA! +(..! /256 	7 +*   B
Bc                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        XSS9  g )NT	equal_nan)r/   r0   ry   r   r   s      r#   test_equal_nan!TestAssertAllclose.test_equal_nanr  s4    HHbffXHHbffX-r&   c                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        [        [
        XSS9  g )NFrn  )r/   r0   ry   r	   r(   r   r   s      r#   test_not_equal_nan%TestAssertAllclose.test_not_equal_nanx  s8    HHbffXHHbffXnoquMr&   c                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        X5        [	        X5        [        X5        [        X5        g r   )r/   r0   ry   r   r   r   r   r   s      r#   test_equal_nan_default)TestAssertAllclose.test_equal_nan_default}  sL     HHbffXHHbffX1 !!'!r&   c                 (   [         R                  " SS/5      n[         R                  " SS/5      n[        R                  " [        5       n[        X5        S S S 5        [        WR                  5      n[        SU;   5        g ! , (       d  f       N2= f)Nr   r,   r-   r  rg  rh  s        r#   test_report_max_relative_error1TestAssertAllclose.test_report_max_relative_error  sf    HHaVHHaV]]>*hA! +(..!.#56 +*rl  c                 J    [         R                  " / SQ/SS9n[        X5        g )N)r,   r-   r8   r  zm8[ns]rA   )r/   r0   r   rD   s     r#   test_timedelta!TestAssertAllclose.test_timedelta  s    HH&'x8r&   c                 B   [         R                  " / SQSS9n[         R                  " / SQSS9n[        R                  " [        5       n[        XSS9  SSS5        [        WR                  5      R                  S5      n[        US	   S
5        g! , (       d  f       NB= f)zNCheck the the message is formatted correctly when overflow can occur
(gh21768))r   r,      uint8rA   )r9   r9   r9   r8   r\  Nr  r9   zMax absolute difference: 4)
r/   asarrayr   r   r(   r   r  r  r  r   r  s        r#   test_error_message_unsigned.TestAssertAllclose.test_error_message_unsigned  sr     JJy0JJy0]]>*hAq) +8>>"((.T!W:; +*s   	B
BrL   N)rM   rN   rO   rP   rF  rd  rj  rp  rs  rv  ry  r|  r  rQ   rL   r&   r#   rZ  rZ  L  s1    H(
	7.N
	7
<r&   rZ  c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestArrayAlmostEqualNulpi  c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        X$U5        g NrC  r  2   rA   rm   r   	r/   linspacefloat64r_finforB   epsr   epsnegr    nulpro   r  rp   r  s         r#   test_float64_pass*TestArrayAlmostEqualNulp.test_float64_pass  s     KKR2::6EEE1"a%L hhqww###d
2&qT2 !''"))&b  &qT2r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X$U5        g r  r/   r  r  r  r  rB   r  r	   r(   r   r  r  s         r#   test_float64_fail*TestArrayAlmostEqualNulp.test_float64_fail      KKR2::6EEE1"a%Lhhqww###d
2n&DD	" !''"))&b  n&DD	"r&   c                 h   [         R                  " S5      n[         R                  " [         R                  [         R                  S9R                  [         R                  5      nX!-  nUR                  [         R                  5      nUR                  [         R                  5      n[        XES5        g )Nl    rA   r   )r/   uint64r0   ry   r  r   r   )r    offsetnan1_i64nan2_i64nan1_f64nan2_f64s         r#   test_float64_ignore_nan0TestArrayAlmostEqualNulp.test_float64_ignore_nan  so     :&88BFF"**5::299E$==,==,X3r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        X$U5        g r  	r/   r  r   r  r  rB   r  r   r  r  s         r#   test_float32_pass*TestArrayAlmostEqualNulp.test_float32_pass  s    KKR2::6EEE1"a%Lhhqww###d
2&qT2!''"))&b  &qT2r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X$U5        g r  r/   r  r   r  r  rB   r  r	   r(   r   r  r  s         r#   test_float32_fail*TestArrayAlmostEqualNulp.test_float32_fail  r  r&   c                 h   [         R                  " S5      n[         R                  " [         R                  [         R                  S9R                  [         R                  5      nX!-  nUR                  [         R                  5      nUR                  [         R                  5      n[        XES5        g )Ni  rA   r   )r/   uint32r0   ry   r   r   r   )r    r  nan1_i32nan2_i32nan1_f32nan2_f32s         r#   test_float32_ignore_nan0TestArrayAlmostEqualNulp.test_float32_ignore_nan  so     6"88BFF"**5::299E$==,==,X3r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        X$U5        g NrC  r9   rm   rA   r   )	r/   r  float16r  r  rB   r  r   r  r  s         r#   test_float16_pass*TestArrayAlmostEqualNulp.test_float16_pass  s    KKAr4EEE1"a%Lhhqww###d
2&qT2!''"))&b  &qT2r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X$U5        g r  )r/   r  r  r  r  rB   r  r	   r(   r   r  r  s         r#   test_float16_fail*TestArrayAlmostEqualNulp.test_float16_fail  s    KKAr4EEE1"a%Lhhqww###d
2n&DD	" !''"))&b  n&DD	"r&   c                 h   [         R                  " S5      n[         R                  " [         R                  [         R                  S9R                  [         R                  5      nX!-  nUR                  [         R                  5      nUR                  [         R                  5      n[        XES5        g )N   rA   r   )r/   uint16r0   ry   r  r   r   )r    r  nan1_i16nan2_i16nan1_f16nan2_f16s         r#   test_float16_ignore_nan0TestArrayAlmostEqualNulp.test_float16_ignore_nan  sn     488BFF"**5::299E$==,==,X3r&   c                 ~   Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   nX"S-  -   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        X2US-  -   U5        [        X5US-  -   U5        X"U-  U-  S	-  -   n[        X5US-  -   U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        X2US-  -   U5        [        X5US-  -   U5        X"U-  U-  S	-  -
  n[        X5US-  -   U5        g 
NrC  r  r  r  rA   rm                 ?r   r   r  r    r  ro   xir  rp   r  s          r#   test_complex128_pass-TestArrayAlmostEqualNulp.test_complex128_pass&  s6   KKR2::6EEE1"a%L2Xhhqww###d
2&rqt8T:&rqt8T: #d
2&rqt8T:!''"))&b  &rqt8T:&rqt8T:&b  &rqt8T:r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   nX"S-  -   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -   n[        [        [        X5US-  -   U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -
  n[        [        [        X5US-  -   U5        g 	NrC  r  r  r  rA   rm   r  r   r  r  s          r#   test_complex128_fail-TestArrayAlmostEqualNulp.test_complex128_fail=  s^   KKR2::6EEE1"a%L2Xhhqww###d
2n&Dad(D	*n&Dad(D	* #d
Nn&Dad(D	* !''"))&b  n&Dad(D	*n&Dad(D	*&n&Dad(D	*r&   c                 ~   Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   nX"S-  -   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        X2US-  -   U5        [        X5US-  -   U5        X"U-  U-  S	-  -   n[        X5US-  -   U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        X2US-  -   U5        [        X5US-  -   U5        X"U-  U-  S	-  -
  n[        X5US-  -   U5        g r  r  r  s          r#   test_complex64_pass,TestArrayAlmostEqualNulp.test_complex64_passZ  s4   KKR2::6EEE1"a%L2Xhhqww###d
2&rqt8T:&rqt8T:#d
2&rqt8T:!''"))&b  &rqt8T:&rqt8T:&b  &rqt8T:r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   nX"S-  -   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -   n[        [        [        X5US-  -   U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -
  n[        [        [        X5US-  -   U5        g r  r  r  s          r#   test_complex64_fail,TestArrayAlmostEqualNulp.test_complex64_failo  s\   KKR2::6EEE1"a%L2Xhhqww###d
2n&Dad(D	*n&Dad(D	*#d
Nn&Dad(D	* !''"))&b  n&Dad(D	*n&Dad(D	*&n&Dad(D	*r&   rL   N)rM   rN   rO   rP   r  r  r  r  r  r  r  r  r  r  r  r  r  rQ   rL   r&   r#   r  r    sC    3$" 	43" 	43" 	4;.*:;**r&   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestULPi  c                 V    [         R                  R                  S5      n[        XSS9  g )Nrm   r   maxulp)r/   randomrandnr   )r    ro   s     r#   
test_equalTestULP.test_equal  s    IIOOBQ!,r&   c                 d   [         R                  " S5      R                  [         R                  5      nUS[         R                  R                  S5      R                  [         R                  5      -  -  n[         R                  " [         R                  5      R                  n[        XU-   SS9  g )Nrm   {Gz?r  r  )	r/   r  astyper   r  r  r  r  r   r    ro   r  s      r#   test_singleTestULP.test_single  so    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&Q#b1r&   c                 d   [         R                  " S5      R                  [         R                  5      nUS[         R                  R                  S5      R                  [         R                  5      -  -  n[         R                  " [         R                  5      R                  n[        XU-   SS9  g )Nrm   r     r  )	r/   r  r  r  r  r  r  r  r   r  s      r#   test_doubleTestULP.test_double  so    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&Q#c2r&   c                 8   [         R                  [         R                  4 Hv  n[         R                  " [         R                  /5      R                  U5      n[         R                  " [         R                  " U5      R                  /5      n[        X#SS9  Mx     g )Nr  r  )	r/   r   r  r0   r   r  r  maxr   )r    dtr   bigs       r#   r]  TestULP.test_inf  sa    ::rzz*B((BFF8$++B/C((BHHRL,,-.C #6 +r&   c                   ^^^^^^^ [         R                  [         R                  4 GH  nU[         R                  :X  a  SmOSm[         R                  " [         R                  /5      R                  U5      m[         R                  " [         R                  /5      R                  U5      m[         R                  " [         R                  " U5      R                  /5      m[         R                  " [         R                  " U5      R                  /5      m[         R                  " [         R                  /5      R                  U5      m[         R                  " [         R                  /5      R                  U5      m[        [        UUU4S j5        [        [        UUU4S j5        [        [        UUU4S j5        [        [        UUU4S j5        [        [        UUU4S j5        GM     g )Ng    .Ag   mBc                     > [        TT TS9$ Nr  r   )r   r  ry   s   r#   r;  "TestULP.test_nan.<locals>.<lambda>      "6sC!'#)r&   c                     > [        TT TS9$ r  r  )r  r  ry   s   r#   r;  r    r  r&   c                     > [        TTT S9$ r  r  )r  ry   tinys   r#   r;  r        "6sD!'#)r&   c                     > [        TTT S9$ r  r  )r  ry   zeros   r#   r;  r    r  r&   c                     > [        TTT S9$ r  r  )r  ry   nzeros   r#   r;  r    s    "6sE!'#)r&   )r/   r   r  r0   r   r  ry   r  r  r  r#  r$  r	   r(   )	r    r  r  r   r  ry   r  r  r  s	     @@@@@@@r#   rU  TestULP.test_nan  s=   ::rzz*BRZZ((BFF8$++B/C((BFF8$++B/C((BHHRL,,-.C88RXXb\../0D88RXXJ'..r2DHHbhhZ(//3E.)* .)* .)* .)* .)*/ +r&   rL   N)
rM   rN   rO   rP   r  r  r  r]  rU  rQ   rL   r&   r#   r  r    s    -237*r&   r  c                        \ rS rSrS rS rSrg)TestStringEquali  c                    [        SS5        [        SS5        [        R                  " [        5       n[        SS5        S S S 5        [	        WR
                  5      n[        US5        [        [        S 5        g ! , (       d  f       NA= f)Nhellozhello
multilinezfoo
barz	hello
barz%Differences in strings:
- foo
+ helloc                      [        SS5      $ )Nra   r   r   rL   r&   r#   r;  -TestStringEqual.test_simple.<locals>.<lambda>  s    1%Ar&   )r   r   r   r(   r  r  r   r	   )r    r  ri  s      r#   rF  TestStringEqual.test_simple  se    GW-.0BC]]>*h
L9 +(..!SCDnA	C +*s   A;;
B	c                 >    [        SS5        [        [        S 5        g )Nza+*bc                      [        SS5      $ )Naaaza+br  rL   r&   r#   r;  ,TestStringEqual.test_regex.<locals>.<lambda>  s    1%?r&   )r   r	   r(   rI   s    r#   
test_regexTestStringEqual.test_regex  s    FF+n?	Ar&   rL   N)rM   rN   rO   rP   rF  r	  rQ   rL   r&   r#   r  r    s    
CAr&   r  c                      U R                   n[        U5      nSU;   a  US-  n[        X15        g ! [         a    0 n N0f = f)Nversionr,   )__warningregistry__AttributeErrorlenr   )modn_in_context	mod_warns	num_warnss       r#   assert_warn_len_equalr    sP    
++	 III 	Q	)#   	s   0 ??c                  p     " S S5      n U " 5       n[        USS9   " S S5      n U " 5       n[        USS9  g )Nc                       \ rS rSrSrg)/test_warn_len_equal_call_scenarios.<locals>.modi  rL   N)rM   rN   rO   rP   rQ   rL   r&   r#   r  r    s    r&   r  r   )r  r  c                       \ rS rSrS rSrg)r  i   c                     SSS.U l         g )Nr,   r-   warning1warning2r  rI   s    r#   __init__8test_warn_len_equal_call_scenarios.<locals>.mod.__init__  s    3434(6D$r&   r  N)rM   rN   rO   rP   r  rQ   rL   r&   r#   r  r     s    	6r&   r-   )r  )r  mod_insts     r#   "test_warn_len_equal_call_scenariosr!    sB      uHh'(*
6 6
 uHh'(*r&   c                      [         R                  [           n  U R                  R	                  5         U $ ! [
         a     U $ f = fr   )r@  rA  rM   r  clearr  my_mods    r#   _get_fresh_modr&  
  sI    [["F""((*
 M	   	M	s   5 
AAc                  P   [        5       n [        [        U S0 5      0 5        [        U /S9   [        R
                  " S5        [        R                  " S5        S S S 5        [        U R                  0 5        [        5          [        R
                  " S5        [        R                  " S5        S S S 5        [        U S5        SSS.U l        [        U /S9   [        R
                  " S5        [        R                  " S	5        S S S 5        [        U S5        [        5          [        R
                  " S5        [        R                  " S	5        S S S 5        [        U S5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NO= f)
Nr  )rA  ignoreSome warningr   r,   r-   r  zAnother warning)	r&  r   getattrr   r9  rU  r:  r  r  r$  s    r#   test_clear_and_catch_warningsr+    s.   F!6;R@	!6(	3h'n% 
4 ++R0 
"	#h'n% 
$ &!$ /0./"1F 
"6(	3h''( 
4 &!$ 
"	#h''( 
$ &!$3 
4	3 
$	# 
4	3 
$	#s/   -E#-E5-F!-F#
E25
F
F
F%c                     [        5       n [        [        U S0 5      0 5        S n[        U S5        [	        5        nUR                  [        5        UR                  [        R                  R                  S9  [        R                  " S5        U" 5         S S S 5        [        [        WR                  5      S5        [        UR                  S   R                  R                   S   S5        [        U S5        [	        5       nUR                  U S9  U   [        R                  " S5        S S S 5        [        U S5        UR                  U S9  U   [        R                  " S5        S S S 5        [        U S5        [	        5          [        R"                  " S5        [        R                  " S5        S S S 5        [        U S5        g ! , (       d  f       GN8= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NO= f)Nr  c                  <    S n [         R                  " U SS/5        g )Nc                 0    [         R                  " SSS9  U $ )NzSome warning 2r-   
stacklevelr8  arrs    r#   r:  Ftest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warn>  s    MM*q9Jr&   r   r/   apply_along_axisr:  s    r#   warn_other_module8test_suppress_warnings_module.<locals>.warn_other_module;      	 	D!aS)r&   r   moduler)  r,   r(  )r&  r   r*  r  r   recordrC  filterr/   lib
shape_baser9  r:  r  logmessager   rU  )r%  r7  sups      r#   test_suppress_warnings_modulerC  6  sj   F!6;R@* &!$		

; 	

"&&++
,n% 
 SWWq!##((+^<&!$

CJJfJ	n% 
&!$JJfJ	n% 
&!$ 
	h'n% 
 &!$9 
	 

 

 
	s0   AGGG)-G:
G
G&)
G7:
Hc                     [        5       n [        [        U S0 5      0 5        [        5        nUR	                  [
        5        [        R                  " S5        S S S 5        [        U S5        [        5       nUR	                  [
        5        U   [        R                  " S5        S S S 5        [        U S5        UR	                  U S9  U   [        R                  " S5        S S S 5        [        U S5        [        5          [        R                  " S5        [        R                  " S5        S S S 5        [        U S5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NN= f)Nr  r)  r   r:  r(  )
r&  r   r*  r   r=  rC  r9  r:  r  rU  )r%  rB  s     r#   test_suppress_warnings_typerE  d  s   F!6;R@ 
	

;n% 
 &!$

CJJ{	n% 
&!$JJfJ	n% 
&!$ 
	h'n% 
 &!$' 
	 

 

 
	s/   ,E E	E">-E3 
E
E"
E03
Fc                  4   [        5       n U R                  [        5        U S 5       n[        R                  " SS9 n[        R
                  " S5        U" [        5        U" [        5        [        [        U5      S5        S S S 5        g ! , (       d  f       g = f)Nc                 2    [         R                  " SU 5        g )Nr)  r8  )categorys    r#   r:  7test_suppress_warnings_decorate_no_record.<locals>.warn  s    nh/r&   T)r<  alwaysr,   )	r   r=  rC  r9  rT  rU  RuntimeWarningr   r  )rB  r:  ws      r#   )test_suppress_warnings_decorate_no_recordrM    sr    

CJJ{0 	0 
	 	 	-h'[^SVQ	 
.	-	-s   AB		
Bc                     [        5       n U R                  5       nU    U R                  SS9nU R                  SS9  [        R                  " S5        [        R                  " S5        [        R                  " S5        [        [        U R                  5      S5        [        [        U5      S5        [        [        U5      S5        [        US   R                  R                  S   S5        S S S 5        U    U R                  SS9nU R                  SS9  [        R                  " S5        [        R                  " S5        [        R                  " S5        [        [        U R                  5      S5        [        [        U5      S5        [        [        U5      S5        [        US   R                  R                  S   S5        S S S 5        [        5        n U R                  5         [        5        nUR                  SS9  [        R                  " S5        [        R                  " S5        [        [        UR                  5      S5        S S S 5        [        [        U R                  5      S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NY= f! , (       d  f       g = f)NzSome other warning 2)rA  r)  Some other warningr-   r,   r   )
r   r<  r=  r9  r:  r   r  r@  rA  r   )rB  log1log2sup2s       r#   test_suppress_warnings_recordrS    s   

C::<D	zz"8z9

>
*n%*+,-S\1%SY"SYq!T!W__))!,.DE 
 
zz"8z9

>
*n%*+,-S\1%SY"SY"T!W__))!,.DE 
 
	

 DKKK/MM.)MM./TXX*	 !
 	S\1% 
	5 
 
 !  
	s>   CI?7CJJ34AJ"'J3?
J
J"
J0	,J33
Kc                     S n [        5        nUR                  5         [        S5         [        S5       H  n[        R                  " S5        M     S S S 5        [        [        UR                  5      S5        S S S 5        [        5        nUR                  5         [        S5         [        S5       H/  n[        R                  " S5        [        R                  " S5        M1     S S S 5        [        [        UR                  5      S5        S S S 5        [        5        nUR                  5         [        S5         [        S5       H6  n[        R                  " S5        [        R                  " S5        U " 5         M8     S S S 5        [        [        UR                  5      S5        S S S 5        [        5        nUR                  5         [        S5         [        S5       H6  n[        R                  " S5        [        R                  " S5        U " 5         M8     S S S 5        [        [        UR                  5      S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN|= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)	Nc                  <    S n [         R                  " U SS/5        g )Nc                 0    [         R                  " SSS9  U $ )Nr)  r-   r/  r8  r1  s    r#   r:  Jtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warn  s    MM.Q7Jr&   r   r4  r6  s    r#   r7  <test_suppress_warnings_forwarding.<locals>.warn_other_module  r9  r&   rJ  r-   r)  locationr;  oncerO  )r   r<  ranger9  r:  r   r  r@  )r7  rB  is      r#   !test_suppress_warnings_forwardingr]    s   * 
	

x(1Xn-  ) 	S\1% 
 
	

z*1Xn-n-  +
 	S\1% 
 
	

x(1Xn-n-!#  ) 	S\1% 
 
	

v&1Xn-23!#  ' 	S\1% 
	3 )( 
	 +* 
	 )( 
	 '& 
	s   I)I'IJ(?I1''J J'<AJ'J';K
AJ9'K

I	I
I.1
J 	;J
J
J$	J''
J69
K	K


Kc                     [        5        n [        R                  R                  U S5      n[	        US5          S S S 5        S S S 5        [        [        R                  R                  W 5      (       + 5        Sn [        5        n [        5       e! , (       d  f       N[= f! , (       d  f       Nd= f! , (       d  f       O= f! [         a    Sn Of = f[        U5        [        [        R                  R                  U 5      (       + 5        g )NtmprL  FT)r   ospathjoinopenr   isdir
ValueError)tdirfpathraiseds      r#   test_tempdirri    s    	dT5)%  
 d##$FY$,  
 Y FOd##$sK   -B BB :
C B1
B	B  
B.1
B?;C ?C CCc                     [        5        n [        U S5          S S S 5        S S S 5        [        [        R                  R                  W 5      (       + 5        Sn [        5        n [        5       e! , (       d  f       N[= f! , (       d  f       Nd= f! , (       d  f       O= f! [         a    Sn Of = f[        U5        [        [        R                  R                  U 5      (       + 5        g )NrL  FT)r   rc  r   r`  ra  isfilere  )rg  rh  s     r#   test_temppathrl    s    	u%  
 u%%&FZ5,  
 Z FOu%%&sK   B A/B 
B" $B/
A=	9B  
B
BB" B" "B10B1c                   4    \ rS rSr\R
                  \    4rSrg)my_cacwi  rL   N)rM   rN   rO   rP   r@  rA  class_modulesrQ   rL   r&   r#   rn  rn    s    [[*,Mr&   rn  c                      [        5       n [        5          [        R                  " S5        [        R                  " S5        S S S 5        [        U R                  0 5        g ! , (       d  f       N%= f)Nr(  r)  )r&  rn  r9  rU  r:  r   r  r$  s    r#   %test_clear_and_catch_warnings_inheritrq    sH    F	h'n% 
 ++R0 
s   -A!!
A/zPython lacks refcounts)reasonc                   \    \ rS rSrSrS rS r\R                  R                  S 5       r
Srg)TestAssertNoGcCyclesi  zTest assert_no_gc_cycles c                 v    S n[        5          U" 5         S S S 5        [        U5        g ! , (       d  f       N= f)Nc                  ,    / n U R                  / 5        U $ r   append)r"   s    r#   no_cycle2TestAssertNoGcCycles.test_passes.<locals>.no_cycle  s    AHHRLHr&   )r   )r    ry  s     r#   test_passes TestAssertNoGcCycles.test_passes  s,    	
 !"J # 	H% #"s   *
8c                    S n[        [        5         [        5          U" 5         S S S 5        S S S 5        [        [        5         [        U5        S S S 5        g ! , (       d  f       N:= f! , (       d  f       NC= f! , (       d  f       g = f)Nc                  N    / n U R                  U 5        U R                  U 5        U $ r   rw  )r!   s    r#   
make_cycle5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle$  s"    AHHQKHHQKHr&   )r	   r(   r   )r    r  s     r#   test_asserts!TestAssertNoGcCycles.test_asserts#  s[    	 >*$& ' + >*
+ +* '& +* +*s-   A+AA+A<
A(	$A++
A9<
B
c                 H  ^  " U4S jS5      m [         R                  " T" 5       5      n [        [        5         [	        S 5        SSS5        STl        g! , (       d  f       N= f! [
         a"    U" 5       b  [        R                  " S5        e  NDf = f! STl        f = f)z}
Test that in cases where the garbage cannot be collected, we raise an
error, instead of hanging forever trying to clear it.
c                   0   > \ rS rSrSrSrS rU 4S jrSrg)<TestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDeli8  z
An object that not only contains a reference cycle, but creates new
cycles whenever it's garbage-collected and its __del__ runs
Tc                     X l         g r   cyclerI   s    r#   r  ETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__?  s    !
r&   c                 F   > S U l         TR                  (       a  T" 5         g g r   )r  r  )r    ReferenceCycleInDels    r#   __del__DTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__B  s     !
&11 () 2r&   r  N)	rM   rN   rO   rP   __doc__r  r  r  rQ   )r  s   r#   r  r  8  s     J"* *r&   r  c                      g r   rL   rL   r&   r#   r;  1TestAssertNoGcCycles.test_fails.<locals>.<lambda>P  s    r&   Nz*GC does not call __del__ on cyclic objectsF)	weakrefrefr	   RuntimeErrorr   r(   r   skipr  )r    rL  r  s     @r#   
test_failsTestAssertNoGcCycles.test_fails1  s    	* 	*&	3/12A	"<0'5 1 .3* 10 "  3?KK LM # .3*sK   B A) AA) 
A&"A) %B &A) ))BB BB 	B!rL   N)rM   rN   rO   rP   r  r{  r  r   markslowr  rQ   rL   r&   r#   rt  rt    s-    $	&, [[(3 (3r&   rt  );r9  r@  r`  r  r   r  numpyr/   numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rS   r   r   r1  r  r  r  r4  rZ  r  r  r  r  r!  r&  r+  rC  rE  rM  rS  r]  ri  rl  rn  rq  r  skipifrt  rL   r&   r#   <module>r     sd    
 	         +/ +/\x2\ x2v* *Z\) \)~_ < _ DT l T n(M (MVj$ j$Z0H 0HfV< V<rc* c*L5* 5*pA A(*.*8	%@+%\%8 %&P,&^%"' -& -
1 $-EFD3 D3 GD3r&   