
    8`iU7                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
c mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"  G d d          Z# G d de#          Z$ G d d          Z% G d	 d
e$          Z& G d de#          Z' G d de#          Z( G d d          Z) G d d          Z*ej+        ,                    d          ej+        -                    d           G d d                                  Z. G d d          Z/ G d d          Z0 G d d          Z1 G d d          Z2d  Z3d! Z4d" Z5ej+        -                    d          d#             Z6ej+        ,                    d          ej+        -                    d          d$                         Z7ej+        ,                    d          ej+        -                    d          d%                         Z8ej+        ,                    d          ej+        -                    d&          d'                         Z9ej+        ,                    d          ej+        -                    d&          d(                         Z:ej+        ,                    d          ej+        -                    d&          d)                         Z;d* Z<d+ Z= G d, d-e          Z>ej+        -                    d          d.             Z?ej+        @                    e d/          ej+        -                    d0           G d1 d2                                  ZAdS )3    N)HAS_REFCOUNTassert_assert_allcloseassert_almost_equalassert_approx_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_array_equalassert_array_lessassert_array_max_ulpassert_equalassert_no_gc_cyclesassert_no_warningsassert_raisesassert_string_equalassert_warnsbuild_err_msgclear_and_catch_warningssuppress_warningstempdirtemppathc                   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 )_GenericTestc                     d S N selfargskwargss      Z/root/collector_daemon/venv/lib/python3.11/site-packages/numpy/testing/tests/test_utils.py_assert_funcz_GenericTest._assert_func'   s        c                 2    |                      ||           d S r   r"   r   abs      r!   _test_equalz_GenericTest._test_equal*   s    !Qr#   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_eq1   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r1   r2   r,   r&   s      r!   test_array_rank1_noteqz#_GenericTest.test_array_rank1_noteq8   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/         Nr0   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/   Nr5   r&   s      r!   test_array_diffshapez!_GenericTest.test_array_diffshapeF   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)r1   r2   objectr)   r   r'   s     r!   test_objarrayz_GenericTest.test_objarrayM   s6    HaV6***Ar#   c                 6    |                      g dd           d S )Nr.   r/   r8   )r)   r   s    r!   test_array_likesz_GenericTest.test_array_likesR   s"    I.....r#   N)__name__
__module____qualname__r"   r)   r,   r3   r6   r:   r=   rC   rG   r   r#   r!   r   r   %   s               $ $ $  # # #  # # #  
/ / / / /r#   r   c                   t    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd ZdS )TestArrayEqualc                     t          |i | d S r   )r
   r   s      r!   r"   zTestArrayEqual._assert_funcX   s    D+F+++++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   r1   emptyfillcopyr)   r,   tr'   r(   cr   s       r!   fooz.TestArrayEqual.test_generic_rank1.<locals>.foo]   s|    AAFF1IIIAAFF1IIIQ"""  A&&&&&r#   ?bhilqpBHILQPfdgFDGS1U1Nr   r   rW   rU   s   `  r!   test_generic_rank1z!TestArrayEqual.test_generic_rank1[   f    	' 	' 	' 	' 	' ' 	 	ACFFFF  	 	ACFFFF	 	r#   c                    t          j        d          }t          j        d          }t          j        t                    5 }|                     ||           d d d            n# 1 swxY w Y   t          |j                  }t          d|v            |}|                     ||           t          j        d          }t          j        d          }d}t          j        t          t          j
        |                    5  |                     ||           d d d            n# 1 swxY w Y   |}|                     ||           d S )Nl   Cj<T"3w-l   (M$c7uvz"Mismatched elements: 1 / 1 (100%)
gLxrBr   zMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 4.39506535e+12
Max relative difference among violations: inf
match)r1   r2   pytestraisesr+   r"   strvaluer   reescape)r   xyexc_infomsgexpected_msgs         r!   test_0_ndim_arrayz TestArrayEqual.test_0_ndim_arrayn   s   H9::H899]>** 	$ha###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$(.!!5 	 	 	 !QH344HQKKJ ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ !Qs$   A%%A),A)D''D+.D+c                 R      fd}dD ]} ||           dD ]} ||           dS )z!Test rank 3 array for all dtypes.c                 .   t          j        d|           }|                    d           |                                }|                                }|                    d                               ||                               ||           d S )N)r9   r/   r8   r.   r   rP   rT   s       r!   rW   z.TestArrayEqual.test_generic_rank3.<locals>.foo   s~    A&&AFF1IIIAAFF1IIIQ"""  A&&&&&r#   rX   rY   Nr   r\   s   `  r!   test_generic_rank3z!TestArrayEqual.test_generic_rank3   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/   rE   N)r1   r2   nanr)   r,   r   r'   r(   rV   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 )r<   floupifloupafloupipiN)r1   r2   r)   r,   rs   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/   rv   rw   r.   rx   N)	r1   rQ   floatrS   r)   rb   rc   	TypeErrorr,   rs   s       r!   test_recarrayszTestArrayEqual.test_recarrays   sK   HQ(E*Xu,=>??!f(!f(FFHHAHQ*e,"E*Xu,=? @ @(((***k&&(((]9%% 	' 	'  A&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   DD	Dc                    t           j                            g dg d          }t          j        dt           j        dg          }|                     ||           |                     ||           t           j                            g dg d          }t          j        t           j        ddg          }|                     ||           |                     ||           d S )N      @      @      @)FTFmaskr   r   )TFFr   )r1   maMaskedArrayr2   rr   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           
      :   t          j        dt          j        t          j        gddt          j        t          j        t          j         gddg          D ]\  }}}t          j                            |d          }|r!t          j                            |d          nt          j        |          }|                     ||           |                     ||           t          j        dt          j        t          j         gt          j        ddt          j        t          j        t          j         gd                    D ]f\  }}t          j                            |d          }t          j        |          }|                     ||           |                     ||           gt          j        dt          j        t          j        gt          j        ddt          j        t          j        t          j         gd          t          j        ddgd                    D ]t\  }}}t          j                            |d          }t          j                            ||          }|                     ||           |                     ||           ud S )Nr   r   FTr   r/   )repeat)		itertoolsproductr1   rr   r   r   r   r2   r)   )r   a_valb_valb_maskedr'   r(   b_masks          r!   test_masked_scalarz!TestArrayEqual.test_masked_scalar   sV   &/&7 RVRVbfW-DM'
 '
 	# 	#"E5(
 !!%d!33A7?T!!%d!333RXe__AQ"""Q"""" &-"&!r2rvrvw?JJJ
 
 	# 	#LE5 !!%d!33AAQ"""Q"""" %.$5 r2rvrvw?JJJudmA666%
 %
 	# 	# E5&
 !!%d!33A!!%f!55AQ"""Q""""	# 	#r#   c                     G d dt           j                  }t          j        ddg                              |          }t          j        ddg                              |          }t	          t          ||k              t                     t	          ||k               t	          ||k               |                     ||           |                     ||           |                     ||           d}t          j
        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   t          j        dd	g                              |          }d
}t          j
        t          t          j        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd Zd ZdS )?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArrayc                 j    t          t          j        | |                                                    S r   )boolr1   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   r   r   s     r!   __ne__zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__ne__   s    5=((r#   N)rH   rI   rJ   r   r   r   r#   r!   MyArrayr      s2        9 9 9) ) ) ) )r#   r         ?       @r   z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5r`           g333333@z{Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 2.
Max relative difference among violations: inf)r1   ndarrayr2   viewr   typer   r)   r,   rb   rc   r+   rf   rg   )r   r   r'   r(   rl   rV   s         r!   test_subclass_that_overrides_eqz.TestArrayEqual.test_subclass_that_overrides_eq   sF   
	) 	) 	) 	) 	)bj 	) 	) 	) Hb"X##G,,Hb"X##G,,Q!Vd###QQAQ"""Q"""H ]><1H1HIII 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# Hb#Y$$W--H ]><1H1HIII 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   (EEE.GGGc                     G d dt           j                  }t          j        ddg                              |          }t          j        ddg                              |          }t	          t
                    5  t          j        |           d d d            n# 1 swxY w Y   |                     ||           |                     ||           |                     ||           d S )Nc                       e Zd Zd ZdS )KTestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArrayc                     t           S r   )NotImplementedr   s      r!   __array_function__z^TestArrayEqual.test_subclass_that_does_not_implement_npall.<locals>.MyArray.__array_function__  s    %%r#   N)rH   rI   rJ   r   r   r#   r!   r   r     s#        & & & & &r#   r   r   r   r   )	r1   r   r2   r   r   r|   r   r)   r,   )r   r   r'   r(   s       r!   +test_subclass_that_does_not_implement_npallz:TestArrayEqual.test_subclass_that_does_not_implement_npall  s*   	& 	& 	& 	& 	&bj 	& 	& 	& Hb"X##G,,Hb"X##G,,9%% 	 	F1III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	AQ"""Q"""""s   ?B  B$'B$c           	         t          j        t                    5  t          j        d          5  t          j                            t          j        g dt          j                  t          j        g dt          j                             d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nraiser   rE   )r.   gWw'&l7r8   )	rb   rc   r+   r1   errstatetestingr
   r2   float32rF   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   Nr0   r&   s      r!   test_array_vs_scalar_is_equalz,TestArrayEqual.test_array_vs_scalar_is_equal$  s6    H\\\""Ar#   c                     t          j        g d          }t          j        g d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   t          j        g d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )z@Test comparing an array with a scalar when not all values equal.)骈  S g 6 )r   r   r   r   zMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 563766 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 563766
