
    4iU7                       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rS SK	J
s  J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*\RV                  RY                  S5      \RV                  R[                  SS9 " S S5      5       5       r. " S S5      r/ " S S5      r0 " S S5      r1 " S S5      r2S  r3S! r4S" r5\RV                  R[                  SS9S# 5       r6\RV                  RY                  S5      \RV                  R[                  SS9S$ 5       5       r7\RV                  RY                  S5      \RV                  R[                  SS9S% 5       5       r8\RV                  RY                  S5      \RV                  R[                  S&S9S' 5       5       r9\RV                  RY                  S5      \RV                  R[                  S&S9S( 5       5       r:\RV                  RY                  S5      \RV                  R[                  S&S9S) 5       5       r;S* r<S+ r= " S, S-\5      r>\RV                  R[                  SS9S. 5       r?\RV                  R                  \(       + S/S9\RV                  R[                  S0S9 " S1 S25      5       5       rAg)3    N)HAS_REFCOUNTassert_assert_allcloseassert_almost_equalassert_approx_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_array_equalassert_array_lessassert_array_max_ulpassert_equalassert_no_gc_cyclesassert_no_warningsassert_raisesassert_string_equalassert_warnsbuild_err_msgclear_and_catch_warningssuppress_warningstempdirtemppathc                   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)_GenericTest%   c                     g N selfargskwargss      `/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py_assert_func_GenericTest._assert_func'   s        c                 &    U R                  X5        g r   r#   r   abs      r"   _test_equal_GenericTest._test_equal*   s    !r%   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_eq1   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.r2   r3   Nr5   r6   r/   r(   s      r"   test_array_rank1_noteq#_GenericTest.test_array_rank1_noteq8   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.r2   r3         Nr4   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.r2   r3   Nr:   r(   s      r"   test_array_diffshape!_GenericTest.test_array_diffshapeF   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.r2   dtypeN)r5   r6   objectr+   r   r)   s     r"   test_objarray_GenericTest.test_objarrayM   s&    HHaV6*Ar%   c                 ,    U R                  / SQS5        g )Nr2   r3   r>   )r+   r   s    r"   test_array_likes_GenericTest.test_array_likesR   s    I.r%   r   N)__name__
__module____qualname____firstlineno__r#   r+   r/   r7   r;   r@   rD   rK   rP   __static_attributes__r   r%   r"   r   r   %   s/     $##
/r%   r   c                   z    \ 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Srg)TestArrayEqualV   c                     [        U0 UD6  g r   )r
   r   s      r"   r#   TestArrayEqual._assert_funcX   s    D+F+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 )Nr3   r2   r   r5   emptyfillcopyr+   r/   tr)   r*   cr   s       r"   foo.TestArrayEqual.test_generic_rank1.<locals>.foo]   sZ    AAFF1IAAFF1IQ"  &r%   ?bhilqpBHILQPfdgFDGS1U1Nr   r   re   rc   s   `  r"   test_generic_rank1!TestArrayEqual.test_generic_rank1[   .    	' 'AF ' AF r%   c                    [         R                  " S5      n[         R                  " S5      n[        R                  " [        5       nU R                  X5        S S S 5        [        WR                  5      n[        SU;   5        UnU R                  X5        [         R                  " S5      n[         R                  " S5      nSn[        R                  " [        [        R                  " U5      S9   U R                  X5        S S S 5        UnU R                  X5        g ! , (       d  f       N= f! , (       d  f       N3= f)Nl   Cj<T"3w-l   (M$c7uvz"Mismatched elements: 1 / 1 (100%)
gLxrBr   zMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 4.39506535e+12
Max relative difference among violations: inf
match)r5   r6   pytestraisesr.   r#   strvaluer   reescape)r   xyexc_infomsgexpected_msgs         r"   test_0_ndim_array TestArrayEqual.test_0_ndim_arrayn   s    HH9:HH89]]>*ha# +(..!5 	 !HH34HHQKJ ]]><1HIa# J !' +* JIs   D 2D1 
D.1
D?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)r?   r3   r>   r2   r   r^   rb   s       r"   re   .TestArrayEqual.test_generic_rank3.<locals>.foo   s[    A&AFF1IAAFF1IQ"  &r%   rg   rh   Nr   rk   s   `  r"   test_generic_rank3!TestArrayEqual.test_generic_rank3   rn   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.r2   r3   rN   N)r5   r6   nanr+   r/   r   r)   r*   rd   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)rC   floupifloupafloupipiN)r5   r6   r+   r/   r   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.r3   r   r   r2   r   N)	r5   r_   floatra   r+   rr   rs   	TypeErrorr/   r   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   )r5   maMaskedArrayr6   r   r+   infr(   s      r"   test_masked_nan_inf"TestArrayEqual.test_masked_nan_inf   s    EEm2FGHHb"&&#&'EEm2FGHHbffb#&'r%   c           
      ~   [         R                  " S[        R                  [        R                  /SS[        R                  [        R                  [        R                  * /SS/5       H  u  pn[        R
                  R                  USS9nU(       a  [        R
                  R                  USS9O[        R                  " U5      nU R                  XE5        U R                  XT5        M     [         R                  " S[        R                  [        R                  * /[         R                  " SS[        R                  [        R                  [        R                  * /SS95       H[  u  p[        R
                  R                  USS9n[        R                  " U5      nU R                  XE5        U R                  XT5        M]     [         R                  " S[        R                  [        R                  /[         R                  " SS[        R                  [        R                  [        R                  * /SS9[         R                  " SS/SS95       Hc  u  pn[        R
                  R                  USS9n[        R
                  R                  X&S9nU R                  XE5        U R                  XT5        Me     g )Nr   r   FTr   r3   )repeat)		itertoolsproductr5   r   r   r   r   r6   r+   )r   a_valb_valb_maskedr)   r*   b_masks          r"   test_masked_scalar!TestArrayEqual.test_masked_scalar   s    &/&7&7 RVVRVVbffW-DM'
"E(
 !!%d!3A7?!!%d!3RXXe_AQ"Q"'
 &--"&&!r2rvvrvvw?J
LE !!%d!3AAQ"Q"
 %.$5$5 r2rvvrvvw?JudmA6%
 E&
 !!%d!3A!!%!5AQ"Q"%
r%   c                 X    " 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        Sn[        R                  " [        [        R                  " U5      S9   U R                  X#5        S S S 5        [         R                  " SS	/5      R                  U5      nS
n[        R                  " [        [        R                  " U5      S9   U R                  X55        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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   )boolr5   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   r   r   s     r"   __ne__FTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__   s    ((r%   r   N)rR   rS   rT   rU   r   r   rV   r   r%   r"   MyArrayr      s    9)r%   r         ?       @r   z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5rp           g333333@z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 2.
Max relative difference among violations: inf)r5   ndarrayr6   viewr   typer   r+   r/   rr   rs   r.   rv   rw   )r   r   r)   r*   r|   rd   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"H ]]><1HIQ" J HHb#Y$$W-H ]]><1HIQ" JI JI JIs   ?F
/F

F
F)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>.MyArrayi  c                     [         $ r   )NotImplementedr   s      r"   __array_function__^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__  s    %%r%   r   N)rR   rS   rT   rU   r   rV   r   r%   r"   r   r     s    &r%   r   r   r   r   )	r5   r   r6   r   r   r   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   rN   )r2   gWw'&l7r>   )	rr   rs   r.   r5   errstatetestingr
   r6   float32rO   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   Nr4   r(   s      r"   test_array_vs_scalar_is_equal,TestArrayEqual.test_array_vs_scalar_is_equal$  s#    HH\"r%   c                    [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        [         R                  " / SQ5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        g! , (       d  f       Np= f! , (       d  f       g= f)z@Test comparing an array with a scalar when not all values equal.)骈  S g 6 )r   r   r   r   zMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 563766 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 563766
Max relative difference among violations: infrp   N)r   r   g̜Ar   zMismatched elements: 2 / 4 (50%)
Mismatch at indices:
 [2]: 439655.2 (ACTUAL), 439655 (DESIRED)
 [3]: 563766.0 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 563766.
Max relative difference among violations: 4.54902139e-07r5   r6   rr   rs   r.   rv   rw   r#   r   r)   r*   r|   s       r"   test_array_vs_array_not_equal,TestArrayEqual.test_array_vs_array_not_equal+  s    HH45HH/0H
 ]]><1HIa# J HH67) ]]><1HIa# JI JI JIs    CC-
C*-
C;c                     [         R                  " / SQ5      nSn[        R                  " [        5         U R                  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r5   r6   rr   rs   r.   r#   r(   s      r"   test_array_vs_scalar_strict*TestArrayEqual.test_array_vs_scalar_strictD  s@    HH\"]]>*a40 +**s   A
Ac                     [         R                  " / SQ5      n[         R                  " / SQ5      nU R                  XSS9  g)-Test comparing two arrays with strict option.r   Tr   N)r5   r6   r#   r(   s      r"   test_array_vs_array_strict)TestArrayEqual.test_array_vs_array_strictL  s1    HH\"HH\"!t,r%   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " [        5         U R                  XSS9  SSS5        g! , (       d  f       g= f)r   )r2   r2   r2   r   Tr   Nr   r(   s      r"    test_array_vs_float_array_strict/TestArrayEqual.test_array_vs_float_array_strictS  sI    HHYHH\"]]>*a40 +**s   A%%
A3r   N)rR   rS   rT   rU   r#   rl   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rV   r   r%   r"   rX   rX   V   sY    ,& 2&#	#'"	#B #D#9$21-1r%   rX   c                   ,    \ rS rSrS rS rS rS rSrg)TestBuildErrorMessagei\  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])r5   r6   r   r   r   rx   ry   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_verbosei  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_namesr  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   
   )	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%   r   N)	rR   rS   rT   rU   r   r   r  r	  rV   r   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0 UD6  g r   )r   r   s      r"   r#   TestEqual._assert_func  s    d%f%r%   c                 ^   U R                  [        R                  [        R                  5        U R                  [        R                  /[        R                  /5        U R                  [        R                  [        R                  /5        U R                  [        R                  S5        g Nr2   )r#   r5   r   r/   rO   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#   r5   r   r/   rO   s    r"   test_inf_itemsTestEqual.test_inf_items  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+   r5   
datetime64r/   rO   s    r"   test_datetimeTestEqual.test_datetime  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  {   )r5   r  timedelta64r   r   r#   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_items  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/   rO   s    r"   test_non_numericTestEqual.test_non_numeric  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 Nr2   r3   )r#   complexr5   r   r/   r   rO   s    r"   test_complex_itemTestEqual.test_complex_item  s    '!Q-A7'!RVV,ga.@AWQ/A?WRVVQ/BFF1CDWRVVRVV4gbffa6HIr%   c                 `    U R                  [        R                  [        R                  5        g r   )r/   ncuPZERONZEROrO   s    r"   test_negative_zeroTestEqual.test_negative_zero  s    SYY		2r%   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 r2  r5   r6   r3  r   r#   r/   r   rx   ry   s      r"   test_complexTestEqual.test_complex  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  r2   r3   )datetimer5   r6   r/   )r   rC  r)   s      r"   test_objectTestEqual.test_object  sQ    HHh''a3''a35 6Q$B$(r%   r   N)rR   rS   rT   rU   r#   r  r  r  r*  r/  r4  r:  r?  rD  rV   r   r%   r"   r  r    s6    &(/

(@>*J3#)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)TestArrayAlmostEquali  c                     [        U0 UD6  g r   )r   r   s      r"   r#   !TestArrayAlmostEqual._assert_func  s    !4262r%   c                    Sn[         R                  " [        [        R                  " U5      S9   U R                  SSSS9  S S S 5        U R                  S/S/SS9  Sn[         R                  " [        [        R                  " U5      S9   U R                  S/S/SS9  S S S 5        S	S
/nSS/nSn[         R                  " [        [        R                  " U5      S9   U R                  X#SS9  S S S 5        Sn[         R                  " [        [        R                  " U5      S9   U R                  X2SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       g = f)Nz}Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.5
Max relative difference among violations: infrp         ?r   r   decimal?zMismatched elements: 1 / 1 (100%)
Mismatch at index:
 [0]: 1.5 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 1.5
Max relative difference among violations: infge(?giUMu>gB??zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 3e-05 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: inf   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 0.0 (ACTUAL), 3e-05 (DESIRED)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: 1.rr   rs   r.   rv   rw   r#   )r   r|   r)   r*   s       r"   test_closeness#TestArrayAlmostEqual.test_closeness  sM   H ]]><1HIc32 J 	8*seQ7H
 ]]><1HIsecUA6 J  OH
 ]]><1HIaA. JG
 ]]><1HIaA. JI; JI JI JI JIs/   EEE$'E5
