
    G/Ph=                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
c mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"  G d d          Z# G d de#          Z$ G d d          Z% G d	 d
e$          Z& G d de#          Z' G d de#          Z( G d d          Z) G d d          Z* G d d          Z+ G d d          Z, G d d          Z- G d d          Z. G d d          Z/d Z0d Z1d Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8d& Z9d' Z: G d( d)e          Z;d* Z<ej=        >                    e" d+,           G d- d.                      Z?ej=        @                    d/eeg          d0             ZAdS )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                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
_GenericTestc                 2    |                      ||           d S N_assert_funcselfabs      ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/testing/tests/test_utils.py_test_equalz_GenericTest._test_equal   s    !Q    c                     t          t                    5  |                     ||           d d d            d S # 1 swxY w Y   d S r   )r	   AssertionErrorr   r   s      r"   _test_not_equalz_GenericTest._test_not_equal   s    >** 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   9= =c                     t          j        ddg          }t          j        ddg          }|                     ||           dS )z/Test two equal array of rank 1 are found equal.      Nnparrayr#   r   s      r"   test_array_rank1_eqz _GenericTest.test_array_rank1_eq   sD    HaVHaVAr$   c                     t          j        ddg          }t          j        ddg          }|                     ||           dS )z7Test two different array of rank 1 are found not equal.r)   r*   Nr,   r-   r'   r   s      r"   test_array_rank1_noteqz#_GenericTest.test_array_rank1_noteq%   sD    HaVHaVQ"""""r$   c                     t          j        ddgddgg          }t          j        ddgddgg          }|                     ||           dS )z/Test two equal array of rank 2 are found equal.r)   r*         Nr+   r   s      r"   test_array_rank2_eqz _GenericTest.test_array_rank2_eq,   sV    Hq!fq!f%&&Hq!fq!f%&&Ar$   c                     t          j        ddg          }t          j        ddgddgg          }|                     ||           dS ):Test two arrays with different shapes are found not equal.r)   r*   Nr0   r   s      r"   test_array_diffshapez!_GenericTest.test_array_diffshape3   sM    HaVHq!fq!f%&&Q"""""r$   c                 l    t          j        ddgt                    }|                     |d           dS )zTest object arrays.r)   dtypeN)r,   r-   objectr#   r   r    s     r"   test_objarrayz_GenericTest.test_objarray:   s6    HaV6***Ar$   c                 6    |                      g dd           d S )Nr)   r*   r3   )r#   r   s    r"   test_array_likesz_GenericTest.test_array_likes?   s"    I.....r$   N)__name__
__module____qualname__r#   r'   r.   r1   r5   r8   r>   rB    r$   r"   r   r      s             $ $ $  # # #  # # #  
/ / / / /r$   r   c                   n    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )TestArrayEqualc                     t           | _        d S r   )r   r   rA   s    r"   setup_methodzTestArrayEqual.setup_methodE   s    .r$   c                 R      fd}dD ]} ||           dD ]} ||           dS )z!Test rank 1 array for all dtypes.c                 .   t          j        d|           }|                    d           |                                }|                                }|                    d                               ||                               ||           d S )Nr*   r)   r   r,   emptyfillcopyr#   r'   tr    r!   cr   s       r"   fooz.TestArrayEqual.test_generic_rank1.<locals>.fooJ   s|    AAFF1IIIAAFF1IIIQ"""  A&&&&&r$   ?bhilqpBHILQPfdgFDGS1U1NrF   r   rT   rR   s   `  r"   test_generic_rank1z!TestArrayEqual.test_generic_rank1H   f    	' 	' 	' 	' 	' ' 	 	ACFFFF  	 	ACFFFF	 	r$   c                    t          j        d          }t          j        d          }t          j        t                    5 }|                     ||           d d d            n# 1 swxY w Y   t          |j                  }t          d|v            |}|                     ||           t          j        d          }t          j        d          }d}t          j        t          t          j
        |                    5  |                     ||           d d d            n# 1 swxY w Y   |}|                     ||           d S )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,   r-   pytestraisesr&   r   strvaluer   reescape)r   xyexc_infomsgexpected_msgs         r"   test_0_ndim_arrayz TestArrayEqual.test_0_ndim_array[   s   H9::H899]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$(.!!5 	 	 	 !QH344HQKKJ ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ !Qs$   A%%A),A)D''D+.D+c                 R      fd}dD ]} ||           dD ]} ||           dS )z!Test rank 3 array for all dtypes.c                 .   t          j        d|           }|                    d           |                                }|                                }|                    d                               ||                               ||           d S )N)r4   r*   r3   r)   r   rM   rQ   s       r"   rT   z.TestArrayEqual.test_generic_rank3.<locals>.foov   s~    A&&AFF1IIIAAFF1IIIQ"""  A&&&&&r$   rU   rV   NrF   rY   s   `  r"   test_generic_rank3z!TestArrayEqual.test_generic_rank3t   r[   r$   c                    t          j        ddt           j        g          }t          j        ddt           j        g          }|                     ||           t          j        g d          }|                     ||           dS )z$Test arrays with nan values in them.r)   r*   r@   N)r,   r-   nanr#   r'   r   r    r!   rS   s       r"   test_nan_arrayzTestArrayEqual.test_nan_array   su    HaBF^$$HaBF^$$AHYYYQ"""""r$   c                     t          j        ddg          }t          j        ddg          }|                     ||           t          j        ddg          }|                     ||           dS )r7   floupifloupafloupipiN)r,   r-   r#   r'   rp   s       r"   test_string_arraysz!TestArrayEqual.test_string_arrays   sp    Hh)**Hh)**AHj(+,,Q"""""r$   c                    t          j        ddt          fdt          fg          }ddg|d<   ddg|d<   |                                }|                     ||           t          j        ddt          fdt          fdt          fg          }|d                                         |d<   |d                                         |d<   t          j        t                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )zTest record arrays.r*   rs   rt   r)   ru   N)	r,   rN   floatrP   r#   r_   r`   	TypeErrorr'   rp   s       r"   test_recarrayszTestArrayEqual.test_recarrays   sK   HQ(E*Xu,=>??!f(!f(FFHHAHQ*e,"E*Xu,=? @ @(((***k&&(((]9%% 	' 	'  A&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   DD	Dc                    t           j                            g dg d          }t          j        dt           j        dg          }|                     ||           |                     ||           t           j                            g dg d          }t          j        t           j        ddg          }|                     ||           |                     ||           d S )N      @      @      @)FTFmaskr}   r   )TFFr~   )r,   maMaskedArrayr-   ro   r#   infr   s      r"   test_masked_nan_infz"TestArrayEqual.test_masked_nan_inf   s    Emmm2F2F2FGGHb"&#&''AAEmmm2F2F2FGGHbfb#&''AAr$   c                     G d dt           j                  }t          j        ddg                              |          }t          j        ddg                              |          }t	          t          ||k              t                     t	          ||k               t	          ||k               |                     ||           |                     ||           |                     ||           d}t          j
        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   t          j        dd	g                              |          }d
}t          j
        t          t          j        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArrayc                 j    t          t          j        | |                                                    S r   )boolr,   equalallr   others     r"   __eq__zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__   s(    BHT5115577888r$   c                     | |k     S r   rF   r   s     r"   __ne__zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__   s    5=((r$   N)rC   rD   rE   r   r   rF   r$   r"   MyArrayr      s2        9 9 9) ) ) ) )r$   r         ?       @r}   z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5r]           g333333@z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 2.
Max relative difference among violations: inf)r,   ndarrayr-   viewr   typer   r#   r'   r_   r`   r&   rc   rd   )r   r   r    r!   ri   rS   s         r"   test_subclass_that_overrides_eqz.TestArrayEqual.test_subclass_that_overrides_eq   sF   
	) 	) 	) 	) 	)bj 	) 	) 	) Hb"X##G,,Hb"X##G,,Q!Vd###QQAQ"""Q"""H ]><1H1HIII 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# Hb#Y$$W--H ]><1H1HIII 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   (EEE.GGGc                     G d dt           j                  }t          j        ddg                              |          }t          j        ddg                              |          }t	          t
                    5  t          j        |           d d d            n# 1 swxY w Y   |                     ||           |                     ||           |                     ||           d S )Nc                       e Zd Zd ZdS )KTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArrayc                     t           S r   )NotImplementedr   argskwargss      r"   __array_function__z^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__   s    %%r$   N)rC   rD   rE   r   rF   r$   r"   r   r      s#        & & & & &r$   r   r   r   r}   )	r,   r   r-   r   r	   ry   r   r#   r'   )r   r   r    r!   s       r"   +test_subclass_that_does_not_implement_npallz:TestArrayEqual.test_subclass_that_does_not_implement_npall   s*   	& 	& 	& 	& 	&bj 	& 	& 	& Hb"X##G,,Hb"X##G,,9%% 	 	F1III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	AQ"""Q"""""s   ?B  B$'B$c           	         t          j        t                    5  t          j        d          5  t          j                            t          j        g dt          j                  t          j        g dt          j                             d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nraiser   r@   )r)   gWw'&l7r3   )	r_   r`   r&   r,   errstatetestingr   r-   float32rA   s    r"   test_suppress_overflow_warningsz.TestArrayEqual.test_suppress_overflow_warnings   s"   ]>** 	9 	9))) 9 9
