
    giU7                       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jV                  jY                  d      ejV                  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jV                  j[                  d      d#        Z6ejV                  jY                  d      ejV                  j[                  d      d$               Z7ejV                  jY                  d      ejV                  j[                  d      d%               Z8ejV                  jY                  d      ejV                  j[                  d&      d'               Z9ejV                  jY                  d      ejV                  j[                  d&      d(               Z:ejV                  jY                  d      ejV                  j[                  d&      d)               Z;d* Z<d+ Z= G d, d-e      Z>ejV                  j[                  d      d.        Z?ejV                  j                  e d/      ejV                  j[                  d0       G d1 d2                    ZAy)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                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)_GenericTestc                      y N selfargskwargss      V/var/www/html/audio_env/lib/python3.12/site-packages/numpy/testing/tests/test_utils.py_assert_funcz_GenericTest._assert_func'   s        c                 (    | j                  ||       y r   r"   r   abs      r!   _test_equalz_GenericTest._test_equal*   s    !Qr#   c                 p    t        t              5  | j                  ||       d d d        y # 1 sw Y   y xY wr   )r   AssertionErrorr"   r&   s      r!   _test_not_equalz_GenericTest._test_not_equal-   s/    >* 	$a#	$ 	$ 	$s   ,5c                     t        j                  ddg      }t        j                  ddg      }| j                  ||       y)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   s6    HHaVHHaVAr#   c                     t        j                  ddg      }t        j                  ddg      }| j                  ||       y)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   s6    HHaVHHaVQ"r#   c                     t        j                  ddgddgg      }t        j                  ddgddgg      }| j                  ||       y)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?   sH    HHq!fq!f%&HHq!fq!f%&Ar#   c                     t        j                  ddg      }t        j                  ddgddgg      }| j                  ||       y):Test two arrays with different shapes are found not equal.r.   r/   Nr5   r&   s      r!   test_array_diffshapez!_GenericTest.test_array_diffshapeF   s?    HHaVHHq!fq!f%&Q"r#   c                 b    t        j                  ddgt              }| j                  |d       y)zTest object arrays.r.   dtypeN)r1   r2   objectr)   r   r'   s     r!   test_objarrayz_GenericTest.test_objarrayM   s&    HHaV6*Ar#   c                 ,    | j                  g dd       y )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                   r    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y)TestArrayEqualc                     t        |i | y r   )r
   r   s      r!   r"   zTestArrayEqual._assert_funcX   s    D+F+r#   c                 L      fd}dD ]
  } ||        dD ]
  } ||        y)z!Test rank 1 array for all dtypes.c                     t        j                  d|       }|j                  d       |j                         }|j                         }|j                  d       j	                  ||       j                  ||       y )Nr/   r.   r   r1   emptyfillcopyr)   r,   tr'   r(   cr   s       r!   fooz.TestArrayEqual.test_generic_rank1.<locals>.foo]   s^    AAFF1IAAFF1IQ"  A&r#   ?bhilqpBHILQPfdgFDGS1U1Nr   r   rW   rU   s   `  r!   test_generic_rank1z!TestArrayEqual.test_generic_rank1[   8    	' ' 	AF	  	AF	r#   c                 n   t        j                  d      }t        j                  d      }t        j                  t              5 }| j                  ||       d d d        t        j                        }t        d|v        |}| j                  ||       t        j                  d      }t        j                  d      }d}t        j                  t        t        j                  |            5  | j                  ||       d d d        |}| j                  ||       y # 1 sw Y   xY w# 1 sw Y   *xY w)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   HH9:HH89]]>* 	$ha#	$(..!5 	 !QHH34HHQKJ ]]><1HI 	$a#	$ !Q'	$ 	$	$ 	$s   D/D+D(+D4c                 L      fd}dD ]
  } ||        dD ]
  } ||        y)z!Test rank 3 array for all dtypes.c                     t        j                  d|       }|j                  d       |j                         }|j                         }|j                  d       j	                  ||       j                  ||       y )N)r9   r/   r8   r.   r   rP   rT   s       r!   rW   z.TestArrayEqual.test_generic_rank3.<locals>.foo   s_    A&AFF1IAAFF1I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      }| j                  ||       t        j                  g d      }| j	                  ||       y)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   s`    HHaBFF^$HHaBFF^$AHHYQ"r#   c                     t        j                  ddg      }t        j                  ddg      }| j                  ||       t        j                  ddg      }| j                  ||       y)r<   floupifloupafloupipiN)r1   r2   r)   r,   rs   s       r!   test_string_arraysz!TestArrayEqual.test_string_arrays   s[    HHh)*HHh)*AHHj(+,Q"r#   c                    t        j                  ddt        fdt        fg      }ddg|d<   ddg|d<   |j                         }| j	                  ||       t        j                  ddt        fdt        fdt        fg      }|d   j                         |d<   |d   j                         |d<   t        j                  t              5  | j                  ||       ddd       y# 1 sw Y   yxY w)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   s    HHQ(E*Xu,=>?!f(!f(FFHAHHQ*e,"E*Xu,=? @(((**k&&((]]9% 	'  A&	' 	' 	's   C!!C*c                    t         j                  j                  g dg d      }t        j                  dt         j                  dg      }| j                  ||       | j                  ||       t         j                  j                  g dg d      }t        j                  t         j                  ddg      }| j                  ||       | j                  ||       y )N      @      @      @)FTFmaskr   r   )TFFr   )r1   maMaskedArrayr2   rr   r)   infr&   s      r!   test_masked_nan_infz"TestArrayEqual.test_masked_nan_inf   s    EEm2FGHHb"&&#&'AAEEm2FGHHbffb#&'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
                  j                  |d      }|r!t        j
                  j                  |d      nt        j                  |      }| j                  ||       | j                  ||        t        j                  dt        j                  t        j                   gt        j                  ddt        j                  t        j                  t        j                   gd            D ]_  \  }}t        j
                  j                  |d      }t        j                  |      }| j                  ||       | j                  ||       a t        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 ]l  \  }}}t        j
                  j                  |d      }t        j
                  j                  ||      }| j                  ||       | j                  ||       n y )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   s#   &/&7&7 RVVRVVbffW-DM'
 	#"E5(
 !!%d!3A7?!!%d!3RXXe_AQ"Q"	# &--"&&!r2rvvrvvw?J
 	#LE5 !!%d!3AAQ"Q"	# %.$5$5 r2rvvrvvw?JudmA6%
 	# E5&
 !!%d!3A!!%f!5AQ"Q"	#r#   c                 R    G d dt         j                        }t        j                  ddg      j                  |      }t        j                  ddg      j                  |      }t	        t        ||k(        t               t	        ||k(         t	        ||k7         | j                  ||       | j                  ||       | j                  ||       d}t        j                  t        t        j                  |            5  | j                  ||       d d d        t        j                  dd	g      j                  |      }d
}t        j                  t        t        j                  |            5  | j                  ||       d d d        y # 1 sw Y   {xY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zd Zy)?TestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArrayc                 \    t        t        j                  | |      j                               S r   )boolr1   equalallr   others     r!   __eq__zFTestArrayEqual.test_subclass_that_overrides_eq.<locals>.MyArray.__eq__   s!    BHHT51557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      s    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   sV   
	)bjj 	) HHb"X##G,HHb"X##G,Q!Vd#QQAQ"Q"H ]]><1HI 	#Q"	# HHb#Y$$W-H ]]><1HI 	#Q"	# 	#	# 	#	# 	#s   F5FFF&c                     G d dt         j                        }t        j                  ddg      j                  |      }t        j                  ddg      j                  |      }t	        t
              5  t        j                  |       d d d        | j                  ||       | j                  ||       | j                  ||       y # 1 sw Y   @xY w)Nc                       e Zd Zd Zy)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    	&bjj 	& HHb"X##G,HHb"X##G,9% 	FF1I	AQ"Q"		 	s   5C

Cc           	         t        j                  t              5  t        j                  d      5  t        j
                  j                  t        j                  g dt        j                        t        j                  g dt        j                               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)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

--HHY

3HH]BJJ799	9 	99 9	9 	9s#   B7A)B+B7+B4	0B77C c                 Z    t        j                  g d      }d}| j                  ||       y)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$  s%    HH\"Ar#   c                    t        j                  g d      }t        j                  g d      }d}t        j                  t        t        j                  |            5  | j                  ||       ddd       t        j                  g d      }d}t        j                  t        t        j                  |            5  | j                  ||       ddd       y# 1 sw Y   lxY w# 1 sw Y   yxY w)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    HH45HH/0H
 ]]><1HI 	$a#	$ HH67) ]]><1HI 	$a#	$ 	$	$ 	$	$ 	$s   CC)C&)C2c                     t        j                  g d      }d}t        j                  t              5  | j                  ||d       ddd       y# 1 sw Y   yxY w)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  sK    HH\"]]>* 	1a40	1 	1 	1s   AAc                     t        j                  g d      }t        j                  g d      }| j                  ||d       y)-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  s3    HH\"HH\"!Qt,r#   c                     t        j                  g d      }t        j                  g d      }t        j                  t              5  | j                  ||d       ddd       y# 1 sw Y   yxY w)r   )r.   r.   r.   r   Tr   Nr   r&   s      r!    test_array_vs_float_array_strictz/TestArrayEqual.test_array_vs_float_array_strictS  sT    HHYHH\"]]>* 	1a40	1 	1 	1s   A&&A/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   sY    ,& 2&#	#'"	#B #D#9$21-1r#   rL   c                   $    e Zd Zd Zd Zd Zd Zy)TestBuildErrorMessagec                     t        j                  g d      }t        j                  g d      }d}t        ||g|      }d}t        ||       y )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^  sH    HH01HH01'1a&'*" 	Qr#   c                     t        j                  g d      }t        j                  g d      }d}t        ||g|d      }d}t        ||       y )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    HH01HH01'1a&'598Qr#   c                     t        j                  g d      }t        j                  g d      }d}t        ||g|d      }d}t        ||       y )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    HH01HH01'1a&'@ 	Qr#   c                     t        j                  g d      }t        j                  g d      }d}t        ||g|d      }d}t        ||       y )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    HH45HH45'1a&'R87 	Qr#   N)rH   rI   rJ   r   r   r   r   r   r#   r!   r   r   \  s    			r#   r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)	TestEqualc                     t        |i | y r   )r   r   s      r!   r"   zTestEqual._assert_func  s    d%f%r#   c                 ^   | j                  t        j                  t        j                         | j                  t        j                  gt        j                  g       | j                  t        j                  t        j                  g       | j                  t        j                  d       y Nr.   )r"   r1   rr   r,   rF   s    r!   test_nan_itemszTestEqual.test_nan_items  sd    "&&"&&)266(RVVH-RVVbffX.RVVQ'r#   c                    | j                  t        j                  t        j                         | j                  t        j                  gt        j                  g       | j                  t        j                  t        j                  g       y r   )r"   r1   r   r,   rF   s    r!   test_inf_itemszTestEqual.test_inf_items  sP    "&&"&&)266(RVVH-RVVbffX.r#   c                    | j                  t        j                  dd      t        j                  dd             | j                  t        j                  dd      t        j                  dd             | j                  t        j                  dd      t        j                  dd             | j                  t        j                  dd      t        j                  dd             y )N
2017-01-01smz
2017-01-02)r)   r1   
datetime64r,   rF   s    r!   test_datetimezTestEqual.test_datetime  s    MM,,MM,,	
 	MM,,MM,,	
 	MM,,MM,,	
 	MM,,MM,,	
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                  |	|
       | j                  |	g|
g       | j                  |	g|
       @ t        j                  ||      D ]>  \  }	}
| j                  |	|
       | j                  |	g|
g       | j                  |	g|
       @ t        j                  ||      D ]  \  }	}
| j                  |	|
       | j                  |	|
g       | j                  |	g|
g       | j                  |	gt        j                  dd             | j                  |
gt        j                  dd             | j                  |	gt        j                  dd             | j                  |
gt        j                  dd              y )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*  !bmmL#&FG  !bmmL#&FG  !bnnS#&>?  !bnnS#&>?	@r#   c                 L    | j                  dd       | j                  dd       y )Nababb)r"   r,   rF   s    r!   test_non_numericzTestEqual.test_non_numeric  s"    $%T5)r#   c                 `   | j                  t        dd      t        dd             | j                  t        dt        j                        t        dt        j                               | j	                  t        dt        j                        t        dd             | j	                  t        t        j                  d      t        dt        j                               | j	                  t        t        j                  t        j
                        t        t        j                  d             y Nr.   r/   )r"   complexr1   rr   r,   r   rF   s    r!   test_complex_itemzTestEqual.test_complex_item  s    '!Q-A7'!RVV,ga.@AWQ/A?WRVVQ/BFF1CDWRVVRVV4gbffa6HIr#   c                 `    | j                  t        j                  t        j                         y r   )r,   ncuPZERONZEROrF   s    r!   test_negative_zerozTestEqual.test_negative_zero  s    SYY		2r#   c                    t        j                  t        dd      t        dt         j                        g      }t        j                  t        dd      t        dd      g      }| j	                  ||       | j                  ||       y r  r1   r2   r  rr   r"   r,   r   rh   ri   s      r!   test_complexzTestEqual.test_complex  se    HHgamWQ%789HHgamWQ]34!QQ"r#   c                     dd l }t        j                  |j                  ddd      |j                  ddd      g      }| j                  ||d d d          y )Nr   i  r.   r/   )datetimer1   r2   r,   )r   r  r'   s      r!   test_objectzTestEqual.test_object  sS    HHh''a3''a35 6Q$B$(r#   N)rH   rI   rJ   r"   r   r   r   r   r  r  r  r  r  r   r#   r!   r   r     s6    &(/