E
E!$
E25
Fc                 R   [         R                  " S/5      n[         R                  " S/5      nU R                  XSS9  U R                  XSS9  Sn[        R                  " [
        [        R                  " U5      S9   U R                  XSS9  S S S 5        g ! , (       d  f       g = f)	NgeH@gwH@r>   rL  r?   zMismatched elements: 1 / 1 (100%)
Mismatch at index:
 [0]: 1234.2222 (ACTUAL), 1234.2223 (DESIRED)
Max absolute difference among violations: 1.e-04
Max relative difference among violations: 8.10226812e-08rp      r5   r6   r#   rr   rs   r.   rv   rw   r   rx   ry   r|   s       r"   test_simple TestArrayAlmostEqual.test_simple  s    HHi[!HHi[!!*!*) ]]><1HIaA. JIIs   >B
B&c                    / SQnSnSn[         R                  " [        [        R                  " U5      S9   U R                  XSS9  S S S 5        Sn[         R                  " [        [        R                  " U5      S9   U R                  X!SS9  S S S 5        SS/nS	n[         R                  " [        [        R                  " U5      S9   U R                  X!S
S9  S S S 5        SnSn[         R                  " [        [        R                  " U5      S9   U R                  XS
S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N{= f! , (       d  f       g = f)N)mlz@gHPX@r   rZ  zMismatched elements: 2 / 3 (66.7%)
Mismatch at indices:
 [1]: 849.54345 (ACTUAL), 5498.42354 (DESIRED)
 [2]: 0.0 (ACTUAL), 5498.42354 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 1.rp   	   rL  zMismatched elements: 2 / 3 (66.7%)
Mismatch at indices:
 [1]: 5498.42354 (ACTUAL), 849.54345 (DESIRED)
 [2]: 5498.42354 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 5.4722099r   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 5498.42354 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: infrO  r   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [0]: 5498.42354 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: infrP  r   s       r"   test_array_vs_scalar)TestArrayAlmostEqual.test_array_vs_scalar)  s2   )G ]]><1HIaA. JN ]]><1HIaA. J H ]]><1HIaA. J H ]]><1HIaA. JI= JI JI JI JIs/   D.>D?
EE!.
D<?
E
E!
E/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 )Nr2   c                  (   > TR                  T T5      $ r   r'   ananaoner   s   r"   <lambda>/TestArrayAlmostEqual.test_nan.<locals>.<lambda>Z      d//d;r%   c                  (   > TR                  TT 5      $ r   r'   ainfra  r   s   r"   rc  rd  \  re  r%   c                  (   > TR                  T T5      $ r   r'   rg  s   r"   rc  rd  ^  re  r%   r5   r6   r   r   r#   r   r.   r   rh  ra  rb  s   `@@@r"   test_nanTestArrayAlmostEqual.test_nanT  sq    xx!xx}xx!$%n;	=n;	=n;	=r%   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"   rc  /TestArrayAlmostEqual.test_inf.<locals>.<lambda>e      d//15r%   c                  (   > TR                  T T5      $ r   r'   rp  s   r"   rc  rq  h  rr  r%   )r5   r6   ra   r   r   r.   r(   s   `@@r"   test_infTestArrayAlmostEqual.test_inf`  s_    HHr2hR)*FFH&&$n5	766'$n5	7r%   c                 X   [         R                  " [         R                  S-   SS/5      nUR                  5       nU R	                  X5        SUS'   Sn[
        R                  " [        [        R                  " U5      S9   U R	                  X5        S S S 5        g ! , (       d  f       g = f)N              ?y       @      ?y      @      ?r2   zMismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [1]: (2+1j) (ACTUAL), (3+1j) (DESIRED)
Max absolute difference among violations: 1.
rp   )
r5   r6   r   ra   r#   rr   rs   r.   rv   rw   r   s       r"   test_complex_inf%TestArrayAlmostEqual.test_complex_infj  s}    HHbffslHh78FFH!!I ]]><1HIa# JIIs    B
B)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   r   FTg      @r   r   )TTT)r   r   r   )r5   r6   r   masked_arrayr#   r   r+   maskedr(   s      r"   test_subclass"TestArrayAlmostEqual.test_subclassv  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        [         R                  " SS/5      R                  U5      n[        U5        [         R                  " SS/5      R                  U5      nSn[        R                  " [        [        R                  " U5      S9   U R	                  X$5        S S S 5        g ! , (       d  f       g = f)	Nc                   :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )5TestArrayAlmostEqual.test_subclass_2.<locals>.MyArrayi  c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   superr   r   r5   r   r   r   	__class__s     r"   r   <TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__eq__  !    w~e,11"**==r%   c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   r  __lt__r   r5   r   r  s     r"   r  <TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__lt__  r  r%   c                     [        U 5      $ r   r   r   s      r"   r   9TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.all  s    4y r%   r   	rR   rS   rT   rU   r   r  r   rV   __classcell__r  s   @r"   r   r    s    >>! !r%   r   r   r   T   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 2.0 (ACTUAL), 202.0 (DESIRED)
Max absolute difference among violations: 200.
Max relative difference among violations: 0.99009rp   )r5   r   r6   r   r#   r   rr   rs   r.   rv   rw   )r   r   r)   zr*   r|   s         r"   test_subclass_2$TestArrayAlmostEqual.test_subclass_2  s    
	!bjj 	! HHb"X##G,!HHdD\"''0AHHb#Y$$W-L
 ]]><1HIa# JIIs   C55