--HYYY
33H]]]BJ779 9 99 9 9 9 9 9 9 9 9 9 9 9 9 9 9	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s5   B3ABB3B	B3"B	#B33B7:B7c                 b    t          j        g d          }d}|                     ||           dS )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_equalz,TestArrayEqual.test_array_vs_scalar_is_equal   s6    H\\\""Ar$   c                     t          j        g d          }t          j        g d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   t          j        g d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )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: infr]   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,   r-   r_   r`   r&   rc   rd   r   r   r    r!   ri   s       r"   test_array_vs_array_not_equalz,TestArrayEqual.test_array_vs_array_not_equal   s|   H44455H///00H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ H66677)
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   A??BBC33C7:C7c                     t          j        g d          }d}t          j        t                    5  |                     ||d           ddd           dS # 1 swxY w Y   dS )z9Test comparing an array with a scalar with strict option.r   r   TstrictNr,   r-   r_   r`   r&   r   r   s      r"   test_array_vs_scalar_strictz*TestArrayEqual.test_array_vs_scalar_strict
  s    H\\\""]>** 	1 	1a4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AAAc                     t          j        g d          }t          j        g d          }|                     ||d           dS )-Test comparing two arrays with strict option.r   Tr   N)r,   r-   r   r   s      r"   test_array_vs_array_strictz)TestArrayEqual.test_array_vs_array_strict  sI    H\\\""H\\\""!Qt,,,,,r$   c                     t          j        g d          }t          j        g d          }t          j        t                    5  |                     ||d           ddd           dS # 1 swxY w Y   dS )r   )r)   r)   r)   r   Tr   Nr   r   s      r"    test_array_vs_float_array_strictz/TestArrayEqual.test_array_vs_float_array_strict  s    HYYYH\\\""]>** 	1 	1a4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   A,,A03A0N)rC   rD   rE   rJ   rZ   rj   rm   rq   rv   rz   r   r   r   r   r   r   r   r   r   rF   r$   r"   rH   rH   C   s       / / /  &     2  &# # #	# 	# 	#' ' '"	 	 	 #  #  #D# # #9 9 9  $ $ $(1 1 1- - -1 1 1 1 1r$   rH   c                   &    e Zd Zd Zd Zd Zd ZdS )TestBuildErrorMessagec                     t          j        g d          }t          j        g d          }d}t          ||g|          }d}t          ||           d S )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,   r-   r   r   r   re   rf   err_msgr    r!   s         r"   test_build_err_msg_defaultsz1TestBuildErrorMessage.test_build_err_msg_defaults$  se    H00011H00011'1a&'**" 	Qr$   c                     t          j        g d          }t          j        g d          }d}t          ||g|d          }d}t          ||           d S )Nr   r   r   F)verbosez)
Items are not equal: There is a mismatchr   r   s         r"   test_build_err_msg_no_verbosez3TestBuildErrorMessage.test_build_err_msg_no_verbose/  sf    H00011H00011'1a&'59998Qr$   c                     t          j        g d          }t          j        g d          }d}t          ||g|d          }d}t          ||           d S )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_namesz5TestBuildErrorMessage.test_build_err_msg_custom_names8  sj    H00011H00011'1a&'@@@ 	Qr$   c                     t          j        g d          }t          j        g d          }d}t          ||g|d          }d}t          ||           d S )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_precisionz9TestBuildErrorMessage.test_build_err_msg_custom_precisionC  sj    H44455H44455'1a&'R8887 	Qr$   N)rC   rD   rE   r   r   r   r   rF   r$   r"   r   r   "  sP        	 	 	  	 	 		 	 	 	 	r$   r   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )	TestEqualc                     t           | _        d S r   )r   r   rA   s    r"   rJ   zTestEqual.setup_methodQ  s    (r$   c                 H   |                      t          j        t          j                   |                      t          j        gt          j        g           |                     t          j        t          j        g           |                     t          j        d           d S Nr)   )r   r,   ro   r'   rA   s    r"   test_nan_itemszTestEqual.test_nan_itemsT  st    "&"&)))26(RVH---RVbfX...RVQ'''''r$   c                    |                      t          j        t          j                   |                      t          j        gt          j        g           |                     t          j        t          j        g           d S r   )r   r,   r   r'   rA   s    r"   test_inf_itemszTestEqual.test_inf_itemsZ  s\    "&"&)))26(RVH---RVbfX.....r$   c                    |                      t          j        dd          t          j        dd                     |                      t          j        dd          t          j        dd                     |                     t          j        dd          t          j        dd                     |                     t          j        dd          t          j        dd                     d S )N
2017-01-01smz
2017-01-02)r#   r,   
datetime64r'   rA   s    r"   test_datetimezTestEqual.test_datetime_  s    M,,,M,,,	
 	
 	
 	M,,,M,,,	
 	
 	
 	M,,,M,,,	
 	
 	
 	M,,,M,,,	
 	
 	
 	
 	
r$   c                    t          j        d          }t          j        dd          }t          j        dd          }t          j        d          }t          j        dd          }t          j        dd          }|||g}|||g}t          j        ||          D ]J\  }	}
|                     |	|
           |                     |	g|
g           |                     |	g|
           Kt          j        ||          D ]J\  }	}
|                     |	|
           |                     |	g|
g           |                     |	g|
           Kt          j        ||          D ]\  }	}
|                     |	|
           |                     |	|
g           |                     |	g|
g           |                     |	gt          j        dd                     |                     |
gt          j        dd                     |                     |	gt          j        dd                     |                     |
gt          j        dd                     d S )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_itemszTestEqual.test_nat_itemss  s[   }U++uc**ud++~e,,s++t,,VV,VV,%c3// 	) 	)DAqa###qcA3'''  !a((((%c3// 	) 	)DAqa###qcA3'''  !a((((%c3// 	@ 	@DAq  A&&&  QC(((  !qc***  !bmL#&F&FGGG  !bmL#&F&FGGG  !bnS#&>&>???  !bnS#&>&>????	@ 	@r$   c                 ^    |                      dd           |                     dd           d S )Nababb)r   r'   rA   s    r"   test_non_numericzTestEqual.test_non_numeric  s4    $%%%T5)))))r$   c                    |                      t          dd          t          dd                     |                      t          dt          j                  t          dt          j                             |                     t          dt          j                  t          dd                     |                     t          t          j        d          t          dt          j                             |                     t          t          j        t          j                  t          t          j        d                     d S Nr)   r*   )r   complexr,   ro   r'   r   rA   s    r"   test_complex_itemzTestEqual.test_complex_item  s    '!Q--A777'!RV,,ga.@.@AAAWQ//A???WRVQ//BF1C1CDDDWRVRV44gbfa6H6HIIIIIr$   c                 Z    |                      t          j        t          j                   d S r   )r'   ncuPZERONZEROrA   s    r"   test_negative_zerozTestEqual.test_negative_zero  s"    SY	22222r$   c                 :   t          j        t          dd          t          dt           j                  g          }t          j        t          dd          t          dd          g          }|                     ||           |                     ||           d S r   r,   r-   r   ro   r   r'   r   re   rf   s      r"   test_complexzTestEqual.test_complex  s    HgammWQ%7%7899HgammWQ]]344!QQ"""""r$   c                     dd l }t          j        |                     ddd          |                     ddd          g          }|                     ||d d d                    d S )Nr   i  r)   r*   )datetimer,   r-   r'   )r   r  r    s      r"   test_objectzTestEqual.test_object  sp    Hh''a33''a335 6 6Q$$B$(((((r$   N)rC   rD   rE   rJ   r   r   r   r   r   r   r  r  r  rF   r$   r"   r   r   O  s        ) ) )( ( (/ / /

 
 
(@ @ @>* * *J J J3 3 3# # #) ) ) ) )r$   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestArrayAlmostEqualc                     t           | _        d S r   )r   r   rA   s    r"   rJ   z!TestArrayAlmostEqual.setup_method  s    5r$   c                 H   d}t          j        t          t          j        |                    5  |                     ddd           d d d            n# 1 swxY w Y   |                     dgdgd           d}t          j        t          t          j        |                    5  |                     dgdgd           d d d            n# 1 swxY w Y   dd	g}d
dg}d}t          j        t          t          j        |                    5  |                     ||d           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||d           d d d            d S # 1 swxY w Y   d S )Nz}Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.5
Max relative difference among violations: infr]         ?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.r_   r`   r&   rc   rd   r   )r   ri   r    r!   s       r"   test_closenessz#TestArrayAlmostEqual.test_closeness  s   H ]><1H1HIII 	3 	3c3222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	8*seQ777H ]><1H1HIII 	7 	7secUA666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7  OH ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/G ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sG   AAA)CCCD77D;>D;1FFFc                 z   t          j        dg          }t          j        dg          }|                     ||d           |                     ||d           d}t          j        t
          t          j        |                    5  |                     ||d           d d d            d S # 1 swxY w Y   d S )	NgeH@gwH@r3   r  r4   zMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-04
Max relative difference among violations: 8.10226812e-08r]      r,   r-   r   r_   r`   r&   rc   rd   r   re   rf   ri   s       r"   test_simplez TestArrayAlmostEqual.test_simple  s   Hi[!!Hi[!!!Q***!Q***)
 ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   
B00B47B4c                    g d}d}d}t          j        t          t          j        |                    5  |                     ||d           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||d           d d d            n# 1 swxY w Y   ddg}d	}t          j        t          t          j        |                    5  |                     ||d
           d d d            n# 1 swxY w Y   d}d	}t          j        t          t          j        |                    5  |                     ||d
           d d d            d S # 1 swxY w Y   d S )N)mlz@gHPX@r   r  zMismatched elements: 2 / 3 (66.7%)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 1.r]   	   r  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: infr  r   r  r   s       r"   test_array_vs_scalarz)TestArrayAlmostEqual.test_array_vs_scalar  s   )))G ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/N ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ H ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ H ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sG   AA"AB::B>B>8DD!$D!E??FFc                 |    t          j        t           j        g          t          j        dg          t          j        t           j        g                                          t          t           fd           t          t           fd           t          t           fd           d S )Nr)   c                  0                                    S r   r   ananaoner   s   r"   <lambda>z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>      d//d;; r$   c                  0                                    S r   r   ainfr$  r   s   r"   r&  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>  r'  r$   c                  0                                    S r   r   r)  s   r"   r&  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>  r'  r$   r,   r-   ro   r   r   r	   r&   r   r*  r$  r%  s   `@@@r"   test_nanzTestArrayAlmostEqual.test_nan  s    x!!x}}x!!$%%%n;;;;;;	= 	= 	=n;;;;;;	= 	= 	=n;;;;;;	= 	= 	= 	= 	=r$   c                     t          j        ddgddgg                                          t           j        d<   t	          t
           fd           t           j         d<   t	          t
           fd           d S )Nr   r   r}   r~   )r   r   c                  0                                    S r   r   r    r!   r   s   r"   r&  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>      d//155 r$   c                  0                                    S r   r   r1  s   r"   r&  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>  r2  r$   )r,   r-   rP   r   r	   r&   r   s   `@@r"   test_infzTestArrayAlmostEqual.test_inf  s    Hr2hR)**FFHH&$n555555	7 	7 	76'$n555555	7 	7 	7 	7 	7r$   c                    t          j        ddgddgg          }t           j                            ddgddggddgddgg          }|                     ||           |                     ||           |                     ||           t           j                            dd	          }t          j        g d
          }|                     ||           |                     ||           t           j        j        }t          j        g d
          }|                     ||           |                     ||           t           j                            g d
g d	          }t          j        g d          }|                     ||           |                     ||           t           j                            g d
g d	          }t          j        d          }|                     ||           |                     ||           d S )Nr   r   r}   r~   r   FTg      @r   r|   )TTT)r   r   r}   )r,   r-   r   masked_arrayr   r   r#   maskedr   s      r"   test_subclassz"TestArrayAlmostEqual.test_subclass  s   Hr2hR)**ER2r(3!&u>@ @!Q!Q!Q Ec--H]]]##AAELH]]]##AAEmmm2D2D2DEEH\\\""AAEmmm2D2D2DEEHRLLAAr$   c                 2    G d dt           j                  }t          j        ddg                              |          }|                     ||           t          j        ddg                              |          }t          |           t          j        ddg                              |          }d}t          j        t          t          j
        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )	Nc                   .     e Zd Z fdZ fdZd Z xZS )5TestArrayAlmostEqual.test_subclass_2.<locals>.MyArrayc                     t                                          |                              t          j                  S r   superr   r   r,   r   r   r   	__class__s     r"   r   z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__eq__>  )    ww~~e,,11"*===r$   c                     t                                          |                              t          j                  S r   r>  __lt__r   r,   r   r?  s     r"   rD  z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__lt__A  rA  r$   c                      t          |           S r   r   r   s      r"   r   z9TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.allD  s    4yy r$   rC   rD   rE   r   rD  r   __classcell__r@  s   @r"   r   r;  =  s`        > > > > >> > > > >! ! ! ! ! ! !r$   r   r   r   T   zMismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 200.