(@>*J3#)r#   r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestArrayAlmostEqualc                     t        |i | y r   )r   r   s      r!   r"   z!TestArrayAlmostEqual._assert_func  s    !4262r#   c                    d}t        j                  t        t        j                  |            5  | j                  ddd       d d d        | j                  dgdgd       d}t        j                  t        t        j                  |            5  | j                  dgdgd       d d d        d	d
g}ddg}d}t        j                  t        t        j                  |            5  | j                  ||d       d d d        d}t        j                  t        t        j                  |            5  | j                  ||d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   y xY w)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  sg   H ]]><1HI 	3c32	3 	8*seQ7H
 ]]><1HI 	7secUA6	7  OH
 ]]><1HI 	/aA.	/G
 ]]><1HI 	/aA.	/ 	/;	3 	3	7 	7	/ 	/	/ 	/s/   EE#+E/8E;E #E,/E8;Fc                 ^   t        j                  dg      }t        j                  dg      }| j                  ||d       | j                  ||d       d}t        j                  t
        t        j                  |            5  | j                  ||d       d d d        y # 1 sw Y   y xY w)	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    HHi[!HHi[!!Q*!Q*) ]]><1HI 	/aA.	/ 	/ 	/s   B##B,c                    g d}d}d}t        j                  t        t        j                  |            5  | j                  ||d       d d d        d}t        j                  t        t        j                  |            5  | j                  ||d       d d d        ddg}d	}t        j                  t        t        j                  |            5  | j                  ||d
       d d d        d}d}t        j                  t        t        j                  |            5  | j                  ||d
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   y xY w)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)  sP   )G ]]><1HI 	/aA.	/N ]]><1HI 	/aA.	/ H ]]><1HI 	/aA.	/ H ]]><1HI 	/aA.	/ 	/=	/ 	/	/ 	/	/ 	/	/ 	/s/   EEE$E&EEE#&E/c                 j    t        j                  t         j                  g      t        j                  dg      t        j                  t         j                  g       j	                         t        t         fd       t        t         fd       t        t         fd       y )Nr.   c                  (    j                         S r   r%   ananaoner   s   r!   <lambda>z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>Z      d//d; r#   c                  (    j                         S r   r%   ainfr+  r   s   r!   r-  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>\  r.  r#   c                  (    j                         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  sq    xx!xx}xx!$%n;	=n;	=n;	=r#   c                     t        j                  ddgddgg      j                         t         j                  d<   t	        t
         fd       t         j                   d<   t	        t
         fd       y )Nr   r   r   r   )r   r   c                  (    j                         S r   r%   r'   r(   r   s   r!   r-  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>e      d//15 r#   c                  (    j                         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_    HHr2hR)*FFH&&$n5	766'$n5	7r#   c                 R   t        j                  t         j                  dz   ddg      }|j                         }| j	                  ||       d|d<   d}t        j                  t        t        j                  |            5  | j	                  ||       d d d        y # 1 sw Y   y xY w)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    HHbffslHh78FFH!Q!I ]]><1HI 	$a#	$ 	$ 	$s   BB&c                    t        j                  ddgddgg      }t         j                  j                  ddgddggddgddgg      }| j	                  ||       | j	                  ||       | j	                  ||       t         j                  j                  dd	      }t        j                  g d
      }| j                  ||       | j                  ||       t         j                  j                  }t        j                  g d
      }| j                  ||       | j                  ||       t         j                  j                  g d
