
     h                     $   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	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mZ d dl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(ej)        *                    d           G d d                      Z+ G d d          Z, G d d          Z- G d d          Z. G d d          Z/ G d  d!          Z0d" Z1d# Z2d$ Z3d% Z4d& Z5d' Z6d( Z7d) Z8d* Z9d+ Z:d, Z; G d- d.e          Z<d/ Z=ej)        >                    e d0           G d1 d2                      Z?dS )3    N)assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_array_lessbuild_err_msgraises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_REFCOUNT)ARRAY_FUNCTION_ENABLEDc                   >    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      Z/var/www/html/Sam_Eipo/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,   Nr2   r    s      r$   test_array_diffshapez!_GenericTest.test_array_diffshape2   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_objarray9   s6    HaV6***Ar&   c                 6    |                      g dd           d S )Nr+   r,   r5   )r%   r!   s    r$   test_array_likesz_GenericTest.test_array_likes>   s"    I.....r&   N)__name__
__module____qualname__r%   r)   r0   r3   r7   r:   r@   rD    r&   r$   r   r      s             $ $ $  # # #  # # #  
/ / / / /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ej                            e d
          d             Zd Zd Zd Zd Zd Zd ZdS )TestArrayEqualc                     t           | _        d S r   )r   r   rC   s    r$   setup_methodzTestArrayEqual.setup_methodD   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>.fooI   s|    AAFF1IIIAAFF1IIIQ"""  A&&&&&r&   ?bhilqpBHILQPfdgFDGS1U1NrH   r!   rV   rT   s   `  r$   test_generic_rank1z!TestArrayEqual.test_generic_rank1G   f    	' 	' 	' 	' 	' ' 	 	ACFFFF  	 	ACFFFF	 	r&   c                 v   t          j        d          }t          j        d          }t          t          | j        ||           |}|                     ||           t          j        d          }t          j        d          }t          t          | j        ||           |}|                     ||           d S )Nl   Cj<T"3w-l   (M$c7uv+   
   )r.   r/   r
   r(   r   r!   xys      r$   test_0_ndim_arrayz TestArrayEqual.test_0_ndim_arrayZ   s    H9::H899nd&7A>>>!QHRLLHRLLnd&7A>>>!Qr&   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)r6   r,   r5   r+   r   rO   rS   s       r$   rV   z.TestArrayEqual.test_generic_rank3.<locals>.fook   s~    A&&AFF1IIIAAFF1IIIQ"""  A&&&&&r&   rW   rX   NrH   r[   s   `  r$   test_generic_rank3z!TestArrayEqual.test_generic_rank3i   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,   rB   N)r.   r/   nanr%   r)   r!   r"   r#   rU   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 )r9   floupifloupafloupipiN)r.   r/   r%   r)   rj   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,   rm   rn   r+   ro   N)	r.   rP   floatrR   r%   pytestr	   	TypeErrorr)   rj   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maskrx   rz   )TFFry   )r.   maMaskedArrayr/   ri   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 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   rH   r   s     r$   __ne__zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__   s    5=((r&   N)rE   rF   rG   r   r   rH   r&   r$   MyArrayr      s2        9 9 9) ) ) ) )r&   r         ?       @rx   )	r.   ndarrayr/   viewr   typer   r%   r)   r!   r   r"   r#   s       r$   test_subclass_that_overrides_eqz.TestArrayEqual.test_subclass_that_overrides_eq   s    
	) 	) 	) 	) 	)bj 	) 	) 	) Hb"X##G,,Hb"X##G,,Q!Vd###QQAQ"""Q"""""r&   zrequires __array_function__reasonc                     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)rE   rF   rG   r   rH   r&   r$   r   r      s#        & & & & &r&   r   r   r   rx   )	r.   r   r/   r   r
   rt   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   rB   )r+   gWw'&l7r5   )	rs   r	   r(   r.   errstatetestingr   r/   float32rC   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                 b    t          j        g d          }d}|                     ||           dS )z@Test comparing an array with a scalar when not all values equal.r   r   rx   r   Nr2   r    s      r$   test_array_vs_scalar_not_equalz-TestArrayEqual.test_array_vs_scalar_not_equal   s6    H\\\""Q"""""r&   c                     t          j        g d          }d}t          j        t                    5  t          ||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/   rs   r	   r(   r   r    s      r$   test_array_vs_scalar_strictz*TestArrayEqual.test_array_vs_scalar_strict   s    H\\\""]>** 	2 	2q!D1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AAAc                     t          j        g d          }t          j        g d          }t          ||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   sC    H\\\""H\\\""1a------r&   c                     t          j        g d          }t          j        g d          }t          j        t                    5  t          ||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\\\""]>** 	2 	2q!D1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A&&A*-A*N)rE   rF   rG   rL   r\   rd   rg   rk   rp   ru   r   r   rs   markskipifr   r   r   r   r   r   r   r   rH   r&   r$   rJ   rJ   B   s7       / / /  &       &# # #	# 	# 	#' ' '"	 	 	# # #* [""+H  J J# #J J#9 9 9  # # #2 2 2. . .2 2 2 2 2r&   rJ   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!   rb   rc   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_names  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   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_precision   sj    H44455H44455'1a&'R8887 	Qr&   N)rE   rF   rG   r   r   r   r   rH   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   rC   s    r$   rL   zTestEqual.setup_method.  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.   ri   r)   rC   s    r$   test_nan_itemszTestEqual.test_nan_items1  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)   rC   s    r$   test_inf_itemszTestEqual.test_inf_items7  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)   rC   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_itemsP  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)   rC   s    r$   test_non_numericzTestEqual.test_non_numerico  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.   ri   r)   r   rC   s    r$   test_complex_itemzTestEqual.test_complex_items  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)   r.   PZERONZEROrC   s    r$   test_negative_zerozTestEqual.test_negative_zeroz  s"    RXrx00000r&   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   ri   r   r)   ra   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)rE   rF   rG   rL   r   r   r   r   r   r   r   r   r  rH   r&   r$   r   r   ,  s        ) ) )( ( (/ / /

 
 
(@ @ @>* * *J J J1 1 1# # #) ) ) ) )r&   r   c                   8    e 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   rC   s    r$   rL   z!TestArrayAlmostEqual.setup_method  s    5r&   c                                            ddd           t          t           fd                                 dgdgd           t          t           fd           d S )N?        r   decimalc                  4                          ddd          S Ng      ?r  r   r	  r   rC   s   r$   <lambda>z5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>  s    $"3"3Ca"3"H"H r&   c                  8                          dgdgd          S r  r   rC   s   r$   r  z5TestArrayAlmostEqual.test_closeness.<locals>.<lambda>  s     $"3"3SEC5!"3"L"L r&   r   r
   r(   rC   s   `r$   test_closenessz#TestArrayAlmostEqual.test_closeness  s     	(C333nHHHH	J 	J 	J 	8*seQ777nLLLL	N 	N 	N 	N 	Nr&   c                      t          j        dg          t          j        dg                               d                                d           t          t           fd           d S )NgeH@gwH@r5   r	  r6   c                  4                          d          S )N   r	  r   ra   s   r$   r  z2TestArrayAlmostEqual.test_simple.<locals>.<lambda>  s    ))!Q):: r&   r.   r/   r   r
   r(   ra   s   `@@r$   test_simplez TestArrayAlmostEqual.test_simple  s    Hi[!!Hi[!!!Q***!Q***n::::::	< 	< 	< 	< 	<r&   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$   r  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>      ))$55 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/   ri   r   r   r
   r(   r!   r  r  r  s   `@@@r$   test_nanzTestArrayAlmostEqual.test_nan  s    x!!x}}x!!$%%%n555555	7 	7 	7n555555	7 	7 	7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<   t	          t
           fd           t           j         d<   t	          t
           fd           d S )Nr   r   rx   ry   )r   r   c                  0                                    S r   r   r"   r#   r!   s   r$   r  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>      ))!Q// r&   c                  0                                    S r   r   r%  s   r$   r  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>  r&  r&   )r.   r/   rR   r   r
   r(   r    s   `@@r$   test_infzTestArrayAlmostEqual.test_inf  s    Hr2hR)**FFHH&$n//////	1 	1 	16'$n//////	1 	1 	1 	1 	1r&   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   rx   ry   r  FTg      @r{   rw   )TTTr   )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                      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   superr   r   r.   r   r!   r   	__class__s     r$   r   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  )    ww~~e,,11"*===r&   c                     t                                          |                              t          j                  S r   r2  __lt__r   r.   r   r3  s     r$   r8  zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__  r5  r&   c                     t           r   NotImplementedErrorr   s      r$   r   zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all      ))r&   rE   rF   rG   r   r8  r   __classcell__r4  s   @r$   r   r/    `        > > > > >> > > > >* * * * * * *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_bool  m    
	* 	* 	* 	* 	*bj 	* 	* 	* Hb"X##G,,!Qr&   N)
rE   rF   rG   rL   r  r  r"  r(  r,  rC  rH   r&   r$   r  r    s        6 6 6N N N"< < <
7 
7 
71 1 1  4         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   rC   s    r$   rL   zTestAlmostEqual.setup_method      /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 r  r   rC   s   r$   r  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//S!/DD r&   c                  8                          dgdgd          S r  r   rC   s   r$   r  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s     d//ua/HH r&   r  rC   s   `r$   r  zTestAlmostEqual.test_closeness  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.   ri   rC   s   r$   r  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//:: r&   c                  X                          t          j        t          j                  S r   )r   r.   ri   r   rC   s   r$   r  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//?? r&   c                  X                          t          j        t          j                  S r   )r   r.   r   ri   rC   s   r$   r  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>
  rP  r&   )r   r.   ri   r
   r(   rC   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   rC   s   r$   r  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  rN  r&   c                  Z                          t          j         t          j                  S r   rU  rC   s   r$   r  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  s    d//@@ r&   )r   r.   r   r
   r(   rC   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)   rC   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.   ri   r   r)   rC   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!   rb   zrc   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          }t          j        t                    5 }|                     ||d           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d         d           t          |d	         d
           t          |d         d           t          |d         d           t          |d         d           t          j        t                    5 }|                     ||           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d         d           t          |d	         d
           t          |d         d           t          |d         d           t          |d         d           t          j        t           j
        dg          }t          j        t           j
        dg          }t          j        t                    5 }|                     ||           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d         d           t          |d	         d           t          |d         d           t          |d         d           t          |d         d           t          j        ddg          }t          j        ddg          }t          j        t                    5 }|                     ||           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d         d           t          |d	         d           t          |d         d           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      r	  N
