
    Kh8                       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* " S S5      r+ " S S5      r, " S S5      r- " S S5      r. " S S5      r/S r0S r1S r2S  r3S! r4S" r5S# r6S$ r7S% r8S& r9S' r: " S( S)\5      r;S* r<\Rz                  R}                  \"(       + S+S,9 " S- S.5      5       r?\Rz                  R                  S/\\/5      S0 5       rAg)1    N)assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_array_lessbuild_err_msgassert_raisesassert_warnsassert_no_warningsassert_allcloseassert_approx_equalassert_array_almost_equal_nulpassert_array_max_ulpclear_and_catch_warningssuppress_warningsassert_string_equalassert_tempdirtemppathassert_no_gc_cyclesHAS_REFCOUNTc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)_GenericTest   c                 &    U R                  X5        g N_assert_funcselfabs      P/var/www/html/env/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py_test_equal_GenericTest._test_equal   s    !    c                 x    [        [        5         U R                  X5        S S S 5        g ! , (       d  f       g = fr   )r	   AssertionErrorr   r   s      r#   _test_not_equal_GenericTest._test_not_equal   s$    >*a# +**s   +
9c                     [         R                  " SS/5      n[         R                  " SS/5      nU R                  X5        g)z/Test two equal array of rank 1 are found equal.      Nnparrayr$   r   s      r#   test_array_rank1_eq _GenericTest.test_array_rank1_eq   s4    HHaVHHaVr&   c                     [         R                  " SS/5      n[         R                  " SS/5      nU R                  X5        g)z7Test two different array of rank 1 are found not equal.r,   r-   Nr/   r0   r)   r   s      r#   test_array_rank1_noteq#_GenericTest.test_array_rank1_noteq%   s4    HHaVHHaVQ"r&   c                     [         R                  " SS/SS//5      n[         R                  " SS/SS//5      nU R                  X5        g)z/Test two equal array of rank 2 are found equal.r,   r-         Nr.   r   s      r#   test_array_rank2_eq _GenericTest.test_array_rank2_eq,   sF    HHq!fq!f%&HHq!fq!f%&r&   c                     [         R                  " SS/5      n[         R                  " SS/SS//5      nU R                  X5        g):Test two arrays with different shapes are found not equal.r,   r-   Nr4   r   s      r#   test_array_diffshape!_GenericTest.test_array_diffshape3   s=    HHaVHHq!fq!f%&Q"r&   c                 ^    [         R                  " SS/[        S9nU R                  US5        g)zTest object arrays.r,   dtypeN)r/   r0   objectr$   r    r!   s     r#   test_objarray_GenericTest.test_objarray:   s&    HHaV6*Ar&   c                 ,    U R                  / SQS5        g )Nr,   r-   r8   )r$   r    s    r#   test_array_likes_GenericTest.test_array_likes?   s    I.r&    N)__name__
__module____qualname____firstlineno__r$   r)   r1   r5   r:   r>   rE   rJ   __static_attributes__rL   r&   r#   r   r      s*     $##
/r&   r   c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TestArrayEqualC   c                     [         U l        g r   )r   r   rI   s    r#   setup_methodTestArrayEqual.setup_methodE   s
    .r&   c                 V   ^  U 4S jnS H  nU" U5        M     S H  nU" U5        M     g)z!Test rank 1 array for all dtypes.c                    > [         R                  " SU 5      nUR                  S5        UR                  5       nUR                  5       nUR                  S5        TR	                  X5        TR                  X25        g )Nr-   r,   r   r/   emptyfillcopyr$   r)   tr!   r"   cr    s       r#   foo.TestArrayEqual.test_generic_rank1.<locals>.fooJ   sZ    AAFF1IAAFF1IQ"  &r&   ?bhilqpBHILQPfdgFDGS1U1NrL   r    ra   r_   s   `  r#   test_generic_rank1!TestArrayEqual.test_generic_rank1H   .    	' '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)r/   r0   pytestraisesr(   r   strvaluer   reescape)r    xyexc_infomsgexpected_msgs         r#   test_0_ndim_array TestArrayEqual.test_0_ndim_array[   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)r9   r-   r8   r,   r   rZ   r^   s       r#   ra   .TestArrayEqual.test_generic_rank3.<locals>.foov   s[    A&AFF1IAAFF1IQ"  &r&   rc   rd   NrL   rg   s   `  r#   test_generic_rank3!TestArrayEqual.test_generic_rank3t   rj   r&   c                    [         R                  " SS[         R                  /5      n[         R                  " SS[         R                  /5      nU R                  X5        [         R                  " / SQ5      nU R	                  X25        g)z$Test arrays with nan values in them.r,   r-   rH   N)r/   r0   nanr$   r)   r    r!   r"   r`   s       r#   test_nan_arrayTestArrayEqual.test_nan_array   s\    HHaBFF^$HHaBFF^$HHYQ"r&   c                     [         R                  " SS/5      n[         R                  " SS/5      nU R                  X5        [         R                  " SS/5      nU R                  X25        g)r=   floupifloupafloupipiN)r/   r0   r$   r)   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.r-   r   r   r,   r   N)	r/   r[   floatr]   r$   rn   ro   	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   )r/   maMaskedArrayr0   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                 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   )boolr/   equalallr    others     r#   __eq__FTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__   s    BHHT155788r&   c                     X:X  + $ r   rL   r   s     r#   __ne__FTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__   s    ((r&   rL   N)rM   rN   rO   rP   r   r   rQ   rL   r&   r#   MyArrayr      s    9)r&   r         ?       @r   z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5rl           g333333@z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 2.
Max relative difference among violations: inf)r/   ndarrayr0   viewr   typer   r$   r)   rn   ro   r(   rr   rs   )r    r   r!   r"   rx   r`   s         r#   test_subclass_that_overrides_eq.TestArrayEqual.test_subclass_that_overrides_eq   s:   
	)bjj 	) HHb"X##G,HHb"X##G,QVd#Q"Q"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>.MyArray   c                     [         $ r   )NotImplementedr    argskwargss      r#   __array_function__^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__   s    %%r&   rL   N)rM   rN   rO   rP   r   rQ   rL   r&   r#   r   r      s    &r&   r   r   r   r   )	r/   r   r0   r   r	   r   r   r$   r)   )r    r   r!   r"   s       r#   +test_subclass_that_does_not_implement_npall:TestArrayEqual.test_subclass_that_does_not_implement_npall   s    	&bjj 	& HHb"X##G,HHb"X##G,9%FF1I &Q"Q"	 &%s   7C


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