Max relative difference among violations: infr`   N)r   r   g̜Ar   zMismatched elements: 2 / 4 (50%)
Mismatch at indices:
 [2]: 439655.2 (ACTUAL), 439655 (DESIRED)
 [3]: 563766.0 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 563766.
Max relative difference among violations: 4.54902139e-07r1   r2   rb   rc   r+   rf   rg   r"   r   r'   r(   rl   s       r!   test_array_vs_array_not_equalz,TestArrayEqual.test_array_vs_array_not_equal+  s|   H44455H///00H
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ H66677) ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   A??BBC33C7:C7c                     t          j        g d          }d}t          j        t                    5  |                     ||d           ddd           dS # 1 swxY w Y   dS )z9Test comparing an array with a scalar with strict option.r   r   TstrictNr1   r2   rb   rc   r+   r"   r&   s      r!   test_array_vs_scalar_strictz*TestArrayEqual.test_array_vs_scalar_strictD  s    H\\\""]>** 	1 	1a4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AAAc                     t          j        g d          }t          j        g d          }|                     ||d           dS )-Test comparing two arrays with strict option.r   Tr   N)r1   r2   r"   r&   s      r!   test_array_vs_array_strictz)TestArrayEqual.test_array_vs_array_strictL  sI    H\\\""H\\\""!Qt,,,,,r#   c                     t          j        g d          }t          j        g d          }t          j        t                    5  |                     ||d           ddd           dS # 1 swxY w Y   dS )r   )r.   r.   r.   r   Tr   Nr   r&   s      r!    test_array_vs_float_array_strictz/TestArrayEqual.test_array_vs_float_array_strictS  s    HYYYH\\\""]>** 	1 	1a4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   A,,A03A0N)rH   rI   rJ   r"   r]   rm   rp   rt   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r#   r!   rL   rL   V   s       , , ,  &     2  &# # #	# 	# 	#' ' '"	 	 	# # #B #  #  #D# # #9 9 9  $ $ $21 1 1- - -1 1 1 1 1r#   rL   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])r1   r2   r   r   r   rh   ri   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_verbosei  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_namesr  sj    H00011H00011'1a&'@@@ 	Qr#   c                     t          j        g d          }t          j        g d          }d}t          ||g|d          }d}t          ||           d S )N)g0D   ?r   r   )g_p   ?r   r   r   
   )	precisionz
Items are not equal: There is a mismatch
 ACTUAL: array([1.000000001, 2.00002    , 3.00003    ])
 DESIRED: array([1.000000002, 2.00003    , 3.00004    ])r   r   s         r!   #test_build_err_msg_custom_precisionz9TestBuildErrorMessage.test_build_err_msg_custom_precision}  sj    H44455H44455'1a&'R8887 	Qr#   N)rH   rI   rJ   r   r   r   r   r   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          |i | d S r   )r   r   s      r!   r"   zTestEqual._assert_func  s    d%f%%%%%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"   r1   rr   r,   rF   s    r!   test_nan_itemszTestEqual.test_nan_items  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"   r1   r   r,   rF   s    r!   test_inf_itemszTestEqual.test_inf_items  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)   r1   
datetime64r,   rF   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   {   )r1   r   timedelta64r   r   r"   r,   )r   nadt_no_unitnadt_snadt_dnatd_no_unitnatd_snatd_ddtstdsr'   r(   s              r!   test_nat_itemszTestEqual.test_nat_items  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,   rF   s    r!   test_non_numericzTestEqual.test_non_numeric  s4    $%%%T5)))))r#   c                    |                      t          dd          t          dd                     |                      t          dt          j                  t          dt          j                             |                     t          dt          j                  t          dd                     |                     t          t          j        d          t          dt          j                             |                     t          t          j        t          j                  t          t          j        d                     d S Nr.   r/   )r"   complexr1   rr   r,   r   rF   s    r!   test_complex_itemzTestEqual.test_complex_item  s    '!Q--A777'!RV,,ga.@.@AAAWQ//A???WRVQ//BF1C1CDDDWRVRV44gbfa6H6HIIIIIr#   c                 Z    |                      t          j        t          j                   d S r   )r,   ncuPZERONZEROrF   s    r!   test_negative_zerozTestEqual.test_negative_zero  s"    SY	22222r#   c                 :   t          j        t          dd          t          dt           j                  g          }t          j        t          dd          t          dd          g          }|                     ||           |                     ||           d S r  r1   r2   r  rr   r"   r,   r   rh   ri   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/   )datetimer1   r2   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)rH   rI   rJ   r"   r   r   r   r   r  r  r  r  r  r   r#   r!   r   r     s        & & &( ( (/ / /

 
 
(@ @ @>* * *J J J3 3 3# # #) ) ) ) )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 )TestArrayAlmostEqualc                     t          |i | d S r   )r   r   s      r!   r"   z!TestArrayAlmostEqual._assert_func  s    !42622222r#   c                 H   d}t          j        t          t          j        |                    5  |                     ddd           d d d            n# 1 swxY w Y   |                     dgdgd           d}t          j        t          t          j        |                    5  |                     dgdgd           d d d            n# 1 swxY w Y   d	d
g}ddg}d}t          j        t          t          j        |                    5  |                     ||d           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||d           d d d            d S # 1 swxY w Y   d S )Nz}Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.5
Max relative difference among violations: infr`         ?r   r   decimal?zMismatched elements: 1 / 1 (100%)
Mismatch at index:
 [0]: 1.5 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 1.5
Max relative difference among violations: infge(?giUMu>gB??zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 3e-05 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: inf   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 0.0 (ACTUAL), 3e-05 (DESIRED)
Max absolute difference among violations: 3.e-05
Max relative difference among violations: 1.rb   rc   r+   rf   rg   r"   )r   rl   r'   r(   s       r!   test_closenessz#TestArrayAlmostEqual.test_closeness  s   H ]><1H1HIII 	3 	3c3222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	8*seQ777H
 ]><1H1HIII 	7 	7secUA666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7  OH
 ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/G
 ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sG   AAA)CCCD77D;>D;1FFFc                 z   t          j        dg          }t          j        dg          }|                     ||d           |                     ||d           d}t          j        t
          t          j        |                    5  |                     ||d           d d d            d S # 1 swxY w Y   d S )	NgeH@gwH@r8   r  r9   zMismatched elements: 1 / 1 (100%)
Mismatch at index:
 [0]: 1234.2222 (ACTUAL), 1234.2223 (DESIRED)
Max absolute difference among violations: 1.e-04
Max relative difference among violations: 8.10226812e-08r`      r1   r2   r"   rb   rc   r+   rf   rg   r   rh   ri   rl   s       r!   test_simplez TestArrayAlmostEqual.test_simple  s   Hi[!!Hi[!!!Q***!Q***) ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   
B00B47B4c                    g d}d}d}t          j        t          t          j        |                    5  |                     ||d           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||d           d d d            n# 1 swxY w Y   ddg}d	}t          j        t          t          j        |                    5  |                     ||d
           d d d            n# 1 swxY w Y   d}d}t          j        t          t          j        |                    5  |                     ||d
           d d d            d S # 1 swxY w Y   d S )N)mlz@gHPX@r   r%  zMismatched elements: 2 / 3 (66.7%)
Mismatch at indices:
 [1]: 849.54345 (ACTUAL), 5498.42354 (DESIRED)
 [2]: 0.0 (ACTUAL), 5498.42354 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 1.r`   	   r  zMismatched elements: 2 / 3 (66.7%)