g d	      }t        j                  g d      }| j                  ||       | j                  ||       t         j                  j                  g d
g d	      }t        j                  d      }| j                  ||       | j                  ||       y )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   HHr2hR)*EER2r(3!&u>@!Q!Q!Q EEc-HH]#AAEELLHH]#AAEEm2DEHH\"AAEEm2DEHHRLAAr#   c                     G d dt         j                        }t        j                  ddg      j                  |      }| j	                  ||       t        j                  ddg      j                  |      }t        |       t        j                  ddg      j                  |      }d}t        j                  t        t        j                  |            5  | j	                  ||       d d d        y # 1 sw Y   y xY w)	Nc                   .     e Zd Z fdZ fdZd Z xZS )5TestArrayAlmostEqual.test_subclass_2.<locals>.MyArrayc                 \    t         |   |      j                  t        j                        S r   superr   r   r1   r   r   r   	__class__s     r!   r   z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__eq__  !    w~e,11"**==r#   c                 \    t         |   |      j                  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    4y 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  s    
	!bjj 	! HHb"X##G,!QHHdD\"''0AHHb#Y$$W-L
 ]]><1HI 	$a#	$ 	$ 	$s   C55C>c                      G d dt         j                        }t        j                  ddg      j                  |      }| j	                  ||       y )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         |   |      j                  t        j                        S r   rG  rI  s     r!   r   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  rK  r#   c                 \    t         |   |      j                  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  A    
	*bjj 	* HHb"X##G,!Qr#   N)rH   rI   rJ   r"   r  r#  r'  r5  r;  r>  rB  rU  rb  r   r#   r!   r  r    s6    3)/V/")/V