r5   z!Mismatched elements: 3 / 3 (100%)r6   zMax absolute difference: 1.e-05r  z'Max relative difference: 3.33328889e-06   z8 x: array([1.00000000001, 2.00000000002, 3.00003      ])   z8 y: array([1.00000000002, 2.00000000003, 3.00004      ])z"Mismatched elements: 1 / 3 (33.3%)z& x: array([1.     , 2.     , 3.00003])z& y: array([1.     , 2.     , 3.00004])r   r+   z Mismatched elements: 1 / 2 (50%)Max absolute difference: 1.Max relative difference: 1.z x: array([inf,  0.])z y: array([inf,  1.])r,   z!Mismatched elements: 2 / 2 (100%)zMax absolute difference: 2zMax relative difference: inf)r.   r/   rs   r	   r(   r   strvaluesplitr   r   r!   rb   rc   exc_infomsgss        r$   test_error_messagez"TestAlmostEqual.test_error_message'  sw    H<<<==H<<<== ]>** 	0haB///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	08>""((..T!WABBBT!W?@@@T!WGHHHGF	H 	H 	H 	GF	H 	H 	H ]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$8>""((..T!WBCCCT!W?@@@T!WGHHHT!WFGGGT!WFGGG Hbfa[!!Hbfa[!!]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$8>""((..T!W@AAAT!W;<<<T!W;<<<T!W5666T!W5666 HaVHaV]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$8>""((..T!WABBBT!W:;;;T!W<=====sH   A++A/2A/$EEE I##I'*I'M++M/2M/c                    d}t          j        d          }t          j        t                    5 }|                     ||           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d         d           t          |d         d           t          |d	         d
           d}t          j        d          }t          j        t                    5 }|                     ||           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d         d           t          |d         d           t          |d	         d           dS )zHCheck the message is formatted correctly when either x or y is a scalar.r,      Nr_  r5   z#Mismatched elements: 20 / 20 (100%)r6   rb  r  rc  Max relative difference: 0.5)