Mismatch at indices:
 [1]: 5498.42354 (ACTUAL), 849.54345 (DESIRED)
 [2]: 5498.42354 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: 5.4722099r   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 5498.42354 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: infr  r   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [0]: 5498.42354 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 5498.42354
Max relative difference among violations: infr  r   s       r!   test_array_vs_scalarz)TestArrayAlmostEqual.test_array_vs_scalar)  s   )))G ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/N ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ H ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ H ]><1H1HIII 	/ 	/aA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sG   AA"AB::B>B>8DD!$D!E??FFc                 |    t          j        t           j        g          t          j        dg          t          j        t           j        g                                          t          t           fd           t          t           fd           t          t           fd           d S )Nr.   c                  0                                    S r   r%   ananaoner   s   r!   <lambda>z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>Z      d//d;; r#   c                  0                                    S r   r%   ainfr+  r   s   r!   r-  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>\  r.  r#   c                  0                                    S r   r%   r0  s   r!   r-  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>^  r.  r#   r1   r2   rr   r   r"   r   r+   r   r1  r+  r,  s   `@@@r!   test_nanzTestArrayAlmostEqual.test_nanT  s    x!!x}}x!!$%%%n;;;;;;	= 	= 	=n;;;;;;	= 	= 	=n;;;;;;	= 	= 	= 	= 	=r#   c                     t          j        ddgddgg                                          t           j        d<   t	          t
           fd           t           j         d<   t	          t
           fd           d S )Nr   r   r   r   )r   r   c                  0                                    S r   r%   r'   r(   r   s   r!   r-  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>e      d//155 r#   c                  0                                    S r   r%   r8  s   r!   r-  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>h  r9  r#   )r1   r2   rS   r   r   r+   r&   s   `@@r!   test_infzTestArrayAlmostEqual.test_inf`  s    Hr2hR)**FFHH&$n555555	7 	7 	76'$n555555	7 	7 	7 	7 	7r#   c                 h   t          j        t           j        dz   ddg          }|                                }|                     ||           d|d<   d}t          j        t          t          j	        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )N              ?y       @      ?y      @      ?r.   zMismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [1]: (2+1j) (ACTUAL), (3+1j) (DESIRED)
Max absolute difference among violations: 1.
r`   )
r1   r2   r   rS   r"   rb   rc   r+   rf   rg   r   s       r!   test_complex_infz%TestArrayAlmostEqual.test_complex_infj  s    HbfslHh788FFHH!Q!I ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   B''B+.B+c                    t          j        ddgddgg          }t           j                            ddgddggddgddgg          }|                     ||           |                     ||           |                     ||           t           j                            dd	          }t          j        g d
          }|                     ||           |                     ||           t           j        j        }t          j        g d
          }|                     ||           |                     ||           t           j                            g d
g d	          }t          j        g d          }|                     ||           |                     ||           t           j                            g d
g d	          }t          j        d          }|                     ||           |                     ||           d S )Nr   r   r   r   r   FTg      @r   r   )TTT)r   r   r   )r1   r2   r   masked_arrayr"   r   r)   maskedr&   s      r!   test_subclassz"TestArrayAlmostEqual.test_subclassv  s   Hr2hR)**ER2r(3!&u>@ @!Q!Q!Q Ec--H]]]##AAELH]]]##AAEmmm2D2D2DEEH\\\""AAEmmm2D2D2DEEHRLLAAr#   c                 2    G d dt           j                  }t          j        ddg                              |          }|                     ||           t          j        ddg                              |          }t          |           t          j        ddg                              |          }d}t          j        t          t          j
        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )	Nc                   .     e Zd Z fdZ fdZd Z xZS )5TestArrayAlmostEqual.test_subclass_2.<locals>.MyArrayc                     t                                          |                              t          j                  S r   superr   r   r1   r   r   r   	__class__s     r!   r   z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__eq__  )    ww~~e,,11"*===r#   c                     t                                          |                              t          j                  S r   rH  __lt__r   r1   r   rI  s     r!   rN  z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__lt__  rK  r#   c                      t          |           S r   r   r   s      r!   r   z9TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.all  s    4yy r#   rH   rI   rJ   r   rN  r   __classcell__rJ  s   @r!   r   rE    s`        > > > > >> > > > >! ! ! ! ! ! !r#   r   r   r   T   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 2.0 (ACTUAL), 202.0 (DESIRED)
Max absolute difference among violations: 200.
Max relative difference among violations: 0.99009r`   )r1   r   r2   r   r"   r   rb   rc   r+   rf   rg   )r   r   r'   zr(   rl   s         r!   test_subclass_2z$TestArrayAlmostEqual.test_subclass_2  sW   
	! 	! 	! 	! 	!bj 	! 	! 	! Hb"X##G,,!QHdD\""''00AHb#Y$$W--L
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   (DDDc                      G d dt           j                  }t          j        ddg                              |          }|                     ||           d S )Nc                   .     e Zd Z fdZ fdZd Z xZS )GTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                     t                                          |                              t          j                  S r   rG  rI  s     r!   r   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  rK  r#   c                     t                                          |                              t          j                  S r   rM  rI  s     r!   rN  zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__  rK  r#   c                     t           r   NotImplementedErrorr   s      r!   r   zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all      ))r#   rP  rR  s   @r!   r   rX    `        > > > > >> > > > >* * * * * * *r#   r   r   r   r1   r   r2   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)rH   rI   rJ   r"   r  r#  r'  r5  r;  r>  rB  rU  rb  r   r#   r!   r  r    s        3 3 3)/ )/ )/V/ / /")/ )/ )/V
= 
= 
=7 7 7
$ 
$ 
$  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          |i | d S r   )r   r   s      r!   r"   zTestAlmostEqual._assert_func      T,V,,,,,r#   c                                            ddd           t          t           fd                                 dgdgd           t          t           fd           d S )Nr  r   r   r  c                  4                          ddd          S Nr  r   r   r  r%   rF   s   r!   r-  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//S!/DD r#   c                  8                          dgdgd          S rj  r%   rF   s   r!   r-  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s     d//ua/HH r#   r"   r   r+   rF   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"   r1   rr   rF   s   r!   r-  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//:: r#   c                  X                          t          j        t          j                  S r   )r"   r1   rr   r   rF   s   r!   r-  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//?? r#   c                  X                          t          j        t          j                  S r   )r"   r1   r   rr   rF   s   r!   r-  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>  rq  r#   )r"   r1   rr   r   r+   rF   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"   r1   r   rF   s   r!   r-  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  ro  r#   c                  Z                          t          j         t          j                  S r   rv  rF   s   r!   r-  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  s    d//@@ r#   )r"   r1   r   r   r+   rF   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,   rF   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  r1   rr   r   r,   rF   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   rh   rT  ri   s       r!   r  zTestAlmostEqual.test_complex  s    HgammWQ%7%7899HgammWRVQ%7%7899HgammWQ]]344!QQ"""Q"""""r#   c                 $   t          j        g d          }t          j        g d          }d}t          j        t          t          j        |                    5  |                     ||d           ddd           n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   t          j        t           j        d	g          }t          j        t           j        d
g          }d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   t          j        d
dg          }t          j        d	d	g          }d}t          j        t          t          j        |                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )zCheck the message is formatted correctly for the decimal value.
           Also check the message when input includes inf or nan (gh12200))g    ?g     @r   )g_   ?g    @r   a  Mismatched elements: 3 / 3 (100%)
Mismatch at indices:
 [0]: 1.00000000001 (ACTUAL), 1.00000000002 (DESIRED)
 [1]: 2.00000000002 (ACTUAL), 2.00000000003 (DESIRED)
 [2]: 3.00003 (ACTUAL), 3.00004 (DESIRED)
