
    CEj>                       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                  j[                  d      d$        Z7ejV                  j[                  d      d%        Z8ejV                  j[                  d&      d'        Z9ejV                  j[                  d&      d(        Z: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      ejV                  j                   G d1 d2                           ZBy)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      l/var/www/html/eeg-assistent/strom-signal/venv/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d      }t        j                  dd      }t        j                  t        d      5  t        j                  d      }t        j
                  d      }d d 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 # 1 sw Y   xY w)NNaTr   ns4The 'generic' unit for NumPy timedelta is deprecatedr`   r   {   )
r1   r   rb   warnsDeprecationWarningtimedelta64r   r   r"   r,   )r   nadt_snadt_dnadt_no_unitnatd_no_unitnatd_snatd_ddtstdsr'   r(   s              r!   test_nat_itemszTestEqual.test_nat_items  s   uc*ud+ \\H
 	1 ==/L>>%0L	1 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#&>?	@+	1 	1s   +II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     s7    &(/

("@H*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>_      d//d; r#   c                  (    j                         S r   r%   ainfr.  r   s   r!   r0  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>a  r1  r#   c                  (    j                         S r   r%   r3  s   r!   r0  z/TestArrayAlmostEqual.test_nan.<locals>.<lambda>c  r1  r#   r1   r2   rr   r   r"   r   r+   r   r4  r.  r/  s   `@@@r!   test_nanzTestArrayAlmostEqual.test_nanY  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!   r0  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>j      d//15 r#   c                  (    j                         S r   r%   r;  s   r!   r0  z/TestArrayAlmostEqual.test_inf.<locals>.<lambda>m  r<  r#   )r1   r2   rS   r   r   r+   r&   s   `@@r!   test_infzTestArrayAlmostEqual.test_infe  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_info  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_subclass{  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   rK  __lt__r   r1   r   rL  s     r!   rQ  z<TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.__lt__  rN  r#   c                     t        |       S r   r   r   s      r!   r   z9TestArrayAlmostEqual.test_subclass_2.<locals>.MyArray.all  s    4y r#   rH   rI   rJ   r   rQ  r   __classcell__rM  s   @r!   r   rH    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   rJ  rL  s     r!   r   zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__  rN  r#   c                 \    t         |   |      j                  t        j                        S r   rP  rL  s     r!   rQ  zNTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__  rN  r#   c                     t         r   NotImplementedErrorr   s      r!   r   zKTestArrayAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.all      ))r#   rS  rU  s   @r!   r   r[        >>*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*  r8  r>  rA  rE  rX  re  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!   r0  z0TestAlmostEqual.test_closeness.<locals>.<lambda>  s    d//S!/D r#   c                  0     j                  dgdgd      S rm  r%   rF   s   r!   r0  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!   r0  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//: r#   c                  `     j                  t        j                  t        j                        S r   )r"   r1   rr   r   rF   s   r!   r0  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>      d//? r#   c                  `     j                  t        j                  t        j                        S r   )r"   r1   r   rr   rF   s   r!   r0  z/TestAlmostEqual.test_nan_item.<locals>.<lambda>  rt  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!   r0  z/TestAlmostEqual.test_inf_item.<locals>.<lambda>  rr  r#   c                  b     j                  t        j                   t        j                        S r   ry  rF   s   r!   r0  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   rW  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_2=  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   rJ  rL  s     r!   r   zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__eq__b  rN  r#   c                 \    t         |   |      j                  t        j                        S r   rP  rL  s     r!   rQ  zITestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.__lt__e  rN  r#   c                     t         r   r_  r   s      r!   r   zFTestAlmostEqual.test_subclass_that_cannot_be_bool.<locals>.MyArray.allh  ra  r#   rS  rU  s   @r!   r   r  a  rb  r#   r   r   r   rc  rd  s      r!   re  z1TestAlmostEqual.test_subclass_that_cannot_be_bool\  rf  r#   N)rH   rI   rJ   r"   r!  rv  r{  r}  r	  r  r  r  re  r   r#   r!   rh  rh    s9    -J"AB#J#<$|$> r#   rh  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_funcq  rj  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!   r0  z7TestApproxEqual.test_simple_0d_arrays.<locals>.<lambda>{      d//1!/D r#   )r1   r2   r"   r   r+   r  s   `@@r!   test_simple_0d_arraysz%TestApproxEqual.test_simple_0d_arrayst  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!   r0  z3TestApproxEqual.test_simple_items.<locals>.<lambda>  r  r#   ro  r  s   `@@r!   test_simple_itemsz!TestApproxEqual.test_simple_items}  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!   r0  z0TestApproxEqual.test_nan_array.<locals>.<lambda>      d.?.?d.K r#   c                  (    j                         S r   r%   r3  s   r!   r0  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r#   c                  (    j                         S r   r%   r3  s   r!   r0  z0TestApproxEqual.test_nan_array.<locals>.<lambda>  r  r#   r6  r7  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!   r0  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   c                  (    j                         S r   r%   r3  s   r!   r0  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   c                  (    j                         S r   r%   r3  s   r!   r0  z0TestApproxEqual.test_nan_items.<locals>.<lambda>  r  r#   r6  r7  s   `@@@r!   r   zTestApproxEqual.test_nan_items  r  r#   N)rH   rI   rJ   r"   r  r  rt   r   r   r#   r!   r  r  o  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!   r0  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>      d.?.?1.E r#   r   c                  (     j                        S r   r%   r  s   r!   r0  z8TestArrayAssertLess.test_simple_arrays.<locals>.<lambda>  r  r#   c                  (     j                        S r   r%   r  s   r!   r0  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!   r0  z0TestArrayAssertLess.test_rank2.<locals>.<lambda>  r  r#   c                  (     j                        S r   r%   r  s   r!   r0  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!   r0  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!   r0  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!   r0  z7TestArrayAssertLess.test_simple_items.<locals>.<lambda>  r  r#   r   c                  (     j                        S r   r%   r  s   r!   r0  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!   r0  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>E  r  r#   c                  (    j                         S r   r%   r-  s   r!   r0  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>F  r  r#   c                  (    j                         S r   r%   r3  s   r!   r0  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>G  r  r#   c                  (    j                         S r   r%   r3  s   r!   r0  z9TestArrayAssertLess.test_nan_noncompare.<locals>.<lambda>H  r  r#   r6  r7  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!   r0  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>N      d.?.?4.H r#   c                  (    j                         S r   r%   r  s   r!   r0  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>O      d.?.?a.H r#   r  r  c                  (    j                         S r   r%   r  s   r!   r0  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>S  r  r#   c                  (    j                         S r   r%   r  s   r!   r0  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>T  r  r#   r   r   c                  (     j                        S r   r%   r  s   r!   r0  z?TestArrayAssertLess.test_nan_noncompare_array.<locals>.<lambda>Y  r  r#   )r1   r2   rr   r   r+   r"   )r   r.  rh   ri   s   `@@@r!   test_nan_noncompare_arrayz-TestArrayAssertLess.test_nan_noncompare_arrayJ  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%   r4  r/  r   s   r!   r0  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>b  r  r#   c                  *    j                          S r   r%   r  s   r!   r0  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>c      d.?.?te.L r#   c                  (    j                          S r   r%   r4  r   s   r!   r0  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>d  r  r#   c                  *    j                           S r   r%   r  s   r!   r0  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>e  r  r#   c                  ,    j                            S r   r%   r  s   r!   r0  z6TestArrayAssertLess.test_inf_compare.<locals>.<lambda>f  s    d.?.?u.M r#   )r1   r2   r   r"   r   r+   )r   r4  r/  s   `@@r!   test_inf_comparez$TestArrayAssertLess.test_inf_compare[  s    xx{xx$%4%&4%&n&KLn&LMn&KLn&LMn&MNr#   c                     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%   r4  r   rh   s   r!   r0  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>l  r  r#   c                  (    j                         S r   r%   r  s   r!   r0  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>m  r  r#   c                  *    j                          S r   r%   r  s   r!   r0  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>n  s    d.?.?D5.I r#   c                  ,    j                           S r   r%   r  s   r!   r0  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>o  s    d.?.?TE.J r#   c                  ,    j                           S r   r%   r  s   r!   r0  z<TestArrayAssertLess.test_inf_compare_array.<locals>.<lambda>p  s    d.?.?r.J r#   )r1   r2   r   r   r+   r"   )r   r4  rh   s   `@@r!   test_inf_compare_arrayz*TestArrayAssertLess.test_inf_compare_arrayh  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_stricts  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!   r0  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  r   r   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    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   rW  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_error7  sa    HHaVHHaVF]]><1HI 	"Aq!	" 	" 	"r*  c                     t        j                  t        d      5  t        j                  g dgd      }t        ||       d d d        y # 1 sw Y   y xY w)Nr   r`   )r.   r/   r8   r   zm8[ns]r?   )rb   r   r   r1   r2   r   rB   s     r!   test_timedeltaz!TestAssertAllclose.test_timedelta?  sI    \\H
 	" *+8<AAq!	" 	" 	"s   'AA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_unsignedH  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_strictU  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_infs`  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.  r0  r2  r4  r6  r:  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   rI  ri   rJ  s         r!   test_float64_passz*TestArrayAlmostEqualNulp.test_float64_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 rA  r1   rE  rF  rG  rH  r@   rI  r   r+   r	   rJ  rK  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   rF  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 rA  	r1   rE  r   rG  rH  r@   rI  r	   rJ  rK  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 rA  r1   rE  r   rG  rH  r@   rI  r   r+   r	   rJ  rK  s         r!   test_float32_failz*TestArrayAlmostEqualNulp.test_float32_fail  rQ  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   rT  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   rE  float16rG  rH  r@   rI  r	   rJ  rK  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 rh  )r1   rE  rj  rG  rH  r@   rI  r   r+   r	   rJ  rK  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   rj  r   r   )r   rT  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#  rB  r  rC  r?   r   r@  r   r   rD  r   rL  rh   xirI  ri   rJ  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#  rB  r  rC  r?   r   r@  r   rO  rx  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 rw  r[  rx  s          r!   test_complex64_passz,TestArrayAlmostEqualNulp.test_complex64_pass1  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 r|  r^  rx  s          r!   test_complex64_failz,TestArrayAlmostEqualNulp.test_complex64_failF  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   rM  rP  rY  r\  r_  rf  rk  rm  ru  rz  r}  r  r  r   r#   r!   r?  r?  |  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_equald  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  rH  rI  r   r   rh   rI  s      r!   test_singlezTestULP.test_singleh  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  rF  r  r  rH  rI  r   r  s      r!   test_doublezTestULP.test_doubleo  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   rF  r2   r   r  rH  maxr   )r   dtr   bigs       r!   r>  zTestULP.test_infv  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!   r0  z"TestULP.test_nan.<locals>.<lambda>      "6sC>D#F r#   c                       t               S r  r  )r  r  rr   s   r!   r0  z"TestULP.test_nan.<locals>.<lambda>  r  r#   c                       t               S r  r  )r  rr   tinys   r!   r0  z"TestULP.test_nan.<locals>.<lambda>      "6sD>D#F r#   c                       t               S r  r  )r  rr   zeros   r!   r0  z"TestULP.test_nan.<locals>.<lambda>  r  r#   c                       t               S r  r  )r  rr   nzeros   r!   r0  z"TestULP.test_nan.<locals>.<lambda>  s    "6sE>D#F r#   )r1   r   rF  r2   r   r  rr   rH  r  r  r   r+   )	r   r  r  r   r  rr   r  r  r  s	     @@@@@@@r!   r8  zTestULP.test_nan|  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>  r8  r   r#   r!   r  r  b  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!   r0  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!   r0  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                  V   t        j                  t        d      5  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       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   CxY w# 1 sw Y   y xY w)
N2suppression and assertion utilities are deprecatedr`   r  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    .1=
r#   r   r1   apply_along_axisr  s    r!   warn_other_modulez8test_suppress_warnings_module.<locals>.warn_other_module       a!-r#   r   moduler  r.   r  )rb   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
H -)  !WV%:B?D	. 	fa(  	 CJJ{# JJbff55J6MM.)	  	S\1%SWWQZ'',,Q/@fa(!

&
! 	*MM.)	*fa(

&
! 	*MM.)	*fa(   	*!!(+MM.)	* 	fa([-) -)"	  	 	* 	*
	* 	*
	* 	*U-) -)sm   ;HAG.3BH4G;
(H2HH&+HH.G8	3H;H	 HH	HH	HH(c                  <   t        j                  t        d      5  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       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   y xY w)Nr  r`   r  r  r   r  r  )rb   r   r   r  r   r  r   r  r  r  r  r  r  )r  r  s     r!   test_suppress_warnings_typer  C  sS   
 
F
H )  !WV%:B?D   	*CJJ{#MM.)	* 	fa(!

; 	*MM.)	*fa(

&
! 	*MM.)	*fa(   	*!!(+MM.)	* 	fa(7) )	* 	*	* 	*
	* 	*
	* 	*1) )sk   ,F+E"35F(E.>(F&E:<F+FF"E+	'F.E7	3F:F	?FF	FFz8uses deprecated thread-unsafe warnings control utilitiesc                     t        j                  t        d      5  t               } | j	                  t
               | d        }t        j                  d      5 }t        j                  d        |t
                |t               t        t        |      d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r`   c                 0    t        j                  d|        y )Nr  r  )categorys    r!   r  z7test_suppress_warnings_decorate_no_record.<locals>.warns  s    MM.(3r#   T)r  alwaysr.   )rb   r   r   r   r  r  r  r  r  RuntimeWarningr   r  )r  r  ws      r!   )test_suppress_warnings_decorate_no_recordr  f  s     
F
H $  !

;		4 
	4 $$D1 	$Q!!(+ Q#		$$ $	$ 	$$ $s$   >B:AB.B:.B7	3B::Cc                     t        j                  t        d      5  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        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   7xY w# 1 sw Y   y xY w)
Nr  r`   zSome other warning 2)r  r  Some other warningr/   r.   r   )rb   r   r   r   r  r  r  r  r   r  r  r  r   )r  log1log2sup2s       r!   test_suppress_warnings_recordr  ~  s6    
F
H (*  !zz| 
	J::&<:=DJJ~J.MM.)MM./MM01SWWq)TA&TA&a--a02HI
	J  
	J::&<:=DJJ~J.MM.)MM./MM01SWWq)TA&TA&a--a02HI
	J   	*CJJL"$ /N3n-23S]A.	/ SWWq)	*A(* (*
	J 
	J
	J 
	J/ /	* 	*A(* (*sm   KCJ*
KCJ7)K;KAK2'KK*J4	/K7K 	<KKKK	KK$c                     t        j                  t        d      5  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        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   jx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   kxY w# 1 sw Y   y xY w)Nr  r`   c                  :    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    n;
r#   r   r  r  s    r!   r  z<test_suppress_warnings_forwarding.<locals>.warn_other_module  r  r#   r  r/   r  r8   locationr  oncer  )rb   r   r   r   r  ranger  r  r   r  r  )r  r  is      r!   !test_suppress_warnings_forwardingr    sI    
F
H 2*	.   	*CJJL"8, 2q 2AMM.122
 SWWq)	*   	*CJJL":. 2q 2AMM.1MM.122 SWWq)	*   		*CJJL"8, (q (AMM.1MM.1%'(( SWWq)		*   		*CJJL"6* (q (AMM.1MM"67%'(( SWWq)		*S2* 2*2 2	* 	*2 2	* 	*( (		* 		*( (		* 		*S2* 2*s   KI3&I&-'I3K&J;J >'J%K7J'AJ'J'=KJ?+AJ3.'J?K&I0+I33I=	8K J
JJ	KJ$J''J0	,K3J<8J??K	KK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                   "    e Zd ZdZd Zd Z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__H  s	    !
r#   c                 <    d | _         j                  r         y y r   )r  r  )r   ReferenceCycleInDels    r!   __del__zDTestAssertNoGcCycles.test_fails.<locals>.ReferenceCycleInDel.__del__K  s     !
&11 () 2r#   N)rH   rI   rJ   __doc__r  r  r   )r  s   r!   r  r  A  s     J"*r#   r  c                       y r   r   r   r#   r!   r0  z1TestAssertNoGcCycles.test_fails.<locals>.<lambda>Y  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  r&  r   r#   r!   r  r    s     %	&,(3r#   r  )Cr   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  rh  r  r  markfilterwarningsthread_unsafer  r  r?  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  skipifslowr  r   r#   r!   <module>r1     s    	 	 
     + +     2./ ./bC1\ C1L* *Za) a)H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o" o"bc, c,L5G 5GpA A(*.*8	 "NO% P%@ "NO1) P1)h "NO) P)D E  $$* E  ,*,*^ E  6*6*r%"' -& -
 "NO1 P1 $-EF"EFD3 D3  G GD3r#   