D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   r  r  s     r"   r   NTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  r  r%   c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   r  r  s     r"   r  NTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__  r  r%   c                     [         er   NotImplementedErrorr   s      r"   r   KTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all      ))r%   r   r  r  s   @r"   r   r        >>* *r%   r   r   r   r5   r   r6   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)rR   rS   rT   rU   r#   rQ  rW  r\  rl  rt  rx  r}  r  r  rV   r   r%   r"   rG  rG    s6    3)/V/")/V
=7
$4$: r%   rG  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0 UD6  g r   )r   r   s      r"   r#   TestAlmostEqual._assert_func      T,V,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 )NrN  r   r   rL  c                  &   > T R                  SSSS9$ NrK  r   r   rL  r'   rO   s   r"   rc  0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//S!/Dr%   c                  *   > T R                  S/S/SS9$ r  r'   rO   s   r"   rc  r    s    d//ua/Hr%   r#   r   r.   rO   s   `r"   rQ  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#   r5   r   rO   s   r"   rc  /TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//:r%   c                  `   > T R                  [        R                  [        R                  5      $ r   )r#   r5   r   r   rO   s   r"   rc  r        d//?r%   c                  `   > T R                  [        R                  [        R                  5      $ r   )r#   r5   r   r   rO   s   r"   rc  r    r  r%   )r#   r5   r   r   r.   rO   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#   r5   r   rO   s   r"   rc  /TestAlmostEqual.test_inf_item.<locals>.<lambda>  r  r%   c                  b   > T R                  [        R                  * [        R                  5      $ r   r  rO   s   r"   rc  r    s    d//@r%   )r#   r5   r   r   r.   rO   s   `r"   test_inf_itemTestAlmostEqual.test_inf_item  sR    "&&"&&)266'BFF7+n:	<n@	Br%   c                 (    U R                  SS5        g r2  )r/   rO   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 r2  )r#   r3  r5   r   r   r/   rO   s    r"   r4  !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 r2  r=  )r   rx   r  ry   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Sn[        R                  " [        [
        R                  " U5      S9   U R                  XSS9  SSS5        Sn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        [         R                  " [         R                  S	/5      n[         R                  " [         R                  S
/5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        [         R                  " S
S/5      n[         R                  " S	S	/5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        g! , (       d  f       GNg= f! , (       d  f       GN0= f! , (       d  f       N= f! , (       d  f       g= 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   a  Mismatched elements: 3 / 3 (100%)
Mismatch at indices:
 [0]: 1.00000000001 (ACTUAL), 1.00000000002 (DESIRED)
 [1]: 2.00000000002 (ACTUAL), 2.00000000003 (DESIRED)
 [2]: 3.00003 (ACTUAL), 3.00004 (DESIRED)
Max absolute difference among violations: 1.e-05
Max relative difference among violations: 3.33328889e-06
 ACTUAL: array([1.00000000001, 2.00000000002, 3.00003      ])
 DESIRED: array([1.00000000002, 2.00000000003, 3.00004      ])rp      rL  Na"  Mismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [2]: 3.00003 (ACTUAL), 3.00004 (DESIRED)
Max absolute difference among violations: 1.e-05
Max relative difference among violations: 3.33328889e-06
 ACTUAL: array([1.     , 2.     , 3.00003])
 DESIRED: array([1.     , 2.     , 3.00004])r   r2   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 0.0 (ACTUAL), 1.0 (DESIRED)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.
 ACTUAL: array([inf,  0.])
 DESIRED: array([inf,  1.])r3   zMismatched elements: 2 / 2 (100%)
Mismatch at indices:
 [0]: 1 (ACTUAL), 0 (DESIRED)
 [1]: 2 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 2
Max relative difference among violations: inf)	r5   r6   rr   rs   r.   rv   rw   r#   r   rV  s       r"   test_error_message"TestAlmostEqual.test_error_message  sy    HH<=HH<=* ]]><1HIaB/ JG ]]><1HIa# J HHbffa[!HHbffa[!6 ]]><1HIa# J HHaVHHaVH ]]><1HIa# JIO JI JI JI JIs0    G(G#=G56H
G #
G25
H
Hc                     Sn[         R                  " S5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        Sn[         R                  " S5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        SSS5        g! , (       d  f       Np= f! , (       d  f       g= f)z)Check the message is formatted correctly r3      a@  Mismatched elements: 20 / 20 (100%)
First 5 mismatches are at indices:
 [0]: 2 (ACTUAL), 1.0 (DESIRED)
 [1]: 2 (ACTUAL), 1.0 (DESIRED)
 [2]: 2 (ACTUAL), 1.0 (DESIRED)
 [3]: 2 (ACTUAL), 1.0 (DESIRED)
 [4]: 2 (ACTUAL), 1.0 (DESIRED)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.rp   NaA  Mismatched elements: 20 / 20 (100%)
First 5 mismatches are at indices:
 [0]: 1.0 (ACTUAL), 2 (DESIRED)
 [1]: 1.0 (ACTUAL), 2 (DESIRED)
 [2]: 1.0 (ACTUAL), 2 (DESIRED)
 [3]: 1.0 (ACTUAL), 2 (DESIRED)
 [4]: 1.0 (ACTUAL), 2 (DESIRED)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5)r5   onesrr   rs   r.   rv   rw   r#   rV  s       r"   test_error_message_2$TestAlmostEqual.test_error_message_28  s    -GGBKG ]]><1HIa# J GGBKH ]]><1HIa# JI JI JIs   	C*C
C
C$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>.MyArrayi\  c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   r  r  s     r"   r   ITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__]  r  r%   c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   r  r  s     r"   r  ITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__`  r  r%   c                     [         er   r  r   s      r"   r   FTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allc  r  r%   r   r  r  s   @r"   r   r  \  r  r%   r   r   r   r  r  s      r"   r  1TestAlmostEqual.test_subclass_that_cannot_be_boolW  r  r%   r   N)rR   rS   rT   rU   r#   rQ  r  r  r  r4  r?  r  r  r  rV   r   r%   r"   r  r    s9    -J"AB#J#<$|$> r%   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestApproxEqualij  c                     [        U0 UD6  g r   )r   r   s      r"   r#   TestApproxEqual._assert_funcl  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@rT  significant   c                  &   > T R                  TTSS9$ NrO  r  r'   r>  s   r"   rc  7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>v      d//1!/Dr%   )r5   r6   r#   r   r.   r>  s   `@@r"   test_simple_0d_arrays%TestApproxEqual.test_simple_0d_arrayso  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  r?   r  rT  r  c                  &   > T R                  TTSS9$ r  r'   r>  s   r"   rc  3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r%   r  r>  s   `@@r"   test_simple_items!TestApproxEqual.test_simple_itemsx  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 )Nr2   c                  (   > TR                  T T5      $ r   r'   r`  s   r"   rc  0TestApproxEqual.test_nan_array.<locals>.<lambda>      d.?.?d.Kr%   c                  (   > TR                  TT 5      $ r   r'   rg  s   r"   rc  r    r  r%   c                  (   > TR                  T T5      $ r   r'   rg  s   r"   rc  r    r  r%   rj  rk  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 )Nr2   c                  (   > TR                  T T5      $ r   r'   r`  s   r"   rc  0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r%   c                  (   > TR                  TT 5      $ r   r'   rg  s   r"   rc  r    r  r%   c                  (   > TR                  T T5      $ r   r'   rg  s   r"   rc  r    r  r%   rj  rk  s   `@@@r"   r  TestApproxEqual.test_nan_items  r  r%   r   N)
rR   rS   rT   rU   r#   r  r  r   r  rV   r   r%   r"   r  r  j  s    -FFMMr%   r  c                   \    \ 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)TestArrayAssertLessi  c                     [        U0 UD6  g r   )r   r   s      r"   r#    TestArrayAssertLess._assert_func  s    4*6*r%   c                 V  ^ ^^ [         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        [         R                  " / S	Q5      n[         R                  " / S
Q5      nSn[
        R                  " [        [        R                  " U5      S9   T R                  X5        S S S 5        g ! , (       d  f       g = f)N皙?皙@333333?ffffff@c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>      d.?.?1.Er%   r   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  r    r  r%   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  r    r  r%   )r2   r>   r  r  )r3   r?   r     zMismatched elements: 2 / 4 (50%)
Mismatch at indices:
 [2]: 6 (x), 6 (y)
 [3]: 20 (x), 8 (y)
Max absolute difference among violations: 12
Max relative difference among violations: 1.5rp   )	r5   r6   r#   r   r.   rr   rs   rv   rw   )r   r)   r*   r|   rx   ry   s   `   @@r"   test_simple_arrays&TestArrayAssertLess.test_simple_arrays  s    HHc3Z HHc3Z !Qn&EFHHc3Z n&EFn&EFHH]#HH\"H ]]><1HIa# JIIs   ?D
D(c                   ^ ^^ [         R                  " SS/SS//5      m[         R                  " SS/SS//5      mT R                  TT5        S	n[        R                  " [
        [        R                  " U5      S
9   T R                  TT5        S S S 5        [         R                  " SS/SS//5      m[        [
        U UU4S j5        [        [
        U UU4S j5        g ! , (       d  f       NW= f)Nr  r  ffffff
@g@r  r	  g333333@g      @a  Mismatched elements: 4 / 4 (100%)
Mismatch at indices:
 [0, 0]: 1.2 (x), 1.1 (y)
 [0, 1]: 2.3 (x), 2.2 (y)
 [1, 0]: 3.4 (x), 3.3 (y)
 [1, 1]: 4.5 (x), 4.4 (y)
Max absolute difference among violations: 0.1
Max relative difference among violations: 0.09090909rp   r   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r%   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  r    r  r%   )	r5   r6   r#   rr   rs   r.   rv   rw   r   r   r|   rx   ry   s   ` @@r"   
test_rank2TestArrayAssertLess.test_rank2  s    HHsCj3*-.HHsCj3*-.!QO ]]><1HIa# J HHsCj3*-.n&EFn&EF JIs   =C!!
C/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'   Sn[
        R                  " [        [        R                  " U5      S9   T R                  TT5        S S S 5        [        [        U UU4S	 j5        g ! , (       d  f       N%= f)
N)r3   r3   r3   )shaper2   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r%   r   )r   r   r   zMismatched elements: 1 / 8 (12.5%)
Mismatch at index:
 [0, 0, 0]: 1.0 (x), 0.0 (y)
Max absolute difference among violations: 1.
Max relative difference among violations: infrp   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  r    r  r%   )	r5   r  r#   r   r.   rr   rs   rv   rw   r  s   ` @@r"   
test_rank3TestArrayAssertLess.test_rank3  s    GG)$GG)$q(!Qn&EF'
H
 ]]><1HIa# J 	n&EF JIs   B==