Max relative difference among violations: 0.99009r]   )r,   r   r-   r   r   r   r_   r`   r&   rc   rd   )r   r   r    zr!   ri   s         r"   test_subclass_2z$TestArrayAlmostEqual.test_subclass_28  sW   
	! 	! 	! 	! 	!bj 	! 	! 	! Hb"X##G,,!QHdD\""''00AHb#Y$$W--L ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   (DDDc                      G d dt           j                  }t          j        ddg                              |          }|                     ||           d S )Nc                   .     e Zd Z fdZ fdZd Z xZS )GTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                     t                                          |                              t          j                  S r   r=  r?  s     r"   r   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__Y  rA  r$   c                     t                                          |                              t          j                  S r   rC  r?  s     r"   rD  zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__\  rA  r$   c                     t           r   NotImplementedErrorr   s      r"   r   zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all_      ))r$   rF  rH  s   @r"   r   rN  X  `        > > > > >> > > > >* * * * * * *r$   r   r   r   r,   r   r-   r   r   r   r   r    s      r"   !test_subclass_that_cannot_be_boolz6TestArrayAlmostEqual.test_subclass_that_cannot_be_boolS  m    
	* 	* 	* 	* 	*bj 	* 	* 	* Hb"X##G,,!Qr$   N)rC   rD   rE   rJ   r  r  r   r.  r4  r8  rK  rX  rF   r$   r"   r  r    s        6 6 6#/ #/ #/J/ / // / /B