r.   onesrs   r	   r(   r   rd  re  rf  r   rg  s        r$   test_error_message_2z$TestAlmostEqual.test_error_message_2]  s   GBKK]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$8>""((..T!WCDDDT!W;<<<T!W;<<<GBKK]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$8>""((..T!WCDDDT!W;<<<T!W<=====s#   AAA6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 )BTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                     t                                          |                              t          j                  S r   r1  r3  s     r$   r   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__w  r5  r&   c                     t                                          |                              t          j                  S r   r7  r3  s     r$   r8  zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__z  r5  r&   c                     t           r   r:  r   s      r$   r   zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all}  r<  r&   r=  r?  s   @r$   r   rr  v  r@  r&   r   r   r   rA  rB  s      r$   rC  z1TestAlmostEqual.test_subclass_that_cannot_be_boolq  rD  r&   N)rE   rF   rG   rL   r  rR  rW  rY  r   r   rj  ro  rC  rH   r&   r$   rF  rF    s        0 0 0J J J"A A AB B B# # #J J J# # #4> 4> 4>l> > >(         r&   rF  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestApproxEqualc                     t           | _        d S r   )r   r   rC   s    r$   rL   zTestApproxEqual.setup_method  rH  r&   c                      t          j        d          t          j        d                               d                                d           t          t           fd           d S )N{GH@RH@r  significantr`  c                  4                          d          S Nra  r|  r   ra   s   r$   r  z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>      d//1!/DD r&   r  ra   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 )Nrz  r{  r6   r|  r  r`  c                  4                          d          S r  r   ra   s   r$   r  z3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r&   r  ra   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$   rk   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)rE   rF   rG   rL   r  r  rk   r   rH   r&   r$   rw  rw    sm        0 0 0F F FF F FM M MM M M M Mr&   rw  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 )TestArrayAssertLessc                     t           | _        d S r   )r   r   rC   s    r$   rL   z TestArrayAssertLess.setup_method  s    -r&   c                 X    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           d S )	N皙?皙@333333?ffffff@c                  0                                    S r   r   ra   s   r$   r  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>      d.?.?1.E.E r&   r   c                  0                                    S r   r   ra   s   r$   r  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>  r  r&   c                  0                                    S r   r   ra   s   r$   r  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>  r  r&   r  ra   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FFr&   c                 p    t          j        ddgddgg          t          j        ddgddgg                                          t          t           fd	           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      @c                  0                                    S r   r   ra   s   r$   r  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r&   r   c                  0                                    S r   r   ra   s   r$   r  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r&   c                  0                                    S r   r   ra   s   r$   r  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r&   r  ra   s   `@@r$   
test_rank2zTestArrayAssertLess.test_rank2  s    HsCj3*-..HsCj3*-..!Qn&E&E&E&E&E&EFFFHsCj3*-..n&E&E&E&E&E&EFFFn&E&E&E&E&E&EFFFFFr&   c                 8    t          j        d          t          j        d          dz                                   t          t           fd           dd<   t          t           fd           t          t           fd           d S )	N)r,   r,   r,   )shaper+   c                  0                                    S r   r   ra   s   r$   r  z0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r&   r   )r   r   r   c                  0                                    S r   r   ra   s   r$   r  z0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r&   c                  0                                    S r   r   ra   s   r$   r  z0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r&   )r.   rn  r   r
   r(   ra   s   `@@r$   
test_rank3zTestArrayAssertLess.test_rank3  s    G)$$$G)$$$Q&!Qn&E&E&E&E&E&EFFF'
n&E&E&E&E&E&EFFFn&E&E&E&E&E&EFFFFFr&   c                 `    dd                                 t          t           fd           t          j        ddg                                           t          t           fd           t          j        ddg          t          t           fd           d S )Nr  r  c                  0                                    S r   r   ra   s   r$   r  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r&   r  c                  0                                    S r   r   ra   s   r$   r  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r&   r   c                  0                                    S r   r   ra   s   r$   r  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r&   )r   r
   r(   r.   r/   ra   s   `@@r$   r  z%TestArrayAssertLess.test_simple_items  s    !Qn&E&E&E&E&E&EFFFHc3Z  !Qn&E&E&E&E&E&EFFFHc3Z  n&E&E&E&E&E&EFFFFFr&   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!   rb   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   ra   s   r$   r  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>  r  r&   )r.   r/   ri   r
   r(   r   )r!   r  rb   rc   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!   rb   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  rb   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&   N)rE   rF   rG   rL   r  r  r  r  r  r  r  r  rH   r&   r$   r  r    s        . . .
G 
G 
G
G 
G 
G
G 
G 
GG G G M M MG G G"O O O	$ 	$ 	$ 	$ 	$r&   r  z$The raises decorator depends on Noser   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )
TestRaisesc                 :     G d dt                     }|| _        d S )Nc                       e Zd ZdS ),TestRaises.setup_method.<locals>.MyExceptionNrE   rF   rG   rH   r&   r$   MyExceptionr     s        Dr&   r  )	Exceptione)r!   r  s     r$   rL   zTestRaises.setup_method  s9    	 	 	 	 	) 	 	 	 r&   c                     |r   rH   )r!   r  s     r$   raises_exceptionzTestRaises.raises_exception%  s    r&   c                     d S r   rH   rC   s    r$   does_not_raise_exceptionz#TestRaises.does_not_raise_exception(  s    r&   c                 f      t          | j                  | j                  | j                   d S r   )r	   r  r  rC   s    r$   test_correct_catchzTestRaises.test_correct_catch+  s/    -tvt,--df55555r&   c                     	   t          | j                  | j                  t                     t	          d          # t          $ r Y d S w xY w)Nzshould have caught RuntimeError)r	   r  r  RuntimeErrorr(   rC   s    r$   test_wrong_exceptionzTestRaises.test_wrong_exception.  sb    	D1NF46NN4011,??? !!BCCC  	 	 	FF	s   0A 
AAc                     	   t          | j                  | j                               t          d          # t          $ r Y d S w xY w)Nz$should have raised an AssertionError)r	   r  r  r(   rC   s    r$   test_catch_no_raisezTestRaises.test_catch_no_raise6  s`    	I9NF46NN4899;;; !!GHHH  	 	 	FF	s   *; 
A	A	N)	rE   rF   rG   rL   r  r  r  r  r  rH   r&   r$   r  r    sv              6 6 6D D DI I I I Ir&   r  c                        e 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yor5   warningswarnrH   r&   r$   fzTestWarns.test_warn.<locals>.fB  s    M$1r&   r  r5   c                     | S r   rH   )rb   s    r$   r  z%TestWarns.test_warn.<locals>.<lambda>K  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_warnA  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  rH   r&   r$   no_warningsz3TestWarns.test_context_manager.<locals>.no_warningsX  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_managerQ  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          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  DeprecationWarningrH   r&   r$   r  z,TestWarns.test_warn_wrong_warning.<locals>.fa  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)rE   rF   rG   r  r  r   rH   r&   r$   r  r  ?  sL        G G G G G GH H H H H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 )TestAssertAllclosec                    d}d}t          ||d           t          t          t           ||           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
           d S )NgMbP?g&.>r+   atolg1  ?r   )rtolr`  r`   g      ?)r   r
   r(   r.   r/   )r!   rb   rc   r"   r#   s        r$   r  zTestAssertAllclose.test_simplet  s    11%%%%noq!<<<HaAq\""HaAq\""11%%%%noq!<<<X"1noq!$GGGG2C((((nor13GGGGGGr&   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_int  s@    Hbhrw''+,BG<<<1r&   c                 *   t          j        g d          }t          j        g d          }t          j        t                    5 }t          ||           d d d            n# 1 swxY w Y   t          |j                  }t          d|v            d S )N)r+   r+   r+   r+   )r+   r+   r+   r,   zXMismatched elements: 1 / 4 (25%)