Max absolute difference among violations: 1.e-05
Max relative difference among violations: 3.33328889e-06
 ACTUAL: array([1.00000000001, 2.00000000002, 3.00003      ])
 DESIRED: array([1.00000000002, 2.00000000003, 3.00004      ])r`      r  Na"  Mismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [2]: 3.00003 (ACTUAL), 3.00004 (DESIRED)
Max absolute difference among violations: 1.e-05
Max relative difference among violations: 3.33328889e-06
 ACTUAL: array([1.     , 2.     , 3.00003])
 DESIRED: array([1.     , 2.     , 3.00004])r   r.   zMismatched elements: 1 / 2 (50%)
Mismatch at index:
 [1]: 0.0 (ACTUAL), 1.0 (DESIRED)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.
 ACTUAL: array([inf,  0.])
 DESIRED: array([inf,  1.])r/   zMismatched elements: 2 / 2 (100%)
Mismatch at indices:
 [0]: 1 (ACTUAL), 0 (DESIRED)
 [1]: 2 (ACTUAL), 0 (DESIRED)
Max absolute difference among violations: 2
Max relative difference among violations: inf)	r1   r2   rb   rc   r+   rf   rg   r"   r   r"  s       r!   test_error_messagez"TestAlmostEqual.test_error_message  s    H<<<==H<<<==* ]><1H1HIII 	0 	0aB///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0G ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ Hbfa[!!Hbfa[!!6 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ HaVHaVH ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$sH   BBB;CC"%C"E;;E?E?!HH	H	c                    	 d}t          j        d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           n# 1 swxY w Y   d}t          j        d          }d}t          j        t          t          j        |                    5  |                     ||           ddd           dS # 1 swxY w Y   dS )z)Check the message is formatted correctly r/      a@  Mismatched elements: 20 / 20 (100%)
First 5 mismatches are at indices:
 [0]: 2 (ACTUAL), 1.0 (DESIRED)
 [1]: 2 (ACTUAL), 1.0 (DESIRED)
 [2]: 2 (ACTUAL), 1.0 (DESIRED)
 [3]: 2 (ACTUAL), 1.0 (DESIRED)
 [4]: 2 (ACTUAL), 1.0 (DESIRED)
Max absolute difference among violations: 1.
Max relative difference among violations: 1.r`   NaA  Mismatched elements: 20 / 20 (100%)
First 5 mismatches are at indices:
 [0]: 1.0 (ACTUAL), 2 (DESIRED)
 [1]: 1.0 (ACTUAL), 2 (DESIRED)
 [2]: 1.0 (ACTUAL), 2 (DESIRED)
 [3]: 1.0 (ACTUAL), 2 (DESIRED)
 [4]: 1.0 (ACTUAL), 2 (DESIRED)
Max absolute difference among violations: 1.
Max relative difference among violations: 0.5)r1   onesrb   rc   r+   rf   rg   r"   r"  s       r!   test_error_message_2z$TestAlmostEqual.test_error_message_28  sb   -GBKKG ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ GBKKH ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   A**A.1A.:CC"%C"c                      G d dt           j                  }t          j        ddg                              |          }|                     ||           d S )Nc                   .     e Zd Z fdZ fdZd Z xZS )BTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArrayc                     t                                          |                              t          j                  S r   rG  rI  s     r!   r   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__]  rK  r#   c                     t                                          |                              t          j                  S r   rM  rI  s     r!   rN  zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__`  rK  r#   c                     t           r   r\  r   s      r!   r   zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allc  r^  r#   rP  rR  s   @r!   r   r  \  r_  r#   r   r   r   r`  ra  s      r!   rb  z1TestAlmostEqual.test_subclass_that_cannot_be_boolW  rc  r#   N)rH   rI   rJ   r"   r  rs  rx  rz  r  r  r  r  rb  r   r#   r!   re  re    s        - - -J J J"A A AB B B# # #J J J# # #<$ <$ <$|$ $ $>         r#   re  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestApproxEqualc                     t          |i | d S r   )r   r   s      r!   r"   zTestApproxEqual._assert_funcl  rg  r#   c                      t          j        d          t          j        d                               d                                d           t          t           fd           d S )N{GH@RH@r   significant   c                  4                          d          S Nr  r  r%   r  s   r!   r-  z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>v      d//1!/DD r#   )r1   r2   r"   r   r+   r  s   `@@r!   test_simple_0d_arraysz%TestApproxEqual.test_simple_0d_arrayso  s    HWHW!QA...!QA...nDDDDDD	F 	F 	F 	F 	Fr#   c                      dd                      d                                 d                                 d           t          t           fd           d S )Nr  r  r9   r  r   r  c                  4                          d          S r  r%   r  s   r!   r-  z3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r#   rl  r  s   `@@r!   test_simple_itemsz!TestApproxEqual.test_simple_itemsx  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%   r0  s   r!   r-  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r#   c                  0                                    S r   r%   r0  s   r!   r-  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r#   r3  r4  s   `@@@r!   rt   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%   r0  s   r!   r-  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   c                  0                                    S r   r%   r0  s   r!   r-  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   r3  r4  s   `@@@r!   r   zTestApproxEqual.test_nan_items  r  r#   N)rH   rI   rJ   r"   r  r  rt   r   r   r#   r!   r  r  j  sm        - - -F F FF F FM M MM M M M Mr#   r  c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )TestArrayAssertLessc                     t          |i | d S r   )r   r   s      r!   r"   z TestArrayAssertLess._assert_func  s    4*6*****r#   c                 l    t          j        ddg          t          j        ddg                                          t          t           fd           t          j        ddg          t          t           fd           t          t           fd           t          j        g d	          }t          j        g d
          }d}t          j        t          t          j        |                    5                       ||           d d d            d S # 1 swxY w Y   d S )N皙?皙@333333?ffffff@c                  0                                    S r   r%   r  s   r!   r-  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>      d.?.?1.E.E r#   r   c                  0                                    S r   r%   r  s   r!   r-  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>  r  r#   c                  0                                    S r   r%   r  s   r!   r-  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>  r  r#   )r.   r8   r  r  )r/   r9   r     zMismatched elements: 2 / 4 (50%)
Mismatch at indices:
 [2]: 6 (x), 6 (y)
 [3]: 20 (x), 8 (y)
Max absolute difference among violations: 12
Max relative difference among violations: 1.5r`   )	r1   r2   r"   r   r+   rb   rc   rf   rg   )r   r'   r(   rl   rh   ri   s   `   @@r!   test_simple_arraysz&TestArrayAssertLess.test_simple_arrays  s}   Hc3Z  Hc3Z  !Qn&E&E&E&E&E&EFFFHc3Z  n&E&E&E&E&E&EFFFn&E&E&E&E&E&EFFFH]]]##H\\\""H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   D))D-0D-c                     t          j        ddgddgg          t          j        ddgddgg                                          d	}t          j        t
          t          j        |          
          5                                  d d d            n# 1 swxY w Y   t          j        ddgddgg          t          t
           fd           t          t
           fd           d S )Nr  r  ffffff
@g@r  r  g333333@g      @a  Mismatched elements: 4 / 4 (100%)
Mismatch at indices:
 [0, 0]: 1.2 (x), 1.1 (y)
 [0, 1]: 2.3 (x), 2.2 (y)
 [1, 0]: 3.4 (x), 3.3 (y)
 [1, 1]: 4.5 (x), 4.4 (y)
Max absolute difference among violations: 0.1
Max relative difference among violations: 0.09090909r`   r   c                  0                                    S r   r%   r  s   r!   r-  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r#   c                  0                                    S r   r%   r  s   r!   r-  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r#   )	r1   r2   r"   rb   rc   r+   rf   rg   r   r   rl   rh   ri   s   ` @@r!   
test_rank2zTestArrayAssertLess.test_rank2  sK   HsCj3*-..HsCj3*-..!QO ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ HsCj3*-..n&E&E&E&E&E&EFFFn&E&E&E&E&E&EFFFFFs   =B  B$'B$c                     t          j        d          t          j        d          dz                                   t          t           fd           dd<   d}t          j        t          t          j        |                    5                                  d d d            n# 1 swxY w Y   t          t           fd	           d S )
N)r/   r/   r/   )shaper.   c                  0                                    S r   r%   r  s   r!   r-  z0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r#   r   )r   r   r   zMismatched elements: 1 / 8 (12.5%)
Mismatch at index:
 [0, 0, 0]: 1.0 (x), 0.0 (y)