= 
= 
=7 7 7  4$ $ $6         r$   r  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestAlmostEqualc                     t           | _        d S r   )r   r   rA   s    r"   rJ   zTestAlmostEqual.setup_methodh      /r$   c                                            ddd           t          t           fd                                 dgdgd           t          t           fd           d S )Nr  r   r   r  c                  4                          ddd          S Nr  r   r   r  r   rA   s   r"   r&  z0TestAlmostEqual.test_closeness.<locals>.<lambda>u  s    d//S!/DD r$   c                  8                          dgdgd          S r`  r   rA   s   r"   r&  z0TestAlmostEqual.test_closeness.<locals>.<lambda>z  s     d//ua/HH r$   r   r	   r&   rA   s   `r"   r  zTestAlmostEqual.test_closenessk  s     	(C333nDDDD	F 	F 	F 	8*seQ777nHHHH	J 	J 	J 	J 	Jr$   c                                            t          j        t          j                   t          t           fd           t          t           fd           t          t           fd           d S )Nc                  D                          t          j        d          S r   )r   r,   ro   rA   s   r"   r&  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//:: r$   c                  X                          t          j        t          j                  S r   )r   r,   ro   r   rA   s   r"   r&  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//?? r$   c                  X                          t          j        t          j                  S r   )r   r,   r   ro   rA   s   r"   r&  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>  rg  r$   )r   r,   ro   r	   r&   rA   s   `r"   test_nan_itemzTestAlmostEqual.test_nan_item|  s    "&"&)))n::::	< 	< 	<n????	A 	A 	An????	A 	A 	A 	A 	Ar$   c                                           t          j        t          j                                         t          j         t          j                    t          t           fd           t          t           fd           d S )Nc                  D                          t          j        d          S r   r   r,   r   rA   s   r"   r&  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  re  r$   c                  Z                          t          j         t          j                  S r   rl  rA   s   r"   r&  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  s    d//@@ r$   )r   r,   r   r	   r&   rA   s   `r"   test_inf_itemzTestAlmostEqual.test_inf_item  s    "&"&)))26'BF7+++n::::	< 	< 	<n@@@@	B 	B 	B 	B 	Br$   c                 2    |                      dd           d S r   )r'   rA   s    r"   test_simple_itemz TestAlmostEqual.test_simple_item  s    Q"""""r$   c                 N   |                      t          dd          t          dd                     |                      t          dt          j                  t          dt          j                             |                      t          t          j        t          j                  t          t          j        t          j                             |                     t          dt          j                  t          dd                     |                     t          t          j        d          t          dt          j                             |                     t          t          j        t          j                  t          t          j        d                     d S r   )r   r   r,   ro   r   r'   rA   s    r"   r   z!TestAlmostEqual.test_complex_item  s   '!Q--A777'!RV,,ga.@.@AAA'"&"&11726263J3JKKKWQ//A???WRVQ//BF1C1CDDDWRVRV44gbfa6H6HIIIIIr$   c                    t          j        t          dd          t          dt           j                  g          }t          j        t          dd          t          t           j        d          g          }t          j        t          dd          t          dd          g          }|                     ||           |                     ||           |                     ||           d S r   r  )r   re   rJ  rf   s       r"   r  zTestAlmostEqual.test_complex  s    HgammWQ%7%7899HgammWRVQ%7%7899HgammWQ]]344!QQ"""Q"""""r$   c                 $   t          j        g d          }t          j        g d          }d}t          j        t          t          j        |                    5  |                     ||d           ddd           n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   t          j        t           j        d	g          }t          j        t           j        d
g          }d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   t          j        d
dg          }t          j        d	d	g          }d}t          j        t          t          j        |                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )zCheck 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      ])r]      r  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,   r-   r_   r`   r&   rc   rd   r   r   r  s       r"   test_error_messagez"TestAlmostEqual.test_error_message  s    H<<<==H<<<==* ]><1H1HIII 	0 	0aB///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0G ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ Hbfa[!!Hbfa[!!6
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ HaVHaVH ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$sH   BBB;CC"%C"E;;E?E?!HH	H	c                    	 d}t          j        d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   d}t          j        d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )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.r]   Nz~Mismatched elements: 20 / 20 (100%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5)r,   onesr_   r`   r&   rc   rd   r   r  s       r"   test_error_message_2z$TestAlmostEqual.test_error_message_2  sb   -GBKKG ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ GBKKH ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   A**A.1A.:CC"%C"c                      G d dt           j                  }t          j        ddg                              |          }|                     ||           d S )Nc                   .     e Zd Z fdZ fdZd Z xZS )BTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                     t                                          |                              t          j                  S r   r=  r?  s     r"   r   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  rA  r$   c                     t                                          |                              t          j                  S r   rC  r?  s     r"   rD  zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__  rA  r$   c                     t           r   rR  r   s      r"   r   zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all  rT  r$   rF  rH  s   @r"   r   r|    rU  r$   r   r   r   rV  rW  s      r"   rX  z1TestAlmostEqual.test_subclass_that_cannot_be_bool  rY  r$   N)rC   rD   rE   rJ   r  ri  rn  rp  r   r  ru  ry  rX  rF   r$   r"   r[  r[  f  s        0 0 0J J J"A A AB B B# # #J J J# # #1$ 1$ 1$f$ $ $&         r$   r[  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestApproxEqualc                     t           | _        d S r   )r   r   rA   s    r"   rJ   zTestApproxEqual.setup_method  r]  r$   c                      t          j        d          t          j        d                               d                                d           t          t           fd           d S )N{GH@RH@r  significant   c                  4                          d          S Nr  r  r   r  s   r"   r&  z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>      d//1!/DD r$   )r,   r-   r   r	   r&   r  s   `@@r"   test_simple_0d_arraysz%TestApproxEqual.test_simple_0d_arrays  s    HWHW!QA...!QA...nDDDDDD	F 	F 	F 	F 	Fr$   c                      dd                      d                                 d                                 d           t          t           fd           d S )Nr  r  r4   r  r  r  c                  4                          d          S r  r   r  s   r"   r&  z3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r$   rb  r  s   `@@r"   test_simple_itemsz!TestApproxEqual.test_simple_items  s    !QA...!QA...!QA...nDDDDDD	F 	F 	F 	F 	Fr$   c                 v    t          j        t           j                  t          j        d          t          j        t           j                                                  t          t           fd           t          t           fd           t          t           fd           d S )Nr)   c                  0                                    S r   r   r#  s   r"   r&  z0TestApproxEqual.test_nan_array.<locals>.<lambda>      d.?.?d.K.K r$   c                  0                                    S r   r   r)  s   r"   r&  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r)  s   r"   r&  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r$   r,  r-  s   `@@@r"   rq   zTestApproxEqual.test_nan_array      xx{{x$%%%n&K&K&K&K&K&KLLLn&K&K&K&K&K&KLLLn&K&K&K&K&K&KLLLLLr$   c                 v    t          j        t           j                  t          j        d          t          j        t           j                                                  t          t           fd           t          t           fd           t          t           fd           d S )Nr)   c                  0                                    S r   r   r#  s   r"   r&  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r)  s   r"   r&  z0TestApproxEqual.test_nan_items.<locals>.<lambda>   r  r$   c                  0                                    S r   r   r)  s   r"   r&  z0TestApproxEqual.test_nan_items.<locals>.<lambda>!  r  r$   r,  r-  s   `@@@r"   r   zTestApproxEqual.test_nan_items  r  r$   N)rC   rD   rE   rJ   r  r  rq   r   rF   r$   r"   r  r    sm        0 0 0F F FF F FM M MM M M M Mr$   r  c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )TestArrayAssertLessc                     t           | _        d S r   )r   r   rA   s    r"   rJ   z TestArrayAssertLess.setup_method&  s    -r$   c                 l    t          j        ddg          t          j        ddg                                          t          t           fd           t          j        ddg          t          t           fd           t          t           fd           t          j        g d	          }t          j        g d
          }d}t          j        t          t          j        |                    5                       ||           d d d            d S # 1 swxY w Y   d S )N皙?皙@333333?ffffff@c                  0                                    S r   r   r  s   r"   r&  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>.      d.?.?1.E.E r$   r   c                  0                                    S r   r   r  s   r"   r&  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>2  r  r$   c                  0                                    S r   r   r  s   r"   r&  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>3  r  r$   )r)   r3   r  rw  )r*   r4   r     z{Mismatched elements: 2 / 4 (50%)
Max absolute difference among violations: 12
Max relative difference among violations: 1.5r]   )	r,   r-   r   r	   r&   r_   r`   rc   rd   )r   r    r!   ri   re   rf   s   `   @@r"   test_simple_arraysz&TestArrayAssertLess.test_simple_arrays)  s}   Hc3Z  Hc3Z  !Qn&E&E&E&E&E&EFFFHc3Z  n&E&E&E&E&E&EFFFn&E&E&E&E&E&EFFFH]]]##H\\\""H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   D))D-0D-c                     t          j        ddgddgg          t          j        ddgddgg                                          d	}t          j        t
          t          j        |          
          5                                  d d d            n# 1 swxY w Y   t          j        ddgddgg          t          t
           fd           t          t
           fd           d S )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.09090909r]   r   c                  0                                    S r   r   r  s   r"   r&  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>J  r  r$   c                  0                                    S r   r   r  s   r"   r&  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>K  r  r$   )	r,   r-   r   r_   r`   r&   rc   rd   r	   r   ri   re   rf   s   ` @@r"   
test_rank2zTestArrayAssertLess.test_rank2>  sK   HsCj3*-..HsCj3*-..!QO ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ HsCj3*-..n&E&E&E&E&E&EFFFn&E&E&E&E&E&EFFFFFs   =B  B$'B$c                     t          j        d          t          j        d          dz                                   t          t           fd           dd<   d}t          j        t          t          j        |                    5                                  d d d            n# 1 swxY w Y   t          t           fd	           d S )
N)r*   r*   r*   )shaper)   c                  0                                    S r   r   r  s   r"   r&  z0TestArrayAssertLess.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: infr]   c                  0                                    S r   r   r  s   r"   r&  z0TestArrayAssertLess.test_rank3.<locals>.<lambda>[  r  r$   )	r,   rx  r   r	   r&   r_   r`   rc   rd   r  s   ` @@r"   
test_rank3zTestArrayAssertLess.test_rank3M  s)   G)$$$G)$$$Q&!Qn&E&E&E&E&E&EFFF'
H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	n&E&E&E&E&E&EFFFFFs   B88B<?B<c                     dd                                 d}t          j        t          t	          j        |                    5                                   d d d            n# 1 swxY w Y   t          j        ddg                                           t          t           fd           t          j        ddg          t          t           fd           d S )	Nr  r  z|Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.1
Max relative difference among violations: 1.r]   r  c                  0                                    S r   r   r  s   r"   r&  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>k  r  r$   r   c                  0                                    S r   r   r  s   r"   r&  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>o  r  r$   )	r   r_   r`   r&   rc   rd   r,   r-   r	   r  s   ` @@r"   r  z%TestArrayAssertLess.test_simple_items]  s=   !QG ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ Hc3Z  !Qn&E&E&E&E&E&EFFFHc3Z  n&E&E&E&E&E&EFFFFFs   A00A47A4c                 T   t          j        g dg dg dg          }d}|                     ||           d}|                     ||           t          j        g dg dg dg          }d	}d
}t          j        t
          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}t          j        t
          t          j        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )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.r]   zMismatched elements: 12 / 12 (100%)