Max absolute difference: 1
Max relative difference: 0.5	r.   r/   rs   r	   r(   r   rd  re  r   r!   r"   r#   rh  msgs        r$   test_report_fail_percentagez.TestAssertAllclose.test_report_fail_percentage  s    H\\\""H\\\""]>** 	"hAq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"(.!! /256 	7 	7 	7 	7 	7   A##A'*A'c                     t          j        t           j        g          }t          j        t           j        g          }t          ||d           d S )NT	equal_nan)r.   r/   ri   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/   ri   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/   ri   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          }t          j        t                    5 }t          ||           d d d            n# 1 swxY w Y   t          |j                  }t          d|v            d S )Nr   r+   r,   rm  r  r  s        r$   test_report_max_relative_errorz1TestAssertAllclose.test_report_max_relative_error  s    HaVHaV]>** 	"hAq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"(.!!.#566666r  c                 X    t          j        g dgd          }t          ||           d S )N)r+   r,   r5   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                 f   t          j        g dd          }t          j        g dd          }t          j        t                    5 }t          ||d           ddd           n# 1 swxY w Y   t          |j                                      d          }t          |d	         d
           dS )zYCheck the the message is formatted correctly when overflow can occur
           (gh21768))r   r+      uint8r<   )r6   r6   r6   r5   r  Nr_  r6   zMax absolute difference: 4)