Max absolute difference among violations: 1.
Max relative difference among violations: infr`   c                  0                                    S r   r%   r  s   r!   r-  z0TestArrayAssertLess.test_rank3.<locals>.<lambda>  r  r#   )	r1   r  r"   r   r+   rb   rc   rf   rg   r  s   ` @@r!   
test_rank3zTestArrayAssertLess.test_rank3  s)   G)$$$G)$$$q(!Qn&E&E&E&E&E&EFFF'
H
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	n&E&E&E&E&E&EFFFFFs   B88B<?B<c                     dd                                 d}t          j        t          t	          j        |                    5                                   d d d            n# 1 swxY w Y   t          j        ddg                                           t          t           fd           t          j        ddg          t          t           fd           d S )	Nr  r  z|Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.1
Max relative difference among violations: 1.r`   r  c                  0                                    S r   r%   r  s   r!   r-  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r#   r   c                  0                                    S r   r%   r  s   r!   r-  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r#   )	r"   rb   rc   r+   rf   rg   r1   r2   r   r  s   ` @@r!   r  z%TestArrayAssertLess.test_simple_items  s=   !QG ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ Hc3Z  !Qn&E&E&E&E&E&EFFFHc3Z  n&E&E&E&E&E&EFFFFFs   A00A47A4c                 T   t          j        g dg dg dg          }d}|                     ||           d}|                     ||           t          j        g dg dg dg          }d	}d
}t          j        t
          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}t          j        t
          t          j        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )N)g.c}j@g镲hx@g|yE@g㥛Ġ@)gQEK@gH}@g      *@V-Xy@)(\@Gz @nV@gt@gQ@gmXSY @)gk	@g6<R@g//8{@gMbеA)gףp=I@Hze}.Ag=
ף@r  )r  r  r  gye}.Ar  zMismatched elements: 1 / 12 (8.33%)
Mismatch at index:
 [1, 1]: 999090.54 (x), 999090.54 (y)
Max absolute difference among violations: 0.
Max relative difference among violations: 0.r`   ap  Mismatched elements: 12 / 12 (100%)
First 5 mismatches are at indices:
 [0, 0]: 999090.54 (x), 3.4536 (y)
 [0, 1]: 999090.54 (x), 2390.5436 (y)
 [0, 2]: 999090.54 (x), 435.54657 (y)
 [0, 3]: 999090.54 (x), 324525.4535 (y)
 [1, 0]: 999090.54 (x), 5449.54 (y)
Max absolute difference among violations: 999087.0864
Max relative difference among violations: 289288.5934676r!  r"  s       r!   test_simple_items_and_arrayz/TestArrayAssertLess.test_simple_items_and_array  s   H@@@6664446 7 7 !Q!QHAAA???;;;= > > G
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
) ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   B??CC9DD!$D!c                 H   t          j        g d          }t          j        d          }d}t          j        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}d}t          j        t          t          j        |                    5  |                     ||           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  |                     ||           d d d            d S # 1 swxY w Y   d S )	N)g    0 Ar   g)\.@g    `f@zMismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [0]: 546456.0 (x), 87654.0 (y)
Max absolute difference among violations: 458802.
Max relative difference among violations: 5.23423917r`   zMismatched elements: 2 / 3 (66.7%)
Mismatch at indices:
 [1]: 87654.0 (x), 0.0 (y)
 [2]: 87654.0 (x), 15.455 (y)
Max absolute difference among violations: 87654.
Max relative difference among violations: 5670.5626011r   zMismatched elements: 3 / 3 (100%)
Mismatch at indices:
 [0]: 546456.0 (x), 0 (y)
 [1]: 0.0 (x), 0 (y)
 [2]: 15.455 (x), 0 (y)
Max absolute difference among violations: 546456.
Max relative difference among violations: infzMismatched elements: 1 / 3 (33.3%)
Mismatch at index:
 [1]: 0 (x), 0.0 (y)
Max absolute difference among violations: 0.
Max relative difference among violations: infr   r"  s       r!   test_zeroeszTestArrayAssertLess.test_zeroes  s   H)))**HVO
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$' ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ H ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$H
 ]><1H1HIII 	$ 	$a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$sH   A==BB7CC!CD99D= D=3FFFc                     t          j        t           j                  t          j        d          t          j        t           j                                                  t          t           fd           t          t           fd           t          t           fd           t          t           fd           d S )Nr.   c                  0                                    S r   r%   r*  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>@  r  r#   c                  0                                    S r   r%   r*  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>A  r  r#   c                  0                                    S r   r%   r0  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>B  r  r#   c                  0                                    S r   r%   r0  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>C  r  r#   r3  r4  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   rh   s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>I      d.?.?4.H.H r#   c                  0                                    S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>J      d.?.?a.H.H r#   r  r  c                  0                                    S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>N  r  r#   c                  0                                    S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>O  r  r#   r   r   c                  0                                    S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>T  r  r#   )r1   r2   rr   r   r+   r"   )r   r+  rh   ri   s   `@@@r!   test_nan_noncompare_arrayz-TestArrayAssertLess.test_nan_noncompare_arrayE  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%   r1  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%   r1  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>a  s    d.?.?u.M.M r#   )r1   r2   r   r"   r   r+   )r   r1  r,  s   `@@r!   test_inf_comparez$TestArrayAssertLess.test_inf_compareV  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%   r1  r   rh   s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>g  r  r#   c                  0                                    S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>h  r  r#   c                  2                                     S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>i  s    d.?.?D5.I.I r#   c                  4                                      S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>j  s    d.?.?TE.J.J r#   c                  4                                      S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>k  s    d.?.?r.J.J r#   )r1   r2   r   r   r+   r"   )r   r1  rh   s   `@@r!   test_inf_compare_arrayz*TestArrayAssertLess.test_inf_compare_arrayc  s    Hc3'((xn&H&H&H&H&H&HIIIn&H&H&H&H&H&HIIIn&I&I&I&I&I&IJJJn&J&J&J&J&J&JKKKn&J&J&J&J&J&JKKK4%#####r#   c                 B   t          j        d          }t          j        d          }|                     ||           t	          j        t                    5  |                     ||d           ddd           n# 1 swxY w Y   t          j        ||j                  }|                     ||           t	          j        t                    5  |                     ||	                    t           j
                  d           ddd           dS # 1 swxY w Y   dS z)Test the behavior of the `strict` option.r8   r   Tr   N)r1   zerosr  r"   rb   rc   r+   broadcast_tor  astyper   r  s      r!   test_strictzTestArrayAssertLess.test_strictn  s   HQKKGBKK!Q]>** 	1 	1a4000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1OAqw''!Q]>** 	D 	Da"*!5!5dCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds$   A==BB6DDDN)rH   rI   rJ   r"   r  r  r  r  r  r  r  r  r  r  r  r   r#   r!   r  r    s        + + +$ $ $0G G G(G G G$G G G(#$ #$ #$J($ ($ ($TM M MG G G"O O O	$ 	$ 	$
D 
D 
D 
D 
Dr#   r  z^ignore:.*NumPy warning suppression and assertion utilities are deprecated.*:DeprecationWarningz*checks global module & deprecated warnings)reasonc                   &    e Zd Zd Zd Zd Zd ZdS )	TestWarnsc                 T   d }t           j        d         j        d d          }t          t	          t
          |          d           t           j        d         j        }t          t          t          |           t          t          d d          d           t          ||d           d S )Nc                  .    t          j        d           dS )Nyor8   warningswarnr   r#   r!   fzTestWarns.test_warn.<locals>.f  s    M$1r#   r  r8   c                     | S r   r   )rh   s    r!   r-  z%TestWarns.test_warn.<locals>.<lambda>  s    ! r#   r.   .assert_warns does not preserver warnings state)	sysmodulesfiltersr   r   UserWarningr   r+   r   )r   r  before_filtersafter_filterss       r!   	test_warnzTestWarns.test_warn  s    	 	 	 Z08;\+q111555J/7n&8!<<<'Q77;;; 	^]E	G 	G 	G 	G 	Gr#   c                 D   t           j        d         j        d d          }t          t                    5  t          j        d           d d d            n# 1 swxY w Y   t           j        d         j        }d }t          t          |           t          ||d           d S )Nr  r  c                  |    t                      5  t          j        d           d d d            d S # 1 swxY w Y   d S Nr  )r   r  r  r   r#   r!   no_warningsz3TestWarns.test_context_manager.<locals>.no_warnings  s    #%% $ $d###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   155r  )