Max absolute difference among violations: 999087.0864
Max relative difference among violations: 289288.5934676r  r  s       r"   test_simple_items_and_arrayz/TestArrayAssertLess.test_simple_items_and_arrayq  s   H@@@6664446 7 7 !Q!QHAAA???;;;= > > G ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$)
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   B??CC9DD!$D!c                 H   t          j        g d          }t          j        d          }d}t          j        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}d}t          j        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )	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.23423917r]   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   r  s       r"   test_zeroeszTestArrayAssertLess.test_zeroes  s   H)))**HVO ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$' ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$sH   A==BB7CC!CD99D= D=3FFFc                     t          j        t           j                  t          j        d          t          j        t           j                                                  t          t           fd           t          t           fd           t          t           fd           t          t           fd           d S )Nr)   c                  0                                    S r   r   r#  s   r"   r&  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r#  s   r"   r&  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r)  s   r"   r&  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r)  s   r"   r&  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>  r  r$   r,  r-  s   `@@@r"   test_nan_noncomparez'TestArrayAssertLess.test_nan_noncompare  s    xx{{x$%%%n&K&K&K&K&K&KLLLn&K&K&K&K&K&KLLLn&K&K&K&K&K&KLLLn&K&K&K&K&K&KLLLLLr$   c                 *    t          j        g d          t          j        t           j                  t          t           fd           t          t           fd           t          j        ddt           j        g          t          t           fd           t          t           fd           t          j        dd	t           j        g                                          t          t           fd
           d S )N)r  r  r  c                  0                                    S r   r   r$  r   re   s   r"   r&  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>      d.?.?4.H.H r$   c                  0                                    S r   r   r  s   r"   r&  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>      d.?.?a.H.H r$   r  r  c                  0                                    S r   r   r  s   r"   r&  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r  s   r"   r&  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>  r  r$   r   r   c                  0                                    S r   r   r  s   r"   r&  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>  r  r$   )r,   r-   ro   r	   r&   r   )r   r$  re   rf   s   `@@@r"   test_nan_noncompare_arrayz-TestArrayAssertLess.test_nan_noncompare_array  s   H___%%xn&H&H&H&H&H&HIIIn&H&H&H&H&H&HIIIHc3'((n&H&H&H&H&H&HIIIn&H&H&H&H&H&HIIIHc3'((!Qn&E&E&E&E&E&EFFFFFr$   c                     t          j        d          t          j        t           j                                                                                                                    t	          t
           fd           t	          t
           fd           t	          t
           fd           t	          t
           fd           t	          t
           fd           d S )Nr)   c                  0                                    S r   r   r*  r%  r   s   r"   r&  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>  r  r$   c                  2                                     S r   r   r  s   r"   r&  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>      d.?.?te.L.L r$   c                  0                                     S r   r   r*  r   s   r"   r&  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>  r  r$   c                  2                                      S r   r   r  s   r"   r&  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>  r  r$   c                  4                                       S r   r   r  s   r"   r&  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>  s    d.?.?u.M.M r$   )r,   r-   r   r   r	   r&   )r   r*  r%  s   `@@r"   test_inf_comparez$TestArrayAssertLess.test_inf_compare  s   x{{x$%%%4%&&&4%&&&n&K&K&K&K&K&KLLLn&L&L&L&L&L&LMMMn&K&K&K&K&KLLLn&L&L&L&L&LMMMn&M&M&M&M&MNNNNNr$   c                     t          j        ddt           j        g          t          j        t           j                  t          t           fd           t          t           fd           t          t           fd           t          t           fd           t          t           fd                                            d S )Nr  r  c                  0                                    S r   r   r*  r   re   s   r"   r&  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  r  r$   c                  0                                    S r   r   r  s   r"   r&  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  r  r$   c                  2                                     S r   r   r  s   r"   r&  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  s    d.?.?D5.I.I r$   c                  4                                      S r   r   r  s   r"   r&  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  s    d.?.?TE.J.J r$   c                  4                                      S r   r   r  s   r"   r&  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>  s    d.?.?r.J.J r$   )r,   r-   r   r	   r&   r   )r   r*  re   s   `@@r"   test_inf_compare_arrayz*TestArrayAssertLess.test_inf_compare_array  s    Hc3'((xn&H&H&H&H&H&HIIIn&H&H&H&H&H&HIIIn&I&I&I&I&I&IJJJn&J&J&J&J&J&JKKKn&J&J&J&J&J&JKKK4%#####r$   c                 B   t          j        d          }t          j        d          }|                     ||           t	          j        t                    5  |                     ||d           ddd           n# 1 swxY w Y   t          j        ||j                  }|                     ||           t	          j        t                    5  |                     ||	                    t           j
                  d           ddd           dS # 1 swxY w Y   dS z)Test the behavior of the `strict` option.r3   rF   Tr   N)r,   zerosrx  r   r_   r`   r&   broadcast_tor  astyper   r  s      r"   test_strictzTestArrayAssertLess.test_strict  s   HQKKGBKK!Q]>** 	1 	1a4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1OAqw''!Q]>** 	D 	Da"*!5!5dCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds$   A==BB6DDDN)rC   rD   rE   rJ   r  r  r  r  r  r  r  r  r  r  r  rF   r$   r"   r  r  $  s        . . .$ $ $*G G GG G G G G G($ $ $:$ $ $>M M MG G G"O O O	$ 	$ 	$
D 
D 
D 
D 
Dr$   r  c                   &    e Zd Zd Zd Zd Zd ZdS )	TestWarnsc                 T   d }t           j        d         j        d d          }t          t	          t
          |          d           t           j        d         j        }t          t          t          |           t          t          d d          d           t          ||d           d S )Nc                  .    t          j        d           dS )Nyor3   warningswarnrF   r$   r"   fzTestWarns.test_warn.<locals>.f  s    M$1r$   r  r3   c                     | S r   rF   re   s    r"   r&  z%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_warnzTestWarns.test_warn  s    	 	 	 Z08;\+q111555J/7n&8!<<<'Q77;;; 	^]E	G 	G 	G 	G 	Gr$   c                 D   t           j        d         j        d d          }t          t                    5  t          j        d           d d d            n# 1 swxY w Y   t           j        d         j        }d }t          t          |           t          ||d           d S )Nr  r  c                  |    t                      5  t          j        d           d d d            d S # 1 swxY w Y   d S Nr  )r   r  r  rF   r$   r"   no_warningsz3TestWarns.test_context_manager.<locals>.no_warnings  s    #%% $ $d###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   155r  )
r  r  r  r
   r  r  r  r	   r&   r   )r   r  r  r  s       r"   test_context_managerzTestWarns.test_context_manager  s    Z08;+&& 	  	 M$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 J/7	$ 	$ 	$ 	nk222^]E	G 	G 	G 	G 	Gs   AAAc                    dd}t          t          |d          dk    sJ t          j        t                    5 }t          t          d          5  t          j        dt                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d	t          |          v sJ d