r.   asarrayrs   r	   r(   r   rd  re  rf  r   rg  s        r$   test_error_message_unsignedz.TestAssertAllclose.test_error_message_unsigned  s     Jyyy000Jyyy000]>** 	*hAqq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*8>""((..T!W:;;;;;s   
A))A-0A-N)rE   rF   rG   r  r  r  r  r  r  r  r  r"  rH   r&   r$   r  r  r  s        H H H(  
	7 	7 	7. . .N N N
	 	 	7 7 7  
< < < < <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  rl  2   r<   r`   r   	r.   linspacefloat64r_finfor=   epsr   epsnegr!   nulprb   r.  rc   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 r&  r.   r*  r+  r,  r-  r=   r.  r
   r(   r   r/  r0  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/   ri   r+  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 r&  	r.   r*  r   r,  r-  r=   r.  r   r/  r0  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 r&  r.   r*  r   r,  r-  r=   r.  r
   r(   r   r/  r0  s         r$   test_float32_failz*TestArrayAlmostEqualNulp.test_float32_fail  r6  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/   ri   r   r   r   )r!   r9  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  r6   r`   r<   r   )	r.   r*  float16r,  r-  r=   r.  r   r/  r0  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 rM  )r.   r*  rO  r,  r-  r=   r.  r
   r(   r   r/  r0  s         r$   test_float16_failz*TestArrayAlmostEqualNulp.test_float16_fail1  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/   ri   rO  r   r   )r!   r9  nan1_i16nan2_i16nan1_f16nan2_f16s         r$   test_float16_ignore_nanz0TestArrayAlmostEqualNulp.test_float16_ignore_nanA  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  r'  rl  r(  r<   r`                 ?r   ry   r)  r!   r1  rb   xir.  rc   r/  s          r$   test_complex128_passz-TestArrayAlmostEqualNulp.test_complex128_passL  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  r'  rl  r(  r<   r`   r]  r   r4  r^  s          r$   test_complex128_failz-TestArrayAlmostEqualNulp.test_complex128_failc  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 r\  r@  r^  s          r$   test_complex64_passz,TestArrayAlmostEqualNulp.test_complex64_pass  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 rb  rC  r^  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)rE   rF   rG   r2  r5  r>  rA  rD  rK  rP  rR  rZ  r`  rc  re  rg  rH   r&   r$   r$  r$    s        3 3 3$" " " 	4 	4 	43 3 3" " " 	4 	4 	43 3 3" " " 	4 	4 	4; ; ;.* * *:; ; ;** * * * *r&   r$  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!   rb   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?rl  rk  )	r.   rn  astyper   rm  rn  r-  r.  r   r!   rb   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`   rq     rk  )	r.   rn  rr  r+  rm  rn  r-  r.  r   rs  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 )Nrv  rk  )	r.   r   r+  r/   r   rr  r-  maxr   )r!   dtr   bigs       r$   r(  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        t           j
        g                              |          t          j        t           j        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   mBc                  (    t                     S Nrk  r   )r   rl  ri   s   r$   r  z"TestULP.test_nan.<locals>.<lambda>      "6sC!'#) #) #) r&   c                  (    t                     S r~  r  )r{  rl  ri   s   r$   r  z"TestULP.test_nan.<locals>.<lambda>  r  r&   c                  (    t                     S r~  r  )rl  ri   tinys   r$   r  z"TestULP.test_nan.<locals>.<lambda>      "6sD!'#) #) #) r&   c                  (    t                     S r~  r  )rl  ri   zeros   r$   r  z"TestULP.test_nan.<locals>.<lambda>  r  r&   c                  (    t                     S r~  r  )rl  ri   nzeros   r$   r  z"TestULP.test_nan.<locals>.<lambda>  s    "6sE!'#) #) #) r&   )r.   r   r+  r/   r   rr  ri   r-  ry  r  r   r   r
   r(   )	r!   rz  r{  r   rl  ri   r  r  r  s	     @@@@@@@r$   r"  zTestULP.test_nan  s	   :rz* 	* 	*BRZ(BF8$$++B//C(BF8$$++B//C(BHRLL,-..C8RXb\\./00D8RXJ''..r22DHbhZ((//33E.) ) ) ) ) )* * * .) ) ) ) ) )* * * .) ) ) ) ) )* * * .) ) ) ) ) )* * * .) ) ) ) ) )* * * */	* 	*r&   N)rE   rF   rG   ro  rt  rw  r(  r"  rH   r&   r$   ri  ri    s_        - - -2 2 23 3 37 7 7* * * * *r&   ri  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 )NrV   r  r   rH   r&   r$   r  z-TestStringEqual.test_simple.<locals>.<lambda>  s    1%AA r&   )r   rs   r	   r(   rd  re  r   r
   )r!   rh  r  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  rH   r&   r$   r  z,TestStringEqual.test_regex.<locals>.<lambda>  s    1%?? r&   )r   r
   r(   rC   s    r$   
test_regexzTestStringEqual.test_regex  s;    FF+++n??	A 	A 	A 	A 	Ar&   N)rE   rF   rG   r  r  rH   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>.modNr  rH   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  rC   s    r$   __init__z8test_warn_len_equal_call_scenarios.<locals>.mod.__init__'  s    3434(6 (6D$$$r&   N)rE   rF   rG   r  rH   r&   r$   r  z/test_warn_len_equal_call_scenarios.<locals>.mod&  s#        	6 	6 	6 	6 	6r&   r,   )r  )r  mod_insts     r$   "test_warn_len_equal_call_scenariosr    s            suuHh'(* * * *
6 6 6 6 6 6 6 6
 suuHh'(* * * * * *r&   c                      t           j        t                   } 	 | j                                         n# t
          $ r Y nw xY w| S r   )r  r  rE   r  clearr  my_mods    r$   _get_fresh_modr  0  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>.warnd  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_modulea  0    	 	 	 	D!aS)))))r&   r   moduler  r+   r  )r  r   r  r  r   recordr  filterr.   lib