--HHY

3HH]BJJ79 * +*)) +*s#   B=A+B,B=,
B:	6B==
Cc                 Z    [         R                  " / SQ5      nSnU R                  X5        g)z@Test comparing an array with a scalar when all values are equal.r   r   r   r   Nr.   r   s      r#   test_array_vs_scalar_is_equal,TestArrayEqual.test_array_vs_scalar_is_equal   s#    HH\"r&   c                    [         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   zMismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 563766
Max relative difference among violations: infrl   N)r   r   g̜Ar   zMismatched elements: 2 / 4 (50%)
Max absolute difference among violations: 563766.
Max relative difference among violations: 4.54902139e-07r/   r0   rn   ro   r(   rr   rs   r   r    r!   r"   rx   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r/   r0   rn   ro   r(   r   r   s      r#   test_array_vs_scalar_strict*TestArrayEqual.test_array_vs_scalar_strict
  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)r/   r0   r   r   s      r#   test_array_vs_array_strict)TestArrayEqual.test_array_vs_array_strict  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   )r,   r,   r,   r   Tr   Nr   r   s      r#    test_array_vs_float_array_strict/TestArrayEqual.test_array_vs_float_array_strict  sI    HHYHH\"]]>*a40 +**s   A%%
A3r   N)rM   rN   rO   rP   rV   rh   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   rQ   rL   r&   r#   rS   rS   C   sS    /& 2&#	#'"	 #D#9$(1-1r&   rS   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])r/   r0   r   r   r    rt   ru   err_msgr!   r"   s         r#   test_build_err_msg_defaults1TestBuildErrorMessage.test_build_err_msg_defaults$  sD    HH01HH01'1&'*" 	Qr&   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X/USS9nSn[        XE5        g )Nr   r   r   F)verbosez)
Items are not equal: There is a mismatchr   r   s         r#   test_build_err_msg_no_verbose3TestBuildErrorMessage.test_build_err_msg_no_verbose/  sB    HH01HH01'1&'598Qr&   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X/USS9nSn[        XE5        g )Nr   r   r   )FOOBAR)namesz{
Items are not equal: There is a mismatch
 FOO: array([1.00001, 2.00002, 3.00003])
 BAR: array([1.00002, 2.00003, 3.00004])r   r   s         r#   test_build_err_msg_custom_names5TestBuildErrorMessage.test_build_err_msg_custom_names8  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_precisionC  sF    HH45HH45'1&'R87 	Qr&   rL   N)	rM   rN   rO   rP   r   r   r   r   rQ   rL   r&   r#   r   r   "  s    			r&   r   c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)	TestEqualiO  c                     [         U l        g r   )r   r   rI   s    r#   rV   TestEqual.setup_methodQ  s
    (r&   c                 ^   U R                  [        R                  [        R                  5        U R                  [        R                  /[        R                  /5        U R                  [        R                  [        R                  /5        U R                  [        R                  S5        g Nr,   )r   r/   r   r)   rI   s    r#   test_nan_itemsTestEqual.test_nan_itemsT  sd    "&&"&&)266(RVVH-RVVbffX.RVVQ'r&   c                    U R                  [        R                  [        R                  5        U R                  [        R                  /[        R                  /5        U R                  [        R                  [        R                  /5        g r   )r   r/   r   r)   rI   s    r#   test_inf_itemsTestEqual.test_inf_itemsZ  sP    "&&"&&)266(RVVH-RVVbffX.r&   c                    U R                  [        R                  " SS5      [        R                  " SS5      5        U R                  [        R                  " SS5      [        R                  " SS5      5        U R                  [        R                  " SS5      [        R                  " SS5      5        U R                  [        R                  " SS5      [        R                  " SS5      5        g )N
2017-01-01smz
2017-01-02)r$   r/   
datetime64r)   rI   s    r#   test_datetimeTestEqual.test_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  {   )r/   r  timedelta64	itertoolsproductr   r)   )r    nadt_no_unitnadt_snadt_dnatd_no_unitnatd_snatd_ddtstdsr!   r"   s              r#   test_nat_itemsTestEqual.test_nat_itemss  s   }}U+uc*ud+~~e,s+t,V,V,%%c/DAa#qcA3'  !a( 0
 %%c/DAa#qcA3'  !a( 0
 %%c/DA  &  C(  !qc*  !bmmL#&FG  !bmmL#&FG  !bnnS#&>?  !bnnS#&>? 0r&   c                 L    U R                  SS5        U R                  SS5        g )Nababb)r   r)   rI   s    r#   test_non_numericTestEqual.test_non_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 Nr,   r-   )r   complexr/   r   r)   r   rI   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NZEROrI   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 r*  r/   r0   r+  r   r   r)   r    rt   ru   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  r,   r-   )datetimer/   r0   r)   )r    r;  r!   s      r#   test_objectTestEqual.test_object  sQ    HHh''a3''a35 6Q$B$(r&   r   N)rM   rN   rO   rP   rV   r  r
  r  r"  r'  r,  r2  r7  r<  rQ   rL   r&   r#   r  r  O  s6    )(/

(@>*J3#)r&   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestArrayAlmostEquali  c                     [         U l        g r   )r   r   rI   s    r#   rV   !TestArrayAlmostEqual.setup_method  s
    5r&   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: infrl         ?r   r   decimal?ge(?giUMu>gB??zMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: inf   z~Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: 1.rn   ro   r(   rr   rs   r   )r    rx   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@r8   rD  r9   zMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-04
Max relative difference among violations: 8.10226812e-08rl      r/   r0   r   rn   ro   r(   rr   rs   r    rt   ru   rx   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   rR  zMismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 1.rl   	   rD  zMismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 5.4722099r   zMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: infrG  r   rH  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 )Nr,   c                  (   > TR                  T T5      $ r   r   ananaoner    s   r#   <lambda>/TestArrayAlmostEqual.test_nan.<locals>.<lambda>      d//d;r&   c                  (   > TR                  TT 5      $ r   r   ainfrY  r    s   r#   r[  r\    r]  r&   c                  (   > TR                  T T5      $ r   r   r_  s   r#   r[  r\    r]  r&   r/   r0   r   r   r   r	   r(   r    r`  rY  rZ  s   `@@@r#   test_nanTestArrayAlmostEqual.test_nan  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#   r[  /TestArrayAlmostEqual.test_inf.<locals>.<lambda>      d//15r&   c                  (   > TR                  T T5      $ r   r   rh  s   r#   r[  ri    rj  r&   )r/   r0   r]   r   r	   r(   r   s   `@@r#   test_infTestArrayAlmostEqual.test_inf  s_    HHr2hR)*FFH&&$n5	766'$n5	7r&   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   )r/   r0   r   masked_arrayr   r   r$   maskedr   s      r#   test_subclass"TestArrayAlmostEqual.test_subclass  s~   HHr2hR)*EER2r(3!&u>@!!! EEc-HH]#EELLHH]#EEm2DEHH\"EEm2DEHHRLr&   c                     " S S[         R                  5      n[         R                  " SS/5      R                  U5      nU R	                  X"5        [         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   r/   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   rx  __lt__r   r/   r   ry  s     r#   r  <TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__lt__A  r|  r&   c                     [        U 5      $ r   r   r   s      r#   r   9TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.allD  s    4y r&   rL   	rM   rN   rO   rP   r   r  r   rQ   __classcell__rz  s   @r#   r   ru  =  s    >>! !r&   r   r   r   T   zMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 200.
Max relative difference among violations: 0.99009rl   )r/   r   r0   r   r   r   rn   ro   r(   rr   rs   )r    r   r!   zr"   rx   s         r#   test_subclass_2$TestArrayAlmostEqual.test_subclass_28  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>.MyArrayiX  c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   rw  ry  s     r#   r   NTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__Y  r|  r&   c                 \   > [         TU ]  U5      R                  [        R                  5      $ r   r~  ry  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&   rL   r  r  s   @r#   r   r  X      >>* *r&   r   r   r   r/   r   r0   r   r   r    r   r!   s      r#   !test_subclass_that_cannot_be_bool6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolS  ?    
	*bjj 	* HHb"X##G,!r&   r   N)rM   rN   rO   rP   rV   rI  rO  rT  rd  rl  rq  r  r  rQ   rL   r&   r#   r?  r?    s1    6#/J//B
=74$6 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)TestAlmostEqualif  c                     [         U l        g r   )r   r   rI   s    r#   rV   TestAlmostEqual.setup_methodh  
    /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 )NrF  r   r   rD  c                  &   > T R                  SSSS9$ NrC  r   r   rD  r   rI   s   r#   r[  0TestAlmostEqual.test_closeness.<locals>.<lambda>u  s    d//S!/Dr&   c                  *   > T R                  S/S/SS9$ r  r   rI   s   r#   r[  r  z  s    d//ua/Hr&   r   r	   r(   rI   s   `r#   rI  TestAlmostEqual.test_closenessk  sQ     	(C3nD	F 	8*seQ7nH	Jr&   c                    ^  T R                  [        R                  [        R                  5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        g )Nc                  D   > T R                  [        R                  S5      $ r  )r   r/   r   rI   s   r#   r[  /TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//:r&   c                  `   > T R                  [        R                  [        R                  5      $ r   )r   r/   r   r   rI   s   r#   r[  r        d//?r&   c                  `   > T R                  [        R                  [        R                  5      $ r   )r   r/   r   r   rI   s   r#   r[  r    r  r&   )r   r/   r   r	   r(   rI   s   `r#   test_nan_itemTestAlmostEqual.test_nan_item|  sD    "&&"&&)n:	<n?	An?	Ar&   c                   ^  T R                  [        R                  [        R                  5        T R                  [        R                  * [        R                  * 5        [        [        U 4S j5        [        [        U 4S j5        g )Nc                  D   > T R                  [        R                  S5      $ r  r   r/   r   rI   s   r#   r[  /TestAlmostEqual.test_inf_item.<locals>.<lambda>  r  r&   c                  b   > T R                  [        R                  * [        R                  5      $ r   r  rI   s   r#   r[  r    s    d//@r&   )r   r/   r   r	   r(   rI   s   `r#   test_inf_itemTestAlmostEqual.test_inf_item  sR    "&&"&&)266'BFF7+n:	<n@	Br&   c                 (    U R                  SS5        g r*  )r)   rI   s    r#   test_simple_item TestAlmostEqual.test_simple_item  s    Q"r&   c                    U R                  [        SS5      [        SS5      5        U R                  [        S[        R                  5      [        S[        R                  5      5        U R                  [        [        R                  [        R                  5      [        [        R                  [        R                  5      5        U R                  [        S[        R                  5      [        SS5      5        U R                  [        [        R                  S5      [        S[        R                  5      5        U R                  [        [        R                  [        R                  5      [        [        R                  S5      5        g r*  )r   r+  r/   r   r   r)   rI   s    r#   r,  !TestAlmostEqual.test_complex_item  s    '!Q-A7'!RVV,ga.@A'"&&"&&172662663JKWQ/A?WRVVQ/BFF1CDWRVVRVV4gbffa6HIr&   c                    [         R                  " [        SS5      [        S[         R                  5      /5      n[         R                  " [        SS5      [        [         R                  S5      /5      n[         R                  " [        SS5      [        SS5      /5      nU R	                  X5        U R                  X5        U R                  X5        g r*  r5  )r    rt   r  ru   s       r#   r7  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%)
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      ])rl      rD  NzMismatched elements: 1 / 3 (33.3%)
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   r,   zMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.
 ACTUAL: array([inf,  0.])
 DESIRED: array([inf,  1.])r-   z{Mismatched elements: 2 / 2 (100%)
Max absolute difference among violations: 2
Max relative difference among violations: inf)	r/   r0   rn   ro   r(   rr   rs   r   r   rN  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IA 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 r-      z}Mismatched elements: 20 / 20 (100%)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.rl   Nz~Mismatched elements: 20 / 20 (100%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5)r/   onesrn   ro   r(   rr   rs   r   rN  s       r#   test_error_message_2$TestAlmostEqual.test_error_message_2  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   rw  ry  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~  ry  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.all  r  r&   rL   r  r  s   @r#   r   r    r  r&   r   r   r   r  r  s      r#   r  1TestAlmostEqual.test_subclass_that_cannot_be_bool  r  r&   r   N)rM   rN   rO   rP   rV   rI  r  r  r  r,  r7  r  r  r  rQ   rL   r&   r#   r  r  f  s9    0J"AB#J#1$f$& r&   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestApproxEquali  c                     [         U l        g r   )r   r   rI   s    r#   rV   TestApproxEqual.setup_method  r  r&   c                    ^ ^^ [         R                  " S5      m[         R                  " S5      mT R                  TTSS9  T R                  TTSS9  [        [        U UU4S j5        g )N{GH@RH@rL  significant   c                  &   > T R                  TTSS9$ NrG  r  r   r6  s   r#   r[  7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>      d//1!/Dr&   )r/   r0   r   r	   r(   r6  s   `@@r#   test_simple_0d_arrays%TestApproxEqual.test_simple_0d_arrays  sW    HHWHHW!QA.!QA.nD	Fr&   c                    ^ ^^ SmSmT R                  TTSS9  T R                  TTSS9  T R                  TTSS9  [        [        U UU4S j5        g )Nr  r  r9   r  rL  r  c                  &   > T R                  TTSS9$ r  r   r6  s   r#   r[  3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r&   r  r6  s   `@@r#   test_simple_items!TestApproxEqual.test_simple_items  sZ    !QA.!QA.!QA.nD	Fr&   c                 p  ^ ^^^ [         R                  " [         R                  5      m[         R                  " S5      m[         R                  " [         R                  5      mT R	                  TT5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   rX  s   r#   r[  0TestApproxEqual.test_nan_array.<locals>.<lambda>      d.?.?d.Kr&   c                  (   > TR                  TT 5      $ r   r   r_  s   r#   r[  r    r  r&   c                  (   > TR                  T T5      $ r   r   r_  s   r#   r[  r    r  r&   rb  rc  s   `@@@r#   r   TestApproxEqual.test_nan_array  e    xxxx{xx$%n&KLn&KLn&KLr&   c                 p  ^ ^^^ [         R                  " [         R                  5      m[         R                  " S5      m[         R                  " [         R                  5      mT R	                  TT5        [        [        UUU 4S j5        [        [        UUU 4S j5        [        [        UUU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   rX  s   r#   r[  0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r&   c                  (   > TR                  TT 5      $ r   r   r_  s   r#   r[  r     r  r&   c                  (   > TR                  T T5      $ r   r   r_  s   r#   r[  r  !  r  r&   rb  rc  s   `@@@r#   r  TestApproxEqual.test_nan_items  r  r&   r   N)
rM   rN   rO   rP   rV   r  r  r   r  rQ   rL   r&   r#   r  r    s    0FFMMr&   r  c                   \    \ 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 l        g r   )r   r   rI   s    r#   rV    TestArrayAssertLess.setup_method&  s
    -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   r6  s   r#   r[  8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>.      d.?.?1.Er&   r   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  r  2  r   r&   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  r  3  r   r&   )r,   r8   r  r  )r-   r9   r     z{Mismatched elements: 2 / 4 (50%)
Max absolute difference among violations: 12
Max relative difference among violations: 1.5rl   )	r/   r0   r   r	   r(   rn   ro   rr   rs   )r    r!   r"   rx   rt   ru   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      @zMismatched elements: 4 / 4 (100%)
Max absolute difference among violations: 0.1
Max relative difference among violations: 0.09090909rl   r   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  0TestArrayAssertLess.test_rank2.<locals>.<lambda>J  r   r&   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  r	  K  r   r&   )	r/   r0   r   rn   ro   r(   rr   rs   r	   r    rx   rt   ru   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)r-   r-   r-   )shaper,   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  0TestArrayAssertLess.test_rank3.<locals>.<lambda>R  r   r&   r   )r   r   r   z}Mismatched elements: 1 / 8 (12.5%)
Max absolute difference among violations: 1.
Max relative difference among violations: infrl   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  r  [  r   r&   )	r/   r  r   r	   r(   rn   ro   rr   rs   r  s   ` @@r#   
test_rank3TestArrayAssertLess.test_rank3M  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.rl   r  c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  7TestArrayAssertLess.test_simple_items.<locals>.<lambda>k  r   r&   r   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  r  o  r   r&   )	r   rn   ro   r(   rr   rs   r/   r0   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  z}Mismatched elements: 1 / 12 (8.33%)
Max absolute difference among violations: 0.
Max relative difference among violations: 0.rl   zMismatched elements: 12 / 12 (100%)
Max absolute difference among violations: 999087.0864
Max relative difference among violations: 289288.5934676rM  rN  s       r#   test_simple_items_and_array/TestArrayAssertLess.test_simple_items_and_arrayq  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%)
Max absolute difference among violations: 458802.
Max relative difference among violations: 5.23423917rl   zMismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 87654.
Max relative difference among violations: 5670.5626011r   zMismatched elements: 3 / 3 (100%)
Max absolute difference among violations: 546456.
Max relative difference among violations: infz}Mismatched elements: 1 / 3 (33.3%)
Max absolute difference among violations: 0.
Max relative difference among violations: infr   rN  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 )Nr,   c                  (   > TR                  TT 5      $ r   r   rX  s   r#   r[  9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>  r  r&   c                  (   > TR                  T T5      $ r   r   rX  s   r#   r[  r'    r  r&   c                  (   > TR                  TT 5      $ r   r   r_  s   r#   r[  r'    r  r&   c                  (   > TR                  T T5      $ r   r   r_  s   r#   r[  r'    r  r&   rb  rc  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   rY  r    rt   s   r#   r[  ?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>      d.?.?4.Hr&   c                  (   > TR                  T T5      $ r   r   r/  s   r#   r[  r0        d.?.?a.Hr&   r  r  c                  (   > TR                  TT 5      $ r   r   r/  s   r#   r[  r0    r1  r&   c                  (   > TR                  T T5      $ r   r   r/  s   r#   r[  r0    r3  r&   r   r   c                  (   > T R                  TT5      $ r   r   r6  s   r#   r[  r0    r   r&   )r/   r0   r   r	   r(   r   )r    rY  rt   ru   s   `@@@r#   test_nan_noncompare_array-TestArrayAssertLess.test_nan_noncompare_array  s    HH_%xxn&HIn&HIHHc3'(n&HIn&HIHHc3'(!Qn&EFr&   c                   ^ ^^ [         R                  " S5      m[         R                  " [         R                  5      mT R                  TT5        T R                  T* T5        T R                  T* T5        [	        [
        UUU 4S j5        [	        [
        UUU 4S j5        [	        [
        UU 4S j5        [	        [
        UU 4S j5        [	        [
        UU 4S j5        g )Nr,   c                  (   > TR                  T T5      $ r   r   r`  rZ  r    s   r#   r[  6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>  r  r&   c                  *   > TR                  TT * 5      $ r   r   r;  s   r#   r[  r<        d.?.?te.Lr&   c                  (   > TR                  T T 5      $ r   r   r`  r    s   r#   r[  r<    r  r&   c                  *   > TR                  T T * 5      $ r   r   r@  s   r#   r[  r<    r>  r&   c                  ,   > TR                  T * T * 5      $ r   r   r@  s   r#   r[  r<    s    d.?.?u.Mr&   )r/   r0   r   r   r	   r(   )r    r`  rZ  s   `@@r#   test_inf_compare$TestArrayAssertLess.test_inf_compare  s    xx{xx$%4%&4%&n&KLn&LMn&KLn&LMn&MNr&   c                   ^ ^^ [         R                  " SS[         R                  /5      m[         R                  " [         R                  5      m[        [        UU U4S j5        [        [        UU U4S j5        [        [        UU U4S j5        [        [        UU U4S j5        [        [        UU U4S j5        T R                  T* T5        g )Nr  r  c                  (   > TR                  TT 5      $ r   r   r`  r    rt   s   r#   r[  <TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  r1  r&   c                  (   > TR                  T T5      $ r   r   rG  s   r#   r[  rH    r3  r&   c                  *   > TR                  TT * 5      $ r   r   rG  s   r#   r[  rH    s    d.?.?D5.Ir&   c                  ,   > TR                  T* T * 5      $ r   r   rG  s   r#   r[  rH    s    d.?.?TE.Jr&   c                  ,   > TR                  T * T* 5      $ r   r   rG  s   r#   r[  rH    s    d.?.?r.Jr&   )r/   r0   r   r	   r(   r   )r    r`  rt   s   `@@r#   test_inf_compare_array*TestArrayAssertLess.test_inf_compare_array  sw    HHc3'(xxn&HIn&HIn&IJn&JKn&JK4%#r&   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.r8   rL   Tr   N)r/   zerosr  r   rn   ro   r(   broadcast_tor  astyper   r6  s      r#   test_strictTestArrayAssertLess.test_strict  s    HHQKGGBK!]]>*a40 +OOAww'!]]>*a"**!5dC +*	 +* +*s   C3<.D3
D
Dr   N)rM   rN   rO   rP   rV   r  r  r  r  r   r#  r+  r7  rC  rM  rT  rQ   rL   r&   r#   r  r  $  sE    .$*GG G($:$>MG"O	$
Dr&   r  c                   ,    \ rS rSrS rS rS rS rSrg)	TestWarnsi  c                 (   S n[         R                  S   R                  S S  n[        [	        [
        U5      S5        [         R                  S   R                  n[        [        [        U5        [        [        S S5      S5        [        X#S5        g )Nc                  0    [         R                  " S5        g)Nyor8   warningswarnrL   r&   r#   fTestWarns.test_warn.<locals>.f  s    MM$r&   r\  r8   c                     U $ r   rL   rt   s    r#   r[  %TestWarns.test_warn.<locals>.<lambda>  s    !r&   r,   .assert_warns does not preserver warnings state)	sysmodulesfiltersr   r
   UserWarningr	   r(   r   )r    r^  before_filtersafter_filterss       r#   	test_warnTestWarns.test_warn  sv    	 Z088;\+q115J/77n&8!<'Q7; 	^E	Gr&   c                 :   [         R                  S   R                  S S  n[        [        5         [
        R                  " S5        S S S 5        [         R                  S   R                  nS n[        [        U5        [        XS5        g ! , (       d  f       NK= f)Nr\  rZ  c                  x    [        5          [        R                  " S5        S S S 5        g ! , (       d  f       g = fNrZ  )r   r\  r]  rL   r&   r#   no_warnings3TestWarns.test_context_manager.<locals>.no_warnings  s     #%d# &%%s   +
9rc  )
rd  re  rf  r
   rg  r\  r]  r	   r(   r   )r    rh  ri  ro  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-   $ rn  r[  )r!   r"   s     r#   r^  TestWarns.test_args.<locals>.f  s    MM$5Lr&   r  r"   Arl   Br
   zpytest.warns)wrong)r   r,   )r
   rg  rn   ro   RuntimeErrorr\  r]  rp   )r    r^  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 rn  )r\  r]  DeprecationWarningrL   r&   r#   r^  ,TestWarns.test_warn_wrong_warning.<locals>.f$  s    MM$ 23r&   FerrorTz#wrong warning caught by assert_warn)r\  catch_warningssimplefilterr  r
   rg  r(   )r    r^  faileds      r#   test_warn_wrong_warning!TestWarns.test_warn_wrong_warning#  sw    	4 $$&!!'+=>[!, '  !FGG  &  '&s(   A5A%%
A2/A51A22A55
BrL   N)	rM   rN   rO   rP   rj  rq  r|  r  rQ   rL   r&   r#   rW  rW    s    G G.*Hr&   rW  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)TestAssertAllclosei5  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&.>r,   atolzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 999999.rl   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  ?r:  )rtolr  r   g      ?z~Mismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 0.001
Max relative difference among violations: infz}Mismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 1.)	r   r	   r(   rn   ro   rr   rs   r/   r0   )r    rt   ru   rx   r  r!   r"   r`   s           r#   rO  TestAssertAllclose.test_simple7  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IQ 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 )NrA   )r/   r0   iinfoint_minr   rD   s     r#   test_min_intTestAssertAllclose.test_min_intl  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)r,   r,   r,   r,   )r,   r,   r,   r-   zzMismatched elements: 1 / 4 (25%)
Max absolute difference among violations: 1
Max relative difference among violations: 0.5rl   r/   r0   rn   ro   r(   rr   rs   r   r   s       r#   test_report_fail_percentage.TestAssertAllclose.test_report_fail_percentageq  sT    HH\"HH\"H ]]><1HIA! JII    A55
Bc                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        XSS9  g )NT	equal_nan)r/   r0   r   r   r   s      r#   test_equal_nan!TestAssertAllclose.test_equal_nan{  s4    HHbffXHHbffX-r&   c                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        [        [
        XSS9  g )NFr  )r/   r0   r   r	   r(   r   r   s      r#   test_not_equal_nan%TestAssertAllclose.test_not_equal_nan  s8    HHbffXHHbffXnoquMr&   c                     [         R                  " [         R                  /5      n[         R                  " [         R                  /5      n[        X5        [	        X5        [        X5        [        X5        g r   )r/   r0   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   r,   r-   z-Max relative difference among violations: 0.5rl   r  r   s       r#   test_report_max_relative_error1TestAssertAllclose.test_report_max_relative_error  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)r,   r-   r8   r  zm8[ns]rA   )r/   r0   r   rD   s     r#   test_timedelta!TestAssertAllclose.test_timedelta  s    HH&'x8r&   c                    [         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   r,   r  uint8rA   )r9   r9   r9   z+Max absolute difference among violations: 4rl   r8   r  N)r/   asarrayrn   ro   r(   rr   rs   r   rN  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rP  )r/   r  r   rn   ro   r(   rS  r   r6  s      r#   rT  TestAssertAllclose.test_strict  s    GGAJGGBK]]>*A. +]]>*Axx

3DA +* +* +*s   B;
(C;
C	
CrL   N)rM   rN   rO   rP   rO  r  r  r  r  r  r  r  r  rT  rQ   rL   r&   r#   r  r  5  s7    3"j
".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)TestArrayAlmostEqualNulpi  c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        X$U5        g NrL  r  2   rA   r   r   	r/   linspacefloat64r_finforB   epsr   epsnegr    nulprt   r  ru   r  s         r#   test_float64_pass*TestArrayAlmostEqualNulp.test_float64_pass  s     KKR2::6EEE1"a%L hhqww###d
2&qT2 !''"))&b  &qT2r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X$U5        g r  r/   r  r  r  r  rB   r  r	   r(   r   r  r  s         r#   test_float64_fail*TestArrayAlmostEqualNulp.test_float64_fail      KKR2::6EEE1"a%Lhhqww###d
2n&DD	" !''"))&b  n&DD	"r&   c                 h   [         R                  " S5      n[         R                  " [         R                  [         R                  S9R                  [         R                  5      nX!-  nUR                  [         R                  5      nUR                  [         R                  5      n[        XES5        g )Nl    rA   r   )r/   uint64r0   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  	r/   r  r   r  r  rB   r  r   r  r  s         r#   test_float32_pass*TestArrayAlmostEqualNulp.test_float32_pass  s    KKR2::6EEE1"a%Lhhqww###d
2&qT2!''"))&b  &qT2r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X$U5        g r  r/   r  r   r  r  rB   r  r	   r(   r   r  r  s         r#   test_float32_fail*TestArrayAlmostEqualNulp.test_float32_fail  r  r&   c                 h   [         R                  " S5      n[         R                  " [         R                  [         R                  S9R                  [         R                  5      nX!-  nUR                  [         R                  5      nUR                  [         R                  5      n[        XES5        g )Ni  rA   r   )r/   uint32r0   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 NrL  r9   r   rA   r   )	r/   r  float16r  r  rB   r  r   r  r  s         r#   test_float16_pass*TestArrayAlmostEqualNulp.test_float16_pass  s    KKAr4EEE1"a%Lhhqww###d
2&qT2!''"))&b  &qT2r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X$U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X$U5        g r  )r/   r  r  r  r  rB   r  r	   r(   r   r  r  s         r#   test_float16_fail*TestArrayAlmostEqualNulp.test_float16_fail  s    KKAr4EEE1"a%Lhhqww###d
2n&DD	" !''"))&b  n&DD	"r&   c                 h   [         R                  " S5      n[         R                  " [         R                  [         R                  S9R                  [         R                  5      nX!-  nUR                  [         R                  5      nUR                  [         R                  5      n[        XES5        g )N   rA   r   )r/   uint16r0   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 
NrL  r  r  r  rA   r                 ?r   r   r  r    r  rt   xir  ru   r  s          r#   test_complex128_pass-TestArrayAlmostEqualNulp.test_complex128_pass8  s6   KKR2::6EEE1"a%L2Xhhqww###d
2&rqt8T:&rqt8T: #d
2&rqt8T:!''"))&b  &rqt8T:&rqt8T:&b  &rqt8T:r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   nX"S-  -   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -   n[        [        [        X5US-  -   U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -
  n[        [        [        X5US-  -   U5        g 	NrL  r  r  r  rA   r   r  r   r  r  s          r#   test_complex128_fail-TestArrayAlmostEqualNulp.test_complex128_failO  s^   KKR2::6EEE1"a%L2Xhhqww###d
2n&Dad(D	*n&Dad(D	* #d
Nn&Dad(D	* !''"))&b  n&Dad(D	*n&Dad(D	*&n&Dad(D	*r&   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_passl  s4   KKR2::6EEE1"a%L2Xhhqww###d
2&rqt8T:&rqt8T:#d
2&rqt8T:!''"))&b  &rqt8T:&rqt8T:&b  &rqt8T:r&   c                    Sn[         R                  " SSS[         R                  S9nSU-  n[         R                  U* U4   nX"S-  -   n[         R                  " UR
                  5      R                  nX"U-  U-  S-  -   n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -   n[        [        [        X5US-  -   U5        [         R                  " UR
                  5      R                  nX"U-  U-  S-  -
  n[        [        [        X2US-  -   U5        [        [        [        X5US-  -   U5        X"U-  U-  -
  n[        [        [        X5US-  -   U5        g r  r  r  s          r#   test_complex64_fail,TestArrayAlmostEqualNulp.test_complex64_fail  s\   KKR2::6EEE1"a%L2Xhhqww###d
2n&Dad(D	*n&Dad(D	*#d
Nn&Dad(D	* !''"))&b  n&Dad(D	*n&Dad(D	*&n&Dad(D	*r&   rL   N)rM   rN   rO   rP   r  r  r  r  r  r  r  r  r  r  r  r  r  rQ   rL   r&   r#   r  r    sC    3$" 	43" 	43" 	4;.*:;**r&   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestULPi  c                 V    [         R                  R                  S5      n[        XSS9  g )Nr   r   maxulp)r/   randomrandnr   )r    rt   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  )	r/   r  rS  r   r	  r
  r  r  r   r    rt   r  s      r#   test_singleTestULP.test_single  so    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&Q#b1r&   c                 d   [         R                  " S5      R                  [         R                  5      nUS[         R                  R                  S5      R                  [         R                  5      -  -  n[         R                  " [         R                  5      R                  n[        XU-   SS9  g )Nr   r     r  )	r/   r  rS  r  r	  r
  r  r  r   r  s      r#   test_doubleTestULP.test_double  so    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&Q#c2r&   c                 8   [         R                  [         R                  4 Hv  n[         R                  " [         R                  /5      R                  U5      n[         R                  " [         R                  " U5      R                  /5      n[        X#SS9  Mx     g )Nr  r  )	r/   r   r  r0   r   rS  r  maxr   )r    dtr   bigs       r#   rl  TestULP.test_inf  sa    ::rzz*B((BFF8$++B/C((BHHRL,,-.C #6 +r&   c                   ^^^^^^^ [         R                  [         R                  4 GH  nU[         R                  :X  a  SmOSm[         R                  " [         R                  /5      R                  U5      m[         R                  " [         R                  /5      R                  U5      m[         R                  " [         R                  " U5      R                  /5      m[         R                  " [         R                  " U5      R                  /5      m[         R                  " 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#   r[  "TestULP.test_nan.<locals>.<lambda>      "6sC>D#Fr&   c                     > [        TT TS9$ r  r  )r  r  r   s   r#   r[  r    r   r&   c                     > [        TTT S9$ r  r  )r  r   tinys   r#   r[  r        "6sD>D#Fr&   c                     > [        TTT S9$ r  r  )r  r   zeros   r#   r[  r    r$  r&   c                     > [        TTT S9$ r  r  )r  r   nzeros   r#   r[  r    s    "6sE>D#Fr&   )r/   r   r  r0   r   rS  r   r  r  r#  r	   r(   )	r    r  r  r   r  r   r(  r#  r&  s	     @@@@@@@r#   rd  TestULP.test_nan  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&   rL   N)
rM   rN   rO   rP   r  r  r  rl  rd  rQ   rL   r&   r#   r  r    s    -23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      $ )Nra   r-  r   rL   r&   r#   r[  -TestStringEqual.test_simple.<locals>.<lambda>  s    1%Ar&   )r   rn   ro   r(   rp   rq   r   r	   )r    rv   rw   s      r#   rO  TestStringEqual.test_simple  se    GW-.0BC]]>*h
L9 +(..!SCDnA	C +*s   A;;
B	c                 >    [        SS5        [        [        S 5        g )Nza+*bc                      [        SS5      $ )Naaaza+br/  rL   r&   r#   r[  ,TestStringEqual.test_regex.<locals>.<lambda>  s    1%?r&   )r   r	   r(   rI   s    r#   
test_regexTestStringEqual.test_regex  s    FF+n?	Ar&   rL   N)rM   rN   rO   rP   rO  r6  rQ   rL   r&   r#   r+  r+    s    
CAr&   r+  c                      U R                   n[        U5      nSU;   a  US-  n[        X15        g ! [         a    0 n N0f = f)Nversionr,   )__warningregistry__AttributeErrorlenr   )modn_in_context	mod_warns	num_warnss       r#   assert_warn_len_equalrA    sP    
++	 III 	Q	)#   	s   0 ??c                  p     " S S5      n U " 5       n[        USS9   " S S5      n U " 5       n[        USS9  g )Nc                       \ rS rSrSrg)/test_warn_len_equal_call_scenarios.<locals>.modi  rL   N)rM   rN   rO   rP   rQ   rL   r&   r#   r=  rD    s    r&   r=  r   )r=  r>  c                       \ rS rSrS rSrg)rD  i  c                     SSS.U l         g )Nr,   r-   warning1warning2r:  rI   s    r#   __init__8test_warn_len_equal_call_scenarios.<locals>.mod.__init__  s    4545(7D$r&   rJ  N)rM   rN   rO   rP   rK  rQ   rL   r&   r#   r=  rD    s    	7r&   r-   )rA  )r=  mod_insts     r#   "test_warn_len_equal_call_scenariosrN     sB      uHh'(*
7 7
 uHh'(*r&   c                      [         R                  [           n  U R                  R	                  5         U $ ! [
         a     U $ f = fr   )rd  re  rM   r:  clearr;  my_mods    r#   _get_fresh_modrS    sI    [["F""((*
 M	   	M	s   5 
AAc                  P   [        5       n [        [        U S0 5      0 5        [        U /S9   [        R
                  " S5        [        R                  " S5        S S S 5        [        U R                  0 5        [        5          [        R
                  " S5        [        R                  " S5        S S S 5        [        U S5        SSS.U l        [        U /S9   [        R
                  " S5        [        R                  " S	5        S S S 5        [        U S5        [        5          [        R
                  " S5        [        R                  " S	5        S S S 5        [        U S5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NO= f)
Nr:  )re  ignoreSome warningr   r,   r-   rG  zAnother warning)	rS  r   getattrr   r\  r  r]  r:  rA  rQ  s    r#   test_clear_and_catch_warningsrX  (  s.   F!6;R@	!6(	3h'n% 
4 ++R0 
"	#h'n% 
$ &!$ /0./"1F 
"6(	3h''( 
4 &!$ 
"	#h''( 
$ &!$3 
4	3 
$	# 
4	3 
$	#s/   -E#-E5-F!-F#
E25
F
F
F%c                     [        5       n [        [        U S0 5      0 5        S n[        U S5        [	        5        nUR                  [        5        UR                  [        R                  R                  S9  [        R                  " S5        U" 5         S S S 5        [        [        WR                  5      S5        [        UR                  S   R                  R                   S   S5        [        U S5        [	        5       nUR                  U S9  U   [        R                  " S5        S S S 5        [        U S5        UR                  U S9  U   [        R                  " S5        S S S 5        [        U S5        [	        5          [        R"                  " S5        [        R                  " S5        S S S 5        [        U S5        g ! , (       d  f       GN8= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NO= f)Nr:  c                  <    S n [         R                  " U SS/5        g )Nc                 0    [         R                  " SSS9  U $ )NzSome warning 2r-   
stacklevelr[  arrs    r#   r]  Ftest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnP  s    MM*q9Jr&   r   r/   apply_along_axisr]  s    r#   warn_other_module8test_suppress_warnings_module.<locals>.warn_other_moduleM      	 	D!aS)r&   r   modulerV  r,   rU  )rS  r   rW  rA  r   recordrg  filterr/   lib_shape_base_implr\  r]  r<  logmessager   r  )rR  rd  sups      r#   test_suppress_warnings_modulerp  H  sj   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)Nr:  rV  r   rg  rU  )
rS  r   rW  r   rj  rg  r\  r]  rA  r  )rR  ro  s     r#   test_suppress_warnings_typerr  v  s   F!6;R@ 
	

;n% 
 &!$

CJJ{	n% 
&!$JJfJ	n% 
&!$ 
	h'n% 
 &!$' 
	 

 

 
	s/   ,E E	E">-E3 
E
E"
E03
Fc                  4   [        5       n U R                  [        5        U S 5       n[        R                  " SS9 n[        R
                  " S5        U" [        5        U" [        5        [        [        U5      S5        S S S 5        g ! , (       d  f       g = f)Nc                 2    [         R                  " SU 5        g )NrV  r[  )categorys    r#   r]  7test_suppress_warnings_decorate_no_record.<locals>.warn  s    nh/r&   T)ri  alwaysr,   )	r   rj  rg  r\  r  r  RuntimeWarningr   r<  )ro  r]  ws      r#   )test_suppress_warnings_decorate_no_recordrz    sr    

CJJ{0 	0 
	 	 	-h'[^SVQ	 
.	-	-s   AB		
Bc                     [        5       n U R                  5       nU    U R                  SS9nU R                  SS9  [        R                  " S5        [        R                  " S5        [        R                  " S5        [        [        U R                  5      S5        [        [        U5      S5        [        [        U5      S5        [        US   R                  R                  S   S5        S S S 5        U    U R                  SS9nU R                  SS9  [        R                  " S5        [        R                  " S5        [        R                  " S5        [        [        U R                  5      S5        [        [        U5      S5        [        [        U5      S5        [        US   R                  R                  S   S5        S S S 5        [        5        n U R                  5         [        5        nUR                  SS9  [        R                  " S5        [        R                  " S5        [        [        UR                  5      S5        S S S 5        [        [        U R                  5      S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NY= f! , (       d  f       g = f)NzSome other warning 2)rn  rV  Some other warningr-   r,   r   )
r   ri  rj  r\  r]  r   r<  rm  rn  r   )ro  log1log2sup2s       r#   test_suppress_warnings_recordr    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 $ )NrV  r-   r\  r[  r^  s    r#   r]  Jtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warn  s    MM.Q7Jr&   r   ra  rc  s    r#   rd  <test_suppress_warnings_forwarding.<locals>.warn_other_module  rf  r&   rw  r-   rV  locationrh  oncer|  )r   ri  ranger\  r]  r   r<  rm  )rd  ro  is      r#   !test_suppress_warnings_forwardingr    s   * 
	

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

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

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

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

Kc                     [        5        n [        R                  R                  U S5      n[	        US5          S S S 5        S S S 5        [        [        R                  R                  W 5      (       + 5        Sn [        5        n [        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tmpry  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 )Nry  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  rL   N)rM   rN   rO   rP   rd  re  class_modulesrQ   rL   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)NrU  rV  )rS  r  r\  r  r]  r   r:  rQ  s    r#   %test_clear_and_catch_warnings_inheritr    sH    F	h'n% 
 ++R0 
s   -A!!
A/zPython lacks refcounts)reasonc                   \    \ rS rSrSrS rS r\R                  R                  S 5       r
Srg)TestAssertNoGcCyclesi'  zTest assert_no_gc_cycles c                 v    S n[        5          U" 5         S S S 5        [        U5        g ! , (       d  f       N= f)Nc                  ,    / n U R                  / 5        U $ r   appendrv  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_cycle7  s"    AHHQKHHQKHr&   )r	   r(   r   )r    r  s     r#   test_asserts!TestAssertNoGcCycles.test_asserts6  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>.ReferenceCycleInDeliK  z
An object that not only contains a reference cycle, but creates new
cycles whenever it's garbage-collected and its __del__ runs
Tc                     X l         g r   cyclerI   s    r#   rK  ETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__R  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__U  s     !
&11 () 2r&   r  N)	rM   rN   rO   rP   __doc__r  rK  r  rQ   )r  s   r#   r  r  K  s     J"* *r&   r  c                      g r   rL   rL   r&   r#   r[  1TestAssertNoGcCycles.test_fails.<locals>.<lambda>c  s    r&   Nz*GC does not call __del__ on cyclic objectsF)	weakrefrefr	   rz  r   r(   rn   skipr  )r    ry  r  s     @r#   
test_failsTestAssertNoGcCycles.test_failsD  s    	* 	*&	3/12A	"<0'5 1 .3* 10 "  3?KK LM # .3*sK   B A) AA) 
A&"A) %B &A) ))BB BB 	B!rL   N)rM   rN   rO   rP   r  r  r  rn   markslowr  rQ   rL   r&   r#   r  r  '  s-    $	&, [[(3 (3r&   r  assert_funcc                    U " SS5        U " SSS9  Sn[         R                  " [        US9   U " SS5        S S S 5        [         R                  " [        US9   U " SSS9  S S S 5        Sn[         R                  " [        US9   U " SSS9  S S S 5        [         R                  " [        US9   U " SSS9  S S S 5        S	n[         R                  " [        US9   [         R                  " [
        US9   U " SSS
9  U " SSSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)Nr,   )actualdesiredzArrays are not...rl   r-   zUse of keyword argument...)rt   r  )ru   z#...got multiple values for argumentra  )rn   ro   r(   warnsr  r   )r  assert_messagedep_messagetype_messages       r#   test_xy_renamer  p  s    1q!$(N	~^	<Aq 
=	~^	<1a( 
= /K	(	<a# 
=	(	<A 
= 9L
,,)
=
--	
6AAqA 7 >
= 
=	<	<	< 
=	<	<	<
 7
6 >
=sS   
DD"D3+EE&0E E&
D"
D03
E
E
E#	E&&
E4)Br\  rd  r  r  rn   r  rr   numpyr/   numpy._core._multiarray_umath_core_multiarray_umathr/  numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rS   r   r  r?  r  r  r  rW  r  r  r  r+  rA  rN  rS  rX  rp  rr  rz  r  r  r  r  r  r  r  skipifr  parametrizer  rL   r&   r#   <module>r     s    
 	    	  + +     +/ +/\\1\ \1~* *Z\) \)~u < u pP l P f(M (MVFD FDREH EHPB BDc* c*L5G 5GpA A(*.*8	%@+%\%8 %&P,&^%"' -& -
1 $-EFE3 E3 GE3P );)B)D EEr&   