r  r  r  r   r   r  r  r   r+   r   )r   r  r  r  s       r!   test_context_managerzTestWarns.test_context_manager  s    Z08;+&& 	  	 M$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 J/7	$ 	$ 	$ 	nk222^]E	G 	G 	G 	G 	Gs   AAAc                    dd}t          t          |d          dk    sJ t          j        t                    5 }t          t          d          5  t          j        dt                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d	t          |          v sJ d
t          |          v sJ t          j        t                    5 }t          t          d          5  t          j        dt                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d	t          |          v sJ d
t          |          vsJ d S )Nr   r.   c                 4    t          j        d           | |z   S r  r  )r'   r(   s     r!   r  zTestWarns.test_args.<locals>.f  s    M$q5Lr#   r  r(   Ar`   Br   zpytest.warns)wrong)r   r.   )r   r   rb   rc   RuntimeErrorr  r  rd   )r   r  excs      r!   	test_argszTestWarns.test_args  sV   	 	 	 	 Kb111R7777]<(( 	0Ck555 0 0c;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 S))))S))))]<(( 	0Ck555 0 0c;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 S))))SXX------sk   BA9-B9A=	=B A=	BBBD/1DD/D	D/D	 D//D36D3c                    d }d}t          j                    5  t          j        dt                     	 t	          t
          |           d}n# t          $ r Y nw xY wd d d            n# 1 swxY w Y   |rt          d          d S )Nc                  :    t          j        dt                     d S r  )r  r  DeprecationWarningr   r#   r!   r  z,TestWarns.test_warn_wrong_warning.<locals>.f  s    M$ 233333r#   FerrorTz#wrong warning caught by assert_warn)r  catch_warningssimplefilterr  r   r   r+   )r   r  faileds      r!   test_warn_wrong_warningz!TestWarns.test_warn_wrong_warning  s    	4 	4 	4 $&& 	 	!'+=>>>[!,,,%   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  	H !FGGG	H 	Hs4   A)AA)
AA)AA))A-0A-N)rH   rI   rJ   r  r  r  r  r   r#   r!   r  r  z  s[        G G G G G G. . .*H H H H Hr#   r  c                   P    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S )TestAssertAllclosec                    d}d}t          ||d           t          t          t           ||           d}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   d}d}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   d	}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   t          j        ||||g          }t          j        ||||g          }t          ||d           t          t          t           ||           |d
z  |d<   t          ||           t          t          t           ||d           t          ddd           t          t          t           ddd           t          j        ||||g          }t          j        ||||g          }d}t          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   d}t          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )NgMbP?g&.>r.   atolzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.001
Max relative difference among violations: 999999.r`   r   zMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-09
Max relative difference among violations: infzMismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.e-09
Max relative difference among violations: 1.g1  ?r  )rtolr  r   g      ?zMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 0.001 (ACTUAL), 0.0 (DESIRED)
Max absolute difference among violations: 0.001
Max relative difference among violations: infzMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 0.0 (ACTUAL), 0.001 (DESIRED)
Max absolute difference among violations: 0.001
Max relative difference among violations: 1.)	r   r   r+   rb   rc   rf   rg   r1   r2   )r   rh   ri   rl   rT  r'   r(   rV   s           r!   r#  zTestAssertAllclose.test_simple  s   11%%%%noq!<<<L ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" H ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"G ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" HaAq\""HaAq\""11%%%%noq!<<<X"1noq!$GGGG2C((((nor13GGGGHaAq\""HaAq\""H
 ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"G
 ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sZ   "A??BB;CCCD//D36D3I::I>I>4KKKc                     t          j        t          j        t           j                  j        gt           j                  }t          ||           d S )Nr?   )r1   r2   iinfoint_minr   rB   s     r!   test_min_intzTestAssertAllclose.test_min_int  s@    Hbhrw''+,BG<<<1r#   c                    t          j        g d          }t          j        g d          }d}t          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )N)r.   r.   r.   r.   )r.   r.   r.   r/   zMismatched elements: 1 / 4 (25%)
Mismatch at index:
 [3]: 1 (ACTUAL), 2 (DESIRED)
Max absolute difference among violations: 1
Max relative difference among violations: 0.5r`   r1   r2   rb   rc   r+   rf   rg   r   r   s       r!   test_report_fail_percentagez.TestAssertAllclose.test_report_fail_percentage  s    H\\\""H\\\""H
 ]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"   A::A>A>c                 :   t          j        t           j        g          }t          j        t           j        g          }t          ||d           t          j        t	          t           j        t           j                  g          }t          j        t	          t           j        t           j                  g          }t          ||d           t          j        t	          t           j        t           j                   g          }t          ||d           d S )NT	equal_nan)r1   r2   rr   r   r  r   r&   s      r!   test_equal_nanz!TestAssertAllclose.test_equal_nan  s    HbfXHbfX1----Hgbfbf--.//Hgbfbf--.//1----Hgbfrvg../001------r#   c                    t          j        t           j        g          }t          j        t           j        g          }t          t          t
          ||d           t          j        t          t           j        t           j                  g          }t          j        t          t           j        t           j                  g          }t          t          t
          ||d           d S )NFr*  )r1   r2   rr   r   r+   r   r  r   r&   s      r!   test_not_equal_nanz%TestAssertAllclose.test_not_equal_nan  s    HbfXHbfXnoq!uMMMMHgbfbf--.//Hgbfbf--.//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   )r1   r2   rr   r
   r   r   r   r&   s      r!   test_equal_nan_defaultz)TestAssertAllclose.test_equal_nan_default'  sp     HbfXHbfX1a   !!Q'''!Q1r#   c                    t          j        ddg          }t          j        ddg          }d}t          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r.   r/   z-Max relative difference among violations: 0.5r`   r&  r   s       r!   test_report_max_relative_errorz1TestAssertAllclose.test_report_max_relative_error2  s    HaVHaVF]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"r(  c                 X    t          j        g dgd          }t          ||           d S )N)r.   r/   r8   r   zm8[ns]r?   )r1   r2   r   rB   s     r!   test_timedeltaz!TestAssertAllclose.test_timedelta:  s6    H&&&'x8881r#   c                    t          j        g dd          }t          j        g dd          }d}t          j        t          t          j        |                    5  t          ||d           d	d	d	           d	S # 1 swxY w Y   d	S )
zUCheck the message is formatted correctly when overflow can occur
           (gh21768))r   r.   r  uint8r?   )r9   r9   r9   z+Max absolute difference among violations: 4r`   r8   r  N)r1   asarrayrb   rc   r+   rf   rg   r   r"  s       r!   test_error_message_unsignedz.TestAssertAllclose.test_error_message_unsigned?  s     Jyyy000Jyyy000D]><1H1HIII 	* 	*Aqq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s    B  BBc                    t          j        d          }t          j        d          }t          ||           t          j        t
                    5  t          ||d           ddd           n# 1 swxY w Y   t          ||           t          j        t
                    5  t          ||                    t           j                  d           ddd           dS # 1 swxY w Y   dS r  )r1   r  r   rb   rc   r+   r  r   r  s      r!   r  zTestAssertAllclose.test_strictL  sa   GAJJGBKK1]>** 	/ 	/Aq....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/1]>** 	B 	BAqxx
33DAAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs$   A11A58A5%0C""C&)C&c                 N   t          j        t           j        g          }t          j        t           j        g          }t          ||           t          j        dg          }d}t	          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   t          j        t           j         g          }d}t	          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   t          j        t          t           j        d          g          }d}t	          j        t          t          j        |                    5  t          ||           d d d            n# 1 swxY w Y   t          j        t          t           j        d          g          }t          j        t          t           j        d          g          }t          ||           t          j        t          t           j        d          g          }d}t	          j        t          t          j        |                    5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr   zinf location mismatch:r`   zinf values mismatch:r   r   )
r1   r2   r   r   rb   rc   r+   rf   rg   r  r   s       r!   	test_infszTestAssertAllclose.test_infsW  s   HbfXHbfX1HbTNN/]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" HrvgY-]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"Hgbfb))*++-]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" Hgbfb))*++Hgbfb))*++1Hgbfb))*++-]><1H1HIII 	" 	"Aq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sH   B00B47B4
D''D+.D+F++F/2F/<JJ!JN)rH   rI   rJ   r#  r$  r'  r,  r.  r0  r2  r4  r8  r  r;  r   r#   r!   r  r    s        7" 7" 7"r  