Cc                   ^ ^^ SmSmT R                  TT5        Sn[        R                  " [        [        R
                  " U5      S9   T R                  TT5        S S S 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 ! , (       d  f       N}= f)	Nr  r  z|Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.1
Max relative difference among violations: 1.rp   r  c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r%   r   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  r#    r  r%   )	r#   rr   rs   r.   rv   rw   r5   r6   r   r  s   ` @@r"   r  %TestArrayAssertLess.test_simple_items  s    !QG ]]><1HIa# J HHc3Z !Qn&EFHHc3Z n&EF JIs   	C
C!c                 8   [         R                  " / SQ/ SQ/ SQ/5      nSnU R                  X5        SnU R                  X!5        [         R                  " / SQ/ SQ/ SQ/5      nS	nS
n[        R                  " [
        [        R                  " U5      S9   U R                  X5        S S S 5        Sn[        R                  " [
        [        R                  " U5      S9   U R                  X!5        S S S 5        g ! , (       d  f       NX= f! , (       d  f       g = f)N)g.c}j@g镲hx@g|yE@g㥛Ġ@)gQEK@gH}@g      *@V-Xy@)(\@Gz @nV@gt@gQ@gmXSY @)gk	@g6<R@g//8{@gMbеA)gףp=I@Hze}.Ag=
ף@r'  )r(  r)  r*  gye}.Ar+  zMismatched elements: 1 / 12 (8.33%)
Mismatch at index:
 [1, 1]: 999090.54 (x), 999090.54 (y)
Max absolute difference among violations: 0.
Max relative difference among violations: 0.rp   ap  Mismatched elements: 12 / 12 (100%)
First 5 mismatches are at indices:
 [0, 0]: 999090.54 (x), 3.4536 (y)
 [0, 1]: 999090.54 (x), 2390.5436 (y)
 [0, 2]: 999090.54 (x), 435.54657 (y)
 [0, 3]: 999090.54 (x), 324525.4535 (y)
 [1, 0]: 999090.54 (x), 5449.54 (y)
Max absolute difference among violations: 999087.0864
Max relative difference among violations: 289288.5934676rU  rV  s       r"   test_simple_items_and_array/TestArrayAssertLess.test_simple_items_and_array  s    HH@646 7 !!HHA?;= > G
 ]]><1HIa# J
) ]]><1HIa# JI JI JIs   C:D:
D
Dc                 4   [         R                  " / SQ5      n[         R                  " S5      nSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        S S S 5        Sn[        R                  " [        [
        R                  " U5      S9   U R                  X!5        S S S 5        SnSn[        R                  " [        [
        R                  " U5      S9   U R                  X5        S S S 5        Sn[        R                  " [        [
        R                  " U5      S9   U R                  X!5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       g = f)	N)g    0 Ar   g)\.@g    `f@zMismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [0]: 546456.0 (x), 87654.0 (y)
Max absolute difference among violations: 458802.
Max relative difference among violations: 5.23423917rp   zMismatched elements: 2 / 3 (66.7%)
Mismatch at indices:
 [1]: 87654.0 (x), 0.0 (y)
 [2]: 87654.0 (x), 15.455 (y)
Max absolute difference among violations: 87654.
Max relative difference among violations: 5670.5626011r   zMismatched elements: 3 / 3 (100%)
Mismatch at indices:
 [0]: 546456.0 (x), 0 (y)
 [1]: 0.0 (x), 0 (y)
 [2]: 15.455 (x), 0 (y)
Max absolute difference among violations: 546456.
Max relative difference among violations: infzMismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [1]: 0 (x), 0.0 (y)
Max absolute difference among violations: 0.
Max relative difference among violations: infr   rV  s       r"   test_zeroesTestArrayAssertLess.test_zeroes  s$   HH)*HHVO
 ]]><1HIa# J' ]]><1HIa# J H ]]><1HIa# JH
 ]]><1HIa# JI= JI JI JI JIs0   E'E'2E8;F	
E$'
E58
F	
F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 )Nr2   c                  (   > TR                  TT 5      $ r   r'   r`  s   r"   rc  9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>@  r  r%   c                  (   > TR                  T T5      $ r   r'   r`  s   r"   rc  r3  A  r  r%   c                  (   > TR                  TT 5      $ r   r'   rg  s   r"   rc  r3  B  r  r%   c                  (   > TR                  T T5      $ r   r'   rg  s   r"   rc  r3  C  r  r%   rj  rk  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'   ra  r   rx   s   r"   rc  ?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>I      d.?.?4.Hr%   c                  (   > TR                  T T5      $ r   r'   r;  s   r"   rc  r<  J      d.?.?a.Hr%   r  r  c                  (   > TR                  TT 5      $ r   r'   r;  s   r"   rc  r<  N  r=  r%   c                  (   > TR                  T T5      $ r   r'   r;  s   r"   rc  r<  O  r?  r%   r   r   c                  (   > T R                  TT5      $ r   r'   r>  s   r"   rc  r<  T  r  r%   )r5   r6   r   r   r.   r#   )r   ra  rx   ry   s   `@@@r"   test_nan_noncompare_array-TestArrayAssertLess.test_nan_noncompare_arrayE  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 )Nr2   c                  (   > TR                  T T5      $ r   r'   rh  rb  r   s   r"   rc  6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>]  r  r%   c                  *   > TR                  TT * 5      $ r   r'   rG  s   r"   rc  rH  ^      d.?.?te.Lr%   c                  (   > TR                  T T 5      $ r   r'   rh  r   s   r"   rc  rH  _  r  r%   c                  *   > TR                  T T * 5      $ r   r'   rL  s   r"   rc  rH  `  rJ  r%   c                  ,   > TR                  T * T * 5      $ r   r'   rL  s   r"   rc  rH  a  s    d.?.?u.Mr%   )r5   r6   r   r#   r   r.   )r   rh  rb  s   `@@r"   test_inf_compare$TestArrayAssertLess.test_inf_compareV  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'   rh  r   rx   s   r"   rc  <TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>g  r=  r%   c                  (   > TR                  T T5      $ r   r'   rS  s   r"   rc  rT  h  r?  r%   c                  *   > TR                  TT * 5      $ r   r'   rS  s   r"   rc  rT  i  s    d.?.?D5.Ir%   c                  ,   > TR                  T* T * 5      $ r   r'   rS  s   r"   rc  rT  j  s    d.?.?TE.Jr%   c                  ,   > TR                  T * T* 5      $ r   r'   rS  s   r"   rc  rT  k  s    d.?.?r.Jr%   )r5   r6   r   r   r.   r#   )r   rh  rx   s   `@@r"   test_inf_compare_array*TestArrayAssertLess.test_inf_compare_arrayc  sw    HHc3'(xxn&HIn&HIn&IJn&JKn&JK4%#r%   c                 *   [         R                  " S5      n[         R                  " S5      nU R                  X5        [        R
                  " [        5         U R                  XSS9  SSS5        [         R                  " X!R                  5      nU R                  X5        [        R
                  " [        5         U R                  XR                  [         R                  5      SS9  SSS5        g! , (       d  f       N= f! , (       d  f       g= fz)Test the behavior of the `strict` option.r>   r   Tr   N)r5   zerosr  r#   rr   rs   r.   broadcast_tor  astyper   r>  s      r"   test_strictTestArrayAssertLess.test_strictn  s    HHQKGGBK!]]>*a40 +OOAww'!]]>*a"**!5dC +*	 +* +*s   C3<.D3
D
Dr   N)rR   rS   rT   rU   r#   r  r  r  r  r,  r/  r7  rC  rO  rY  r`  rV   r   r%   r"   r  r    sG    +$0G(G$G(#$J($TMG"O	$
Dr%   r  z^ignore:.*NumPy warning suppression and assertion utilities are deprecated.*:DeprecationWarningz*checks global module & deprecated warnings)reasonc                   ,    \ rS rSrS rS rS rS rSrg)	TestWarnsiz  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yor>   warningswarnr   r%   r"   fTestWarns.test_warn.<locals>.f  s    MM$r%   ri  r>   c                     U $ r   r   )rx   s    r"   rc  %TestWarns.test_warn.<locals>.<lambda>  s    !r%   r2   .assert_warns does not preserver warnings state)	sysmodulesfiltersr   r   UserWarningr   r.   r   )r   rk  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)Nri  rg  c                  x    [        5          [        R                  " S5        S S S 5        g ! , (       d  f       g = fNrg  )r   ri  rj  r   r%   r"   no_warnings3TestWarns.test_context_manager.<locals>.no_warnings  s     #%d# &%%s   +
9ro  )
rp  rq  rr  r   rs  ri  rj  r   r.   r   )r   rt  ru  r{  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
S jn[        [        USS9S:X  d   e[        R                  " [        5       n[        [        SS9   [
        R                  " S[        5        S S S 5        S S S 5        S[        W5      ;   d   eS[        U5      ;   d   e[        R                  " [        5       n[        [        SS	9   [
        R                  " S[        5        S S S 5        S S S 5        S[        U5      ;   d   eS[        U5      ;  d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       Nd= f)Nc                 6    [         R                  " S5        X-   $ rz  rh  )r)   r*   s     r"   rk  TestWarns.test_args.<locals>.f  s    MM$5Lr%   r  r*   Arp   Br   zpytest.warns)wrong)r   r2   )r   rs  rr   rs   RuntimeErrorri  rj  rt   )r   rk  excs      r"   	test_argsTestWarns.test_args  s    	 Kb1R777]]<(Ck5c;/ 6 ) S)))S)))]]<(Ck5c;/ 6 ) S)))SX--- 65 )( 65 )(sG   DD
 D,D=;D,D=

D	D
D),
D:	6D==
E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 rz  )ri  rj  DeprecationWarningr   r%   r"   rk  ,TestWarns.test_warn_wrong_warning.<locals>.f  s    MM$ 23r%   FerrorTz#wrong warning caught by assert_warn)ri  catch_warningssimplefilterr  r   rs  r.   )r   rk  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r   N)	rR   rS   rT   rU   rv  r}  r  r  rV   r   r%   r"   rd  rd  z  s    G G.*Hr%   rd  c                   V    \ 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)TestAssertAllclosei  c                 (   SnSn[        XSS9  [        [        [         X5        Sn[        R                  " [        [
        R                  " U5      S9   [        X5        S S S 5        SnSn[        R                  " [        [
        R                  " U5      S9   [        X$5        S S S 5        S	n[        R                  " [        [
        R                  " U5      S9   [        XB5        S S S 5        [        R                  " XX/5      n[        R                  " XX/5      n[        XVSS9  [        [        [         XV5        US
-  US'   [        XV5        [        [        [         XVSS9  [        SSSS9  [        [        [         SSSS9  [        R                  " XX/5      n[        R                  " XX/5      nSn[        R                  " [        [
        R                  " U5      S9   [        Xg5        S S S 5        Sn[        R                  " [        [
        R                  " U5      S9   [        Xv5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)NgMbP?g&.>r2   atolzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 999999.rp   r   zMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-09
Max relative difference among violations: infzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-09
Max relative difference among violations: 1.g1  ?rB  )rtolr  r  g      ?zMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 0.001 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 0.001
Max relative difference among violations: infzMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 0.0 (ACTUAL), 0.001 (DESIRED)
Max absolute difference among violations: 0.001
Max relative difference among violations: 1.)	r   r   r.   rr   rs   rv   rw   r5   r6   )r   rx   ry   r|   r  r)   r*   rd   s           r"   rW  TestAssertAllclose.test_simple  s   1%noq<L ]]><1HIA! J H ]]><1HIA! JG ]]><1HIA! J HHaA\"HHaA\"1%noq<X"noq$G2C(nor13GHHaA\"HHaA\"H
 ]]><1HIA! JG
 ]]><1HIA! JIY JI JI JI. JI JIs<   H<II $I2'J<
I
I 
I/2
J 
Jc                     [         R                  " [         R                  " [         R                  5      R                  /[         R                  S9n[        X5        g )NrG   )r5   r6   iinfoint_minr   rJ   s     r"   test_min_intTestAssertAllclose.test_min_int  s4    HHbhhrww'++,BGG<r%   c                    [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        R                  " [        [
        R                  " U5      S9   [        X5        S S S 5        g ! , (       d  f       g = f)N)r2   r2   r2   r2   )r2   r2   r2   r3   zMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 1 (ACTUAL), 2 (DESIRED)
Max absolute difference among violations: 1
Max relative difference among violations: 0.5rp   r5   r6   rr   rs   r.   rv   rw   r   r   s       r"   test_report_fail_percentage.TestAssertAllclose.test_report_fail_percentage  sT    HH\"HH\"H
 ]]><1HIA! JII    A55
Bc                 D   [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        XSS9  [         R                  " [	        [         R                  [         R
                  5      /5      n[         R                  " [	        [         R                  [         R
                  5      /5      n[        XSS9  [         R                  " [	        [         R                  [         R
                  * 5      /5      n[        XSS9  g )NT	equal_nan)r5   r6   r   r   r3  r   r(   s      r"   test_equal_nan!TestAssertAllclose.test_equal_nan  s    HHbffXHHbffX-HHgbffbff-./HHgbffbff-./-HHgbffrvvg./0-r%   c                    [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        [        [
        XSS9  [         R                  " [        [         R                  [         R                  5      /5      n[         R                  " [        [         R                  [         R                  5      /5      n[        [        [
        XSS9  g )NFr  )r5   r6   r   r   r.   r   r3  r   r(   s      r"   test_not_equal_nan%TestAssertAllclose.test_not_equal_nan  s    HHbffXHHbffXnoquMHHgbffbff-./HHgbffbff-./noquMr%   c                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        X5        [	        X5        [        X5        [        X5        g r   )r5   r6   r   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Sn[        R                  " [        [
        R                  " U5      S9   [        X5        S S S 5        g ! , (       d  f       g = f)Nr   r2   r3   z-Max relative difference among violations: 0.5rp   r  r   s       r"   test_report_max_relative_error1TestAssertAllclose.test_report_max_relative_error2  sW    HHaVHHaVF]]><1HIA! JIIr  c                 J    [         R                  " / SQ/SS9n[        X5        g )N)r2   r3   r>   r  zm8[ns]rG   )r5   r6   r   rJ   s     r"   test_timedelta!TestAssertAllclose.test_timedelta:  s    HH&'x8r%   c                    [         R                  " / SQSS9n[         R                  " / SQSS9nSn[        R                  " [        [
        R                  " U5      S9   [        XSS9  S	S	S	5        g	! , (       d  f       g	= f)
zJCheck the message is formatted correctly when overflow can occur
(gh21768))r   r2   r  uint8rG   )r?   r?   r?   z+Max absolute difference among violations: 4rp   r>   r  N)r5   asarrayrr   rs   r.   rv   rw   r   rV  s       r"   test_error_message_unsigned.TestAssertAllclose.test_error_message_unsigned?  sW     JJy0JJy0D]]><1HIAq) JIIs   A22
B c                    [         R                  " S5      n[         R                  " S5      n[        X5        [        R                  " [
        5         [        XSS9  SSS5        [        X5        [        R                  " [
        5         [        XR                  [         R                  5      SS9  SSS5        g! , (       d  f       Nd= f! , (       d  f       g= fr\  )r5   r  r   rr   rs   r.   r_  r   r>  s      r"   r`  TestAssertAllclose.test_strictL  s    GGAJGGBK]]>*A. +]]>*Axx

3DA +* +* +*s   B;
(C;
C	
Cc                 \   [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        X5        [         R                  " S/5      nSn[        R
                  " [        [        R                  " U5      S9   [        X5        S S S 5        [         R                  " [         R                  * /5      nSn[        R
                  " [        [        R                  " U5      S9   [        X5        S S S 5        [         R                  " [        [         R                  S5      /5      nSn[        R
                  " [        [        R                  " U5      S9   [        X5        S S S 5        [         R                  " [        [         R                  S5      /5      n[         R                  " [        [         R                  S5      /5      n[        X5        [         R                  " [        [         R                  S5      /5      nSn[        R
                  " [        [        R                  " U5      S9   [        X5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNo= f! , (       d  f       GN= f! , (       d  f       g = f)Nr   zinf location mismatch:rp   zinf values mismatch:r   r   )
r5   r6   r   r   rr   rs   r.   rv   rw   r3  r   s       r"   	test_infsTestAssertAllclose.test_infsW  s   HHbffXHHbffXHHbTN/]]><1HIA! J HHrvvgY-]]><1HIA! JHHgbffb)*+-]]><1HIA! J HHgbffb)*+HHgbffb)*+HHgbffb)*+-]]><1HIA! JI% JI
 JI JI JIs0   I'I97JJ'
I69
J
J
J+r   N)rR   rS   rT   rU   rW  r  r  r  r  r  r  r  r  r`  r  rV   r   r%   r"   r  r    s<    7"r

"
.N	"
*	B"r%   r  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)TestArrayAlmostEqualNulpis  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 NrT  r  2   rG   r  r   	r5   linspacefloat64r_finforH   epsr	   epsnegr   nulprx   r  ry   r  s         r"   test_float64_pass*TestArrayAlmostEqualNulp.test_float64_passu  s     KKR2::6EEE1"a%L hhqww##C$##&qT2 !''"))F
T!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  r5   r  r  r  r  rH   r  r   r.   r	   r  r  s         r"   test_float64_fail*TestArrayAlmostEqualNulp.test_float64_fail      KKR2::6EEE1"a%Lhhqww##C$##n&DD	" !''"))F
T!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    rG   r   )r5   uint64r6   r   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  	r5   r  r   r  r  rH   r  r	   r  r  s         r"   test_float32_pass*TestArrayAlmostEqualNulp.test_float32_pass  s    KKR2::6EEE1"a%Lhhqww##C$##&qT2!''"))F
T!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  r5   r  r   r  r  rH   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  rG   r   )r5   uint32r6   r   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 NrT  r?   r  rG   r   )	r5   r  float16r  r  rH   r  r	   r  r  s         r"   test_float16_pass*TestArrayAlmostEqualNulp.test_float16_pass  s    KKAr4EEE1"a%Lhhqww##C$##&qT2!''"))F
T!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  )r5   r  r  r  r  rH   r  r   r.   r	   r  r  s         r"   test_float16_fail*TestArrayAlmostEqualNulp.test_float16_fail  s    KKAr4EEE1"a%Lhhqww##C$##n&DD	" !''"))F
T!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   rG   r   )r5   uint16r6   r   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 
NrT  r  r  r  rG   r  rw  r   r   r  r   r  rx   xir  ry   r  s          r"   test_complex128_pass-TestArrayAlmostEqualNulp.test_complex128_pass  s:   KKR2::6EEE1"a%LRZhhqww##C$##&rq2v:t<&rq2v:t< C$##&rq2v:t<!''"))F
T!B&&&rq2v:t<&rq2v:t<F
T!B&&&rq2v:t<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 	NrT  r  r  r  rG   r  rw  r   r  r  s          r"   test_complex128_fail-TestArrayAlmostEqualNulp.test_complex128_fail  sb   KKR2::6EEE1"a%LRZhhqww##C$##n&Da"f*d	,n&Da"f*d	, C$n&Da"f*d	, !''"))F
T!B&&n&Da"f*d	,n&Da"f*d	,F
T!!n&Da"f*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_pass(  s8   KKR2::6EEE1"a%LRZhhqww##C$##&rq2v:t<&rq2v:t<C$##&rq2v:t<!''"))F
T!B&&&rq2v:t<&rq2v:t<F
T!B&&&rq2v:t<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_fail=  s`   KKR2::6EEE1"a%LRZhhqww##C$##n&Da"f*d	,n&Da"f*d	,C$n&Da"f*d	, !''"))F
T!B&&n&Da"f*d	,n&Da"f*d	,F
T!!n&Da"f*d	,r%   r   N)rR   rS   rT   rU   r  r  r  r  r  r  r  r  r   r  r
  r  r  rV   r   r%   r"   r  r  s  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)	TestULPiY  c                 V    [         R                  R                  S5      n[        XSS9  g )Nr  r   maxulp)r5   randomrandnr   )r   rx   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 )Nr  {Gz?r  r  )	r5   r  r_  r   r  r  r  r  r   r   rx   r  s      r"   test_singleTestULP.test_single_  so    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&QC3r%   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 )Nr  r     r  )	r5   r  r_  r  r  r  r  r  r   r  s      r"   test_doubleTestULP.test_doublef  so    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&QC4r%   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  )	r5   r   r  r6   r   r_  r  maxr   )r   dtr   bigs       r"   rt  TestULP.test_infm  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                  " S/5      R                  U5      m[         R                  " S/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   mBr   g       c                     > [        TT TS9$ Nr  r   )r   r  r   s   r"   rc  "TestULP.test_nan.<locals>.<lambda>      "6sC>D#Fr%   c                     > [        TT TS9$ r+  r,  )r'  r  r   s   r"   rc  r-    r.  r%   c                     > [        TTT S9$ r+  r,  )r  r   tinys   r"   rc  r-        "6sD>D#Fr%   c                     > [        TTT S9$ r+  r,  )r  r   zeros   r"   rc  r-    r2  r%   c                     > [        TTT S9$ r+  r,  )r  r   nzeros   r"   rc  r-    s    "6sE>D#Fr%   )r5   r   r  r6   r   r_  r   r  r%  r1  r   r.   )	r   r&  r'  r   r  r   r6  r1  r4  s	     @@@@@@@r"   rl  TestULP.test_nans  s>   ::rzz*BRZZ((BFF8$++B/C((BFF8$++B/C((BHHRL,,-.C88RXXb\../0D88SE?))"-DHHdV$++B/E.FG .FG .FG .FG .FG/ +r%   r   N)
rR   rS   rT   rU   r  r  r"  rt  rl  rV   r   r%   r"   r  r  Y  s    -457G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      $ )Nre   r;  r   r   r%   r"   rc  -TestStringEqual.test_simple.<locals>.<lambda>  s    1%Ar%   )r   rr   rs   r.   rt   ru   r   r   )r   rz   r{   s      r"   rW  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=  r   r%   r"   rc  ,TestStringEqual.test_regex.<locals>.<lambda>  s    1%?r%   )r   r   r.   rO   s    r"   
test_regexTestStringEqual.test_regex  s    FF+n?	Ar%   r   N)rR   rS   rT   rU   rW  rD  rV   r   r%   r"   r9  r9    s    
CAr%   r9  c                      U R                   n[        U5      nSU;   a  US-  n[        X15        g ! [         a    0 n N0f = f)Nversionr2   )__warningregistry__AttributeErrorlenr   )modn_in_context	mod_warns	num_warnss       r"   assert_warn_len_equalrO    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  r   N)rR   rS   rT   rU   rV   r   r%   r"   rK  rR    s    r%   rK  r   )rK  rL  c                       \ rS rSrS rSrg)rR  i  c                     SSS.U l         g )Nr2   r3   warning1warning2rH  rO   s    r"   __init__8test_warn_len_equal_call_scenarios.<locals>.mod.__init__  s    4545(7D$r%   rX  N)rR   rS   rT   rU   rY  rV   r   r%   r"   rK  rR    s    	7r%   r3   )rO  )rK  mod_insts     r"   "test_warn_len_equal_call_scenariosr\    sB      uHh'(*
7 7
 uHh'(*r%   c                      [         R                  [           n  U R                  R	                  5         U $ ! [
         a     U $ f = fr   )rp  rq  rR   rH  clearrI  my_mods    r"   _get_fresh_modra    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)
NrH  )rq  ignoreSome warningr   r2   r3   rU  zAnother warning)	ra  r   getattrr   ri  r  rj  rH  rO  r_  s    r"   test_clear_and_catch_warningsrf    s0    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)NrH  c                  <    S n [         R                  " U SS/5        g )Nc                 0    [         R                  " SSS9  U $ )NzSome warning 2r3   
stacklevelrh  arrs    r"   rj  Ftest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warn  s    MM*q9Jr%   r   r5   apply_along_axisrj  s    r"   warn_other_module8test_suppress_warnings_module.<locals>.warn_other_module      	 	D!aS)r%   r   modulerd  r2   rc  )ra  r   re  rO  r   recordrs  filterr5   lib_shape_base_implri  rj  rJ  logmessager    r  )r`  rr  sups      r"   test_suppress_warnings_moduler~    sl    F!6;R@* &!$		

; 	

"&&11
2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)NrH  rd  r   ru  rc  )
ra  r   re  r   rx  rs  ri  rj  rO  r  )r`  r}  s     r"   test_suppress_warnings_typer  7  s    F!6;R@ 
	

;n% 
 &!$

CJJ{	n% 
&!$JJfJ	n% 
&!$ 
	h'n% 
 &!$' 
	 

 

 
	s/   ,E E	E">-E3 
E
E"
E03
Fz8uses deprecated thread-unsafe warnings control utilitiesc                  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 )Nrd  rh  )categorys    r"   rj  7test_suppress_warnings_decorate_no_record.<locals>.warna  s    nh/r%   T)rw  alwaysr2   )	r   rx  rs  ri  r  r  RuntimeWarningr   rJ  )r}  rj  ws      r"   )test_suppress_warnings_decorate_no_recordr  W  st     
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)r|  rd  Some other warningr3   r2   r   )
r   rw  rx  ri  rj  r   rJ  r{  r|  r    )r}  log1log2sup2s       r"   test_suppress_warnings_recordr  l  s    
C::<D	zz"8z9

>
*n%*+,-S\1%SY"SY"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 $ )Nrd  r3   rj  rh  rl  s    r"   rj  Jtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warn  s    MM.Q7Jr%   r   ro  rq  s    r"   rr  <test_suppress_warnings_forwarding.<locals>.warn_other_module  rt  r%   r  r3   rd  r>   locationrv  oncer  )r   rw  rangeri  rj  r   rJ  r{  )rr  r}  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% 
	9 )( 
	 +* 
	 )( 
	 '& 
	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 [        e! , (       d  f       NW= f! , (       d  f       N`= f! , (       d  f       O= f! [         a    Sn Of = f[        U5        [        [        R                  R                  U 5      (       + 5        g )Ntmpr  FT)r   ospathjoinopenr   isdir
ValueError)tdirfpathraiseds      r"   test_tempdirr    s    	dT5)%  
 d##$FY$  
 Y FOd##$sK   -BBB:
B> B-
B	B
B*-
B;7B> ;B> >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 [        e! , (       d  f       NW= f! , (       d  f       N`= f! , (       d  f       O= f! [         a    Sn Of = f[        U5        [        [        R                  R                  U 5      (       + 5        g )Nr  FT)r   r  r   r  r  isfiler  )r  r  s     r"   test_temppathr    s    	u%  
 u%%&FZ5  
 Z FOu%%&sK   A<A+A<
B $B+
A9	5A<<
B

BB B B-,B-c                   4    \ rS rSr\R
                  \    4rSrg)my_cacwi  r   N)rR   rS   rT   rU   rp  rq  class_modulesrV   r   r%   r"   r  r    s    [[*,Mr%   r  c                      [        5       n [        5          [        R                  " S5        [        R                  " S5        S S S 5        [        U R                  0 5        g ! , (       d  f       N%= f)Nrc  rd  )ra  r  ri  r  rj  r   rH  r_  s    r"   %test_clear_and_catch_warnings_inheritr    sJ     F	h'n% 
 ++R0 
s   -A!!
A/zPython lacks refcountsz!garbage collector is global statec                   \    \ 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   appendr  s    r"   no_cycle2TestAssertNoGcCycles.test_passes.<locals>.no_cycle
  s    AHHRLHr%   )r   )r   r  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   r  )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>.ReferenceCycleInDeli)  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   cyclerO   s    r"   rY  ETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__0  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__3  s     !
&11 () 2r%   r  N)	rR   rS   rT   rU   __doc__r  rY  r  rV   )r  s   r"   r  r  )  s     J"* *r%   r  c                      g r   r   r   r%   r"   rc  1TestAssertNoGcCycles.test_fails.<locals>.<lambda>A  s    r%   Nz*GC does not call __del__ on cyclic objectsF)	weakrefrefr   r  r   r.   rr   skipr  )r   r  r  s     @r"   
test_failsTestAssertNoGcCycles.test_fails"  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!r   N)rR   rS   rT   rU   r  r  r  rr   markslowr  rV   r   r%   r"   r  r    s/     %	&, [[(3 (3r%   r  )Br   r  rv   rp  ri  r  rr   numpyr5   numpy._core._multiarray_umath_core_multiarray_umathr7  numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rX   r   r  rG  r  r  r  r  filterwarningsthread_unsaferd  r  r  r  r9  rO  r\  ra  rf  r~  r  r  r  r  r  r  r  r  skipifr  r   r%   r"   <module>r     sf    	 	 
     + +     2./ ./bC1\ C1L* *Z\) \)~U < U pg l g T(M (MVcD cDJ  "NOEH EH PEHPk" k"Zc, c,L5G 5GpA A(*.*8	 "NO% P%@  "NO+% P+%\  "NO% P%8  E      E  &&&&R  E  0&0&f%"' -& -
 "NO1 P1 $-EF"EFE3 E3 G GE3r%   