t          |          v sJ t          j        t                    5 }t          t          d          5  t          j        dt                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d	t          |          v sJ d
t          |          vsJ d S )Nr   r)   c                 4    t          j        d           | |z   S r  r  )r    r!   s     r"   r  zTestWarns.test_args.<locals>.f  s    M$q5Lr$   rw  r!   Ar]   Br
   zpytest.warns)wrong)r   r)   )r
   r  r_   r`   RuntimeErrorr  r  ra   )r   r  excs      r"   	test_argszTestWarns.test_args  sV   	 	 	 	 Kb111R7777]<(( 	0Ck555 0 0c;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 S))))S))))]<(( 	0Ck555 0 0c;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 S))))SXX------sk   BA9-B9A=	=B A=	BBBD/1DD/D	D/D	 D//D36D3c                    d }d}t          j                    5  t          j        dt                     	 t	          t
          |           d}n# t          $ r Y nw xY wd d d            n# 1 swxY w Y   |rt          d          d S )Nc                  :    t          j        dt                     d S r  )r  r  DeprecationWarningrF   r$   r"   r  z,TestWarns.test_warn_wrong_warning.<locals>.f$  s    M$ 233333r$   FerrorTz#wrong warning caught by assert_warn)r  catch_warningssimplefilterr
  r
   r  r&   )r   r  faileds      r"   test_warn_wrong_warningz!TestWarns.test_warn_wrong_warning#  s    	4 	4 	4 $&& 	 	!'+=>>>[!,,,%   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  	H !FGGG	H 	Hs4   A)AA)
AA)AA))A-0A-N)rC   rD   rE   r  r  r  r  rF   r$   r"   r  r    s[        G G G G G G. . .*H H H H Hr$   r  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestAssertAllclosec                    d}d}t          ||d           t          t          t           ||           d}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   d}d}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   d	}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   t          j        ||||g          }t          j        ||||g          }t          ||d           t          t          t           ||           |d
z  |d<   t          ||           t          t          t           ||d           t          ddd           t          t          t           ddd           t          j        ||||g          }t          j        ||||g          }d}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )NgMbP?g&.>r)   atolzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 999999.r]   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&   r_   r`   rc   rd   r,   r-   )r   re   rf   ri   rJ  r    r!   rS   s           r"   r  zTestAssertAllclose.test_simple7  s   11%%%%noq!<<<L ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" H ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"G ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" HaAq\""HaAq\""11%%%%noq!<<<X"1noq!$GGGG2C((((nor13GGGGHaAq\""HaAq\""H ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"G ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sZ   "A??BB;CCCD//D36D3I::I>I>4KKKc                     t          j        t          j        t           j                  j        gt           j                  }t          ||           d S )Nr:   )r,   r-   iinfoint_minr   r=   s     r"   test_min_intzTestAssertAllclose.test_min_intl  s@    Hbhrw''+,BG<<<1r$   c                    t          j        g d          }t          j        g d          }d}t          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )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.5r]   r,   r-   r_   r`   r&   rc   rd   r   r   s       r"   test_report_fail_percentagez.TestAssertAllclose.test_report_fail_percentageq  s    H\\\""H\\\""H ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"   A::A>A>c                     t          j        t           j        g          }t          j        t           j        g          }t          ||d           d S )NT	equal_nan)r,   r-   ro   r   r   s      r"   test_equal_nanz!TestAssertAllclose.test_equal_nan{  sC    HbfXHbfX1------r$   c                     t          j        t           j        g          }t          j        t           j        g          }t          t          t
          ||d           d S )NFr   )r,   r-   ro   r	   r&   r   r   s      r"   test_not_equal_nanz%TestAssertAllclose.test_not_equal_nan  sG    HbfXHbfXnoq!uMMMMMMr$   c                    t          j        t           j        g          }t          j        t           j        g          }t          ||           t	          ||           t          ||           t          ||           d S r   )r,   r-   ro   r   r   r   r   r   s      r"   test_equal_nan_defaultz)TestAssertAllclose.test_equal_nan_default  sp     HbfXHbfX1a   !!Q'''!Q1r$   c                    t          j        ddg          }t          j        ddg          }d}t          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r)   r*   z-Max relative difference among violations: 0.5r]   r  r   s       r"   test_report_max_relative_errorz1TestAssertAllclose.test_report_max_relative_error  s    HaVHaVF]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"r  c                 X    t          j        g dgd          }t          ||           d S )N)r)   r*   r3   r   zm8[ns]r:   )r,   r-   r   r=   s     r"   test_timedeltaz!TestAssertAllclose.test_timedelta  s6    H&&&'x8881r$   c                    t          j        g dd          }t          j        g dd          }d}t          j        t          t          j        |                    5  t          ||d           d	d	d	           d	S # 1 swxY w Y   d	S )
zUCheck the message is formatted correctly when overflow can occur
           (gh21768))r   r)   r  uint8r:   )r4   r4   r4   z+Max absolute difference among violations: 4r]   r3   r  N)r,   asarrayr_   r`   r&   rc   rd   r   r  s       r"   test_error_message_unsignedz.TestAssertAllclose.test_error_message_unsigned  s     Jyyy000Jyyy000D]><1H1HIII 	* 	*Aqq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s    B  BBc                    t          j        d          }t          j        d          }t          ||           t          j        t
                    5  t          ||d           ddd           n# 1 swxY w Y   t          ||           t          j        t
                    5  t          ||                    t           j                  d           ddd           dS # 1 swxY w Y   dS r  )r,   rx  r   r_   r`   r&   r  r   r  s      r"   r  zTestAssertAllclose.test_strict  sa   GAJJGBKK1]>** 	/ 	/Aq....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/1]>** 	B 	BAqxx
33DAAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs$   A11A58A5%0C""C&)C&N)rC   rD   rE   r  r  r  r"  r$  r&  r(  r*  r.  r  rF   r$   r"   r  r  5  s        3" 3" 3"j  
" " ". . .N N N
	 	 	" " "  
* * *	B 	B 	B 	B 	Br$   r  c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestArrayAlmostEqualNulpc                 v   d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          |||           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||           d S Nr  rw  2   r:   r   r   	r,   linspacefloat64r_finfor;   epsr   epsnegr   nulpre   r;  rf   r<  s         r"   test_float64_passz*TestArrayAlmostEqualNulp.test_float64_pass  s     KR2:666EE1"a%L hqw##d
2&q!T222 !'"")&b  &q!T22222r$   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          t          t          |||           t          j        |j                  j
        }|||z  |z  dz  z
  }t          t          t          |||           d S r3  r,   r7  r8  r9  r:  r;   r;  r	   r&   r   r<  r=  s         r"   test_float64_failz*TestArrayAlmostEqualNulp.test_float64_fail      KR2:666EE1"a%Lhqw##d
2n&DD	" 	" 	" !'"")&b  n&DD	" 	" 	" 	" 	"r$   c                 d   t          j        d          }t          j        t           j        t           j                                      t           j                  }||z  }|                    t           j                  }|                    t           j                  }t          ||d           d S )Nl    r:   r   )r,   uint64r-   ro   r8  r   r   )r   offsetnan1_i64nan2_i64nan1_f64nan2_f64s         r"   test_float64_ignore_nanz0TestArrayAlmostEqualNulp.test_float64_ignore_nan  s     :&&8BF"*555::29EEf$==,,==,,Xx33333r$   c                 v   d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          |||           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||           d S r3  	r,   r7  r   r9  r:  r;   r;  r   r<  r=  s         r"   test_float32_passz*TestArrayAlmostEqualNulp.test_float32_pass  s    KR2:666EE1"a%Lhqw##d
2&q!T222!'"")&b  &q!T22222r$   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          t          t          |||           t          j        |j                  j
        }|||z  |z  dz  z
  }t          t          t          |||           d S r3  r,   r7  r   r9  r:  r;   r;  r	   r&   r   r<  r=  s         r"   test_float32_failz*TestArrayAlmostEqualNulp.test_float32_fail  rC  r$   c                 d   t          j        d          }t          j        t           j        t           j                                      t           j                  }||z  }|                    t           j                  }|                    t           j                  }t          ||d           d S )Ni  r:   r   )r,   uint32r-   ro   r   r   r   )r   rF  nan1_i32nan2_i32nan1_f32nan2_f32s         r"   test_float32_ignore_nanz0TestArrayAlmostEqualNulp.test_float32_ignore_nan  s     6""8BF"*555::29EEf$==,,==,,Xx33333r$   c                 v   d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          |||           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||           d S Nr  r4   r   r:   r   )	r,   r7  float16r9  r:  r;   r;  r   r<  r=  s         r"   test_float16_passz*TestArrayAlmostEqualNulp.test_float16_pass  s    KAr444EE1"a%Lhqw##d
2&q!T222!'"")&b  &q!T22222r$   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          t          t          |||           t          j        |j                  j
        }|||z  |z  dz  z
  }t          t          t          |||           d S rZ  )r,   r7  r\  r9  r:  r;   r;  r	   r&   r   r<  r=  s         r"   test_float16_failz*TestArrayAlmostEqualNulp.test_float16_fail  s    KAr444EE1"a%Lhqw##d
2n&DD	" 	" 	" !'"")&b  n&DD	" 	" 	" 	" 	"r$   c                 d   t          j        d          }t          j        t           j        t           j                                      t           j                  }||z  }|                    t           j                  }|                    t           j                  }t          ||d           d S )N   r:   r   )r,   uint16r-   ro   r\  r   r   )r   rF  nan1_i16nan2_i16nan1_f16nan2_f16s         r"   test_float16_ignore_nanz0TestArrayAlmostEqualNulp.test_float16_ignore_nan-  s     48BF"*555::29EEf$==,,==,,Xx33333r$   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }||dz  z   }t          j        |j                  j        }|||z  |z  dz  z   }t          |||dz  z   |           t          |||dz  z   |           |||z  |z  d	z  z   }t          |||dz  z   |           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||dz  z   |           t          |||dz  z   |           |||z  |z  d	z  z
  }t          |||dz  z   |           d S 
Nr  r4  rw  r5  r:   r                 ?r   r~   r6  r   r>  re   xir;  rf   r<  s          r"   test_complex128_passz-TestArrayAlmostEqualNulp.test_complex128_pass8  sn   KR2:666EE1"a%L2Xhqw##d
2&r1qt8T:::&r1qt8T::: #d
2&r1qt8T:::!'"")&b  &r1qt8T:::&r1qt8T:::&b  &r1qt8T:::::r$   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }||dz  z   }t          j        |j                  j        }|||z  |z  dz  z   }t          t          t          |||dz  z   |           t          t          t          |||dz  z   |           |||z  |z  z   }t          t          t          |||dz  z   |           t          j        |j                  j
        }|||z  |z  dz  z
  }t          t          t          |||dz  z   |           t          t          t          |||dz  z   |           |||z  |z  z
  }t          t          t          |||dz  z   |           d S 	Nr  r4  rw  r5  r:   r   rj  r   rA  rk  s          r"   test_complex128_failz-TestArrayAlmostEqualNulp.test_complex128_failO  s   KR2:666EE1"a%L2Xhqw##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                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }||dz  z   }t          j        |j                  j        }|||z  |z  dz  z   }t          |||dz  z   |           t          |||dz  z   |           |||z  |z  d	z  z   }t          |||dz  z   |           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||dz  z   |           t          |||dz  z   |           |||z  |z  d	z  z
  }t          |||dz  z   |           d S ri  rM  rk  s          r"   test_complex64_passz,TestArrayAlmostEqualNulp.test_complex64_passl  sl   KR2:666EE1"a%L2Xhqw##d
2&r1qt8T:::&r1qt8T:::#d
2&r1qt8T:::!'"")&b  &r1qt8T:::&r1qt8T:::&b  &r1qt8T:::::r$   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }||dz  z   }t          j        |j                  j        }|||z  |z  dz  z   }t          t          t          |||dz  z   |           t          t          t          |||dz  z   |           |||z  |z  z   }t          t          t          |||dz  z   |           t          j        |j                  j
        }|||z  |z  dz  z
  }t          t          t          |||dz  z   |           t          t          t          |||dz  z   |           |||z  |z  z
  }t          t          t          |||dz  z   |           d S ro  rP  rk  s          r"   test_complex64_failz,TestArrayAlmostEqualNulp.test_complex64_fail  s   KR2:666EE1"a%L2Xhqw##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$   N)rC   rD   rE   r?  rB  rK  rN  rQ  rX  r]  r_  rg  rm  rp  rr  rt  rF   r$   r"   r1  r1    s        3 3 3$" " " 	4 	4 	43 3 3" " " 	4 	4 	43 3 3" " " 	4 	4 	4; ; ;.* * *:; ; ;** * * * *r$   r1  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestULPc                 h    t           j                            d          }t          ||d           d S )Nr   r   maxulp)r,   randomrandnr   )r   re   s     r"   
test_equalzTestULP.test_equal  s0    IOOBQ!,,,,,,r$   c                 \   t          j        d                              t           j                  }|dt           j                            d                              t           j                  z  z  }t          j        t           j                  j        }t          |||z   d           d S )Nr   {Gz?rw  rx  )	r,   rx  r  r   rz  r{  r:  r;  r   r   re   r;  s      r"   test_singlezTestULP.test_single  s    GBKKrz**	TBIOOB''..rz::::hrz""&Q#b111111r$   c                 \   t          j        d                              t           j                  }|dt           j                            d                              t           j                  z  z  }t          j        t           j                  j        }t          |||z   d           d S )Nr   r~     rx  )	r,   rx  r  r8  rz  r{  r:  r;  r   r  s      r"   test_doublezTestULP.test_double  s    GBKKrz**	TBIOOB''..rz::::hrz""&Q#c222222r$   c                    t           j        t           j        fD ]r}t          j        t           j        g                              |          }t          j        t          j        |          j        g          }t          ||d           sd S )Nr  rx  )	r,   r   r8  r-   r   r  r:  maxr   )r   dtr   bigs       r"   r4  zTestULP.test_inf  sz    :rz* 	7 	7B(BF8$$++B//C(BHRLL,-..C c#66666	7 	7r$   c                    t           j        t           j        fD ]}|t           j        k    rdndt          j        t           j        g                              |          t          j        t           j        g                              |          t          j        t          j        |          j        g          t          j        t          j        |          j	        g          t          j        dg                              |          t          j        dg                              |          t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd	           d S )
Ng    .Ag   mBr   g       c                  (    t                     S Nrx  r   )r   ry  ro   s   r"   r&  z"TestULP.test_nan.<locals>.<lambda>  !    "6sC>D#F #F #F r$   c                  (    t                     S r  r  )r  ry  ro   s   r"   r&  z"TestULP.test_nan.<locals>.<lambda>  r  r$   c                  (    t                     S r  r  )ry  ro   tinys   r"   r&  z"TestULP.test_nan.<locals>.<lambda>  !    "6sD>D#F #F #F r$   c                  (    t                     S r  r  )ry  ro   zeros   r"   r&  z"TestULP.test_nan.<locals>.<lambda>  r  r$   c                  (    t                     S r  r  )ry  ro   nzeros   r"   r&  z"TestULP.test_nan.<locals>.<lambda>  s!    "6sE>D#F #F #F r$   )r,   r   r8  r-   r   r  ro   r:  r  r  r	   r&   )	r   r  r  r   ry  ro   r  r  r  s	     @@@@@@@r"   r.  zTestULP.test_nan  s5   :rz* 	G 	GBRZ(BF8$$++B//C(BF8$$++B//C(BHRLL,-..C8RXb\\./00D8SE??))"--DHdV$$++B//E.F F F F F FG G G .F F F F F FG G G .F F F F F FG G G .F F F F F FG G G .F F F F F FG G G G/	G 	Gr$   N)rC   rD   rE   r|  r  r  r4  r.  rF   r$   r"   rv  rv    sd        - - -2 2 23 3 37 7 7G G G G Gr$   rv  c                       e Zd Zd Zd ZdS )TestStringEqualc                 <   t          dd           t          dd           t          j        t                    5 }t          dd           d d d            n# 1 swxY w Y   t	          |j                  }t          |d           t          t          d            d S )Nhellozhello
multilinezfoo
barz	hello
barz%Differences in strings:
- foo
+ helloc                  "    t          dd          S )NrT   r  r   rF   r$   r"   r&  z-TestStringEqual.test_simple.<locals>.<lambda>  s    1%AA r$   )r   r_   r`   r&   ra   rb   r   r	   )r   rg   rh   s      r"   r  zTestStringEqual.test_simple  s    GW---.0BCCC]>** 	:h
L999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:(.!!SCDDDnAA	C 	C 	C 	C 	Cs   AAAc                 R    t          dd           t          t          d            d S )Nza+*bc                  "    t          dd          S )Naaaza+br  rF   r$   r"   r&  z,TestStringEqual.test_regex.<locals>.<lambda>  s    1%?? r$   )r   r	   r&   rA   s    r"   
test_regexzTestStringEqual.test_regex  s;    FF+++n??	A 	A 	A 	A 	Ar$   N)rC   rD   rE   r  r  rF   r$   r"   r  r    s:        
C 
C 
CA A A A Ar$   r  c                     	 | j         }n# t          $ r i }Y nw xY wt          |          }d|v r|dz  }t          ||           d S )Nversionr)   )__warningregistry__AttributeErrorlenr   )modn_in_context	mod_warns	num_warnss       r"   assert_warn_len_equalr    sp    
+		    			 III 	Q	L)))))s   
 c                       G d d          }  |             }t          |d            G d d          }  |             }t          |d           d S )Nc                       e Zd ZdS )/test_warn_len_equal_call_scenarios.<locals>.modN)rC   rD   rE   rF   r$   r"   r  r    s        r$   r  r   )r  r  c                       e Zd Zd ZdS )r  c                     ddd| _         d S )Nr)   r*   warning1warning2)r  rA   s    r"   __init__z8test_warn_len_equal_call_scenarios.<locals>.mod.__init__  s    4545(7 (7D$$$r$   N)rC   rD   rE   r  rF   r$   r"   r  z/test_warn_len_equal_call_scenarios.<locals>.mod  s#        	7 	7 	7 	7 	7r$   r*   )r  )r  mod_insts     r"   "test_warn_len_equal_call_scenariosr     s            suuHh'(* * * *
7 7 7 7 7 7 7 7
 suuHh'(* * * * * *r$   c                      t           j        t                   } 	 | j                                         n# t
          $ r Y nw xY w| S r   )r  r  rC   r  clearr  my_mods    r"   _get_fresh_modr    sT    ["F"((****    	 Ms   3 
A A c                  z   t                      } t          t          | di           i            t          | g          5  t	          j        d           t	          j        d           d d d            n# 1 swxY w Y   t          | j        i            t                      5  t	          j        d           t	          j        d           d d d            n# 1 swxY w Y   t          | d           ddd| _        t          | g          5  t	          j        d           t	          j        d	           d d d            n# 1 swxY w Y   t          | d           t                      5  t	          j        d           t	          j        d	           d d d            n# 1 swxY w Y   t          | d           d S )
Nr  )r  ignoreSome warningr   r)   r*   r  zAnother warning)	r  r   getattrr   r  r  r  r  r  r  s    r"   test_clear_and_catch_warningsr  (  s   F!6;;R@@@	!6(	3	3	3 & &h'''n%%%& & & & & & & & & & & & & & & +R000 
"	#	# & &h'''n%%%& & & & & & & & & & & & & & & &!$$$ /0./"1 "1F 
"6(	3	3	3 ) )h''''((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) &!$$$ 
"	#	# ) )h''''((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) &!$$$$$sG   )A44A8;A8")CCC)EE	E+)F  F$'F$c                  n   t                      } t          t          | di           i            d }t          | d           t	                      5 }|                    t                     |                    t          j	        j
                   t          j        d            |             d d d            n# 1 swxY w Y   t          t          |j                  d           t          |j        d         j        j        d         d           t          | d           t	                      }|                    |            |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           |                    |            |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           t	                      5  t          j        d           t          j        d           d d d            n# 1 swxY w Y   t          | d           d S )Nr  c                  :    d } t          j        | ddg           d S )Nc                 2    t          j        dd           | S )NzSome warning 2r*   