=7
$4$: r#   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestAlmostEqualc                     t        |i | y r   )r   r   s      r!   r"   zTestAlmostEqual._assert_func      T,V,r#   c                       j                  ddd       t        t         fd        j                  dgdgd       t        t         fd       y )Nr  r   r   r  c                  ,     j                  ddd      S Nr  r   r   r  r%   rF   s   r!   r-  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//S!/D r#   c                  0     j                  dgdgd      S rj  r%   rF   s   r!   r-  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//ua/H r#   r"   r   r+   rF   s   `r!   r  zTestAlmostEqual.test_closeness  sQ     	(C3nD	F 	8*seQ7nH	Jr#   c                       j                  t        j                  t        j                         t        t         fd       t        t         fd       t        t         fd       y )Nc                  D     j                  t        j                  d      S r   )r"   r1   rr   rF   s   r!   r-  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//: r#   c                  `     j                  t        j                  t        j                        S r   )r"   r1   rr   r   rF   s   r!   r-  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//? r#   c                  `     j                  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  sD    "&&"&&)n:	<n?	An?	Ar#   c                      j                  t        j                  t        j                          j                  t        j                   t        j                          t        t         fd       t        t         fd       y )Nc                  D     j                  t        j                  d      S r   r"   r1   r   rF   s   r!   r-  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  ro  r#   c                  b     j                  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  sR    "&&"&&)266'BFF7+n:	<n@	Br#   c                 (    | j                  dd       y r  )r,   rF   s    r!   test_simple_itemz TestAlmostEqual.test_simple_item  s    Q"r#   c                    | j                  t        dd      t        dd             | j                  t        dt        j                        t        dt        j                               | j                  t        t        j                  t        j                        t        t        j                  t        j                               | j                  t        dt        j                        t        dd             | j                  t        t        j                  d      t        dt        j                               | j                  t        t        j                  t        j                        t        t        j                  d             y r  )r"   r  r1   rr   r   r,   rF   s    r!   r  z!TestAlmostEqual.test_complex_item  s    '!Q-A7'!RVV,ga.@A'"&&"&&172662663JKWQ/A?WRVVQ/BFF1CDWRVVRVV4gbffa6H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      }| j	                  ||       | j                  ||       | j                  ||       y r  r  )r   rh   rT  ri   s       r!   r  zTestAlmostEqual.test_complex  s    HHgamWQ%789HHgamWRVVQ%789HHgamWQ]34!QQ"Q"r#   c                    t        j                  g d      }t        j                  g d      }d}t        j                  t        t        j                  |            5  | j                  ||d       ddd       d}t        j                  t        t        j                  |            5  | j                  ||       ddd       t        j                  t         j                  d	g      }t        j                  t         j                  d
g      }d}t        j                  t        t        j                  |            5  | j                  ||       ddd       t        j                  d
dg      }t        j                  d	d	g      }d}t        j                  t        t        j                  |            5  | j                  ||       ddd       y# 1 sw Y   dxY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   yxY w)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    HH<=HH<=* ]]><1HI 	0aB/	0G ]]><1HI 	$a#	$ HHbffa[!HHbffa[!6 ]]><1HI 	$a#	$ HHaVHHaVH ]]><1HI 	$a#	$ 	$O	0 	0	$ 	$	$ 	$	$ 	$s0   G,G#G0:G<G #G-0G9<Hc                    	 d}t        j                  d      }d}t        j                  t        t        j                  |            5  | j                  ||       ddd       d}t        j                  d      }d}t        j                  t        t        j                  |            5  | j                  ||       ddd       y# 1 sw Y   lxY w# 1 sw Y   yxY w)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  s    -GGBKG ]]><1HI 	$a#	$ GGBKH ]]><1HI 	$a#	$ 	$	$ 	$	$ 	$s   	C+CCCc                      G d dt         j                        }t        j                  ddg      j                  |      }| j	                  ||       y )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         |   |      j                  t        j                        S r   rG  rI  s     r!   r   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__]  rK  r#   c                 \    t         |   |      j                  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    s9    -J"AB#J#<$|$> r#   re  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestApproxEqualc                     t        |i | y r   )r   r   s      r!   r"   zTestApproxEqual._assert_funcl  rg  r#   c                      t        j                  d      t        j                  d       j                  d        j                  d       t        t         fd       y )N{GH@RH@r   significant   c                  ,     j                  d      S Nr  r  r%   r  s   r!   r-  z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>v      d//1!/D r#   )r1   r2   r"   r   r+   r  s   `@@r!   test_simple_0d_arraysz%TestApproxEqual.test_simple_0d_arrayso  sW    HHWHHW!QA.!QA.nD	Fr#   c                      dd j                  d        j                  d        j                  d       t        t         fd       y )Nr  r  r9   r  r   r  c                  ,     j                  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  sZ    !QA.!QA.!QA.nD	Fr#   c                 d    t        j                  t         j                        t        j                  d      t        j                  t         j                         j	                         t        t         fd       t        t         fd       t        t         fd       y )Nr.   c                  (    j                         S r   r%   r*  s   r!   r-  z0TestApproxEqual.test_nan_array.<locals>.<lambda>      d.?.?d.K r#   c                  (    j                         S r   r%   r0  s   r!   r-  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r#   c                  (    j                         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  e    xxxx{xx$%n&KLn&KLn&KLr#   c                 d    t        j                  t         j                        t        j                  d      t        j                  t         j                         j	                         t        t         fd       t        t         fd       t        t         fd       y )Nr.   c                  (    j                         S r   r%   r*  s   r!   r-  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   c                  (    j                         S r   r%   r0  s   r!   r-  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   c                  (    j                         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  s    -FFMM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y)TestArrayAssertLessc                     t        |i | y r   )r   r   s      r!   r"   z TestArrayAssertLess._assert_func  s    4*6*r#   c                 @    t        j                  ddg      t        j                  ddg       j                         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   j                  ||       d d d        y # 1 sw Y   y xY w)N皙?皙@333333?ffffff@c                  (     j                        S r   r%   r  s   r!   r-  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>      d.?.?1.E r#   r   c                  (     j                        S r   r%   r  s   r!   r-  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>  r  r#   c                  (     j                        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    HHc3Z HHc3Z !Qn&EFHHc3Z n&EFn&EFHH]#HH\"H ]]><1HI 	$a#	$ 	$ 	$s   8DDc                     t        j                  ddgddgg      t        j                  ddgddgg       j                         d	}t        j                  t
        t        j                  |      
      5   j                         d d d        t        j                  ddgddgg      t        t
         fd       t        t
         fd       y # 1 sw Y   OxY w)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                  (     j                        S r   r%   r  s   r!   r-  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r#   c                  (     j                        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  s    HHsCj3*-.HHsCj3*-.!QO ]]><1HI 	$a#	$ HHsCj3*-.n&EFn&EF	$ 	$s   <CC&c                     t        j                  d      t        j                  d      dz    j                         t        t         fd       dd<   d}t        j                  t        t        j                  |            5   j                         d d d        t        t         fd	       y # 1 sw Y   xY w)
N)r/   r/   r/   )shaper.   c                  (     j                        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                  (     j                        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    GG)$GG)$q(!Qn&EF'
H
 ]]><1HI 	$a#	$ 	n&EF	$ 	$s   C  C	c                     dd j                         d}t        j                  t        t	        j
                  |            5   j                         d d d        t        j                  ddg       j                         t        t         fd       t        j                  ddg      t        t         fd       y # 1 sw Y   txY w)	Nr  r  z|Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 1.1