" 
" 
"
. 
. 
.N N N	 	 	" " "  
* * *	B 	B 	B" " " " "r#   r  c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestArrayAlmostEqualNulpc                 v   d}t          j        dddt           j                  }d|z  }t           j        | |f         }t          j        |j                  j        }|||z  |z  dz  z   }t          |||           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||           d S Nr   r  2   r?   r   r   	r1   linspacefloat64r_finfor@   epsr	   epsnegr   nulprh   rG  ri   rH  s         r!   test_float64_passz*TestArrayAlmostEqualNulp.test_float64_passu  s     KR2:666EE1"a%L hqw#C$##&q!T222 !'"")F
T!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?  r1   rC  rD  rE  rF  r@   rG  r   r+   r	   rH  rI  s         r!   test_float64_failz*TestArrayAlmostEqualNulp.test_float64_fail      KR2:666EE1"a%Lhqw#C$##n&DD	" 	" 	" !'"")F
T!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   )r1   uint64r2   rr   rD  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?  	r1   rC  r   rE  rF  r@   rG  r	   rH  rI  s         r!   test_float32_passz*TestArrayAlmostEqualNulp.test_float32_pass  s    KR2:666EE1"a%Lhqw#C$##&q!T222!'"")F
T!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?  r1   rC  r   rE  rF  r@   rG  r   r+   r	   rH  rI  s         r!   test_float32_failz*TestArrayAlmostEqualNulp.test_float32_fail  rO  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   )r1   uint32r2   rr   r   r   r   )r   rR  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   r9   r   r?   r   )	r1   rC  float16rE  rF  r@   rG  r	   rH  rI  s         r!   test_float16_passz*TestArrayAlmostEqualNulp.test_float16_pass  s    KAr444EE1"a%Lhqw#C$##&q!T222!'"")F
T!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 rf  )r1   rC  rh  rE  rF  r@   rG  r   r+   r	   rH  rI  s         r!   test_float16_failz*TestArrayAlmostEqualNulp.test_float16_fail  s    KAr444EE1"a%Lhqw#C$##n&DD	" 	" 	" !'"")F
T!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   )r1   uint16r2   rr   rh  r   r   )r   rR  nan1_i16nan2_i16nan1_f16nan2_f16s         r!   test_float16_ignore_nanz0TestArrayAlmostEqualNulp.test_float16_ignore_nan  s     48BF"*555::29EEf$==,,==,,Xx33333r#   c                    d}t          j        dddt           j                  }d|z  }t           j        | |f         }||dz  z   }t          j        |j                  j        }|||z  |z  dz  z   }t          |||dz  z   |           t          |||dz  z   |           |||z  |z  d	z  z   }t          |||dz  z   |           t          j        |j                  j        }|||z  |z  dz  z
  }t          |||dz  z   |           t          |||dz  z   |           |||z  |z  d	z  z
  }t          |||dz  z   |           d S 
Nr   r@  r  rA  r?   r   r=  r   r   rB  r   rJ  rh   xirG  ri   rH  s          r!   test_complex128_passz-TestArrayAlmostEqualNulp.test_complex128_pass  sr   KR2:666EE1"a%LRZhqw#C$##&r1q2v:t<<<&r1q2v:t<<< C$##&r1q2v:t<<<!'"")F
T!B&&&r1q2v:t<<<&r1q2v:t<<<F
T!B&&&r1q2v:t<<<<<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@  r  rA  r?   r   r=  r   rM  rv  s          r!   test_complex128_failz-TestArrayAlmostEqualNulp.test_complex128_fail  s   KR2:666EE1"a%LRZhqw#C$##n&D!a"f*d	, 	, 	,n&D!a"f*d	, 	, 	, C$n&D!a"f*d	, 	, 	, !'"")F
T!B&&n&D!a"f*d	, 	, 	,n&D!a"f*d	, 	, 	,F
T!!n&D!a"f*d	, 	, 	, 	, 	,r#   c                    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 ru  rY  rv  s          r!   test_complex64_passz,TestArrayAlmostEqualNulp.test_complex64_pass(  sp   KR2:666EE1"a%LRZhqw#C$##&r1q2v:t<<<&r1q2v:t<<<C$##&r1q2v:t<<<!'"")F
T!B&&&r1q2v:t<<<&r1q2v:t<<<F
T!B&&&r1q2v:t<<<<<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 rz  r\  rv  s          r!   test_complex64_failz,TestArrayAlmostEqualNulp.test_complex64_fail=  s   KR2:666EE1"a%LRZhqw#C$##n&D!a"f*d	, 	, 	,n&D!a"f*d	, 	, 	,C$n&D!a"f*d	, 	, 	, !'"")F
T!B&&n&D!a"f*d	, 	, 	,n&D!a"f*d	, 	, 	,F
T!!n&D!a"f*d	, 	, 	, 	, 	,r#   N)rH   rI   rJ   rK  rN  rW  rZ  r]  rd  ri  rk  rs  rx  r{  r}  r  r   r#   r!   r=  r=  s  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)r1   randomrandnr   )r   rh   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?r  r  )	r1   r  r  r   r  r  rF  rG  r   r   rh   rG  s      r!   test_singlezTestULP.test_single_  s    GBKKrz**	TBIOOB''..rz::::hrz""&QC333333r#   c                 \   t          j        d                              t           j                  }|dt           j                            d                              t           j                  z  z  }t          j        t           j                  j        }t          |||z   d           d S )Nr   r     r  )	r1   r  r  rD  r  r  rF  rG  r   r  s      r!   test_doublezTestULP.test_doublef  s    GBKKrz**	TBIOOB''..rz::::hrz""&QC444444r#   c                    t           j        t           j        fD ]r}t          j        t           j        g                              |          }t          j        t          j        |          j        g          }t          ||d           sd S )Nr  r  )	r1   r   rD  r2   r   r  rF  maxr   )r   dtr   bigs       r!   r;  zTestULP.test_infm  sz    :rz* 	7 	7B(BF8$$++B//C(BHRLL,-..C c#66666	7 	7r#   c                    t           j        t           j        fD ]}|t           j        k    rdndt          j        t           j        g                              |          t          j        t           j        g                              |          t          j        t          j        |          j        g          t          j        t          j        |          j	        g          t          j        dg                              |          t          j        dg                              |          t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd	           d S )
Ng    .Ag   mBr   g       c                  (    t                     S Nr  r   )r   r  rr   s   r!   r-  z"TestULP.test_nan.<locals>.<lambda>  !    "6sC>D#F #F #F r#   c                  (    t                     S r  r  )r  r  rr   s   r!   r-  z"TestULP.test_nan.<locals>.<lambda>  r  r#   c                  (    t                     S r  r  )r  rr   tinys   r!   r-  z"TestULP.test_nan.<locals>.<lambda>  !    "6sD>D#F #F #F r#   c                  (    t                     S r  r  )r  rr   zeros   r!   r-  z"TestULP.test_nan.<locals>.<lambda>  r  r#   c                  (    t                     S r  r  )r  rr   nzeros   r!   r-  z"TestULP.test_nan.<locals>.<lambda>  s!    "6sE>D#F #F #F r#   )r1   r   rD  r2   r   r  rr   rF  r  r  r   r+   )	r   r  r  r   r  rr   r  r  r  s	     @@@@@@@r!   r5  zTestULP.test_nans  s5   :rz* 	G 	GBRZ(BF8$$++B//C(BF8$$++B//C(BHRLL,-..C8RXb\\./00D8SE??))"--DHdV$$++B//E.F F F F F FG G G .F F F F F FG G G .F F F F F FG G G .F F F F F FG G G .F F F F F FG G G G/	G 	Gr#   N)rH   rI   rJ   r  r  r  r;  r5  r   r#   r!   r  r  Y  sd        - - -4 4 45 5 57 7 7G G G G Gr#   r  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 )NrW   r  r   r   r#   r!   r-  z-TestStringEqual.test_simple.<locals>.<lambda>  s    1%AA r#   )r   rb   rc   r+   rd   re   r   r   )r   rj   rk   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  r   r#   r!   r-  z,TestStringEqual.test_regex.<locals>.<lambda>  s    1%?? r#   )r   r   r+   rF   s    r!   
test_regexzTestStringEqual.test_regex  s;    FF+++n??	A 	A 	A 	A 	Ar#   N)rH   rI   rJ   r#  r  r   r#   r!   r  r    s:        
C 
C 
CA A A A Ar#   r  c                     	 | j         }n# t          $ r i }Y nw xY wt          |          }d|v r|dz  }t          ||           d S )Nversionr.   )__warningregistry__AttributeErrorlenr   )modn_in_context	mod_warns	num_warnss       r!   assert_warn_len_equalr    sp    
+		    			 III 	Q	L)))))s   
 c                       G d d          }  |             }t          |d            G d d          }  |             }t          |d           d S )Nc                       e Zd ZdS )/test_warn_len_equal_call_scenarios.<locals>.modN)rH   rI   rJ   r   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  rF   s    r!   __init__z8test_warn_len_equal_call_scenarios.<locals>.mod.__init__  s    4545(7 (7D$$$r#   N)rH   rI   rJ   r  r   r#   r!   r  z/test_warn_len_equal_call_scenarios.<locals>.mod  s#        	7 	7 	7 	7 	7r#   r/   )r  )r  mod_insts     r!   "test_warn_len_equal_call_scenariosr    s            suuHh'(* * * *
7 7 7 7 7 7 7 7
 suuHh'(* * * * * *r#   c                      t           j        t                   } 	 | j                                         n# t
          $ r Y nw xY w| S r   )r  r  rH   r  clearr  my_mods    r!   _get_fresh_modr    sT    ["F"((****    	 Ms   3 
A A c                  z   t                      } t          t          | di           i            t          | g          5  t	          j        d           t	          j        d           d d d            n# 1 swxY w Y   t          | j        i            t                      5  t	          j        d           t	          j        d           d d d            n# 1 swxY w Y   t          | d           ddd| _        t          | g          5  t	          j        d           t	          j        d	           d d d            n# 1 swxY w Y   t          | d           t                      5  t	          j        d           t	          j        d	           d d d            n# 1 swxY w Y   t          | d           d S )
Nr  )r  ignoreSome warningr   r.   r/   r  zAnother warning)	r  r   getattrr   r  r  r  r  r  r  s    r!   test_clear_and_catch_warningsr    s    F!6;;R@@@	!6(	3	3	3 & &h'''n%%%& & & & & & & & & & & & & & & +R000 
"	#	# & &h'''n%%%& & & & & & & & & & & & & & & &!$$$ /0./"1 "1F 
"6(	3	3	3 ) )h''''((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) &!$$$ 
"	#	# ) )h''''((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) &!$$$$$sG   )A44A8;A8")CCC)EE	E+)F  F$'F$c                  n   t                      } t          t          | di           i            d }t          | d           t	                      5 }|                    t                     |                    t          j	        j
                   t          j        d            |             d d d            n# 1 swxY w Y   t          t          |j                  d           t          |j        d         j        j        d         d           t          | d           t	                      }|                    |            |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           |                    |            |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           t	                      5  t          j        d           t          j        d           d d d            n# 1 swxY w Y   t          | d           d S )Nr  c                  :    d } t          j        | ddg           d S )Nc                 2    t          j        dd           | S )NzSome warning 2r/   