stacklevelr  arrs    r"   r  zFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warnP  s    M*q9999Jr$   r   r,   apply_along_axisr  s    r"   warn_other_modulez8test_suppress_warnings_module.<locals>.warn_other_moduleM  0    	 	 	 	D!aS)))))r$   r   moduler  r)   r  )r  r   r  r  r   recordr  filterr,   lib_shape_base_implr  r  r  logmessager   r  )r  r  sups      r"   test_suppress_warnings_moduler  H  s   F!6;;R@@@* * * &!$$$			 

; 	

"&1
222n%%%               SWq!!!#(+^<<<&!$$$


CJJfJ	 & &n%%%& & & & & & & & & & & & & & &&!$$$JJfJ	 & &n%%%& & & & & & & & & & & & & & &&!$$$ 
		 & &h'''n%%%& & & & & & & & & & & & & & & &!$$$$$sI   AB99B= B=E((E,/E,F<<G G %)HH!Hc                  X   t                      } t          t          | di           i            t                      5 }|                    t
                     t          j        d           d d d            n# 1 swxY w Y   t          | d           t                      }|                    t
                     |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           |                    |            |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           t                      5  t          j	        d           t          j        d           d d d            n# 1 swxY w Y   t          | d           d S )Nr  r  r   r  r  )
r  r   r  r   r  r  r  r  r  r  )r  r  s     r"   test_suppress_warnings_typer  v  s   F!6;;R@@@ 
		 &

;n%%%& & & & & & & & & & & & & & & &!$$$


CJJ{	 & &n%%%& & & & & & & & & & & & & & &&!$$$JJfJ	 & &n%%%& & & & & & & & & & & & & & &&!$$$ 
		 & &h'''n%%%& & & & & & & & & & & & & & & &!$$$$$sG   /A77A;>A;<CC!$C!D11D58D5)FFFc                  j   t                      } |                     t                     | d             }t          j        d          5 }t          j        d            |t                      |t                     t          t          |          d           d d d            d S # 1 swxY w Y   d S )Nc                 0    t          j        d|            d S )Nr  r  )categorys    r"   r  z7test_suppress_warnings_decorate_no_record.<locals>.warn  s    nh/////r$   T)r  alwaysr)   )	r   r  r  r  r  r  RuntimeWarningr   r  )r  r  ws      r"   )test_suppress_warnings_decorate_no_recordr    s    