Max relative difference among violations: 1.r`   r  c                  (     j                        S r   r%   r  s   r!   r-  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r#   r   c                  (     j                        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 ]]><1HI 	$a#	$ HHc3Z !Qn&EFHHc3Z n&EF	$ 	$s   
CCc                 ,   t        j                  g dg dg dg      }d}| j                  ||       d}| j                  ||       t        j                  g dg dg dg      }d	}d
}t        j                  t
        t        j                  |            5  | j                  ||       d d d        d}t        j                  t
        t        j                  |            5  | j                  ||       d d d        y # 1 sw Y   UxY w# 1 sw Y   y xY w)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    HH@646 7 !Q!QHHA?;= > G
 ]]><1HI 	$a#	$
) ]]><1HI 	$a#	$ 	$	$ 	$	$ 	$s   C>"D
>D
Dc                    t        j                  g d      }t        j                  d      }d}t        j                  t        t        j                  |            5  | j                  ||       d d d        d}t        j                  t        t        j                  |            5  | j                  ||       d d d        d}d}t        j                  t        t        j                  |            5  | j                  ||       d d d        d}t        j                  t        t        j                  |            5  | j                  ||       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   y xY w)	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  sB   HH)*HHVO
 ]]><1HI 	$a#	$' ]]><1HI 	$a#	$ H ]]><1HI 	$a#	$H
 ]]><1HI 	$a#	$ 	$=	$ 	$	$ 	$	$ 	$	$ 	$s0   E(E(5E4 F E%(E14E= F	c                     t        j                  t         j                        t        j                  d      t        j                  t         j                         j	                         t        t         fd       t        t         fd       t        t         fd       t        t         fd       y )Nr.   c                  (    j                         S r   r%   r*  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>@  r  r#   c                  (    j                         S r   r%   r*  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>A  r  r#   c                  (    j                         S r   r%   r0  s   r!   r-  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>B  r  r#   c                  (    j                         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;  sp    xxxx{xx$%n&KLn&KLn&KLn&K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       j                         t        t         fd
       y )N)r  r  r  c                  (    j                         S r   r%   r+  r   rh   s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>I      d.?.?4.H r#   c                  (    j                         S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>J      d.?.?a.H r#   r  r  c                  (    j                         S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>N  r  r#   c                  (    j                         S r   r%   r  s   r!   r-  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>O  r  r#   r   r   c                  (     j                        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    HH_%xxn&HIn&HIHHc3'(n&HIn&HIHHc3'(!Qn&EFr#   c                     t        j                  d      t        j                  t         j                         j                          j                           j                          t	        t
         fd       t	        t
         fd       t	        t
         fd       t	        t
         fd       t	        t
         fd       y )Nr.   c                  (    j                         S r   r%   r1  r,  r   s   r!   r-  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>]  r  r#   c                  *    j                          S r   r%   r  s   r!   r-  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>^      d.?.?te.L r#   c                  (    j                          S r   r%   r1  r   s   r!   r-  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>_  r  r#   c                  *    j                           S r   r%   r  s   r!   r-  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>`  r  r#   c                  ,    j                            S r   r%   r  s   r!   r-  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>a  s    d.?.?u.M r#   )r1   r2   r   r"   r   r+   )r   r1  r,  s   `@@r!   test_inf_comparez$TestArrayAssertLess.test_inf_compareV  s    xx{xx$%4%&4%&n&KLn&LMn&KLn&LMn&MNr#   c                     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        j                          y )Nr  r  c                  (    j                         S r   r%   r1  r   rh   s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>g  r  r#   c                  (    j                         S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>h  r  r#   c                  *    j                          S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>i  s    d.?.?D5.I r#   c                  ,    j                           S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>j  s    d.?.?TE.J r#   c                  ,    j                           S r   r%   r  s   r!   r-  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>k  s    d.?.?r.J r#   )r1   r2   r   r   r+   r"   )r   r1  rh   s   `@@r!   test_inf_compare_arrayz*TestArrayAssertLess.test_inf_compare_arrayc  sw    HHc3'(xxn&HIn&HIn&IJn&JKn&JK4%#r#   c                 "   t        j                  d      }t        j                  d      }| j                  ||       t	        j
                  t              5  | j                  ||d       ddd       t        j                  ||j                        }| j                  ||       t	        j
                  t              5  | j                  ||j                  t         j                        d       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w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    HHQKGGBK!Q]]>* 	1a40	1OOAqww'!Q]]>* 	Da"**!5dC	D 	D		1 	1	D 	Ds   C9>2D9DDN)rH   rI   rJ   r"   r  r  r  r  r  r  r  r  r  r  r  r   r#   r!   r  r    sG    +$0G(G$G(#$J($TMG"O	$