stacklevelr  arrs    r!   r  zFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warn  s    M*q9999Jr#   r   r1   apply_along_axisr  s    r!   warn_other_modulez8test_suppress_warnings_module.<locals>.warn_other_module  0    	 	 	 	D!aS)))))r#   r   moduler  r.   r  )r  r   r  r  r   recordr   filterr1   lib_shape_base_implr  r  r  logmessager   r  )r  r  sups      r!   test_suppress_warnings_moduler    s    F!6;;R@@@* * * &!$$$			 

; 	

"&1
222n%%%               SWq!!!#(+^<<<&!$$$


CJJfJ	 & &n%%%& & & & & & & & & & & & & & &&!$$$JJfJ	 & &n%%%& & & & & & & & & & & & & & &&!$$$ 
		 & &h'''n%%%& & & & & & & & & & & & & & & &!$$$$$sI   AB99B= B=E((E,/E,F<<G G %)HH!Hc                  X   t                      } t          t          | di           i            t                      5 }|                    t
                     t          j        d           d d d            n# 1 swxY w Y   t          | d           t                      }|                    t
                     |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           |                    |            |5  t          j        d           d d d            n# 1 swxY w Y   t          | d           t                      5  t          j	        d           t          j        d           d d d            n# 1 swxY w Y   t          | d           d S )Nr  r  r   r  r  )
r  r   r  r   r  r   r  r  r  r  )r  r  s     r!   test_suppress_warnings_typer  7  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z8uses deprecated thread-unsafe warnings control utilitiesc                  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>.warna  s    nh/////r#   T)r  alwaysr.   )	r   r  r   r  r  r  RuntimeWarningr   r  )r  r  ws      r!   )test_suppress_warnings_decorate_no_recordr  W  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  l  s    

C::<<D	 
F 
Fzz"8z99

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

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

   	+DKKK///M.)))M.///TX***		+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	S\\1%%%& & & & & & & & & & & & & & & & & &s\   C+DD #D )C+H  H$'H$9#LA!K	=L	K	LK	%LL
Lc                     d } t                      5 }|                                 t          d          5  t          d          D ]}t          j        d           	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            n# 1 swxY w Y   t                      5 }|                                 t          d          5  t          d          D ]*}t          j        d           t          j        d           +	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            n# 1 swxY w Y   t                      5 }|                                 t          d          5  t          d          D ]4}t          j        d           t          j        d            |              5	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            n# 1 swxY w Y   t                      5 }|                                 t          d          5  t          d          D ]4}t          j        d           t          j        d	            |              5	 d d d            n# 1 swxY w Y   t          t          |j                  d           d d d            d S # 1 swxY w Y   d S )
Nc                  :    d } t          j        | ddg           d S )Nc                 2    t          j        dd           | S )Nr  r/   r  r  r  s    r!   r  zJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warn  s    M.Q7777Jr#   r   r  r  s    r!   r  z<test_suppress_warnings_forwarding.<locals>.warn_other_module  r  r#   r  r/   r  r8   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                  $   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 .B66B::C =B:>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" "B10B1c                   *    e Zd Zej        e          fZdS )my_cacwN)rH   rI   rJ   r  r  class_modulesr   r#   r!   r  r    s        [*,MMMr#   r  c                      t                      } t                      5  t          j        d           t          j        d           d d d            n# 1 swxY w Y   t          | j        i            d S )Nr  r  )r  r  r  r  r  r   r  r  s    r!   %test_clear_and_catch_warnings_inheritr	    s     F	 & &h'''n%%%& & & & & & & & & & & & & & & +R00000s   )AAAzPython lacks refcountsz!garbage collector is global statec                   H    e Zd ZdZd Zd Zej        j        d             Z	dS )TestAssertNoGcCyclesz Test assert_no_gc_cycles c                     d }t                      5   |             d d d            n# 1 swxY w Y   t          |           d S )Nc                  4    g } |                      g            | S r   appendr  s    r!   no_cyclez2TestAssertNoGcCycles.test_passes.<locals>.no_cycle
  s    AHHRLLLHr#   )r   )r   r  s     r!   test_passesz TestAssertNoGcCycles.test_passes	  s    	 	 	
 !"" 	 	HJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	H%%%%%s   )--c                 <   d }t          t                    5  t                      5   |             d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nc                  ^    g } |                      |            |                      |            | S r   r  )r'   s    r!   
make_cyclez5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle  s*    AHHQKKKHHQKKKHr#   )r   r+   r   )r   r  s     r!   test_assertsz!TestAssertNoGcCycles.test_asserts  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   )cyclerF   s    r!   r  zETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__0  s    !


r#   c                 <    d | _         j        r              d S d S r   )r  r  )r   ReferenceCycleInDels    r!   __del__zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__3  s6    !
&1 * (')))))* *r#   N)rH   rI   rJ   __doc__r  r  r  )r  s   r!   r  r  )  sN          J" " "* * * * * * *r#   r  c                      d S r   r   r   r#   r!   r-  z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>A  s     r#   Nz*GC does not call __del__ on cyclic objectsF)	weakrefrefr   r  r   r+   rb   skipr  )r   r  r  s     @r!   
test_failszTestAssertNoGcCycles.test_fails"  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)
rH   rI   rJ   r  r  r  rb   markslowr#  r   r#   r!   r  r    s[         %$	& 	& 	&, , , [(3 (3 (3 (3 (3r#   r  )Br   r  rf   r  r  r   rb   numpyr1   numpy._core._multiarray_umath_core_multiarray_umathr  numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   r   r   r  re  r  r  r$  filterwarningsthread_unsafer  r  r=  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  skipifr  r   r#   r!   <module>r.     sG       				 				 



        + + + + + + + + +                                             2./ ./ ./ ./ ./ ./ ./ ./bC1 C1 C1 C1 C1\ C1 C1 C1L* * * * * * * *Z\) \) \) \) \) \) \) \)~U  U  U  U  U < U  U  U pg  g  g  g  g l g  g  g T(M (M (M (M (M (M (M (MVcD cD cD cD cD cD cD cDJ   "NOOEH EH EH EH EH EH EH PO EHPk" k" k" k" k" k" k" k"Zc, c, c, c, c, c, c, c,L5G 5G 5G 5G 5G 5G 5G 5GpA A A A A A A A(* * *.* * *8	 	 	 "NOO% % PO%@   "NOO+% +% PO +%\   "NOO% % PO %8   E            E   && &&  &&R   E   0& 0&  0&f% % %"' ' ' - - - - -& - - -
 "NOO1 1 PO1 $-EFF"EFFE3 E3 E3 E3 E3 E3 E3 GF GFE3 E3 E3r#   