CJJ{0 0 	S0 
	 	-	-	-  h'''[^SVVQ	                                   s   	AB((B,/B,c                      t                      } |                                 }| 5  |                     d          }|                     d           t          j        d           t          j        d           t          j        d           t          t          | j                  d           t          t          |          d           t          t          |          d           t          |d         j        j	        d         d           d d d            n# 1 swxY w Y   | 5  |                     d          }|                     d           t          j        d           t          j        d           t          j        d           t          t          | j                  d           t          t          |          d           t          t          |          d           t          |d         j        j	        d         d           d d d            n# 1 swxY w Y   t                      5 } |                                  t                      5 }|                    d           t          j        d           t          j        d           t          t          |j                  d           d d d            n# 1 swxY w Y   t          t          | j                  d           d d d            d S # 1 swxY w Y   d S )NzSome other warning 2)r  r  Some other warningr*   r)   r   )
r   r  r  r  r  r   r  r  r  r   )r  log1log2sup2s       r"   test_suppress_warnings_recordr    s   


C::<<D	 
F 
Fzz"8z99

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

>
***n%%%*+++,---S\\1%%%SYY"""SYY"""T!W_)!,.DEEE
F 
F 
F 
F 
F 
F 
F 
F 
F 
F 
F 
F 
F 
F 
F 
		 &

   	+DKKK///M.)))M.///TX***		+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+
 	S\\1%%%& & & & & & & & & & & & & & & & & &s\   C+DD #D )C+H  H$'H$9#LA!K	=L	K	LK	%LL
Lc                     d } t                      5 }|                                 t          d          5  t          d          D ]}t          j        d           	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            n# 1 swxY w Y   t                      5 }|                                 t          d          5  t          d          D ]*}t          j        d           t          j        d           +	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            n# 1 swxY w Y   t                      5 }|                                 t          d          5  t          d          D ]4}t          j        d           t          j        d            |              5	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            n# 1 swxY w Y   t                      5 }|                                 t          d          5  t          d          D ]4}t          j        d           t          j        d            |              5	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            d S # 1 swxY w Y   d S )	Nc                  :    d } t          j        | ddg           d S )Nc                 2    t          j        dd           | S )Nr  r*   r  r  r  s    r"   r  zJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warn  s    M.Q7777Jr$   r   r  r  s    r"   r  z<test_suppress_warnings_forwarding.<locals>.warn_other_module  r  r$   r  r*   r  locationr  oncer  )r   r  ranger  r  r   r  r  )r  r  is      r"   !test_suppress_warnings_forwardingr    s   * * * 
		 &

x(( 	. 	.1XX . .n----.	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	S\\1%%%& & & & & & & & & & & & & & & 
		 &

z** 	. 	.1XX . .n---n----.	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
 	S\\1%%%& & & & & & & & & & & & & & & 
		 &

x(( 	$ 	$1XX $ $n---n---!!####$	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	S\\1%%%& & & & & & & & & & & & & & & 
		 &

v&& 	$ 	$1XX $ $n---2333!!####$	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	S\\1%%%& & & & & & & & & & & & & & & & & &s   $B#'A*B#*A.	.B#1A.	2%B##B'*B'<$E! ;D(E!(D,	,E!/D,	0%E!!E%(E%:$H)AG0$H)0G4	4H)7G4	8%H))H-0H-$K2&AJ8,K28J<	<K2?J<	 %K22K69K6c                  2   t                      5 } t          j                            | d          }t	          |d          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          j                            |                       d}	 t                      5 } t                      # 1 swxY w Y   n# t          $ r d}Y nw xY wt          |           t          t          j                            |                       d S )Ntmpr  FT)r   ospathjoinopenr   isdir
ValueError)tdirfpathraiseds      r"   test_tempdirr    s   	 dT5))% 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               d###$$$FYY 	$,,	 	 	 	 	 	 	 	 	   FOOOd###$$$$$se   1A% AA%A	A%A	A%%A),A) C	 .B==CC	 CC	 	CCc                     t                      5 } t          | d          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          j                            |                       d}	 t                      5 } t                      # 1 swxY w Y   n# t          $ r d}Y nw xY wt          |           t          t          j                            |                       d S )Nr  FT)r   r  r   r  r  isfiler  )r  r  s     r"   test_temppathr  	  s   	 u% 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               u%%%&&&FZZ 	5,,	 	 	 	 	 	 	 	 	   FOOOu%%%&&&&&s\   A.A2	A2	AA	A	 B) BB!!B) $B!%B) )B87B8c                   *    e Zd Zej        e          fZdS )my_cacwN)rC   rD   rE   r  r  class_modulesrF   r$   r"   r  r    s        [*,MMMr$   r  c                      t                      } t                      5  t          j        d           t          j        d           d d d            n# 1 swxY w Y   t          | j        i            d S )Nr  r  )r  r  r  r  r  r   r  r  s    r"   %test_clear_and_catch_warnings_inheritr    s    F	 & &h'''n%%%& & & & & & & & & & & & & & & +R00000s   )AAAzPython lacks refcounts)reasonc                   H    e Zd ZdZd Zd Zej        j        d             Z	dS )TestAssertNoGcCyclesz Test assert_no_gc_cycles c                     d }t                      5   |             d d d            n# 1 swxY w Y   t          |           d S )Nc                  4    g } |                      g            | S r   appendr  s    r"   no_cyclez2TestAssertNoGcCycles.test_passes.<locals>.no_cycle,  s    AHHRLLLHr$   )r   )r   r  s     r"   test_passesz TestAssertNoGcCycles.test_passes+  s    	 	 	
 !"" 	 	HJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	H%%%%%s   )--c                 <   d }t          t                    5  t                      5   |             d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nc                  ^    g } |                      |            |                      |            | S r   r  )r    s    r"   
make_cyclez5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle7  s*    AHHQKKKHHQKKKHr$   )r	   r&   r   )r   r
  s     r"   test_assertsz!TestAssertNoGcCycles.test_asserts6  sd   	 	 	 >** 	 	$&&  
              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 >** 	, 	,
+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,sC   A>AA	AA	AAA4BBBc                 `    G fdd          	 t          j                               }	 t          t                    5  t	          d            ddd           n# 1 swxY w Y   n/# t
          $ r"  |            t          j        d            Y nw xY wd_        dS # d_        w xY w)z
        Test that in cases where the garbage cannot be collected, we raise an
        error, instead of hanging forever trying to clear it.
        c                   (    e Zd ZdZdZd Z fdZdS )<TestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDelz
            An object that not only contains a reference cycle, but creates new
            cycles whenever it's garbage-collected and its __del__ runs
            Tc                     | | _         d S r   )cyclerA   s    r"   r  zETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__R  s    !


r$   c                 <    d | _         j        r              d S d S r   )r  r
  )r   ReferenceCycleInDels    r"   __del__zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__U  s6    !
&1 * (')))))* *r$   N)rC   rD   rE   __doc__r
  r  r  )r  s   r"   r  r  K  sN          J" " "* * * * * * *r$   r  c                      d S r   rF   rF   r$   r"   r&  z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>c  s     r$   Nz*GC does not call __del__ on cyclic objectsF)	weakrefrefr	   r  r   r&   r_   skipr
  )r   r  r  s     @r"   
test_failszTestAssertNoGcCycles.test_failsD  s7   	* 	* 	* 	* 	* 	* 	* 	* 	* 	*&	3//1122A	"<00 6 6'5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 "    133?K LMMM #? .3***U*2222sR   B$ A, A A,  A$$A, 'A$(A, +B$ ,)BB$ BB$ $	B-N)
rC   rD   rE   r  r  r  r_   markslowr  rF   r$   r"   r  r  '  sY        $$	& 	& 	&, , , [(3 (3 (3 (3 (3r$   r  assert_funcc                 F    | dd            | dd           d}t          j        t          |          5   | dd           d d d            n# 1 swxY w Y   t          j        t          |          5   | dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5   | dd           d d d            n# 1 swxY w Y   t          j        t          |          5   | dd           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t          j        t
          |          5   | dd
            | ddd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr)   )actualdesiredzArrays are not...r]   r*   zUse of keyword argument...)re   r  )rf   z#...got multiple values for argumentr  )r_   r`   r&   warnsr
  ry   )r  assert_messagedep_messagetype_messages       r"   test_xy_renamer$  p  sI    K1Kq!$$$$(N	~^	<	<	<  Aq              	~^	<	<	< ) )1a(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) /K	(	<	<	< $ $a####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	(	<	<	<  A               9L
,)
=
=
=  
-	
6
6
6 AAqA                                s}   AAA6BBB8CCC8DDD:FE>2F>F	FF	FFF)Br  r  r  r   r_   r  rc   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   rH   r   r   r  r[  r  r  r  r  r1  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipifr  parametrizer$  rF   r$   r"   <module>r,     sg    



 				       				     + + + + + + + + +                                             +/ +/ +/ +/ +/ +/ +/ +/\\1 \1 \1 \1 \1\ \1 \1 \1~* * * * * * * *Z\) \) \) \) \) \) \) \)~u  u  u  u  u < u  u  u pP  P  P  P  P l P  P  P f(M (M (M (M (M (M (M (MVFD FD FD FD FD FD FD FDREH EH EH EH EH EH EH EHPB B B B B B B BDc* c* c* c* c* c* c* c*L5G 5G 5G 5G 5G 5G 5G 5GpA A A A A A A A(* * *.* * *8	 	 	% % %@+% +% +%\% % %8     %& %& %&P,& ,& ,&^% % %"' ' ' - - - - -& - - -
1 1 1 $-EFFE3 E3 E3 E3 E3 E3 E3 GFE3P );)B)D E E E E  r$   