Dr#   r  z^ignore:.*NumPy warning suppression and assertion utilities are deprecated.*:DeprecationWarningz*checks global module & deprecated warnings)reasonc                   $    e Zd Zd Zd Zd Zd Zy)	TestWarnsc                 *   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       y )Nc                  .    t        j                  d       y)Nyor8   warningswarnr   r#   r!   fzTestWarns.test_warn.<locals>.f  s    MM$r#   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  sx    	 Z088;\+q115J/77n&8!<'Q7; 	^]E	Gr#   c                 0   t         j                  d   j                  d d  }t        t              5  t        j                  d       d d d        t         j                  d   j                  }d }t        t        |       t        ||d       y # 1 sw Y   GxY w)Nr  r  c                  l    t               5  t        j                  d       d d d        y # 1 sw Y   y xY wNr  )r   r  r  r   r#   r!   no_warningsz3TestWarns.test_context_manager.<locals>.no_warnings  s)    #% $d#$ $ $s   *3r  )
r  r  r  r   r   r  r  r   r+   r   )r   r  r  r  s       r!   test_context_managerzTestWarns.test_context_manager  sy    Z088;+& 	 MM$	 J/77	$ 	nk2^]E	G	  	 s   BBc                 j   d
d}t        t        |d      dk(  sJ t        j                  t              5 }t        t        d      5  t        j                  dt               d d d        d d d        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        d d d        dt        |      v sJ dt        |      vsJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   HxY w# 1 sw Y   LxY w)Nc                 6    t        j                  d       | |z   S r  r  )r'   r(   s     r!   r  zTestWarns.test_args.<locals>.f  s    MM$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  s   	 Kb1R777]]<( 	0Ck5 0c;/0	0 S)))S)))]]<( 	0Ck5 0c;/0	0 S)))SX---0 0	0 	00 0	0 	0sG   DD"D)D);DD)D	
DDD&	"D))D2c                     d }d}t        j                         5  t        j                  dt               	 t	        t
        |       d}d d d        |rt        d      y # t        $ r Y !w xY w# 1 sw Y   &xY w)Nc                  8    t        j                  dt               y r  )r  r  DeprecationWarningr   r#   r!   r  z,TestWarns.test_warn_wrong_warning.<locals>.f  s    MM$ 2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 $$& 	!!'+=>[!,	  !FGG  & 	 	s(   A-A	A*'A-)A**A--A6N)rH   rI   rJ   r  r  r  r  r   r#   r!   r  r  z  s    G G.*Hr#   r  c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestAssertAllclosec                 <   d}d}t        ||d       t        t        t         ||       d}t        j                  t        t        j                  |            5  t        ||       d d d        d}d}t        j                  t        t        j                  |            5  t        ||       d d d        d	}t        j                  t        t        j                  |            5  t        ||       d d d        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        d}t        j                  t        t        j                  |            5  t        ||       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   y xY w)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 ]]><1HI 	"Aq!	" H ]]><1HI 	"Aq!	"G ]]><1HI 	"Aq!	" HHaAq\"HHaAq\"11%noq!<X"1noq!$G2C(nor13GHHaAq\"HHaAq\"H
 ]]><1HI 	"Aq!	"G
 ]]><1HI 	"Aq!	" 	"Y	" 	"	" 	"	" 	".	" 	"	" 	"s<   I I,%I9J	JI),I69JJJc                     t        j                  t        j                  t         j                        j                  gt         j                        }t        ||       y )Nr?   )r1   r2   iinfoint_minr   rB   s     r!   test_min_intzTestAssertAllclose.test_min_int  s6    HHbhhrww'++,BGG<1r#   c                    t        j                  g d      }t        j                  g d      }d}t        j                  t        t        j                  |            5  t        ||       d d d        y # 1 sw Y   y xY w)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^    HH\"HH\"H
 ]]><1HI 	"Aq!	" 	" 	"   A55A>c                 R   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       y )NT	equal_nan)r1   r2   rr   r   r  r   r&   s      r!   test_equal_nanz!TestAssertAllclose.test_equal_nan  s    HHbffXHHbffX1-HHgbffbff-./HHgbffbff-./1-HHgbffrvvg./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       y )NFr*  )r1   r2   rr   r   r+   r   r  r   r&   s      r!   test_not_equal_nanz%TestAssertAllclose.test_not_equal_nan  s    HHbffXHHbffXnoq!uMHHgbffbff-./HHgbffbff-./noq!uMr#   c                     t        j                  t         j                  g      }t        j                  t         j                  g      }t        ||       t	        ||       t        ||       t        ||       y r   )r1   r2   rr   r
   r   r   r   r&   s      r!   test_equal_nan_defaultz)TestAssertAllclose.test_equal_nan_default'  sT     HHbffXHHbffX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        y # 1 sw Y   y xY w)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  sa    HHaVHHaVF]]><1HI 	"Aq!	" 	" 	"r(  c                 P    t        j                  g dgd      }t        ||       y )N)r.   r/   r8   r   zm8[ns]r?   )r1   r2   r   rB   s     r!   test_timedeltaz!TestAssertAllclose.test_timedelta:  s     HH&'x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	       y	# 1 sw Y   y	xY w)
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?  sa     JJy0JJy0D]]><1HI 	*Aqq)	* 	* 	*s   #A;;Bc                    t        j                  d      }t        j                  d      }t        ||       t        j                  t
              5  t        ||d       ddd       t        ||       t        j                  t
              5  t        ||j                  t         j                        d       ddd       y# 1 sw Y   cxY w# 1 sw Y   yxY wr  )r1   r  r   rb   rc   r+   r  r   r  s      r!   r  zTestAssertAllclose.test_strictL  s    GGAJGGBK1]]>* 	/Aq.	/1]]>* 	BAqxx

3DA	B 	B	/ 	/	B 	Bs   C,CC
Cc                 6   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        t        j                  t         j                   g      }d}t	        j
                  t        t        j                  |            5  t        ||       d d d        t        j                  t        t         j                  d      g      }d}t	        j
                  t        t        j                  |            5  t        ||       d d d        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        y # 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   xY w# 1 sw Y   y xY w)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   HHbffXHHbffX1HHbTN/]]><1HI 	"Aq!	" HHrvvgY-]]><1HI 	"Aq!	"HHgbffb)*+-]]><1HI 	"Aq!	" HHgbffb)*+HHgbffb)*+1HHgbffb)*+-]]><1HI 	"Aq!	" 	"%	" 	"
	" 	"	" 	"	" 	"s0   I)I68JJ)I36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"r

"
.N	"
*	B"r#   r  c                   Z    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y)TestArrayAlmostEqualNulpc                    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        |||       y 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     KKR2::6EEE1"a%L hhqww##C$##&q!T2 !''"))F
T!B&&&q!T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        |||       y r?  r1   rC  rD  rE  rF  r@   rG  r   r+   r	   rH  rI  s         r!   test_float64_failz*TestArrayAlmostEqualNulp.test_float64_fail      KKR2::6EEE1"a%Lhhqww##C$##n&DD	" !''"))F
T!B&&n&DD	"r#   c                 n   t        j                  d      }t        j                  t         j                  t         j                        j                  t         j                        }||z  }|j                  t         j                        }|j                  t         j                        }t        ||d       y )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  ss     :&88BFF"**5::299Ef$==,==,Xx3r#   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        j                  |j
                        j                  }|||z  |z  dz  z
  }t        |||       y r?  	r1   rC  r   rE  rF  r@   rG  r	   rH  rI  s         r!   test_float32_passz*TestArrayAlmostEqualNulp.test_float32_pass  s    KKR2::6EEE1"a%Lhhqww##C$##&q!T2!''"))F
T!B&&&q!T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        |||       y 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                 n   t        j                  d      }t        j                  t         j                  t         j                        j                  t         j                        }||z  }|j                  t         j                        }|j                  t         j                        }t        ||d       y )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  ss     6"88BFF"**5::299Ef$==,==,Xx3r#   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        j                  |j
                        j                  }|||z  |z  dz  z
  }t        |||       y Nr   r9   r   r?   r   )	r1   rC  float16rE  rF  r@   rG  r	   rH  rI  s         r!   test_float16_passz*TestArrayAlmostEqualNulp.test_float16_pass  s    KKAr4EEE1"a%Lhhqww##C$##&q!T2!''"))F