shape_baser  r  r  logmessager   r  )r  r  sups      r$   test_suppress_warnings_moduler  \  s   F!6;;R@@@* * * &!$$$			 

; 	

"&+
,,,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    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YYq!!!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)rE   rF   rG   r  r  class_modulesrH   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  2  s    F	 & &h'''n%%%& & & & & & & & & & & & & & & +R00000s   )AAAzPython lacks refcountsc                   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   append)r#   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_cycleJ  s*    AHHQKKKHHQKKKHr&   )r
   r(   r   )r!   r  s     r$   test_assertsz!TestAssertNoGcCycles.test_assertsI  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   )cyclerC   s    r$   r  zETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__e  s    !


r&   c                 <    d | _         j        r              d S d S r   )r  r  )r!   ReferenceCycleInDels    r$   __del__zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__h  s6    !
&1 * (')))))* *r&   N)rE   rF   rG   __doc__r  r  r  )r  s   r$   r  r  ^  sN          J" " "* * * * * * *r&   r  c                      d S r   rH   rH   r&   r$   r  z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>v  s     r&   Nz*GC does not call __del__ on cyclic objectsF)	weakrefrefr
   r  r   r(   rs   skipr  )r!   r  r  s     @r$   
test_failszTestAssertNoGcCycles.test_failsW  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)
rE   rF   rG   r  r  r  rs   r   slowr  rH   r&   r$   r  r  ;  sY        $$	& 	& 	&, , , [(3 (3 (3 (3 (3r&   r  )@r  r  r  r   rs   r	  numpyr.   numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   numpy.core.overridesr   r   rJ   r   r   r  rF  rw  r  r   r  r  r  r  r$  ri  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rH   r&   r$   <module>r     sS    



 				                                                          8 7 7 7 7 7+/ +/ +/ +/ +/ +/ +/ +/\z2 z2 z2 z2 z2\ z2 z2 z2z* * * * * * * *Z\) \) \) \) \) \) \) \)~_  _  _  _  _ < _  _  _ DT  T  T  T  T l T  T  T n(M (M (M (M (M (M (M (MVj$ j$ j$ j$ j$ j$ j$ j$Z ?@@I I I I I I I A@ID0H 0H 0H 0H 0H 0H 0H 0HfV< V< V< V< V< V< V< V<rc* c* c* c* c* c* c* c*L5* 5* 5* 5* 5* 5* 5* 5*pA A A A A A A A(* * *.* * *8	 	 	% % %@+% +% +%\% % %8     %& %& %&P,& ,& ,&^% % %"' ' ' - - - - -& - - -
1 1 1 $-EFFD3 D3 D3 D3 D3 D3 D3 GFD3 D3 D3r&   