T!B&&&q!T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        |||       y rf  )r1   rC  rh  rE  rF  r@   rG  r   r+   r	   rH  rI  s         r!   test_float16_failz*TestArrayAlmostEqualNulp.test_float16_fail  s    KKAr4EEE1"a%Lhhqww##C$##n&DD	" !''"))F
T!B&&n&DD	"r#   c                 n   t        j                  d      }t        j                  t         j                  t         j                        j                  t         j                        }||z  }|j                  t         j                        }|j                  t         j                        }t        ||d       y )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  sr     488BFF"**5::299Ef$==,==,Xx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   |       y 
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  sP   KKR2::6EEE1"a%LRZhhqww##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   |       y 	Nr   r@  r  rA  r?   r   r=  r   rM  rv  s          r!   test_complex128_failz-TestArrayAlmostEqualNulp.test_complex128_fail  sx   KKR2::6EEE1"a%LRZhhqww##C$##n&D!a"f*d	,n&D!a"f*d	, C$n&D!a"f*d	, !''"))F
T!B&&n&D!a"f*d	,n&D!a"f*d	,F
T!!n&D!a"f*d	,r#   c                    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   |       y ru  rY  rv  s          r!   test_complex64_passz,TestArrayAlmostEqualNulp.test_complex64_pass(  sN   KKR2::6EEE1"a%LRZhhqww##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   |       y rz  r\  rv  s          r!   test_complex64_failz,TestArrayAlmostEqualNulp.test_complex64_fail=  sv   KKR2::6EEE1"a%LRZhhqww##C$##n&D!a"f*d	,n&D!a"f*d	,C$n&D!a"f*d	, !''"))F
T!B&&n&D!a"f*d	,n&D!a"f*d	,F
T!!n&D!a"f*d	,r#   N)rH   rI   rJ   rK  rN  rW  rZ  r]  rd  ri  rk  rs  rx  r{  r}  r  r   r#   r!   r=  r=  s  sC    3$" 	43" 	43" 	4=.,:=*,r#   r=  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestULPc                 ^    t         j                  j                  d      }t        ||d       y )Nr   r   maxulp)r1   randomrandnr   )r   rh   s     r!   
test_equalzTestULP.test_equal[  s     IIOOBQ!,r#   c                 h   t        j                  d      j                  t         j                        }|dt         j                  j                  d      j                  t         j                        z  z  }t        j                  t         j                        j                  }t        |||z   d       y )Nr   {Gz?r  r  )	r1   r  r  r   r  r  rF  rG  r   r   rh   rG  s      r!   test_singlezTestULP.test_single_  sq    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&QC3r#   c                 h   t        j                  d      j                  t         j                        }|dt         j                  j                  d      j                  t         j                        z  z  }t        j                  t         j                        j                  }t        |||z   d       y )Nr   r     r  )	r1   r  r  rD  r  r  rF  rG  r   r  s      r!   test_doublezTestULP.test_doublef  sq    GGBKrzz*	TBIIOOB'..rzz:::hhrzz"&&QC4r#   c                 6   t         j                  t         j                  fD ]v  }t        j                  t         j                  g      j                  |      }t        j                  t        j                  |      j                  g      }t        ||d       x y )Nr  r  )	r1   r   rD  r2   r   r  rF  maxr   )r   dtr   bigs       r!   r;  zTestULP.test_infm  sh    ::rzz* 	7B((BFF8$++B/C((BHHRL,,-.C c#6	7r#   c                    t         j                  t         j                  fD ]  }|t         j                  k(  rdndt        j                  t         j                  g      j                  |      t        j                  t         j                  g      j                  |      t        j                  t        j                  |      j                  g      t        j                  t        j                  |      j                  g      t        j                  dg      j                  |      t        j                  dg      j                  |      t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd	        y )
Ng    .Ag   mBr   g       c                       t               S Nr  r   )r   r  rr   s   r!   r-  z"TestULP.test_nan.<locals>.<lambda>      "6sC>D#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 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 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  sE   ::rzz* 	GBRZZ((BFF8$++B/C((BFF8$++B/C((BHHRL,,-.C88RXXb\../0D88SE?))"-DHHdV$++B/E.FG .FG .FG .FG .FG/	Gr#   N)rH   rI   rJ   r  r  r  r;  r5  r   r#   r!   r  r  Y  s    -457Gr#   r  c                       e Zd Zd Zd Zy)TestStringEqualc                    t        dd       t        dd       t        j                  t              5 }t        dd       d d d        t	        j
                        }t        |d       t        t        d        y # 1 sw Y   <xY w)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 r#   )r   rb   rc   r+   rd   re   r   r   )r   rj   rk   s      r!   r#  zTestStringEqual.test_simple  sl    GW-.0BC]]>* 	:h
L9	:(..!SCDnA	C	: 	:s   A::Bc                 >    t        dd       t        t        d        y )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r#   N)rH   rI   rJ   r#  r  r   r#   r!   r  r    s    
CAr#   r  c                     	 | j                   }t        |      }d|v r|dz  }t        ||       y # t        $ r i }Y .w xY w)Nversionr.   )__warningregistry__AttributeErrorlenr   )modn_in_context	mod_warns	num_warnss       r!   assert_warn_len_equalr    sR    
++	 III 	Q	L)#   	s   / ==c                  |     G d d      }  |        }t        |d        G d d      }  |        }t        |d       y )Nc                       e Zd Zy)/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y)r  c                     ddd| _         y )Nr.   r/   warning1warning2)r  rF   s    r!   __init__z8test_warn_len_equal_call_scenarios.<locals>.mod.__init__  s    4545(7D$r#   N)rH   rI   rJ   r  r   r#   r!   r  z/test_warn_len_equal_call_scenarios.<locals>.mod  s    	7r#   r/   )r  )r  mod_insts     r!   "test_warn_len_equal_call_scenariosr    sB      uHh'(*
7 7
 uHh'(*r#   c                      t         j                  t           } 	 | j                  j	                          | S # t
        $ r Y | S w xY wr   )r  r  rH   r  clearr  my_mods    r!   _get_fresh_modr    sI    [["F""((*
 M	   	M	s   5 	AAc                  $   t               } t        t        | di       i        t        | g      5  t	        j
                  d       t	        j                  d       d d d        t        | j                  i        t               5  t	        j
                  d       t	        j                  d       d d d        t        | d       ddd| _        t        | g      5  t	        j
                  d       t	        j                  d	       d d d        t        | d       t               5  t	        j
                  d       t	        j                  d	       d d d        t        | d       y # 1 sw Y   	xY w# 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   ;xY w)
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    sL    F!6;R@	!6(	3 &h'n%& ++R0 
"	# &h'n%& &!$ /0./"1F 
"6(	3 )h''() &!$ 
"	# )h''() &!$3& && &) )) )s/   +E!+E.+E:!+F!E+.E7:FFc                     t               } t        t        | di       i        d }t        | d       t	               5 }|j                  t               |j                  t        j                  j                         t        j                  d        |        d d d        t        t        j                        d       t        |j                  d   j                  j                   d   d       t        | d       t	               }|j                  |        |5  t        j                  d       d d d        t        | d       |j                  |        |5  t        j                  d       d d d        t        | d       t	               5  t        j"                  d       t        j                  d       d d d        t        | d       y # 1 sw Y   5xY w# 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   ;xY w)Nr  c                  :    d } t        j                  | ddg       y )Nc                 4    t        j                  dd       | S )NzSome warning 2r/   
stacklevelr  arrs    r!   r  zFtest_suppress_warnings_module.<locals>.warn_other_module.<locals>.warn  s    MM*q9Jr#   r   r1   apply_along_axisr  s    r!   warn_other_modulez8test_suppress_warnings_module.<locals>.warn_other_module      	 	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1
2n% SWWq!##((+^<&!$

CJJfJ	 &n%&&!$JJfJ	 &n%&&!$ 
	 &h'n%& &!$9 & &
& &
& &s0   AG
GG#
+G/
GG #G,/G8c                     t               } t        t        | di       i        t               5 }|j	                  t
               t        j                  d       d d d        t        | d       t               }|j	                  t
               |5  t        j                  d       d d d        t        | d       |j	                  |        |5  t        j                  d       d d d        t        | d       t               5  t        j                  d       t        j                  d       d d d        t        | d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   :xY w)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%& &!$'& && &
& &
& &s/   +D>E

E>+E">E
EE"E+z8uses deprecated thread-unsafe warnings control utilitiesc                  ,   t               } | j                  t               | d        }t        j                  d      5 }t        j
                  d        |t                |t               t        t        |      d       d d d        y # 1 sw Y   y xY w)Nc                 0    t        j                  d|        y )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 
	 	 	-  h'[^SVQ	     s   AB

Bc                  n   t               } | j                         }| 5  | j                  d      }| j                  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        | 5  | j                  d      }| j                  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        t               5 } | j                          t               5 }|j                  d       t        j                  d       t        j                  d       t        t        |j                        d       d d d        t        t        | j                        d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   JxY w# 1 sw Y   y xY w)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zz"8z9

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

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

  	+DKKK/MM.)MM./TXX*		+ 	S\1%& &5
F 
F
F 
F	+ 	+& &s>   CJ:CJJ+:AJ'J+JJJ(	$J++J4c                  L   d } t               5 }|j                          t        d      5  t        d      D ]  }t        j                  d        	 d d d        t        t        |j                        d       d d d        t               5 }|j                          t        d      5  t        d      D ],  }t        j                  d       t        j                  d       . 	 d d d        t        t        |j                        d       d d d        t               5 }|j                          t        d      5  t        d      D ]3  }t        j                  d       t        j                  d        |         5 	 d d d        t        t        |j                        d       d d d        t               5 }|j                          t        d      5  t        d      D ]3  }t        j                  d       t        j                  d	        |         5 	 d d d        t        t        |j                        d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   bxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   }xY w# 1 sw Y   y xY w)
Nc                  :    d } t        j                  | ddg       y )Nc                 4    t        j                  dd       | S )Nr  r/   r  r  r  s    r!   r  zJtest_suppress_warnings_forwarding.<locals>.warn_other_module.<locals>.warn  s    MM.Q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( 	.1X .n-.	.
 	S\1%& 
	 &

z* 	.1X .n-n-.	. 	S\1%& 
	 	&

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

v& 	$1X $n-23!#$	$ 	S\1%	& 	&9	. 	.& &	. 	.& &	$ 	$	& 	&	$ 	$	& 	&s   I&I'I
I)&;I"'I)J7AI6:'J3JAJ'JI	III&	!I))I36I?	;JJJ	JJ#c                     t               5 } t        j                  j                  | d      }t	        |d      5  	 d d d        d d d        t        t        j                  j                                 d}	 t               5 } t        # 1 sw Y   NxY w# 1 sw Y   RxY w# 1 sw Y   nxY wn# t        $ r d}Y nw xY wt        |       t        t        j                  j                  |               y )Ntmpr  FT)r   ospathjoinopenr   isdir
ValueError)tdirfpathraiseds      r!   test_tempdirr    s    	 dT5)% 		 d##$FY 	$	 	 	 	 	 FOd##$sE   -BBB6
B,  BB	BBB($B, ,B:9B:c                     t               5 } t        | d      5  	 d d d        d d d        t        t        j                  j                                 d}	 t               5 } t        # 1 sw Y   NxY w# 1 sw Y   RxY w# 1 sw Y   nxY wn# t        $ r d}Y nw xY wt        |       t        t        j                  j                  |               y )Nr  FT)r   r  r   r  r  isfiler  )r  r   s     r!   test_temppathr    s    	 u% 		 u%%&FZ 	5	 	 	 	 	 FOu%%&sE   A3A'A3
B  A?'A0	,A33A<?BB BBc                   ,    e Zd Zej                  e    fZy)my_cacwN)rH   rI   rJ   r  r  class_modulesr   r#   r!   r  r    s    [[*,Mr#   r  c                      t               } t               5  t        j                  d       t        j                  d       d d d        t        | j                  i        y # 1 sw Y    xY w)Nr  r  )r  r  r  r  r  r   r  r  s    r!   %test_clear_and_catch_warnings_inheritr	    sR     F	 &h'n%& ++R0& &s   +AA(zPython lacks refcountsz!garbage collector is global statec                   T    e Zd ZdZd Zd Zej                  j                  d        Z	y)TestAssertNoGcCyclesz Test assert_no_gc_cycles c                 l    d }t               5   |        d d d        t        |       y # 1 sw Y   xY w)Nc                  ,    g } | j                  g        | S r   appendr  s    r!   no_cyclez2TestAssertNoGcCycles.test_passes.<locals>.no_cycle
  s    AHHRLHr#   )r   )r   r  s     r!   test_passesz TestAssertNoGcCycles.test_passes	  s3    	
 !" 	J	 	H%	 	s   *3c                     d }t        t              5  t               5   |        d d d        d d d        t        t              5  t        |       d d d        y # 1 sw Y   5xY w# 1 sw Y   9xY w# 1 sw Y   y xY w)Nc                  N    g } | j                  |        | j                  |        | S r   r  )r'   s    r!   
make_cyclez5TestAssertNoGcCycles.test_asserts.<locals>.make_cycle  s"    AHHQKHHQKHr#   )r   r+   r   )r   r  s     r!   test_assertsz!TestAssertNoGcCycles.test_asserts  sr    	 >* 	$& 	 >* 	,
+	, 	, 	 		, 	,s-   A&AA&A2A#	A&&A/2A;c                 4    G fdd      	 t        j                                }	 t        t              5  t	        d        ddd       d_        y# 1 sw Y   xY w# t
        $ r   |       t        j                  d        Y <w xY w# 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y)<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                     | | _         y r   )cyclerF   s    r!   r  zETestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__init__0  s	    !
r#   c                 <    d | _         j                  r         y y r   )r  r  )r   ReferenceCycleInDels    r!   __del__zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__3  s     !
&11 () 2r#   N)rH   rI   rJ   __doc__r  r  r  )r  s   r!   r  r  )  s     J"*r#   r  c                       y 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"  s    	* 	*&	3/12A	"<0 6'56 .3*6 6 "  3?KK LM # .3*s?   B A" AA" AA" "&BB 
BB 	BN)
rH   rI   rJ   r  r  r  rb   markslowr#  r   r#   r!   r  r    s/     %	&, [[(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.     sf    	 	 
     + +     2./ ./bC1\ C1L* *Z\) \)~U < U pg l g T(M (MVcD cDJ  "NOEH EH PEHPk" k"Zc, c,L5G 5GpA A(*.*8	 "NO% P%@  "NO+% P+%\  "NO% P%8  E      E  &&&&R  E  0&0&f%"' -& -
 "NO1 P1 $-EF"EFE3 E3 G GE3r#   