
    pg\j;                    J   S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SK	r	S SK
Jr  S SKrS SKJr  S SKrS SKJs  Jr  S SKJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4  S SK5J6r6  S SK7J8r8  S SK9J:r:  S S	K;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrF  \R                  \R                  \R                  \R                  /rKS
 rLS rM " S S5      rN " S S5      rO " S S5      rP " S S5      rQ\R                  R                  S/ SQ5      S 5       rT " S S5      rU " S S5      rV " S S5      rW " S S5      rX " S S 5      rY " S! S"5      rZ " S# S$5      r[ " S% S&5      r\ " S' S(5      r] " S) S*5      r^S+ r_ " S, S-5      r` " S. S/5      ra " S0 S15      rb " S2 S35      rc " S4 S55      rd " S6 S75      reSnS8 jrfSoS9 jrg " S: S;5      rh " S< S=5      ri " S> S?5      rj " S@ SA5      rk\R                  R                  SSB\R                  SC   -   \R                  SD   -   5      \R                  R                  SE/ SFQ5       " SG SH5      5       5       rm " SI SJ5      rn " SK SL5      ro " SM SN5      rp " SO SP5      rq " SQ SR5      rr " SS ST5      rs " SU SV5      rt " SW SX5      ru " SY SZ5      rv " S[ S\5      rw " S] S^5      rx " S_ S`5      ry/ SaQrz/ SbQr{Sc/r| " Sd Se5      r} " Sf Sg5      r~ " Sh Si5      r " Sj Sk5      r " Sl Sm5      rg)p    N)Fraction)partial)arrays)angleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanningi0insertinterpkaisermameshgrid	piecewiseplacerot90selectsetxor1dsinc	trapezoid
trim_zerosuniqueunwrap	vectorize)normalize_axis_tuple)	AxisError)rand)HAS_REFCOUNTIS_WASMNOGIL_BUILDassert_assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equalassert_equalassert_raisesassert_raises_regexc                 p    [         R                  " U 5      n[         R                  R                  X5      nU$ N)nparangeaddouter)ndatas     ]/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/numpy/lib/tests/test_function_base.pyget_matr<   D   s&    99Q<D66<<#DK    c                     [         R                  " [         R                  " X5      R                  [         R                  5      nXl        Xl        U$ )zU
Like real + 1j * imag, but behaves as expected when imag contains non-finite
values
)r5   zeros	broadcastshape
complex128realimag)rC   rD   rets      r;   _make_complexrF   J   s6    
 ((2<<+112==
ACHHJr=   c                   n    \ rS rSrS rS rS r\R                  R                  SSS/5      S 5       r
S	rg
)	TestRot90U   c           	         [        [        [        [        R                  " S5      5        [        [        [        [        R                  " S5      SS9  [        [        [        [        R                  " S5      SS9  [        [        [        [        R                  " S5      SS9  [        [        [        [        R                  " S5      SS9  / SQ/ S	Q/nS
S/SS/SS//n/ SQ/ SQ/nSS/SS/SS
//n/ SQ/ S	Q/n[        SSS5       H  n[        [        XS9U5        M     [        SSS5       H  n[        [        XS9U5        M     [        SSS5       H  n[        [        XS9U5        M     [        SSS5       H  n[        [        XS9U5        M     [        [        [        USS9SS9U5        [        [        USSS9[        USSS95        g )N      rM   rM   r      rM   axesrM   rM   r   rM   rO   rO   )rO      rK      rM   rX   rO   r   rW   rX   rK   rW   rM   rO   r      krU   r   rO   rO   r   r^   rQ   )r1   
ValueErrorr   r5   onesranger0   )selfab1b2b3b4r^   s          r;   
test_basicTestRot90.test_basicV   s   j%4j%);)Lj%vFj%vFj%);'J!f!f!f !f!f!f  r2q!Aq+ "r2q!Aq+ "r2q!Aq+ "q"aAq+ ! 	U50v>BU1/qBV1LMr=   c                     [         R                  " S5      n[        [        U5      R                  S5        [        [        USS9[        USS95        [        [        USS9[        USS95        g )N)2   (   rW   )rp   ro   rW   rS   rP   r   r_   rO   rM   rU   r_   )r5   rd   r0   r   rA   rf   rg   s     r;   	test_axesTestRot90.test_axesv   sR    GGK U1X^^[1U16*E!',BCU16*E!(,CDr=   c           
         [         R                  " S5      R                  S5      nSS/SS//SS/S	S
///nSS/SS//S
S/S	S///nS	S/SS//S
S/SS///nS	S
/SS//SS/SS///n[        [	        USS9U5        [        [	        USS9U5        [        [	        USS9U5        [        SS
5       H"  n[        [	        XSS9[	        XFS-
  SS95        M$     g )N   rL   rM   rW         r   rO   rK   rX   r`   rP   ra   rr   )rM   r   rb   )r5   r6   reshaper0   r   re   )rf   rg   
a_rot90_01
a_rot90_12
a_rot90_20
a_rot90_10r^   s          r;   test_rotation_axesTestRot90.test_rotation_axes|   s9   IIaL  +1v1v1v1v 
 1v1v1v1v 
 1v1v1v1v 
 1v1v1v1v 

 	U16*J7U16*J7U16*J7q!AqF3zU@B r=   r^          @      @c                     [         R                  " SS/SS//5      n[        R                  " [        SS9   [        X!S9nS S S 5        [        W[         R
                  " USS9SS	9  g ! , (       d  f       N-= f)
NrO   rM   rW   rK   z'not an integer type has been deprecatedmatchr]   Tstrict)r5   arraypytestwarnsDeprecationWarningr   r/   )rf   r^   rg   bs       r;   %test_noninteger_k_deprecation_warning/TestRot90.test_noninteger_k_deprecation_warning   se    HHq!fq!f%&\\, IKaAK 	1bhhqA.t<K Ks   
A''
A5 N)__name__
__module____qualname____firstlineno__rl   ru   r   r   markparametrizer   __static_attributes__r   r=   r;   rH   rH   U   s>    N@EB8 [[S3+.= /=r=   rH   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestFlip   c                    [        [        [        R                  [        R                  " S5      SS9  [        [        [        R                  [        R                  " S5      SS9  [        [        [        R                  [        R                  " S5      SS9  [        [        [        R                  [        R                  " S5      SS9  g )NrK   rO   axisrK   rK   rM   r[   r   rW   )r1   r&   r5   fliprd   rf   s    r;   ru   TestFlip.test_axes   sj    i"''!*1=i"''&/Bi"''&/Ci"''&/Gr=   c                     [        S5      nUS S 2S S S24   n[        [        R                  " US5      U5        / SQ/ SQ/n/ SQ/ SQ/n[        [        R                  " US5      U5        g )NrK   r_   rO   rN   rV   rZ   rY   r<   r0   r5   r   rf   rg   r   s      r;   test_basic_lrTestFlip.test_basic_lr   s^    AJa2gJRWWQ]A&RWWQ]A&r=   c                     [        S5      nUS S S2S S 24   n[        [        R                  " US5      U5        / SQ/ SQ/n/ SQ/ SQ/n[        [        R                  " US5      U5        g )NrK   r_   r   rN   rV   r   r   s      r;   test_basic_udTestFlip.test_basic_ud   s^    AJddAgJRWWQ]A&RWWQ]A&r=   c                     [         R                  " SS/SS//SS/SS///5      n[         R                  " SS/SS//SS/SS///5      n[        [         R                  " US5      U5        g 	Nr   rO   rM   rW   rK   rX   ry   rz   r5   r   r0   r   r   s      r;   test_3d_swap_axis0TestFlip.test_3d_swap_axis0       HH1v1v1v1v  !
 HH1v1v1v1v  !
 	RWWQ]A&r=   c                     [         R                  " SS/SS//SS/SS///5      n[         R                  " SS/SS//SS/SS///5      n[        [         R                  " US5      U5        g r   r   r   s      r;   test_3d_swap_axis1TestFlip.test_3d_swap_axis1   r   r=   c                     [         R                  " SS/SS//SS/SS///5      n[         R                  " SS/SS//SS/SS///5      n[        [         R                  " US5      U5        g r   r   r   s      r;   test_3d_swap_axis2TestFlip.test_3d_swap_axis2   r   r=   c           
      4   [         R                  " S5      R                  SSSS5      n[        UR                  5       HW  n[        [         R                  " X5      [         R                  " UR                  SU5      5      R                  US5      5        MY     g )Nx   rM   rW   rK   rX   r   )	r5   r6   r{   re   ndimr0   r   r   swapaxes)rf   rg   is      r;   test_4dTestFlip.test_4d   sj    IIm$,,Q1a8qvvA1::a#34==aCE r=   c                     [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[        [         R                  " U5      U5        g )NrO   rM   rW   rK   rX   ry   )ry   rX   rK   rW   rM   rO   r   r   s      r;   test_default_axisTestFlip.test_default_axis   sD    HHi! "HHi! "RWWQZ#r=   c                    [         R                  " SS/SS//SS/SS///5      n[        [         R                  " US	S
9U5        [         R                  " SS/SS//SS/SS///5      n[        [         R                  " USS
9U5        [         R                  " SS/SS//SS/SS///5      n[        [         R                  " USS
9U5        g )Nr   rO   rM   rW   rK   rX   ry   rz   r   r   rS   rr   r   rf   rg   r   cs       r;   test_multiple_axesTestFlip.test_multiple_axes   s    HH1v1v1v1v  !
 	RWWQR(!,HH1v1v1v1v  !
 	RWWQV,a0HH1v1v1v1v  !
 	RWWQV,a0r=   r   N)r   r   r   r   ru   r   r   r   r   r   r   r   r   r   r   r=   r;   r   r      s1    H'''''E$1r=   r   c                        \ rS rSrS rS rSrg)TestAnyi  c                     / SQn/ SQn/ SQn[        [        R                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      (       + 5        g )Nr   r   rO   r   r   r   r   r   )rO   r   rO   r   )r+   r5   anyrf   y1y2y3s       r;   rl   TestAny.test_basic
  sC    r
r
BFF2Jr=   c                     / SQ/ SQ/ SQ/n[        [        R                  " U5      5        [        [        R                  " USS9/ SQ5        [        [        R                  " USS9/ SQ5        g )Nr   r   r   r   rO   r   rO   rO   r   r   r   rO   r   rO   rO   )r+   r5   r   r/   rf   r   s     r;   test_ndTestAny.test_nd  sH    I.r
266"1-y9266"1-y9r=   r   Nr   r   r   r   rl   r   r   r   r=   r;   r   r     s     :r=   r   c                        \ rS rSrS rS rSrg)TestAlli  c                 R   / SQn/ SQn/ SQn[        [        R                  " U5      (       + 5        [        [        R                  " U5      5        [        [        R                  " U5      (       + 5        [        [        R                  " [        R                  " U5      ) 5      5        g )N)r   rO   rO   r   r   rO   rO   rO   rO   )r+   r5   allr   r   s       r;   rl   TestAll.test_basic  s`    BFF2Jr
BFF2J}%&r=   c                     / SQ/ SQ/ SQ/n[        [        R                  " U5      (       + 5        [        [        R                  " USS9/ SQ5        [        [        R                  " USS9/ SQ5        g )Nr   r   rO   r   rO   rO   rO   r   r   rO   )r+   r5   r   r/   r   s     r;   r   TestAll.test_nd$  sJ    I.BFF2J266"1-y9266"1-y9r=   r   Nr   r   r=   r;   r   r     s    ':r=   r   dtype)i8U10objectzdatetime64[ms]c                     [         R                  " SU S9n[         R                  " U5      R                  [         R                  :X  d   e[         R
                  " U5      R                  [         R                  :X  d   eg )NrW   r   )r5   rd   r   r   boolr   )r   arrs     r;   test_any_and_all_result_dtyper   +  sR    
''!5
!C66#;'''66#;'''r=   c                   &    \ rS rSrS rS rS rSrg)TestCopyi2  c                     [         R                  " SS/SS//5      n[         R                  " U5      n[        X5        SUS'   [	        US   S5        [	        US   S5        g )NrO   rM   rW   rK   
   )r   r   )r5   r   copyr/   r0   )rf   rg   a_copys      r;   rl   TestCopy.test_basic4  sW    HHq!fq!f%&1%tQtWa VD\2&r=   c                    [         R                  " SS/SS//5      n[        UR                  R                  5        [        UR                  R
                  (       + 5        [         R                  " SS/SS//SS9n[        UR                  R                  (       + 5        [        UR                  R
                  5        [         R                  " U5      n[        UR                  R                  5        [        UR                  R
                  (       + 5        [         R                  " U5      n[        UR                  R                  (       + 5        [        UR                  R
                  5        g )NrO   rM   rW   rK   Forder)r5   r   r+   flagsc_contiguousf_contiguousr   )rf   rg   a_fortr   a_fort_copys        r;   
test_orderTestCopy.test_order<  s     HHq!fq!f%&$$%AGG((()Aq6Aq6*#6FLL---.))*))*FLL---.ggfoK%%2223!!../r=   c           	      r   [         R                  " S5      n[        [         R                  " [        R
                  " USS95      (       + 5        [        [         R                  " [        R
                  " USS95      5        [        [         R                  " [        R
                  " U5      5      (       + 5        g )NrX   F)subokT)r   rd   r+   isMaskedArrayr5   r   )rf   mxs     r;   
test_subokTestCopy.test_subokM  sl    WWQZB$$RWWRu%=>>?  4!89:B$$RWWR[112r=   r   N)r   r   r   r   rl   r   r  r   r   r=   r;   r   r   2  s    '0"3r=   r   c                       \ rS rSrS r\R                  R                  S/ SQSS// SQS/S	/4/ S
Q/ SQ/S/ SQ/SS// SQ// SQ/4/5      S 5       rS r	S r
S rS rS rS rS rS rSrg)TestAverageiU  c                 p   [         R                  " / SQ5      n[        [        USS9S:H  5        [         R                  " / SQ5      n[        [        USS9S:H  5        / SQn[        [        USS9S:H  5        [         R                  " S5      nSUS	'   S
US'   [        UR                  S5      [        US5      5        [        UR                  S5      [        US5      5        [        SS5      n[        UR                  S5      [        US5      5        [        UR                  S5      [        US5      5        g )Nr   r   r   r         ?r         @)        r  r  r  r   r`   rM   ra   rO   rX   )r5   r   r+   r   rd   r-   meanr'   )rf   r   r   r   y4y5s         r;   rl   TestAverage.test_basicW  s    XXi #r)*XXl##r)*#r)*WWV_44BGGAJA7BGGAJA7!QZBGGAJA7BGGAJA7r=   z<x, axis, expected_avg, weights, expected_wavg, expected_wsumr   Nr   )rW   rK   rO         ?       @)rO   rM   rX   )rO   ry      r   )r        @r  rO   rW   )r        @      #@rK   rK   rK   c                    [         R                  " XSS9nUR                  [         R                  " U5      :X  d   e[        Xs5        [         R                  " XUSS9nUR                  [         R                  " U5      :X  d   e[        X5        [         R                  " XUSSS9u  pUR                  [         R                  " U5      :X  d   e[        X5        U	R                  [         R                  " U5      :X  d   e[        X5        g )NTr   keepdims)r   weightsr  )r   r  returnedr  )r5   r   rA   r/   )
rf   xr   expected_avgr  expected_wavgexpected_wsumavgwavgwsums
             r;   test_basic_keepdimsTestAverage.test_basic_keepdimsi  s     jj5yyBHH\22223-zz!$GzzRXXm44444/ZZg)-/
zzRXXm44444/zzRXXm44444/r=   c                    [         R                  " S5      n[         R                  " S5      n[        XS9n[         R                  " S5      S-  R                  5       S-  [         R                  " S5      R                  5       -  n[	        X45        [         R
                  " / SQ/ SQ/5      nSS/n[        XVSS	9n[         R
                  " / S
Q5      n[	        X45        / SQn[        XWSS	9n[         R
                  " SS/5      n[	        X45        [        R                  " [        SS9   [        XWS9  S S S 5        / SQ/ SQ/n[         R
                  " SS/5      n[        [        XXSS	9U5        [        [        XXS9S5        [        S5      R                  [         R                  5      n	[        S5      R                  [         R                  5      n
[        [         R                  " XS9R                   [         R"                  " X5      :H  5        [         R
                  " / SQ5      R%                  SS5      n[         R
                  " / SQ5      R%                  SS5      n[         R                  " XSSS9n[         R
                  " / SQ5      n[        X45        [         R                  " XSSS9n[         R
                  " S/S/S//5      n[        X45        g ! , (       d  f       GN= f)Nr   r  rM   r  r   r   rO   r   r  r   )r  r  r  r   r        @z:Axis must be specified when shapes of a and weights differr   )r   r   rM   r  rX   rM   rW   rK   rW   F)r  r   r  )r   r  r  Tr   r  )r5   r6   r   sumr-   r   r   raises	TypeErrorr/   r0   r'   astypefloat32float64r+   r   result_typer{   )rf   ywactualdesiredr   w0w1w2r   w3r  s               r;   test_weightsTestAverage.test_weights  s!   IIbMIIbM&99R=A%**,r1BIIbM4E4E4GGF,XXy),-Va0((<(F,a0((B8$F, ]]+, B#	, #((B8$72:GDWR,b1!W^^BJJ'!W^^BJJ'

2*00BNN24JJK HHY''1-HHY''1-Aq5A((<(6+Aq4@((RD2$-.6+7, ,s   '
K
K$c                    [         R                  " S5      R                  SSS5      n[         R                  " / SQ5      R                  SSS5      nUS S 2S S 2S4   n[	        USUS9n[         R                  " / SQ5      n[        XE5        US	S S 2S S 24   n[	        US
US9n[         R                  " SS/5      n[        XE5        US S 2SS S 24   n[	        USUS9n[         R                  " SS/5      n[        XE5        [        R                  " [        SS9   [	        USUS9  S S S 5        [        R                  " [        SS9   [	        USUS9  S S S 5        [	        USUS9n[	        USUR                  S9n[        XE5        [	        USUS9n[        UR                  S:H  5        g ! , (       d  f       N= f! , (       d  f       Nn= f)N   rM   rW   )r  r  r        ?r@  r  r  r@  r@  r  r  r  r   r`   )r   r        @r        "@rO   rr   r   g      @rS         @g      @zHShape of weights must be consistent with shape of a along specified axisr   rN   ra   )r5   r6   r{   r   r   r-   r   r.  rc   Tr+   r   )rf   r4  r5  subw0r6  r7  subw1subw2s           r;   $test_weight_and_input_dims_different0TestAverage.test_weight_and_input_dims_different  s   IIbM!!!Q*HHEFWQ1 	
 !Q'
7((<(F,!Q'
7((D$<(F,!Q'
7((D$<(F, ]]89 AIu5	9 ]]89 AFE2	9 7!&%'':F, A6q !'9 99 9s   F(F9(
F69
Gc                 b   [         R                  " / SQ/ SQ/5      n[        USS9u  p#[        US5        [        USSS9u  p#[	        U[         R                  " / SQ5      5        [        USSS9u  p#[	        U[         R                  " S	S	/5      5        SS
/n[        XSSS9u  p#[	        U[         R                  " / SQ5      5        / SQn[        XSSS9u  p#[	        U[         R                  " SS/5      5        / SQ/ SQ/n[        XSSS9u  p#[	        U[         R                  " SS/5      5        g )Nr   r   T)r  r+  r   )r   r   r   rO   r  rM   r  r   r  )r  r  r  r   r  )r5   r   r   r0   r/   )rf   r4  r#  sclr8  r9  r:  s          r;   test_returnedTestAverage.test_returned  s   HHi+, 1t,S"1a$/3 671a$/3"b 23 V1q4@3 671q4@3"b 23#1q4@3"b 23r=   c           	          " S S[         R                  5      n[         R                  " SS/SS//5      R                  U5      n[         R                  " SS/SS//5      R                  U5      n[	        [        [         R                  " U5      5      U5        [	        [        [         R                  " X#S95      U5        [         R                  " X#SS	9u  pE[	        [        U5      U5        [	        [        U5      U5        [         R                  " X#S
   SSS9u  pE[	        [        U5      U5        [	        [        U5      U5        g )Nc                       \ rS rSrSrg)-TestAverage.test_subclasses.<locals>.subclassi  r   Nr   r   r   r   r   r   r=   r;   subclassrR        r=   rT  rO   rM   rW   rK   r)  T)r  r  r   rL  )r5   ndarrayr   viewr0   typer   )rf   rT  rg   r5  rarws         r;   test_subclassesTestAverage.test_subclasses  s    	rzz 	HHq!fq!f%&++H5HHq!fq!f%&++H5T"**Q-((3T"**Q23X>A48T"Xx(T"Xx(At!dCT"Xx(T"Xx(r=   c                    / SQnU Hx  u  p#n[         R                  " SS/SS//US9n[         R                  " SS/SS//US9n[        [         R                  " XVS9R                  [         R                  " U5      5        Mz     g )N))i4r^  f8)r^  f4r_  )r`  r^  r_  )r`  r`  r`  )r`  r_  r_  rO   rM   rW   rK   r   r)  )r5   r   r0   r   r   )rf   typesatwtrtrg   r5  s          r;   test_upcastingTestAverage.test_upcasting  sr    9JBB1a&1a&)4A1a&1a&)4AA177"F  r=   c                    [         R                  " [        S5       Vs/ s H  n[        R                  " U5      PM     sn5      n[         R                  " [        S5       Vs/ s H  n[        R                  " S5      PM     sn5      nXDR                  5       -  n[        UR                  S5      [        X$S95        g s  snf s  snf )Nr   rO   r   r)  )	r5   r   re   decimalDecimalr-  r-   r  r   )rf   r  rg   _r5  s        r;   test_object_dtypeTestAverage.test_object_dtype  s    HH%)<)Qgooa()<=HH%)<)Qgooa()<=	UUWAFF1Iwq'<= =<s    B>" Cc                     [         R                  " [        S5       Vs/ s H  n[        R                  " U5      PM     sn5      n[        U5      nU[        R                  " S5      :X  d   eg s  snf )Nr   z4.5)r5   r   re   rh  ri  r   )rf   r  rg   ms       r;   test_object_no_weights"TestAverage.test_object_no_weights  sQ    HH%)<)Qgooa()<=AJGOOE**** =s    A-c                     [         R                  " [        SS5      [        SS5      /5      n[        [         R                  " U5      [        SS5      5        g )NrO   rX   rW   rM   )r5   r   r   r0   r   rt   s     r;    test_average_class_without_dtype,TestAverage.test_average_class_without_dtype  s9    HHhq!nhq!n56RZZ]HQN3r=   r   )r   r   r   r   rl   r   r   r   r&  r<  rI  rN  r[  re  rk  ro  rr  r   r   r=   r;   r	  r	  U  s    8$ [[F
TC5)dVcU	;j
!1&7a&?#i[
2	300".,`("T44)"G>+
4r=   r	  c                   (   \ rS rSr\R
                  " / SQ5      \R
                  " / SQ5      \R
                  " / SQ5      /r\R
                  " / SQ5      \R
                  " / SQ5      \R
                  " / SQ5      /rSS jrS	 r	S
 r
S rS rS rSrg)
TestSelecti  r   r   rz   rx   	   )FFFFTFFFTc                     / n[        [        U5      5       H=  nU[        X!5       VVs/ s H  u  pgXu   (       d  M  Xe   PM     snn=(       d    U/-  nM?     U$ s  snnf r4   )re   lenzip)rf   condvaluesdefaultoutputrn  VCs           r;   _selectTestSelect._select&  sV    s4y!AF(9B(9QTtqt(9BOwiOF " Cs
   A
A
c           	          U R                   nU R                  n[        [        X!SS9U R	                  X!SS95        [        [        U5      S5        [        [        U5      S5        g )N   r  rW   )choices
conditionsr/   r   r  r0   r{  rf   r  r  s      r;   rl   TestSelect.test_basic,  sT    ,,__
6*rB<<
R<H	J 	S\1%S_a(r=   c                 F   [         R                  " S5      [         R                  " / SQ5      /nS[         R                  " S5      R                  SS5      /n[	        [        X5      [         R                  " S5      5        [        [        S/S/S/S	9R                  S
5        g )NTrx  rO   r?  rK   rW   rK   rW   r   r  rO   )	r5   r   r6   r{   r/   r   rd   r0   rA   rf   r  r  s      r;   test_broadcastingTestSelect.test_broadcasting5  ss    hhtnbhh/C&DE
biim++Aq126*6HVTFQC!5;;TBr=   c           	      L   [        [        U R                  U R                  S5      R                  [
        R                  5        U R                   Vs/ s H!  oR                  [
        R                  5      PM#     nn[        [        U R                  U5      R                  [
        R                  5        [
        R                  " SSS[
        R                  SS/5      n[
        R                  " U5      n[        [        U/U/5      SSS[
        R                  SS/5        g s  snf )N              ?rO   rM   rW   rX   rz   r   )r0   r   r  r  r   r5   rB   r0  int8r   nanisnan)rf   choicer  drn  s        r;   test_return_dtypeTestSelect.test_return_dtype<  s    VDOOT\\2>DD]]	$ 9=Ef==)EVDOOW5;;RWWEHHaArvvq!,-HHQKVQC!%1aA'>? Fs   (D!c                 L   U R                   nU R                  S S  nUS   R                  [        R                  5      US'   [        [        [        X!5        US   R                  [        R                  5      US'   [        [        [        X!5        [        [        [        X!5        g Nr   )	r  r  r0  r5   int_r1   r/  r   uint8r  s      r;   test_non_bool_deprecation$TestSelect.test_non_bool_deprecationH  su    ,,__Q'
"1,,RWW5
1i="1,,RXX6
1i=i=r=   c                     [         R                  " S/5      /S-  n[         R                  " S/5      /S-  n[        X5        g )NFd   rO   )r5   r   r   r  s      r;   test_many_argumentsTestSelect.test_many_argumentsQ  s8    hhw'(3.
88QC=/C'z#r=   r   Nr   )r   r   r   r   r5   r   r  r  r  rl   r  r  r  r  r   r   r=   r;   ru  ru    s}    xx	"xx	"xx	"$G ((01((/0((/02J)C
@>$r=   ru  c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
S/5      S 5       rSrg)
TestInsertX  c           
         / SQn[        [        USS5      / SQ5        [        [        USS5      / SQ5        [        [        U/ SQ/ SQ5      / SQ5        [        [        US/ SQ5      / SQ5        [        [        U/ S	QS
5      / SQ5        [        [        U[        SS S5      S
5      / SQ5        [        [        U/ SQ/ SQ5      / SQ5        [        R                  " SS/[        R
                  S9n[        [        USUS   5      / SQ5        [        [        U/ / 5      U5        [        [        U[        R                  " S/S-  5      S
5      / SQ5        [        [        U[        R                  " / SQ5      S
5      / SQ5        g )Nr   r   rO   )rO   rO   rM   rW   rW   )rO   rM   rW   rO   r   )rO   rO   rM   rW   rM   rW   )rO   r_   rW   rw  )rO   rw  rM   rw  rW   rw  r_   )rw  rO   rw  rM   rw  rW   r_   rO   rW   rv  )rO   rx   rM   rz   rW   rw  r   r  r  r  TrK   )rw  rO   rw  rM   rw  rW   rw  )TFTF)rw  rO   rM   rw  rW   )r0   r   slicer5   r   r2  r   s      r;   rl   TestInsert.test_basicZ  s   VAq!_l3VAq!_l3VAy)46HIVAq),.@AVAz1-/ABVAuRr2A68JKVAz957IJHHaV2::.VAq!A$'6VAr2&*VArxx
3Q79NOVArxx(BCQG$	&r=   c                    / SQ/n/ SQ/ SQ/n[        [        USS/5      / SQ5        [        [        US/ SQSS9U5        [        [        USSSS9U5        [        [        USSSS9/ SQ/5        [        R                  " SS/SS/S	S	//5      n[        R                  " SS
5      R                  S	5      R                  S	S	5      n[        R                  " US S 2SS24   [        R                  " SS
5      R                  S	5      R                  S	S	5      R                  US S 2SS24   4SS9n[        [        US/S/S/S	//SS9U5        [        [        US// SQSS9U5        [        [        US/ SQSS9U5        [        [        USS/S/S	//SS9U5        [        R                  " S
5      R                  SS5      n[        [        US S 2S S24   SUS S 2S4   SS9U5        [        [        US S2S S 24   SUSS S 24   SS9U5        [        R                  " S5      R                  S5      n[        [        USUS S 2S S 2S	4   SS9[        USUS S 2S S 2S	4   SS95        [        [        USUS S 2SS S 24   SS9[        USUS S 2SS S 24   SS95        [        [        [        USUS S 2SS S 24   S	S9  [        [        [        USUS S 2SS S 24   SS9  [        R                  " S5      R                  S5      n[        [        USUS S 2S S 2S	4   SS9[        USUS S 2S S 2S	4   SS95        [        [        USUS S 2SS S 24   SS9[        USUS S 2SS S 24   SS95        g )Nr   rL   r   rO   r   r   rM   )rO   rO   rM   rO   rW   rK   r      r,  r_   rU   )r0   r   r5   r   r6   repeatr{   concatenaterE  r1   r&   )rf   rg   rr   r   s        r;   test_multidimTestInsert.test_multidimj  s:   KVAq1#&5VAq)!4a8VAq!!,a0VAq!!,|n=HHq!fq!fq!f-.IIaO""1%--a3NNq!A#vY		!Q..q199!Q?AAq!A#vY! 	VAsaS1#sO!<a@VAsIA6:VAq)!4a8VAqA3aS/:A>IIaL  A&VAa!eHa1a4q91=VAbqb!eHa1a4q91= IIbM!!),VAq!Aq!G*26Aq!Aq!G*15	7VAq!Aq!G*26Aq!Aq!G*15	7 	iAqAqzBiAqAqzC IIbM!!),VAq!Aq!G*26Aq!Aq!G*15	7VAq!Aq!G*26Aq!Aq!G*15	7r=   c                 0   [         R                  " S5      n[        R                  " [        5         [        U/ SSS9  S S S 5        [        R                  " [        5         [        U/ SSS9  S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)NrO   rM   r   r   nonsense)r5   r   r   r.  r&   r   r/  rt   s     r;   test_0dTestInsert.test_0d  s`    HHQK]]9%1b!!$ &]]9%1b!*- &% &%%%s   A6 B6
B
Bc                     " S S[         R                  5      n[         R                  " S5      R                  U5      n[	        [        [         R                  " USS/5      U5      5        [	        [        [         R                  " U/ / 5      U5      5        [	        [        [         R                  " USS/SS/5      U5      5        [	        [        [         R                  " U[        SS5      SS/5      U5      5        [	        [        [         R                  " U[        SSS5      / 5      U5      5        [         R                  " S5      R                  U5      n[	        [        [         R                  " USS/5      U5      5        g )	Nc                       \ rS rSrSrg)*TestInsert.test_subclass.<locals>.SubClassi  r   NrS  r   r=   r;   SubClassr    rU  r=   r  r   r   rO   rM   rU   r_   )	r5   rV  r6   rW  r+   
isinstancer   r  r   )rf   r  rg   s      r;   test_subclassTestInsert.test_subclass  s	   	rzz 	IIbMx(
299QA3/:;
299QB/:;
299QAA7BC
299QaaV<hGH
299QaR(8"=xHIHHQKX&
299QA3/:;r=   c                     [         R                  " / SQ5      n[         R                  " / SQU/ SQ5        [        U[         R                  " / SQ5      5        g )Nr   rN   rV   )r5   r   r   r0   rf   r  s     r;   test_index_array_copied"TestInsert.test_index_array_copied  s3    HHY
		)Q	*Q+,r=   c                 Z   [         R                  " / SQSS/S9nSn[         R                  " USU5      n[        US   [         R                  " X#R                  S95        S/S-  n[         R                  " USS/U5      n[        USS/   [         R                  " X#R                  S95        g )	N))rO   rg   )rM   r   )rW   r   )foor   )barS1r   )rK   r  r   rM   rW   )r5   r   r   r/   r   )rf   rg   valr   s       r;   test_structured_array TestInsert.test_structured_array  s    HH3(-8:IIaC 1Q4#WW!=>j1nIIa!Q%1aV9bhhs''&BCr=   c           	         [         R                  " [        5         [        R                  " / SQ[        R
                  " SS/5      SS/5        S S S 5        [         R                  " [        5         [        R                  " / SQ[        R
                  " / [        S9/ 5        S S S 5        g ! , (       d  f       Nc= f! , (       d  f       g = f)NrN   r  r   r      r   )r   r.  
IndexErrorr5   r   r   floatr   s    r;   test_index_floatsTestInsert.test_index_floats  ss    ]]:&IIi3*!5Bx@ ']]:&IIi"E!:B? '& '&&&s   3B+02B<+
B9<
C
idxrK   r  c                     [         R                  " [        SS9   [        R                  " / SQU/SS/5        S S S 5        g ! , (       d  f       g = f)Nzout of boundsr   rN   rW   rK   )r   r.  r  r5   r   )rf   r  s     r;   test_index_out_of_bounds#TestInsert.test_index_out_of_bounds  s2    ]]:_=IIi#A/ >==s   A
Ar   N)r   r   r   r   rl   r  r  r  r  r  r  r   r   r   r  r   r   r=   r;   r  r  X  sQ    & (7T.<-
D@ [[UQG,0 -0r=   r  c                       \ rS rSrS rSrg)TestAmaxi  c                     / SQn[        [        R                  " U5      S5        / SQ/ SQ/ SQ/n[        [        R                  " USS9/ SQ5        [        [        R                  " US	S9/ S
Q5        g )NrW   rK   rX   r   r[   r+        $@rW   r+  rC  rK   r  r  rx   r  r   r   r   )r  r  rC  rO   )rC  r  r  )r0   r5   amaxr   s      r;   rl   TestAmax.test_basic  sW    &RWWQZ& 	RWWQQ')9:RWWQQ')9:r=   r   Nr   r   r   r   rl   r   r   r=   r;   r  r    s    ;r=   r  c                       \ rS rSrS rSrg)TestAmini  c                     / SQn[        [        R                  " U5      S5        / SQ/ SQ/ SQ/n[        [        R                  " USS9/ SQ5        [        [        R                  " US	S9/ S
Q5        g )Nr  g      r  r  r  r   r   )r  r  r   rO   )r  r  r   )r0   r5   aminr   s      r;   rl   TestAmin.test_basic  sU    &RWWQZ& 	RWWQQ'9RWWQQ'9r=   r   Nr  r   r=   r;   r  r    s    :r=   r  c                       \ rS rSrS rSrg)TestPtp  c                    [         R                  " / SQ5      n[        [         R                  " USS9S5        [         R                  " / SQ/ SQ/ SQ/5      n[        [         R                  " USS9/ SQ5        [        [         R                  " US	S9/ S
Q5        [        [         R                  " USSS9/ SQ/5        [        [         R                  " USSS9S//5        g )Nr  r   r         .@r  r  r  )r  rB  rB  r_   )r+  r+  r+  Tr  r`   r  )r5   r   r0   ptpr   s      r;   rl   TestPtp.test_basic  s    HH/0RVVAA&-HHm$#% & 	RVVAA&8RVVAB'9RVVAA57HIRVVAFT:cUGDr=   r   Nr  r   r=   r;   r  r    s    
Er=   r  c                       \ rS rSr\R
                  R                  S\R                  \R                  /5      S 5       r
Srg)
TestCumsumi  cumsumc           
         / SQn/ SQ/ SQ/ SQ/n[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  [         R                  [         R                  4
 H  n[         R                  " X$5      n[         R                  " X45      n[         R                  " / SQU5      n[        U" USS9U5        [         R                  " / SQ/ SQ/ S	Q/U5      n[        U" USS9U5        [         R                  " / S
Q/ SQ/ SQ/U5      n[        U" USS9U5        M     g )NrO   rM   r   r  ry   rX   rK   rO   rM   rW   rK   rX   ry   rz   rw  r   rW   rK   rX   )rO   rW   r\   r     #   '   r   r   )ry   rx   r   r\   )   r        )rO   rW   ry   r   )rX   r  r     )r   r\         rO   )r5   r  r  int16uint16int32uint32r1  r2  	complex64rB   r   r/   )rf   r  baba2ctyperg   a2tgts           r;   rl   TestCumsum.test_basic  s    $\=9ggrxx299bhhiiRZZmm%E #A#%B((5u=Cvaa0#6((~/?@%ICvbq137((1ABEKCvbq137%r=   r   N)r   r   r   r   r   r   r   r5   r  cumulative_sumrl   r   r   r=   r;   r  r    s5    [[X		23D3D'EF8 G8r=   r  c                       \ rS rSrS rSrg)TestProdi  c                    / SQn/ SQ/ SQ/ SQ/n[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  4 H  n[         R                  " X5      n[         R                  " X#5      nUS;   aA  [        [        [         R                  U5        [        [        [         R                  US5        Mv  [        UR                  SS9S	5        [        UR                  SS9[         R                  " / S
QU5      5        [        UR                  SS9[         R                  " / SQU5      5        M     g )Nr  r  r  r  1r   rO   r   r    g  ro   $   T      r_   )r  b  r  )r5   r  r   r  r  r1  r2  r  rB   r   r1   ArithmeticErrorprodr0   r/   )rf   r  r  r  rg   r  s         r;   rl   TestProd.test_basic  s    $\=9hh		288RYYjj"**bllBMMKE#A#%B
"orww:orwwA>QVVV^U3"2777?#%88,=u#EG"2777#3#%88OU#CEKr=   r   Nr  r   r=   r;   r  r    s    Er=   r  c                       \ rS rSr\R
                  R                  S\R                  \R                  /5      S 5       r
Srg)TestCumprodi  cumprodc           
         / SQn/ SQ/ SQ/ SQ/n[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  4 H  n[         R                  " X$5      n[         R                  " X45      nUS;   a3  [        [        X5        [        [        XS5        [        [        X5        Mh  [        U" USS9[         R                  " / S	QU5      5        [        U" US
S9[         R                  " / SQ/ SQ/ SQ/U5      5        [        U" USS9[         R                  " / SQ/ SQ/ SQ/U5      5        M     g )Nr  r  r  r  r  rO   r_   r   )rO   rM   r     i(  i  r  r   )rX   r?     r  r  )rO   rM   ry   r  )rX   r     r  )r   r  r   r  )r5   r  r   r  r  r1  r2  r  rB   r   r1   r  r/   )rf   r  r  r  r  rg   r  s          r;   rl   TestCumprod.test_basic  s#   $\=9hh		288RYYjj"**bllBMMKE#A#%B
"ow:owA>ow:"712#6#%88 -@AF$HI #72A#6#%88\-<->-@AF$HI #72B#7#%88]-?-?-ABG$IJ!Kr=   r   N)r   r   r   r   r   r   r   r5   r  cumulative_prodrl   r   r   r=   r;   r  r    s7    [[YR5G5G(HIJ JJr=   r  c                  2   [         R                  " S5      R                  S5      n [         R                  " SS/SS/SS//SS/SS/SS	///5      n[	        [         R
                  " U SS
S9U5        [         R                  " / SQ/ SQ// SQ/ SQ//5      n[	        [         R                  " U SS
S9U5        [         R                  " S[         R                  S9n[         R                  " SS/SS/SS//[         R                  S9n[         R                  " SS5      R                  S5      n [         R
                  " U SUS
S9  [	        X!5        [         R                  " / SQ5      n[	        [         R                  " [         R                  " SS/5      S
S9U5        g )Nrx   rL   r   rO   rM   rK   rX   r   r?  T)r   include_initial)rO   r   r   )rO   rM   ry   )rO   rK   r  )rO   ry   *   rW   rM   r   ry   rR   )r   outr#  )rO   rM   rK   )r#  )	r5   r6   r{   r   r/   r
  r!  r?   r2  )r   expectedr&  s      r;   test_cumulative_include_initialr(  2  s`   
))A,

y
)Cxx
Q!Q!Q Aq6Aq6B8"< H 
#At<h xx	IZ 8 H 
3Q=x ((6
,Cxx!Q!Q!Q0

CH
))Aq/
!
!&
)CcsDAs%xx	"H
288QF+TBHr=   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestDiffiO  c                 2   / SQn[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " SS/5      n[        [        U5      U5        [        [        USS9U5        [        [        USS9U5        / S	Qn[         R                  " / S
Q5      n[	        [        U5      U5        / SQn[         R                  " / SQ5      n[         R                  " SS/5      n[        [        U5      U5        [        [        USS9U5        g )N)rO   rK   ry   rz   r?  )rW   rM   rO   rX   )r_   r_   rK   r   rX   rM   r9   rW   )皙?皙@r  gɿ皙)r-  皙?g	皙?)TTFFrx  T)r5   r   r/   r   r-   )rf   r  r&  out2out3s        r;   rl   TestDiff.test_basicQ  s    hh|$xx$xxA47C(4Q<.4Q<.'hh,-DGS)&hh+,xxt%47C(4Q<.r=   c                    [         R                  " S5      nSUS S 2SS S2S S 24'   [         R                  " S5      nSUS S 2SS S2S S 24'   [        [	        U5      [         R                  " S5      5        [        [	        USS9[         R                  " S5      5        [        [	        USS9[         R                  " S	5      5        [        [	        USS9U5        [        [	        US
S9U5        [        [        [        USS9  [        [        [        USS9  [         R                  " S[         R                  5      n[        [        [        U5        g )N)r   r  r  rO   rM   )r      r  r_   )r   r     r   r   )rw  r  r  rU   rW   r  gq?)
r5   r?   rd   r/   r   r1   r&   r   r2  rc   )rf   r  exps      r;   	test_axisTestDiff.test_axisd  s    HH\"!QTT1*ggl#Aqt!tQJ47BHH\$:;4+RXXl-CD4?BHH[,AB4?C04+S1iqq1iqr2HH]BJJ/j$*r=   c                    S[        SSS5      -  nUS S 2S S 2SS 24   US S 2S S 2S S24   -
  nUS S 2S S 2SS 24   US S 2S S 2S S24   -
  nUSS 2S S 2S S 24   US S2S S 2S S 24   -
  nUSS 2S S 2S S 24   US S2S S 2S S 24   -
  n[        [        U5      U5        [        [        USS9U5        [        [        USS	9U5        [        [        USSS
9U5        g )Nr  r   r  rO   r_   rM   r,  r   r   )r9   r   )r'   r/   r   )rf   r  out1r2  r3  out4s         r;   r   TestDiff.test_ndt  s    b"b!!Aqr{Qq!SbSy\)Aq!"H~Q3B3Y/Q{QssAqy\)AB1H~SbS!QY/47D)4Q<.4?D14QQ/6r=   c           
         [        [        S5      5      n[        [        [        USS9  [        SS5       Vs/ s H  n[	        XS9PM     nnSS/S// / /n[        [	        USS9UL 5        [        [        XC5      SS9 H  u  nu  pV[        [        U5      [        R                  L 5        [        Xe5        [        UR                  [        R                  5        [        [        U5      [!        S[        U5      U-
  5      5        M     g s  snf )NrW   r_   r,  rO   rX   r   start)listre   r1   rc   r   r+   	enumerater|  rX  r5   rV  r/   r0   r   r  r{  max)rf   r  r9   r  r'  
expected_noutput_ns          r;   test_nTestDiff.test_n  s    qNj$R0(-a41$q,4FQCR(Q!!")23x3HPQ)R%A%
DNbjj01x41XAs1vz(:;	 *S 5s   Dc                    [         R                  " SS[         R                  S9n[         R                  " SS/SS9[         R                  " S/SS9/nUR	                  [         R                  " / SS9/S-  5        [        USS9 H9  u  p4[        XS	9n[        XT5        [        UR                  UR                  5        M;     g )
Nz
1066-10-13z
1066-10-16r   rO   timedelta64[D]r   rW   r@  r,  )
r5   r6   
datetime64r   extendrC  r   r/   r0   r   )rf   r  r'  r9   r8  r&  s         r;   
test_timesTestDiff.test_times  s    IIlLFHHaV#34HHaS 01
 	",<=>BC2FAq,Cs(CII. 3r=   c           	         [         R                  " SS/SS/SS/SS/S	S
//SS/SS/SS/SS/SS//S9n[        U5      n[        UR                  S/S/S/S/S//5        [        UR
                  S/S/S/S/S//5        [        [        U5      [        U5      L 5        [        USS9n[        UR                  / / / / / /5        [        UR
                  / / / / / /5        [        [        U5      [        U5      L 5        g )NrO   rM   rW   rK   rX   ry   rz   rx   rw  r   FTmaskr,  )r   r   r   r/   r:   rQ  r+   rX  )rf   r  r&  r3  s       r;   r  TestDiff.test_subclass  s   HHq!fq!fq!fq!fq"g>!5>D%=!4=4,HI 1g388qcA3aS1#%>?388ugv'+ftfug&? 	@S	T!W$%A|499r2r2r&:;499r2r2r&:;T
d1g%&r=   c           	         [         R                  " S5      S-   n[        [        USS9[         R                  " S5      5        [        [        US/S9[         R                  " S5      5        [        [         R
                  " [         R                  " USS95      U5        [        [        USS/S9[         R                  " S5      5        [         R                  " S5      R                  SS5      n[         R                  " USSS	9nSS/SS//n[        X#5        [         R                  " USS/S//S	9n[        X#5        [         R                  " USSS	9nSS/SS//n[        X#5        [         R                  " USSS//S	9n[        X#5        [        [        [         R                  U[         R                  " S
5      S9  [        [        [        USSS9  g )NrX   rO   r   )prependr_   ry   rK   rM   )r   rT  rW   rW   rW   )rT  r   )r5   r6   r/   r   rd   r  r{   r1   rc   r?   r&   rf   r  resultr'  s       r;   test_prependTestDiff.test_prepend  sb   IIaL141-rwwqz:4A3/<299RWWQ%:;Q?4B73RWWQZ@IIaL  A&A.FQF#6,aS1#J76,A.FQF#6,aVH56,j"''1bhhv6FGiq!!<r=   c                    [         R                  " S5      n[        USS9n/ SQn[        X#5        [        US/S9n[        X#5        [        USS/S9nUS/-   n[        X#5        [         R                  " S5      R	                  SS5      n[         R                  " USSS9nSS	/SS
//n[        X#5        [         R                  " USS/S//S9n[        X#5        [         R                  " USSS9nSS/SS
//n[        X#5        [         R                  " USSS//S9n[        X#5        [        [        [         R                  U[         R                  " S5      S9  [        [        [        USSS9  g )NrX   r   )append)rO   rO   rO   rO   r  rM   rK   rO   )r   r[  r_   r[   rU   rU  rW   )r[  r   )	r5   r6   r   r/   r{   r1   rc   r?   r&   rV  s       r;   test_appendTestDiff.test_append  s@   IIaLa"#6,a$6,aA'qc>6,IIaL  A&1-GaW%6,QC!:66,1-FRH%6,QF846,j"''1RXXf5EFiq;r=   r   N)r   r   r   r   rl   r9  r   rG  rM  r  rX  r\  r   r   r=   r;   r*  r*  O  s*    /&+ 	7
<
/'=0<r=   r*  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\R                  R                  S\R"                  " S/5      S//5      S 5       rS rSrg)
TestDeletei  c                     [         R                  " S5      n[         R                  " S5      R                  S5      R                  SSS5      nX4$ )NrX   rM   rO   )r5   r6   r  r{   )rf   rg   nd_as      r;   _create_arraysTestDelete._create_arrays  s=    IIaLyy|""1%--aA6wr=   c                     U R                  5       u  p#[        X!5      n[        X1SS9nSU< 3n[        [        XBU4   5      UUS9  [        USS S 2S4   USUS4   5      n[        XsSS S 2S4   US9  g )NrO   r   zDelete failed for obj: )err_msgr   )rb  r   r/   r   )rf   indicesrg   ra  a_delnd_a_delmsgxors           r;   _check_inverse_of_slicing$TestDelete._check_inverse_of_slicing  s    %%'q"$a0'{38EWX<8!#&	(x1a($q'1}*=>3Q1Ws;r=   c                     / SQn/ SQnU H2  nU H)  nU H   n[        X4U5      nU R                  U5        M"     M+     M4     g )N)rU   r   rO   rM   rK   rX   )r[   r_   rO   rW   )r  rk  )rf   limsstepsrA  stopstepss          r;   test_slicesTestDelete.test_slices  sD    &E!De40A2215 "  r=   c                 V   U R                  5       u  pU R                  [        R                  " SS/SS//5      5        [        R
                  " [        5         [        US/5        S S S 5        [        R
                  " [        5         [        US/5        S S S 5        U R                  / SQ5        U R                  / SQ5        [        R
                  " [        5         [        US5        S S S 5        [        R
                  " [        5         [        US	5        S S S 5        [        R
                  " [        5         [        US	/S
-  5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nu= f! , (       d  f       g = f)Nr   rO   rM   r  i)r   r_   rM   rM   )TFFTFTFrK   )	rb  rk  r5   r   r   r.  r  r   rc   )rf   rg   rj  s      r;   
test_fancyTestDelete.test_fancy  s   ""$&&rxx!Q!Q0@'AB]]:&1se ']]:&1tf ' 	&&}5&&'HI ]]:&1dO ']]:&1e ' ]]:&1ugk" '&! '&&& '&&& '&s<   EE'E8F	<F
E$'
E58
F	
F
F(c                 H    U R                  S5        U R                  S5        g )Nr   r  )rk  r   s    r;   test_singleTestDelete.test_single  s    &&q)&&r*r=   c                 ,   [         R                  " S5      n[        R                  " [        5         [        U/ SS9  S S S 5        [        R                  " [        5         [        U/ SS9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)NrO   r   r   r  )r5   r   r   r.  r&   r   r/  rt   s     r;   r  TestDelete.test_0d  s\    HHQK]]9%1bq! &]]9%1bz* &% &%%%s   A4B4
B
Bc                     " S S[         R                  5      nU R                  5       u  p#UR                  U5      n[	        [        [        US5      U5      5        [	        [        [        U/ 5      U5      5        [	        [        [        USS/5      U5      5        [	        [        [        U[        SS5      5      U5      5        [	        [        [        U[        SS5      5      U5      5        g )Nc                       \ rS rSrSrg)*TestDelete.test_subclass.<locals>.SubClassi  r   NrS  r   r=   r;   r  r    rU  r=   r  r   rO   rM   rU   )r5   rV  rb  rW  r+   r  r   r  )rf   r  a_origrj  rg   s        r;   r  TestDelete.test_subclass  s    	rzz 	 '')	KK!
6!Q<23
6!R=(34
6!aV,h78
6!U1a[18<=
6!U1b\2H=>r=   c                 H   [         R                  " S5      R                  SSSS9n[        U[	        SS 5      SS9n[        UR                  R                  UR                  R                  5        [        UR                  R                  UR                  R                  5        g )	Nr   rM   rX   r   r   <   rO   r   )	r5   r6   r{   r   r  r0   r   r   r   )rf   r^   rn  s      r;   test_array_order_preserve$TestDelete.test_array_order_preserve"  ss    IIbM!!!Qc!21eBoA. 	QWW))177+?+?@QWW))177+?+?@r=   c           	         [         R                  " [        5         [        R                  " / SQ[        R
                  " SS/5      5        S S S 5        [         R                  " [        5         [        R                  " / SQ[        R
                  " / [        S95        S S S 5        g ! , (       d  f       Nb= f! , (       d  f       g = f)NrN   r  r   r   )r   r.  r  r5   r   r   r  r   s    r;   r  TestDelete.test_index_floats,  sk    ]]:&IIi3*!56 ']]:&IIi"E!:; '& '&&&s   0B'-1B8'
B58
CindexerrO   c                     U R                  5       u  p#[        US5      n[        X!5      n[        XE5        [        USSS9n[        U[        R                  " S/5      SS9n[        Xg5        g )NrO   r   )rb  r   r0   r5   r   )rf   r  rg   ra  	a_del_intrg  nd_a_del_intrh  s           r;   test_single_item_array!TestDelete.test_single_item_array2  s]    %%'1aL	q"Y&dAA.$!A6\,r=   c           	      P   [        [        R                  " S5      [        R                  " S/5      5      n[	        U[        R                  " S5      5        [        R                  " S5      n[        R                  " S/[
        S9n[        R                  " S/[
        S9n[        X#SS9n[	        X5        [        X$SS9n[	        XS S 2S S24   5        [        R                  " [        5         [        [        R                  " S	5      [        R                  " S/[        S95        S S S 5        [        R                  " [        5         [        [        R                  " S	5      [        R                  " S/S
S95        S S S 5        g ! , (       d  f       Nf= f! , (       d  f       g = f)NrO   FrW   rO   r   Tr_   r   r   rM   zm8[ns])
r   r5   rd   r   r/   r   r   r.  r  r   )rf   resr  
false_mask	true_masks        r;   test_single_item_array_non_int)TestDelete.test_single_item_array_non_int=  s    RWWQZ5'!233
+ GGFOXXugT2
HHdV40	Q,3"Q+3!RaR%) ]]:&2771:rxx6:; ' ]]:&2771:rxx8<= '& '& '&s   -9F5F
F
F%r   N)r   r   r   r   rb  rk  rt  rw  rz  r  r  r  r  r   r   r   r5   r   r  r  r   r   r=   r;   r_  r_    sk    
<6#,++
?A< [[Y1#(<=- >->r=   r_  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS r\R                   R#                  S\R&                  \R(                  \R*                  \R,                  /5      S 5       r\R                   R#                  S\R0                  \R2                  \R4                  \R6                  /5      S 5       r\R                   R#                  S\R&                  \R(                  \R*                  \R,                  /5      S 5       r\R                   R#                  S\R0                  \R2                  \R4                  \R6                  /5      S 5       rS rSr g)TestGradientiV  c                    SS/SS//n[         R                  " U5      n[         R                  " SS/SS//5      [         R                  " SS/SS//5      /n[        [        U5      U5        [        [        U5      U5        g )NrO   rW   rK   r   r  r  r  )r5   r   r/   r   rf   vr  dxs       r;   rl   TestGradient.test_basicX  sv    VaVHHQKhhR2r(+,hhR2r(+,.8A;+8A;+r=   c                    [         R                  " [         R                  " S5      5      n/ SQn[         R                  " S5      R	                  SS5      n[        [         R                  " S5      S5        [        [         R                  " S5      [         R                  " S5      5        [        [         R                  " S5      U5        [        US5        [        U[         R                  " S5      5        [        X2U5        [        X1S5        [        X1SS9  [        [        S	[
        U[         R                  " U/S-  S
S9S5        g )NrX   )r  r   r  rC        &@   r        ?rM   rO   r   z.*scalars or 1dr_   )
r5   r  rd   r6   r{   r   r   r2   rc   stack)rf   r  	dx_unevenf_2ds       r;   	test_argsTestGradient.test_args`  s    YYrwwqz")	yy}$$Q* 	1r"1rxx|,1r"srxx}%), 	1 	" 	J(9dBHHbTAXB7	<r=   c           	         [         R                  " S5      R                  SS5      n[         R                  " [         R                  " S5      5      n[        [        [        X[         R                  " S5      5        [        [        [        US[         R                  " S5      5        [        [        [        U[         R                  " S5      [         R                  " S5      5        [        [        [        X5        [        [        [        XSS9  [        [        [        XX"5        [        [        [        USSS5        [        [        [        XUSS9  [        [        [        USSSS9  g )Nr  rX   rM   rO   r`   r   )	r5   r6   r{   r  rd   r1   rc   r   r/  )rf   r  r  s      r;   test_badargsTestGradient.test_badargsy  s    yy}$$Q*IIbggaj! 	j(DRWWQZ@j(D!RWWQZ@j(D"''!*bggajIi43i4@i4A9i4Aq9i4AA>i4AA>r=   c                     [         R                  " / SQSS9n[         R                  " / SQSS9n[        [        U5      U5        [	        UR
                  [         R
                  " S5      :H  5        g )N)z
1910-08-16z
1910-08-11z
1910-08-10z
1910-08-12z
1910-10-12z
1910-12-12z
1912-12-12zdatetime64[D]r   )r  r[   r      =   i  r  rJ  r5   r   r/   r   r+   r   rf   r  r  s      r;   test_datetime64TestGradient.test_datetime64  sY    HH7!# XX)"$ 	8A;+BHH%5667r=   c                    [         R                  R                  SS/SS//SS/SS//S9n[        U5      S   n[	        [        U5      [        U5      5        [        UR                  UR                  L5        [         R                  R                  S5      n[         R                  R                  US'   [         R                  " USS	9  [        UR                  / S
Q5        g )NrO   rW   rK   FrP  r   rX   rM   
edge_order)FFTFF)r5   r   r   r   r0   rX  r+   _maskr6   maskedr/   rQ  )rf   r  r&  x2s       r;   test_maskedTestGradient.test_masked  s    EEKK!Q!Q($enuen=  ?qk!nT#YQ( 	syy()UU\\!_1
B1%277$FGr=   c                    [         R                  " SSS5      nUS   US   -
  nSUS-  -  SUS-  -  -   SU-  -   nSUS-  -  SU-  -   S-   n[         R                  " [         R                  " X2SS	9U-  S-
  5      n[	        [         R
                  " US
:  5      S:H  5        [         R                  R                  S5      n[         R                  " UR                  S5      5      nSUS-  -  SUS-  -  -   SU-  -   nSUS-  -  SU-  -   S-   n[         R                  " [         R                  " X1SS	9U-  S-
  5      n[	        [         R
                  " US
:  5      S:H  5        g )Nr   rO   r   rM   rW   rK   ry   rx   r  gQ?T)	r5   linspaceabsr   r+   r   randomdefault_rngsort)rf   r  r  r4  
analytical	num_errorrngs          r;   test_second_order_accurate'TestGradient.test_second_order_accurate  sK   
 KK1b!qTAaD[QJQ!V#a!e+aZ!a%'!+
FFBKK!<zIQNO	y4'(D01 ii##A&GGCJJrN#QJQ!V#a!e+aZ!a%'!+
FFBKK;jHAMN	y4'(D01r=   c           	      j   [         R                  " / SQ5      n[         R                  " US5      UR                  SS5      -   n[         R                  " / SQ5      n[         R                  " S5      n[         R                  " / SQS5      n[         R                  " / SQS5      n[         R                  " / S	QS5      n[         R                  " / S
QS5      nSU4SU44 H  u  p[        USSUS9n
[        XUSUS9n[        XUS US9n[        X5        [        X5        [        U
S   U	R                  5        [        U
S   U	5        [        USSUS9n
[        XSUS9n[        U
R                  UR                  :H  5        [        XR                  5        [        USSUS9n
[        XSUS9n[        U
R                  UR                  :H  5        [        X5        M     SU4SU44 H  u  p[        XUSUS9n
[        XUS US9n[        X5        [        U
S   U	R                  5        [        U
S   U	5        [        XSUS9n
[        XR                  5        [        XSUS9n
[        X5        M     [        XUSSS9n
[        XUSSS9n[        U
S   US   5        [        U
S   US   5        [        U
S   UR                  5        [        U
S   U5        [        XUSSS9n
[        XUSSS9n[        U
S   US   5        [        U
S   US   5        [        U
S   UR                  5        [        U
S   U5        g )N)r   r   r  r  r  r  )ry   rO   r_   rO   )r  r@  r  r  r  rB  r+  )r   r  r  r  r@  r  )      @r  r  r  r@        )r  r  333333?r@        ?r  )r  r  r  r@  r  g      пrM   r  r`   )r   r  r   ra   )r5   r   tiler{   r6   r   r/   r-   rE  r+   rA   )rf   fx_unevenx_evenfdx_even_ord1fdx_even_ord2fdx_uneven_ord1fdx_uneven_ord2r  exp_resres1res2res3s                r;   test_spacingTestGradient.test_spacing  s   HH,-GGAv2q!1188562 :FC =vF''">G''"A6J &'$6M8J#KJAr:FDAv!'J@DAv!%*>Dt*t*Q3Q1ArjADAA*EDDJJ$**,-ii0ArjADAA*EDDJJ$**,-t-' $L, &'$81o:N#OJA!'J@DA!%*>Dt*Q3Q1AaJGDii0AaJGD. $P  8&QGV&QG47DG,47DG,DG]__5DG_58&QGV&QG47DG,47DG,DG]__5DG_5r=   c           	         SS/SS//n[         R                  " U5      n[         R                  " SS/SS//5      [         R                  " SS/SS//5      /n[        [        USS	9US   5        [        [        USS	9US   5        [        [        US
S	9US   5        [        [        USS	9US   US   /5        [	        [        US S	9US   US   /5        [	        [        US S	9[        U5      5        [        [        USSSS	9US   S-  US   S-  /5        [        [        [        USSSS	9  [        [        [        USS	9  [        [        [        USS	9  g )NrO   rW   rK   r   r  r  r  r   r   r_   ra   rM   r[   )r5   r   r/   r   r-   r1   r/  r&   r  s       r;   test_specific_axesTestGradient.test_specific_axes  sI   VaVHHQKhhR2r(+,hhR2r(+,.8AA.168AA.168AB/A78AF3beRU^D 	HQT2RUBqENCHQT2HQK@ 	8Aq!&9qECKA5	7 	i1a;i115i126r=   c                     [         R                  " / SQSS9n[         R                  " / SQSS9n[        [        U5      U5        [	        UR
                  [         R
                  " S5      :H  5        g )N)r  r[   r   r?  r  iA  ,  rJ  r   )rM   rz   rz   r     w   ir  r  s      r;   test_timedelta64TestGradient.test_timedelta64  sW    HH*"$ XX("$ 	8A;+BHH%5667r=   c                    [         R                  [         R                  [         R                  4 HW  n[         R                  " / SQUS9n[        [        U5      R                  [         R                  " U5      R                  5        MY     g )Nr   r   )	r5   float16r1  r2  r   r0   r   r   r   )rf   dtr  s      r;   test_inexact_dtypes TestGradient.test_inexact_dtypes  sQ    ::rzz2::6B"-A!**BGGAJ,<,<= 7r=   c                    [        [        R                  " S5      SS9  [        [        R                  " S5      SS9  [        [        [         [        R                  " S5      SS9  [        [        [         [        R                  " S5      SS9  [        [        [         [        R                  " S5      SS9  [        [        [         [        R                  " S5      SS9  [        [        [         [        R                  " S5      SS9  g )NrM   rO   r  rW   r   )r   r5   r6   r1   rc   r   s    r;   test_valuesTestGradient.test_values#  s    1!,1!,j(BIIaLQGj(BIIaLQGj(BIIaLQGj(BIIaLQGj(BIIaLQGr=   f_dtypec                 z    [         R                  " / SQUS9n[        U5      n[        US/[	        U5      -  5        g )N)rX   rK   rW   rM   rO   r   r_   r5   r   r   r/   r{  )rf   r  r  gs       r;   test_f_decreasing_unsigned_int+TestGradient.test_f_decreasing_unsigned_int/  s1     HH_G4QK1rdSVm,r=   c                     [         R                  " U5      R                  n[         R                  " SS/5      n[         R                  " SU/US9n[	        XC5      n[        XRS-   S-  /S-  5        g )NrO   rW   r_   r   rM   )r5   iinforD  r   r   r/   )rf   r  maxintr  r  dfdxs         r;   test_f_signed_int_big_jump'TestGradient.test_f_signed_int_big_jump6  s`     '"&&HHaVHHb&\1~4A:!"3!4q!89r=   x_dtypec                     [         R                  " / SQUS9n[         R                  " / SQ5      n[        X25      n[        US/[	        U5      -  5        g )Nr   r   r   rM   rK   rU   r  )rf   r  r  r  r  s        r;   test_x_decreasing_unsigned'TestGradient.test_x_decreasing_unsigned?  s?     HHYg.HHY~4"A/r=   c                    [         R                  " U5      R                  n[         R                  " U5      R                  n[         R                  " SU/US9n[         R                  " US-  S/5      n[        XT5      n[        USS/5        g )Nr_   r   rM   r   r@  )r5   r  minrD  r   r   r/   )rf   r  minintr  r  r  r  s          r;   test_x_signed_int_big_jump'TestGradient.test_x_signed_int_big_jumpG  sn     '"&&'"&&HHb&\1HHfk1%&~4#s,r=   c                 d    [         R                  " SS/SS/45      n[        U5      [        L d   eg )NrO   rM   rW   )r5   r   rX  tuplerf   r  s     r;   test_return_typeTestGradient.test_return_typeQ  s/    kkAq6Aq6*+CyE!!!r=   r   N)!r   r   r   r   rl   r  r  r  r  r  r  r  r  r  r  r   r   r   r5   r  r   r  uint64r  r  r  r  int64r  r  r  r   r   r   r=   r;   r  r  V  sQ   ,<2? 
8H2(>6@74	8>
H [[Y299)+BII)? @-@-
 [[Y"(()+288)= >:>: [[Y299)+BII)? @0@0 [[Y"(()+288)= >->-"r=   r  c                        \ rS rSrS rS rSrg)	TestAngleiV  c                 h   S[         R                  " S5      S-  S[         R                  " S5      -  S-  -   SSSSSS	/n[        U5      n[         R                  " S
5      [         R                  " S5      S[         R                  S-  [         R                  [         R                  * S-  [         R                  " S
5      * [         R                  [         R                  " S
5      -
  /n[        USS9n[         R
                  " U5      S-  [         R                  -  n[        X#S5        [        XES5        g )N      ?      @rM   r   r  rO   r_                      ?      y            @r  r  r   T)degr  r  )r5   sqrtr   arctanpir   r.   )rf   r  r4  yozzos         r;   rl   TestAngle.test_basicX  s    RWWQZ#%RWWQZ!(;;BVW.!HIIi IIcNAruuqy"%%"%%#YYy!!255299Y+?#?A !XXb\C"%%'!!,!!,r=   c                 ,   [         R                  R                  SS[         R                  " S5      S-  S-  /5      n[         R                  R                  US'   [         R                  R                  [         R
                  " S5      S[         R
                  " S5      /5      n[         R                  R                  US'   [        U5      n[        [        U5      [        U5      5        [        UR                  UR                  5        [        X25        g )Nr  rO   rM         ?      ?r  r   r  )
r5   r   r   r  r  r  r   r0   rX  rQ  rf   r  r'  r6  s       r;   r  TestAngle.test_subclasse  s    EEKKBGGAJNf$=>?uu||!55;;		) 4a3HIeellqT&\4>2V[[(--0V&r=   r   N)r   r   r   r   rl   r  r   r   r=   r;   r  r  V  s    -'r=   r  c                   @   \ rS rSr\R
                  " / SQ5      r\R                  \5      r	\R                  \
5      r\R                  \5      rS rS rS rS rS rS rS	 r\R,                  R/                  S
\R
                  " / SQ5      \R
                  " / SQ5      \R
                  " / SQ5      /5      S 5       rS rS r\R,                  R/                  SS5      S 5       r\R,                  R/                  SS5      S 5       rS r\R,                  R/                  SS5      S 5       r\R,                  R/                  SSS/SS/SS/SS/SS/SS/SS /S!S/S!S/S!S"/S!S#/S$S/S$S/S$S%/S$S&//5      \R,                  R/                  S/ S'Q5      S( 5       5       rSr g))TestTrimZerosip  )r   r   rO   r   rM   rW   rK   r   c           	        ^^ Tc  [        [        [        T5      5      5      mOB[        T[        5      (       a  TS:  a  [        T5      T-   OT4mO[        U4S jT 5       5      m[
        R                  " T5      nUR                  S[
        R                  " T5      S-
  S9nUR                  US-   TS9n[        Xv-
  5      nSUR                  U5      -   n	X[        S [        Xg5       5       5      '   SU;  a'  [
        R                  " T V
s/ s H  n
SPM     sn
5      nSU;  a'  [
        R                  " T V
s/ s H  n
SPM     sn
5      n[        U4S	 j[        [        Xg5      5       5       5      nX[   nX\4$ s  sn
f s  sn
f )
z2Construct an input/output test pair for trim_zerosNr   c              3   N   >#    U  H  oS :  a  [        T5      U-   OUv   M     g7fr   N)r{  ).0axrA   s     r;   	<genexpr>7TestTrimZeros.construct_input_output.<locals>.<genexpr>  s"     JTrFUb:Ts   "%rO   )lowhighc              3   <   #    U  H  u  p[        X5      v   M     g 7fr4   r  )r  r   js      r;   r  r    s     ?+>415;;+>s   r  r   c              3   f   >#    U  H&  u  nu  p#UT;   a  [        X#5      O
[        S 5      v   M(     g 7fr4   r"  )r  r  r   r#  r   s       r;   r  r    s2      F&D
FQ $&:E!K5;>&Ds   .1)r  re   r{  r  intr5   r?   integersr   r  r|  rC  )rf   r  rA   r   trimr:   i_starti_endinner_shape
inner_datarj  r  r'  s     ``         r;   construct_input_output$TestTrimZeros.construct_input_outputw  sS    <s5z*+Dc"")-CJ%t=DJTJJD xx,,1288E?Q+>,?159EO,K00
CMU?3w+>??@ d?hhe4ee45Gd?HHE2EqdE23E F&/G0C&DF F9~  52s   E<;Fc                     ^  SnU 4S jU 5       $ )N)rg   r   r   r  c              3   <   >#    U  H  n[        TU5      v   M     g 7fr4   )getattr)r  namerf   s     r;   r  'TestTrimZeros.values.<locals>.<genexpr>  s     ;
d##
s   r   )rf   
attr_namess   ` r;   r~  TestTrimZeros.values  s    )
;
;;r=   c                     [         R                  SS nU R                  5        H  n[        U5      n[	        X2U   5        M     g )NrM   r_   r5   s_r~  r!   r/   rf   slcr   r  s       r;   rl   TestTrimZeros.test_basic  s6    eeAbk;;=CS/CsH- !r=   c                     [         R                  S S nU R                  5        H  n[        USS9n[	        X2U   5        M     g )Nr_   r   r'  r6  r8  s       r;   test_leading_skipTestTrimZeros.test_leading_skip  s9    eeCRj;;=CSs+CsH- !r=   c                     [         R                  SS  nU R                  5        H  n[        USS9n[	        X2U   5        M     g )NrM   r   r<  r6  r8  s       r;   test_trailing_skip TestTrimZeros.test_trailing_skip  s9    eeABi;;=CSs+CsH- !r=   c                     U R                  5        HW  n[        R                  " XR                  S9n[	        USS9n[        U5      S:X  d   e[	        USS9n[        U5      S:X  a  MW   e   g )Nr   Br<  r   r  )r~  r5   
zeros_liker   r!   r{  )rf   _arrr   r  r  s        r;   test_all_zeroTestTrimZeros.test_all_zero  s\    KKMD--JJ7Cc,Dt9>!>c,Dt9>!> "r=   c                 \    [         R                  " S5      n[        U5      n[        X5        g r  r5   r?   r!   r/   rf   r   r  s      r;   test_size_zeroTestTrimZeros.test_size_zero  s     hhqko3$r=   r   )r   l            r   )r   l            r   )r   l            r   c                 \    [         R                  SS n[        U5      n[        X1U   5        g )NrO   rM   )r5   r7  r!   r/   )rf   r   r9  r  s       r;   test_overflowTestTrimZeros.test_overflow  s(     eeAajo3C)r=   c                 `    [         R                  " / SQ5      n[        U5      n[        X5        g )N)NrO   Nr5   r   r!   r/   rJ  s      r;   test_no_trimTestTrimZeros.test_no_trim  s!    hh'o3$r=   c                 x    [        U R                  R                  5       5      n[        U[        5      (       d   eg r4   )r!   rg   tolistr  rB  r  s     r;   test_list_to_listTestTrimZeros.test_list_to_list  s)    )#t$$$$r=   r   )r   rO   rM   rW   r   c                     [         R                  " SU-  5      n[         R                  " USSSS9n[        US S9n[	        X$5        g )NrM   rM   rO   constantr   )modeconstant_valuesr   )r5   rd   padr!   r/   )rf   r   rg   r   r  s        r;   test_nd_basicTestTrimZeros.test_nd_basic  s<    GGD4K FF1f:qA&1"r=   r   rO   rM   rW   c                     [         R                  " SU-  5      n[        US S9n[        U[         R                  " SU-  5      5        g )NrW   r   r  rI  )rf   r   rg   r  s       r;   test_allzeroTestTrimZeros.test_allzero  s7    HHTD[!&3 56r=   c                     [         R                  " / SQ5      n[        USS9n[        U/ SQ5        [        USS9n[        U/ SQ5        g )N)r   rO   rM   r   r  r<  )rO   rM   r   r   rN   rQ  rf   rg   r  s      r;   test_trim_argTestTrimZeros.test_trim_arg  s<    HH\"%3	*%3	*r=   r'  )front c                     U R                   n[        R                  " [        SS9   [	        X!S9  S S S 5        g ! , (       d  f       g = f)Nz#unexpected character\(s\) in `trim`r   r<  )rg   r   r.  rc   r!   )rf   r'  r   s      r;   test_unexpected_trim_value(TestTrimZeros.test_unexpected_trim_value  s/    ff]]:-STs& UTTs	   
9
Azshape, axis)rX   Nr   r   )rX   ry   r_   )rX   ry   rz   rO   rS   )rX   ry   rz   rx   rU   r   rO   rW   )fbr  r   c                     [         R                  R                  S5      nU R                  XAX#5      u  pV[	        [        XRUS9U5        g )N  )r   r'  )r5   r  r  r,  r/   r!   )rf   rA   r   r'  r  r:   r'  s          r;   r    TestTrimZeros.test_multiple_axes  s=    & ii##D)44SL:dDA8Lr=   )!r   r   r   r   r5   r   rg   r0  r  r   complexr   r   r  r,  r~  rl   r=  r@  rF  rK  r   r   r   rN  rR  rV  r_  rd  rh  rm  r   r   r   r=   r;   r  r  p  s   
)*A	A	A	A<<..."%
 [[	-	 	-	 	-	 	"**
%
% [[V%56# 7# [[V\27 37
+ [[V]3' 4'
 [[]	t	r
	q						D	B	A	F	t	r	r	y!- " [[V%56M 7#$Mr=   r  c                   &    \ rS rSrS rS rS rSrg)
TestExtinsi  c                 n    [         R                  " / SQ5      n[        US:  U5      n[        U/ SQ5        g )N)rO   rW   rM   rO   rM   rW   rW   rO   )rW   rM   rM   rW   rW   )r5   r   r   r/   r   s      r;   rl   TestExtins.test_basic  s+    HH*+AE11o.r=   c                   ^ [        [        [        / SQSS/SS/5        [        R                  " / SQ5      m[        T/ SQ/ SQ5        [        T/ S	Q5        [        T[        R                  " S
5      / 5        [        T[        R                  " SS5      5        [        T/ SQSS/5        [        T/ SQ5        [        [        SU4S j5        [        R                  " SS/5      m[        TSS/S5        [        TSS/5        g )Nr   TFr   rO   )rO   rK   rW   rM   rX   rx   rz   )r   rO   r   rO   r   rO   r   rM   rK   ry   )rO   rM   rW   rK   rX   ry   rz   rz   rx   )rO   r   rO   r   rO   r   rO   rw  )rx   rM   rw  rK   rx   ry   rw  z!Cannot insert from an empty arrayc                  "   > [        T / SQ/ 5      $ )N)r   r   r   r   r   rO   r   )r   rg   s   r;   <lambda>'TestExtins.test_place.<locals>.<lambda>  s    E!-BB$Gr=   12349)
r1   r/  r   r5   r   r/   r?   r6   r2   rc   rt   s    @r;   
test_placeTestExtins.test_place	  s     	i	D%=1a&IHH*+a&	2134a!b!1bii1o.a&A/134J(KG	I HHdD\"a!Q1tSk*r=   c                     [        S5      nUS:  nUR                  5       n[        X!5      n[        XS5        [        XU5        [	        X5        g )Nr   r@  r   )r'   r   r   r   r/   )rf   rg   rQ  acr   s        r;   	test_bothTestExtins.test_both  sE    H3wVVXDaqaq1!r=   r   N)r   r   r   r   rl   r  r  r   r   r=   r;   rw  rw    s    /
+,"r=   rw  c                 4    U[         R                  " U 5      -  $ r4   mathfloorr  r4  s     r;   _foo1r  +  s    tzz!}r=   c                 :    U[         R                  " U 5      -  U-   $ r4   r  )r  r4  r  s      r;   _foo2r  /  s    tzz!}q  r=   c                   (   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0r2g1)2TestVectorizei3  c                 V    S n[        U5      nU" / SQ/ SQ5      n[        U/ SQ5        g )Nc                     X:  a  X-
  $ X-   $ r4   r   rg   r   s     r;   addsubtract.TestVectorize.test_simple.<locals>.addsubtract6      uuur=   r   rW   ry   rw  rO   rW   rX   rz   rO   ry   rO   rM   r$   r/   rf   r  r  r  s       r;   test_simpleTestVectorize.test_simple5  s)    	 k"lL)1l+r=   c                 R    S n[        U5      nU" / SQS5      n[        U/ SQ5        g )Nc                     X:  a  X-
  $ X-   $ r4   r   r  s     r;   r  .TestVectorize.test_scalar.<locals>.addsubtractA  r  r=   r  rX   )rX   rx   rO   rK   r  r  s       r;   test_scalarTestVectorize.test_scalar@  s)    	 k"lA1l+r=   c                 r    [         R                  " SSS5      n[        S 5      nU" U5      n[        X15        g )Nr[   rM   '  c                     U $ r4   r   r  s    r;   r~  *TestVectorize.test_large.<locals>.<lambda>M      r=   )r5   r  r$   r/   )rf   r  r  r4  s       r;   
test_largeTestVectorize.test_largeK  s/    KKAu%k"aD1 r=   c                 @   [        [        R                  5      n[        R                  " SS[        R
                  -  [        R
                  S[        R
                  -  S[        R
                  -  /5      nU" U5      n[        R                  " U5      n[        X45        g )Nr   r@  r  rM   )r$   r  cosr5   r   r  r.   )rf   r  argsr1r2s        r;   
test_ufuncTestVectorize.test_ufuncQ  sc    dhhxxC"%%KbeeQYGHtWVVD\!")r=   c                    SS jn[        U5      n[        R                  " / SQ5      nU" U5      n[        R                  " / SQ5      n[        XE5        U" US5      n[        R                  " / SQ5      n[        XE5        g )Nc                 
    X-   $ r4   r   r  s     r;   r  (TestVectorize.test_keywords.<locals>.fooZ  	    5Lr=   r   r,  rM   rV   r  r$   r5   r   r/   rf   r  r  r  r  r  s         r;   test_keywordsTestVectorize.test_keywordsX  s`    	 cNxx	"tWXXi 2"tQZXXi 2"r=   c                     [        [        [        /S9nU" [        R                  " S5      S5      nU" [        R                  " S5      5      n[        X#5        g Notypesr  r  r$   r  r  r5   r6   r/   rf   r  r  r  s       r;    test_keywords_with_otypes_order1.TestVectorize.test_keywords_with_otypes_order1f  sB     eUG, ryy~s#ryy~2"r=   c                     [        [        [        /S9nU" [        R                  " S5      5      nU" [        R                  " S5      S5      n[        X#5        g r  r  r  s       r;    test_keywords_with_otypes_order2.TestVectorize.test_keywords_with_otypes_order2p  sB     eUG, ryy~ryy~s#2"r=   c                     [        [        [        /S9nU" [        R                  " S5      5      nU" [        R                  " S5      SS9nU" [        R                  " S5      5      n[        X#5        [        X$5        g )Nr  r  r  r4  r  rf   r  r  r  r3s        r;    test_keywords_with_otypes_order3.TestVectorize.test_keywords_with_otypes_order3{  s\     eUG, ryy~ryy~%ryy~2"2"r=   c                     [        [        [        /S9nU" SSS9nU" SSS9nU" S5      n[        U[        SSS95        [        U[        SSS95        [        U[        S5      5        g )Nr  $@r  )r  r_   r  r$   r  r  r0   r  s        r;   +test_keywords_with_otypes_several_kwd_args19TestVectorize.test_keywords_with_otypes_several_kwd_args1  sc     eUG, ts^tr]tWRts+,Rtr*+Rt%r=   c           	          [        [        [        /S9nU" SSSS9nU" SSS5      n[        U[        SSSS95        [        U[        SSS5      5        g )	Nr  r  r  r_   )r  r  r4  rO   rM   rW   r  r  s       r;   +test_keywords_with_otypes_several_kwd_args29TestVectorize.test_keywords_with_otypes_several_kwd_args2  sT     eUG, #q!QZR34Rq!Q(r=   c                 `    SS K n [        UR                  5        g ! [         a    [        ef = fr  )r  r$   	randrange	ExceptionAssertionError)rf   r  s     r;   test_keywords_no_func_code(TestVectorize.test_keywords_no_func_code  s/     		!f&&' 	!  	!s    -c                    S
S jn[        U5      n[        R                  " / SQ5      nU" US9n[        R                  " / SQ5      n[        XE5        U" SUS9n[        XE5        U" USS9n[        R                  " / S	Q5      n[        XE5        g )NrO   c                 
    X-   $ r4   r   r  s     r;   r  5TestVectorize.test_keywords2_ticket_2100.<locals>.foo  r  r=   r   r}  r,  )r   rg   rM   r   rV   r  r  r  s         r;   test_keywords2_ticket_2100(TestVectorize.test_keywords2_ticket_2100  ss    	 cNxx	"YXXi 2"d^2"tq\XXi 2"r=   c                     S n[         R                  " USS/S9nSS/n[        X2" SS// SQS	95        [        X2" SS// SQS
95        [        X2" SS// SQ5      5        g )Nc                     [        U5      nUR                  S5      nU(       a  X0-  UR                  S5      -   nU(       a  M  U$ r  )rB  pop)r  p_pr  s       r;   	mypolyval;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyval  s;    aB&&)Cgq	) "Jr=   r  rO   )excludedrW   ry   r   r   )r  r  )r  )r5   r$   r/   )rf   r  vpolyvalanss       r;   test_keywords3_ticket_2100(TestVectorize.test_keywords3_ticket_2100  se    	 <<	S!H=!f3Aq6Y ?@3!Q9 =>3!Q ;<r=   c                 J    [         S 5       n[        U" SS/SS/S9SS/5        g )Nc                  *    SnU  H
  nXU   -  nM     U$ Nr  r   )kwr  _ks      r;   r  3TestVectorize.test_keywords4_ticket_2100.<locals>.f  s!    C"v Jr=   rO   rM   rW   rK   r  rx   r  rf   r  s     r;   test_keywords4_ticket_2100(TestVectorize.test_keywords4_ticket_2100  s3    		 
	 	11v!Q01a&9r=   c                 N    [         S 5       n[        U" SS/SS/5      SS/5        g )Nc                  .    [         R                  " U 5      $ r4   )r5   r  )r  s    r;   r  3TestVectorize.test_keywords5_ticket_2100.<locals>.f  s    771:r=   rO   rM   rW   rK   rx   r  r  s     r;   test_keywords5_ticket_2100(TestVectorize.test_keywords5_ticket_2100  s3    		 
	 	1aVaV,q!f5r=   c                 B    S n[        U5      n[        U" 5       S5        g )Nc                      gNrO   r   r   r=   r;   r  5TestVectorize.test_coverage1_ticket_2100.<locals>.foo      r=   rO   r  rf   r  r  s      r;   test_coverage1_ticket_2100(TestVectorize.test_coverage1_ticket_2100  s    	 cN13"r=   c                     S n[        U5      n[        UR                  UR                  5        Sn[        XS9n[        UR                  U5        g )Nc                     U $ )zOriginal documentationr   r  s    r;   r  3TestVectorize.test_assigning_docstring.<locals>.foo      Hr=   zProvided documentation)doc)r$   r0   __doc__)rf   r  r  r  s       r;   test_assigning_docstring&TestVectorize.test_assigning_docstring  sA    	 cNQYY,&c#QYY$r=   c                 n    " S S5      n[        [        U" 5       R                  5      " [        R                  " S5      5      [        R                  " S5      S-  5        [        [        UR                  5      " U" 5       [        R                  " S5      5      [        R                  " S5      S-  5        g )Nc                       \ rS rSrSrS rSrg)9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Fooi  rM   c                     XR                   -  $ r4   r  rt   s     r;   r  =TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.bar  s    FF{"r=   r   N)r   r   r   r   r   r  r   r   r=   r;   Foor    s    A#r=   r  rw  rM   )r/   r$   r  r5   r6   )rf   r  s     r;   test_UnboundMethod_ticket_1156,TestVectorize.test_UnboundMethod_ticket_1156  st    	# 	# 	9SUYY/		!=99Q<1,	.9SWW-ceRYYq\B99Q<1,	.r=   c                 D   [        S 5      nU" [        R                  " S5      5      nU" [        R                  " SS5      5      n[        S 5      nU" [        R                  " SS5      5      nU" [        R                  " S5      5      n[        X&5        [        X55        g )Nc                     U $ r4   r   r  s    r;   r~  @TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>      r=   rW   r1  c                     U $ r4   r   r  s    r;   r~  r    r  r=   )r$   r5   r6   r0   )rf   f1res1ares1bf2res2bres2as          r;    test_execution_order_ticket_1487.TestVectorize.test_execution_order_ticket_1487  st    {#299Q< 299S!$%{#299S!$%299Q< U"U"r=   c                 X    [         R                  " S 5      nSn[        X!" U5      5        g )Nc                     U $ r4   r   r  s    r;   r~  7TestVectorize.test_string_ticket_1892.<locals>.<lambda>	      1r=   d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r5   r$   r0   )rf   r  rs  s      r;   test_string_ticket_1892%TestVectorize.test_string_ticket_1892  s#    LL%Q!r=   c                 n   [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  /nU HS  n[         R                  " / SQUS9n[         R                  " S 5      " U5      nUR                  UR                  :X  a  MS   e   g )Nr   r   c                 
    X -   $ r4   r   r  s    r;   r~  =TestVectorize.test_dtype_promotion_gh_29189.<locals>.<lambda>  s    qur=   )
r5   r  r  r  r  r1  r2  asarrayr$   r   )rf   dtypesr   r  r4  s        r;   test_dtype_promotion_gh_29189+TestVectorize.test_dtype_promotion_gh_29189  so    ((BHHbhh

BJJ

SE

9E2A_-a0A77agg%%% r=   c                    ^ S/m[         U4S j5       nSUl        [        R                  " S5      n[	        U" U5      X"-  5        [        TS   [        U5      5        g )Nr   c                 (   > TS==   S-  ss'   U S-  $ )Nr   rO   rM   r   )r  _callss    r;   r  #TestVectorize.test_cache.<locals>.f  s    1INI6Mr=   TrX   )r$   cacher5   r6   r/   r0   r{  )rf   r  r  r0  s      @r;   
test_cacheTestVectorize.test_cache  sT    		 
	 IIaL1Q4'VAYA'r=   c                     [         R                  " S 5      nSUl        [         R                  " S5      n[	        U" U5      U5        g )Nc                     U $ r4   r   r  s    r;   r~  +TestVectorize.test_otypes.<locals>.<lambda>%  r#  r=   r   rX   )r5   r$   r  r6   r/   rf   r  r  s      r;   test_otypesTestVectorize.test_otypes$  s2    LL%IIaL1Q4#r=   c                 b  ^ [         R                  " S5      m[        U4S j[        /S9nU" S 5      R	                  5       TL d   eU" S /5      R	                  5       TL d   e/ SQm[        U4S j[        /S9nU" S 5      R	                  5       TL d   eU" S /5      R	                  5       TL d   eg )NrW   c                    > T$ r4   r   r  s    r;   r~  8TestVectorize.test_otypes_object_28624.<locals>.<lambda>.      r=   r  r   c                    > T$ r4   r   r  s    r;   r~  r=  4  r>  r=   )r5   r6   r$   r   item)rf   r  r4  s     @r;   test_otypes_object_28624&TestVectorize.test_otypes_object_28624*  s     IIaLk6(3w||~"""$y~~1$$$k6(3w||~"""$y~~1$$$r=   c                    [        [        R                  " S5      S/S/45        [        [        R                  " S5      S/S/45        [        [        R                  " S5      SS/S/45        [        [        R                  " S5      S/S/45        [        [        R                  " S	5      S/SS/45        [        [        R                  " S
5      / SQS/45        [        [        R                  " S5      S/S/45        [        [        R                  " S5      S/S/45        [        [        R                  " S5      SS/S/45        [        [        R                  " S5      S/S/45        [        [        R                  " S5      S/SS/45        [        [        R                  " S5      / SQS/45        [        [        5         [        R                  " S5        S S S 5        [        [        5         [        R                  " S5        S S S 5        [        [        5         [        R                  " S5        S S S 5        g ! , (       d  f       Nk= f! , (       d  f       NN= f! , (       d  f       g = f)Nz(x)->()r  r   z	(x,y)->()r  z(x),(y)->()r  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r   )rg   r   r   )r  )r  ez(x )->()z( x , y )->(  )z(x),( y) ->()z(  x)-> (y )  z (x)->( y),( )z*(  ), ( a,  b,c )  ,(  d)   ->   (d  ,  e)z
(x)(y)->()z	(x),(y)->z
((x))->(x))r0   nfb_parse_gufunc_signaturer1   rc   r   s    r;   test_parse_gufunc_signature)TestVectorize.test_parse_gufunc_signature9  s   S00;vh=MNS00=!lRD)	+S00?v&-	/S00<h)	+S00?h-	/S001HI3j\B	D 	S00<x">NOS001BC!lRD)	+S00Av&-	/S001ABh)	+S001ABh-	/S00AC3j\B	D :&''5 ':&''4 ':&''5 '&	 '&&&&&s$   I4I"I$
I
I!$
I2c                 T    S n[        USS9nU" / SQ/ SQ5      n[        U/ SQ5        g )Nc                     X:  a  X-
  $ X-   $ r4   r   r  s     r;   r  8TestVectorize.test_signature_simple.<locals>.addsubtract\  r  r=   z	(),()->()	signaturer  r  r  r  r  s       r;   test_signature_simple#TestVectorize.test_signature_simple[  s+    	 k[9lL)1l+r=   c                 V    S n[        USS9nU" SS/SS//5      n[        USS/5        g )Nc                 "    U R                  5       $ r4   r  r}  s    r;   r  4TestVectorize.test_signature_mean_last.<locals>.meang  s    668Or=   z(n)->()rL  rO   rW   rM   rK   r  )rf   r  r  r  s       r;   test_signature_mean_last&TestVectorize.test_signature_mean_lastf  s:    	 di01v1v1q!f%r=   c                 ^    S n[        USS9nU" SS/SS//5      n[        USS/SS//5        g )	Nc                 &    X R                  5       -
  $ r4   rR  r}  s    r;   center3TestVectorize.test_signature_center.<locals>.centero  s    vvx<r=   (n)->(n)rL  rO   rW   rM   rK   r_   r  )rf   rX  r  r  s       r;   test_signature_center#TestVectorize.test_signature_centern  sC    	  f
31v1v1AwQ01r=   c                     [        S SS9nU" / SQ5      n[        [        U[        5      =(       a    [	        U5      S:H  5        [        US   / SQ5        [        US   / SQ5        g )Nc                     X 4$ r4   r   r  s    r;   r~  :TestVectorize.test_signature_two_outputs.<locals>.<lambda>w      r=   	()->(),()rL  r   rM   r   rO   )r$   r+   r  r  r{  r/   rf   r  r  s      r;   test_signature_two_outputs(TestVectorize.test_signature_two_outputsv  sP    &+>iL
1e$4Q151Q4+1Q4+r=   c                 d   [        [        R                  SS9nU" SS// SQ5      n[        U/ SQ/ SQ/5        U" SS//// SQ5      n[        U/ SQ/ SQ///5        U" SS/SS/// SQ5      n[        U/ SQ/ SQ// SQ/ SQ//5        U" SS// SQ/ SQ/5      n[        U/ SQ/ SQ// SQ/ SQ//5        g )	Nz(a),(b)->(a,b)rL  rO   rM   r   r{  r   r   )r$   r5   r8   r/   rb  s      r;   test_signature_outer"TestVectorize.test_signature_outer}  s    bhh*:;q!fi 1y)45Axj)$1I 67891v1v	*1	95 )957 	8 q!fy),-1	95 )957 	8r=   c                     [        S SS9nU" / SQ5      n[        USS/5        U" / SQ/ SQ/5      n[        USS/SS//5        g )	Nc                     U S S $ Nr_   r   r  s    r;   r~  <TestVectorize.test_signature_computed_size.<locals>.<lambda>  
    #2r=   z(n)->(m)rL  r   rO   rM   r,  rW   r  rb  s      r;   test_signature_computed_size*TestVectorize.test_signature_computed_size  sL    &*=iL1q!f%y)$%11v1v./r=   c                 |    S	S jn[        USS1S9n[        U" / SQ5      / SQ5        [        U" / SQSS9/ SQ5        g )
Nc                 
    X-   $ r4   r   r  s     r;   r  2TestVectorize.test_signature_excluded.<locals>.foo  r  r=   ()->()r   )rM  r  r   r,  r   r  r  r  r   s      r;   test_signature_excluded%TestVectorize.test_signature_excluded  s8    	 cX>1Y<31Y!,i8r=   c                     [        S SS/S9nU" / SQ5      n[        UR                  [        R                  " S5      5        [	        U/ SQ5        g )Nc                     U $ r4   r   r  s    r;   r~  5TestVectorize.test_signature_otypes.<locals>.<lambda>  r  r=   rZ  r2  rM  r  r   )r$   r0   r   r5   r/   rb  s      r;   test_signature_otypes#TestVectorize.test_signature_otypes  s<    kZLiLQWWbhhy121i(r=   c                    [        [        R                  SS9n[        [        S5         U" SS/5        S S S 5        [        [
        S5         U" SS5        S S S 5        [        [
        S5         U" SS// SQ5        S S S 5        [        [        R                  S	S9n[        [        S5         U" SS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nk= f! , (       d  f       g = f)
Nz(n),(n)->(n)rL  zwrong number of positionalrO   rM   zdoes not have enough dimensions$inconsistent size for core dimensionr   rr  )r$   operatorr7   r2   r/  rc   r  s     r;   test_signature_invalid_inputs+TestVectorize.test_signature_invalid_inputs  s    hlln= ,HIq!fI J =?aG? !BDq!fi D hllh7 ,HIaG JI JI? ?D D
 JIs/   B?
C.C!,
C2?
C
C!
C/2
D c                 z   [        S SS9n[        [        S5         U" / SQ5        S S S 5        [        S SS9n[        [        S5         U" S	5        S S S 5        [        S
 SS9n[        [        S5         U" S	S/5        S S S 5        g ! , (       d  f       Ni= f! , (       d  f       NN= f! , (       d  f       g = f)Nc                     U S S $ rj  r   r  s    r;   r~  >TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  rl  r=   rZ  rL  r|  r   c                     U $ r4   r   r  s    r;   r~  r    r  r=   ra  zwrong number of outputsrO   c                     X 4$ r4   r   r  s    r;   r~  r    r`  r=   rr  rM   )r$   r2   rc   r  s     r;   test_signature_invalid_outputs,TestVectorize.test_signature_invalid_outputs  s    &*= BDiLD k[9 -FGaD H &(; -FGq!fI HGD D
 HG HGs#   B

	B6B,

B
B),
B:c                 >   [         R                  " S 5      n[         R                  " SS/[        S9n[	        [
        S5         U" U5        S S S 5        SUl        [        U" U5      U5        [         R                  " S SS	9n[	        [
        S5         U" U5        S S S 5        [         R                  " S
 SSS9n[        U" U5      U5        [         R                  " S SSS9n[        U" U5      U5        [         R                  " S SS	9n[        U" UR                  5      UR                  5        [         R                  " S SSS9n[	        [
        S5         U" U5        S S S 5        g ! , (       d  f       GN&= f! , (       d  f       N= f! , (       d  f       g = f)Nc                     U $ r4   r   r  s    r;   r~  5TestVectorize.test_size_zero_output.<locals>.<lambda>  r#  r=   r   rX   r   r  r   c                     U $ r4   r   r  s    r;   r~  r    r#  r=   rr  rL  c                     U $ r4   r   r  s    r;   r~  r    r#  r=   rx  c                     U $ r4   r   r  s    r;   r~  r    r#  r=   rZ  c                     U $ r4   r   r  s    r;   r~  r    r#  r=   c                     U /$ r4   r   r  s    r;   r~  r    s    A3r=   z()->(n)znew output dimensions)	r5   r$   r?   r%  r2   rc   r  r/   rE  r8  s      r;   test_size_zero_output#TestVectorize.test_size_zero_output  s(   LL%HHaV3' X6aD 7 1Q4#LL9 X6aD 7 LLE1Q4#LL
3G1Q4#LL
;1QSS6133'LL)CH -DEaD FE) 76 76 FEs$   	E+	E=	F+
E:=
F
Fc                     " S S[         R                  5      n[         R                  " / SQ/ SQ/ SQ/5      R                  U5      n[         R                  " / SQ/ SQ/ SQ/5      R                  U5      n[         R                  " [         R
                  S	S
9nU" X#5      n[        [        U5      U5        [        U/ SQ/ SQ/ SQ/5        [         R                  " S 5      nU" X#5      n[        [        U5      U5        [        XRU-  5        g )Nc                       \ rS rSrSrg)/TestVectorize.test_subclasses.<locals>.subclassi  r   NrS  r   r=   r;   rT  r    rU  r=   rT  )r  r  r  r  )r  r  r  r  )r  r  r+  rA  z(m,m),(m)->(m)rL  )r  r  r   )r  r+  r  )rB  rC  r  c                 
    X-  $ r4   r   r  s     r;   r~  /TestVectorize.test_subclasses.<locals>.<lambda>  s    r=   )r5   rV  r   rW  r$   matmulr0   rX  )rf   rT  rn  r  matvecr  mults          r;   r[  TestVectorize.test_subclasses  s    	rzz 	 HHl""$ %%)T(^ 	
 HHlL,?@EEhObii3CD1LT!Wh'Q|\BC ||./JT!Wh'QAr=   c                 T    [         R                  S 5       nUR                  S:X  d   eg )Nc                 
    X-   $ r4   r   r  s     r;   r  #TestVectorize.test_name.<locals>.f2  s	    5Lr=   r  )r5   r$   r   )rf   r  s     r;   	test_nameTestVectorize.test_name  s,    		 
	 {{d"""r=   c                 R    [         S 5       nU" / SQ/ SQ5      n[        U/ SQ5        g )Nc                     X:  a  X-
  $ X-   $ r4   r   r  s     r;   r  1TestVectorize.test_decorator.<locals>.addsubtract  s    uuur=   r  r  r  r  )rf   r  r  s      r;   test_decoratorTestVectorize.test_decorator  s,    		 
	 l31l+r=   c                 ~    [         S 5       n[        R                  R                  S:  a  UR                  S:X  d   eg g )Nc                     U $ )	Docstringr   r  s    r;   r  'TestVectorize.test_docstring.<locals>.f  s	     Hr=   rM   r  )r$   sysr   optimizer  r  s     r;   test_docstringTestVectorize.test_docstring  s?    		 
	 99!99+++ "r=   c                 j    S n[        US5      n[        R                  " U5      nU" S5      S:X  d   eg )Nc                 
    X-   $ r4   r   r  s     r;   r  'TestVectorize.test_partial.<locals>.foo  r  r=   rW   rO   rK   )r   r5   r$   )rf   r  r  vbars       r;   test_partialTestVectorize.test_partial  s2    	 c1o||C Aw!||r=   c                     [        SS/S9S 5       nU" / SQ5      n[        UR                  [        R                  " S5      5        [	        U/ SQ5        UR
                  S:X  d   eg )NrZ  r2  rx  c                     U $ r4   r   r  s    r;   r  8TestVectorize.test_signature_otypes_decorator.<locals>.f  r  r=   r   r  )r$   r0   r   r5   r/   r   rb  s      r;   test_signature_otypes_decorator-TestVectorize.test_signature_otypes_decorator  s[    	Z	<	 
=	 iLQWWbhhy121i(zzS   r=   c                 ~    [        [        5         [        R                  " SS9nS S S 5        g ! , (       d  f       g = f)NrW   )pyfuncr1   r/  r5   r$   )rf   As     r;   test_bad_inputTestVectorize.test_bad_input  s$    9%A&A &%%s   .
<c                     [        [        5         [        R                  " S5      S 5       nS S S 5        g ! , (       d  f       g = f)Nstringc                      g)Nr  r   r   r=   r;   r  +TestVectorize.test_no_keywords.<locals>.foo%  s    r=   r  )rf   r  s     r;   test_no_keywordsTestVectorize.test_no_keywords#  s1    9%\\(# $ &%%s	   6
Ac                     [        S S/5      nU" S/5      n[        UR                  [        R                  " S5      5        g )Nc                     U $ r4   r   r  s    r;   r~  ?TestVectorize.test_positional_regression_9477.<locals>.<lambda>-  r  r=   r2  rM   )r$   r0   r   r5   rb  s      r;   test_positional_regression_9477-TestVectorize.test_positional_regression_9477)  s4     {i[1qcFQWWbhhy12r=   c                     Sn[         R                  " / SQSS9n[        [         R                  " S SU/S9" U5      U5        g )Nzdatetime64[ns])z
2024-01-01z
2024-01-02z
2024-01-03r   c                     U $ r4   r   r  s    r;   r~  8TestVectorize.test_datetime_conversion.<locals>.<lambda>5  s    !r=   z(i)->(j)rx  )r5   r   r/   r$   )rf   otyper   s      r;   test_datetime_conversion&TestVectorize.test_datetime_conversion1  sC     hhA-/2<<z05w88;=>A	Cr=   r   N)3r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r%  r,  r3  r9  rA  rG  rN  rT  r[  rc  rf  rm  rs  ry  r~  r  r  r[  r  r  r  r  r  r  r  r  r  r   r   r=   r;   r  r  3  s    	,	,!*##	#
#&	)!#"=	:6#
%.	#&($% 6D	,&2,8 09)6(#	,,!'3Cr=   r  c                   p   \ rS rSr " S S5      r\R                  R                  \(       + SS9\R                  R                  \	SS9\R                  R                  SS\R                  4S	/5      \R                  R                  S
S9\R                  R                  S 5       5       5       5       5       rSrg)	TestLeaksi9  c                   .    \ rS rSrSrS r\S 5       rSrg)TestLeaks.Ai:  r  c                     gr  r   rf   r  s     r;   boundTestLeaks.A.bound=  r  r=   c                      gr  r   )r  s    r;   unboundTestLeaks.A.unbound@  s    r=   r   N)	r   r   r   r   itersr  staticmethodr  r   r   r=   r;   r  r  :  s     	 
	 
	r=   r  Python lacks refcountsreasonzJFunctions are immortalized if a thread is launched, making this test flakyz
name, incrr  )r  r   z=test result depends on the reference count of a global objectc                    SS K n[        U R                  U5      nUR                  5          [        R
                  " U5      n[        U R                  R                  5       H^  nU R                  5       n[        R                  " [        Xq5      SS5      Ul
        UR                  [        R                  " S5      5      nM`     S n[        [        R
                  " U5      XR-   5        [        S5       H  nUR                  5         M     [        [        R
                  " U5      U5        UR                  5         g ! UR                  5         f = f)Nr   rO   r   rX   )gcr0  r  disabler  getrefcountre   r  r5   
frompyfuncr  r6   r0   collectenable)	rf   r1  incrr  A_funcrefcountr   rg   r&  s	            r;   test_frompyfunc_leaksTestLeaks.test_frompyfunc_leaksD  s    $ 	&


	v.H466<<(FFHmmGA$4a;cc"))B-( ) A0(/B1X

 0(;IIKBIIKs   C=D: :Er   N)r   r   r   r   r  r   r   skipifr(   r*   r   r  thread_unsafeslowr  r   r   r=   r;   r  r  9  s      [[L(1IJ[[!C  E [[\agg,  [[N   [[ 	E Kr=   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS r\R                   R#                  SS9S 5       rSrg)TestDigitizeii  c                     [         R                  " SS5      n[         R                  " SS5      n[        [        X5      [         R                  " S5      5        g )Nrn  rX   r  r  r5   r6   r/   r   rf   r  binss      r;   test_forwardTestDigitize.test_forwardk  s9    IIb!yyQ8A,biim<r=   c                     [         R                  " SSS5      n[         R                  " SSS5      n[        [        X5      [         R                  " S5      5        g )NrX   rn  r_   r  r  r  r  s      r;   test_reverseTestDigitize.test_reversep  s=    IIaR yyB#8A,biim<r=   c                     [        S5      n[        R                  " UR                  5       UR	                  5       S5      n[        [        R                  " [        X5      S:g  5      5        g )Nr   r   r'   r5   r  r  rD  r+   r   r   )rf   r  bins      r;   test_randomTestDigitize.test_randomu  sD    Hkk!%%'1557B/x'1,-.r=   c                 z    / SQn/ SQn/ SQn[        [        X5      U5        / SQn[        [        XS5      U5        g )N)rO   rX   rK   r   rx   r  r   )rO   rX   r   )rO   rM   rO   rW   rM   rW   r   )r   rO   rO   rM   rM   rW   r   T)r/   r   )rf   r  r  default_answerright_answers        r;   test_right_basicTestDigitize.test_right_basicz  s6    #.8A,n=,8AT2LAr=   c                     [         R                  " SS5      n[         R                  " SS5      n[        [        XS5      [         R                  " S5      5        g )Nrn  rX   rK   Tr  r  r  s      r;   test_right_openTestDigitize.test_right_open  s;    IIb!yyQ8AT2BIIbMBr=   c                     [         R                  " SSS5      n[         R                  " SSS5      n[        [        XS5      [         R                  " S5      5        g )NrX   rn  r_   rK   Tr  r  r  s      r;   test_right_open_reverse$TestDigitize.test_right_open_reverse  s?    IIaR yyB#8AT2BIIbMBr=   c           	          [        S5      n[        R                  " UR                  5       UR	                  5       S5      n[        [        R                  " [        XS5      S:g  5      5        g )Nr   Tr  r  s      r;   test_right_open_random#TestDigitize.test_right_open_random  sF    H{{1557AEEGR0x."456r=   c                    / SQn/ SQn[        [        XS5      / SQ5        [        [        XS5      / SQ5        / SQn[        [        XS5      / SQ5        [        [        XS5      / S	Q5        / S
Qn[        [        XS5      / SQ5        [        [        XS5      / SQ5        / SQn[        [        [        X5        / SQn[        [        [        X5        g )N)r_   r   rO   rM   r   F)r   rM   rW   rW   T)r   r   rM   rW   r   )rW   rM   r   r   )rW   rW   rM   r   r   )r   r   rK   rK   )r   r   r   rK   r   )rO   rO   r   rO   )r/   r   r1   rc   r  s      r;   test_monotonicTestDigitize.test_monotonic  s    8AU3\B8AT2LA8AU3\B8AT2LA8AU3\B8AT2LAj(A4j(A4r=   c                 l    / SQn/ SQn[        [        [        X5        X!p![        [        [        X5        g )N)rO   rM   y      @      ?r   )r1   r/  r   r  s      r;   test_casting_errorTestDigitize.test_casting_error  s)    i134i13r=   c           	      \    " S S[         R                  5      n[         R                  " S5      R                  U5      n[         R                  " SS5      R                  U5      n[	        [        [        X2S5      U5      (       + 5        [	        [        [        X2S5      U5      (       + 5        g )Nc                       \ rS rSrSrg)(TestDigitize.test_return_type.<locals>.Ai  r   NrS  r   r=   r;   r  r    rU  r=   r  rX   rO   rW   FT)r5   rV  r6   rW  r+   r  r   )rf   r  rg   r   s       r;   r   TestDigitize.test_return_type  sv    	

 	IIaLa IIaO  #Jxe4a889Jxd3Q778r=   c                 X    Sn[        [        R                  " XS-
  US-   /5      S5        g Nl          rO   r0   r5   r   r  s     r;   test_large_integers_increasing+TestDigitize.test_large_integers_increasing  s&    R[[UAEN3Q7r=   z9gh-11022: np._core.multiarray._monoticity loses precisionr  c                 X    Sn[        [        R                  " XS-   US-
  /5      S5        g r  r  r  s     r;   test_large_integers_decreasing+TestDigitize.test_large_integers_decreasing  s(     R[[UAEN3Q7r=   r   N)r   r   r   r   r  r  r  r   r  r  r	  r  r  r   r  r   r   xfailr  r   r   r=   r;   r  r  i  si    =
=
/
BC
C
7
5 498
 [[J  L8L8r=   r  c                        \ rS rSrS rS rSrg)
TestUnwrapi  c                     [        [        SSS[        R                  -  -   /5      SS/5        [	        [        R
                  " [        [        [        S5      S-  5      5      [        R                  :  5      5        g )NrO   rM   r   r  )r/   r#   r5   r  r+   r   r   r'   r   s    r;   r  TestUnwrap.test_simple  sR    61a!bee)m"451v>tF48c>23bee;<=r=   c                 0   [        [        SS/SS9SS/5        [        [        R                  " [        [        [        S5      S-  SS95      S:  5      5        [        R                  " / SQ5      n[        R                  " US5      n[        [        USS9U5        [        R                  " / S	Q5      n[        R                  " US
5      n[        US
S9n[        U/ SQ5        [        US
SS9n[        U/ S	Q5        UR                  UR                  :X  d   eg )NrO   i     periodrM   r     )r   K         r  )r   r'  r(  r)  r  i     )r   r'  r(  r)  r  r     )r%  discont)
r/   r#   r+   r5   r   r   r'   r   modr   )rf   
simple_seqwrap_seq
uneven_seqwrap_uneven
no_discont
sm_disconts          r;   test_periodTestUnwrap.test_period  s    61g,s;aVDtF48d?3?@3FGHXX45
66*c*6(37DXX9:
ffZ-K4
:'BCKSA
:'BC;#4#4444r=   r   N)r   r   r   r   r  r4  r   r   r=   r;   r  r    s    >5r=   r  O
AllIntegerFloatM)r   rO   r   c                       \ rS rSrS\S\SS4S jrS\S\SS4S jrS\S\SS4S jrS\S\SS4S	 jr	S\S\SS4S
 jr
Srg)TestFilterwindowsi  r   r9  returnNc                    [         R                  " X!S9S   n[        U5      nUS:X  a  [         R                  nO/[         R                  " UR
                  [         R                  5      nUR
                  U:X  d   e[        U[        U5      5        US:  a!  [        U[         R                  " / 5      5        g US:X  a!  [        U[         R                  " S5      5        g [        [         R                  " USS9SS5        g )	Nr   r   r6  rO   r   r         @rK   )r5   r   r   r2  r3  r   r0   r   r/   rd   r-   r-  rf   r   r9  scalarr5  	ref_dtypes         r;   test_hanningTestFilterwindows.test_hanning  s    !)"-FOC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 15!<r=   c                    [         R                  " X!S9S   n[        U5      nUS:X  a  [         R                  nO/[         R                  " UR
                  [         R                  5      nUR
                  U:X  d   e[        U[        U5      5        US:  a!  [        U[         R                  " / 5      5        g US:X  a!  [        U[         R                  " S5      5        g [        [         R                  " USS9SS5        g )	Nr   r   r6  rO   r   r   g(\@rK   )r5   r   r   r2  r3  r   r0   r   r/   rd   r-   r-  r?  s         r;   test_hammingTestFilterwindows.test_hamming  s    !)"-FOC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 161=r=   c                    [         R                  " X!S9S   n[        U5      nUS:X  a  [         R                  nO/[         R                  " UR
                  [         R                  5      nUR
                  U:X  d   e[        U[        U5      5        US:  a!  [        U[         R                  " / 5      5        g US:X  a!  [        U[         R                  " S5      5        g [        [         R                  " USS9SS5        g )	Nr   r   r6  rO   r   r   g^)@rK   )r5   r   r   r2  r3  r   r0   r   r/   rd   r-   r-  r?  s         r;   test_bartlettTestFilterwindows.test_bartlett		      !)"-VC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 161=r=   c                    [         R                  " X!S9S   n[        U5      nUS:X  a  [         R                  nO/[         R                  " UR
                  [         R                  5      nUR
                  U:X  d   e[        U[        U5      5        US:  a!  [        U[         R                  " / 5      5        g US:X  a!  [        U[         R                  " S5      5        g [        [         R                  " USS9SS5        g )	Nr   r   r6  rO   r   r   g=
ףp=@rK   )r5   r   r	   r2  r3  r   r0   r   r/   rd   r-   r-  r?  s         r;   test_blackmanTestFilterwindows.test_blackman	  rJ  r=   c                     [         R                  " X!S9S   n[        US5      nUS:X  a  [         R                  nO/[         R                  " UR
                  [         R                  5      nUR
                  U:X  d   e[        U[        U5      5        US:  a!  [        U[         R                  " / 5      5        g US:X  a!  [        U[         R                  " S5      5        g [        [         R                  " USS9SS5        g )	Nr   r   r   r6  rO   r   r   r  )r5   r   r   r2  r3  r   r0   r   r/   rd   r-   r-  r?  s         r;   test_kaiserTestFilterwindows.test_kaiser3	  s    !)"-61C<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 12r:r=   r   )r   r   r   r   strr%  rB  rE  rH  rL  rO  r   r   r=   r;   r;  r;    s    =# =# =$ =*># ># >$ >*>3 >3 >4 >*>3 >3 >4 >*; ; ; ;r=   r;  c                   &    \ rS rSrS rS rS rSrg)TestTrapezoidiI	  c                     [         R                  " SSS5      n[        [         R                  " SUS-  -  5      [         R                  " S[         R
                  -  5      -  SS9n[        USS5        g )	Nr   r1  r  rM   )r  rO   rz   )r5   r6   r    r8  r  r  r-   )rf   r  r  s      r;   r  TestTrapezoid.test_simpleK	  sS    IIc2r"bffS16\*RWWQY-??CHAq!$r=   c                    [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " SSS5      n[         R                  " U5      US   US   -
  -  nUS==   S-  ss'   US==   S-  ss'   [         R                  " U5      US   US   -
  -  nUS==   S-  ss'   US==   S-  ss'   [         R                  " U5      US   US   -
  -  nUS==   S-  ss'   US==   S-  ss'   US S 2S S 4   US S S 2S 4   -   US S S S 24   -   nXtS S 2S S 4   -  R                  SS9nXuS S S 2S 4   -  R                  SS9n	XvS S S S 24   -  R                  SS9n
[	        XqS S 2S S 4   SS	9n[        X5        [	        XrS S S 2S 4   SS	9n[        X5        [	        XsS S S S 24   SS	9n[        X5        [	        XqSS	9n[        X5        [	        XrSS	9n[        X5        [	        XsSS	9n[        X5        g )
Nr   rO   rW   rM   rx   r\   r_   r   )r  r   )r5   r  	ones_liker-  r    r-   )rf   r  r4  r  wxwywzqqxqyqzr  s               r;   	test_ndimTestTrapezoid.test_ndimQ	  s   KK1a KK1a KK1b!\\!_!qt,
1

2!\\!_!qt,
1

2!\\!_!qt,
1

2!atmqq$//!D$M2BBQd]##((a(0T1d]##((a(0T4]##((a(0 aQd]+!4A"aT1d]+!4A"aT4]+!4A" a1%A"a1%A"a1%A"r=   c                 r   [         R                  " S5      nX-  nUS:H  n[         R                  R                  X#S9nSn[	        [        XA5      U5        [         R                  R                  XS9n[	        [        XF5      U5        [         R                  R                  XS9n[	        [        X&5      U5        g )NrX   rM   rP  g      *@)r5   r6   r   r   r-   r    )rf   r  r4  rQ  ymr  xms          r;   r  TestTrapezoid.test_maskedv	  s     IIaLEAvUU[[[&Ib,a0UU[[[&Ib-q1UU[[[&Ia,a0r=   r   N)r   r   r   r   r  r`  r  r   r   r=   r;   rS  rS  I	  s    %##J1r=   rS  c                   d   \ rS rSrS rS rS r\R                  R                  S\
R                  \
R                  \
R                  /5      S 5       r\R                  R                  S\
R                  \
R                   \
R"                  \
R$                  \
R&                  /5      S 5       rS rS	rg
)TestSinci	  c                     [        [        S5      S:H  5        [        [        R                  " SSS5      5      n[	        U[        U5      S5        g )Nr   rO   r_   r  rz   )r+   r   r5   r  r.   r   rf   r5  s     r;   r  TestSinc.test_simple	  s9    Q1RC()!!VAY2r=   c                     SS/n[        [        R                  " U5      5      n[        [        U5      5      n[        [	        U5      5      n[        X#5        [        X$5        g )Nr   r@  )r   r5   r   rB  r  r/   )rf   r  r   r   r   s        r;   test_array_likeTestSinc.test_array_like	  sG    H"((1+$q']%(^2"2"r=   c                    [         R                  " S[         R                  S9S-  S:H  n[        U5      n[        UR	                  [         R
                  5      5      n[        X#5        UR                  [         R
                  :X  d   eg )NrK   r   rM   rO   )r5   r6   r  r   r0  r2  r,   r   )rf   r  r6  r'  s       r;   test_bool_dtypeTestSinc.test_bool_dtype	  s^    YYq)A-2a,-)||rzz)))r=   r   c                     [         R                  " SUS9n[        U5      n[        UR                  [         R                  5      5      n[        X45        UR                  [         R                  :X  d   eg NrK   r   )r5   r6   r   r0  r2  r,   r   )rf   r   r  r6  r'  s        r;   test_int_dtypesTestSinc.test_int_dtypes	  sP    IIau%a,-)||rzz)))r=   c                 x    [         R                  " SUS9n[        U5      R                  UR                  :X  d   eg rr  )r5   r6   r   r   )rf   r   r  s      r;   test_float_dtypesTestSinc.test_float_dtypes	  s.    
 IIau%Aw}}'''r=   c                     [         R                  " S5      n[        [        U5      [         R                  " S5      5        g )Nr   r  )r5   r  r/   r   r*  r  s     r;   test_float16_underflowTestSinc.test_float16_underflow	  s'    JJqM 	47BJJsO4r=   r   N)r   r   r   r   r  rl  ro  r   r   r   r5   r  r  r  rs  r  r1  
longdoubler  rB   rv  ry  r   r   r=   r;   rg  rg  	  s    3#* [[Wrxx299&EF* G* [[ZZR]]BLL"--P(	(5r=   rg  c                       \ rS rSrS rSrg)
TestUniquei	  c                    [         R                  " / SQ5      n[        [         R                  " [	        U5      / SQ:H  5      5        [        [	        [         R                  " / SQ5      5      [         R                  " S/5      :H  5        / SQn[        [         R                  " [	        U5      / SQ:H  5      5        [         R                  " / SQ5      n[        [         R                  " [	        U5      / SQ:H  5      5        g )	N)	rK   rW   rM   rO   rO   rM   rW   rK   r   )r   rO   rM   rW   rK   )rO   rO   rO   rO   rO   rO   )widgethamr  r  r  r  )r  r  r  r  )      @      @r        ?      $@r   r  )r  r  r  r   )r5   r   r+   r   r"   r  s     r;   r  TestUnique.test_simple	  s    HH01vayO345rxx01RXXqc]BC9vay$CCDEHH:;vay$AABCr=   r   N)r   r   r   r   r  r   r   r=   r;   r}  r}  	  s    Dr=   r}  c                        \ rS rSrS rS rSrg)TestCheckFinitei	  c                     / SQnSS[         R                  /nSS[         R                  /n[         R                  " U5        [	        [
        [         R                  U5        [	        [
        [         R                  U5        g )Nr   rO   rM   )r5   infr  asarray_chkfiniter1   rc   r   s       r;   r  TestCheckFinite.test_simple	  sW    266N266N
Qj""6"6:j""6"6:r=   c                     / SQn[         R                  " US[         R                  S9n[        UR                  [         R                  :H  5        g )Nr   r   )r   r   )r5   r  r2  r+   r   rt   s     r;   test_dtype_order TestCheckFinite.test_dtype_order	  s4      #RZZ@2::%&r=   r   N)r   r   r   r   r  r  r   r   r=   r;   r  r  	  s    ;'r=   r  c            	       f   \ rS rSr\R
                  " / SQ/ SQ/ SQ/5      r\R
                  " / SQ/ SQ/ SQ/5      r\R
                  " / SQ/ S	Q/ S
Q/5      r\R
                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      r	S r
S rS rS rS rS r\R"                  R%                  S\5      S 5       rSrg)TestCorrCoefi	  )g^?g.{<?g$,?)g4?gp)?gJG?)gY?g?gވ0v?)gة?gBFU?g G)t?)g3TB?gL\?gA?)g>
?gqFE`?g5?)r  ޛ?r@)r  r  p]4?)r  r  r  )r  r  r  ?'L?(8?4V}?)r  r  r  w{,H5?jS,?)r  r  r  )h?5#A?)r  r  r  r  toBC,)r  r  r  r  r  @02v?)r  r  r  r  r  r  c                 Z    [        [        R                  " / SQ/ SQ5      SS/SS//5        g )Nr   )rO   r   rO   r        )r-   r5   r
   r   s    r;   test_non_arrayTestCorrCoef.test_non_array	  s'    BKK	9= #Yb	2	4r=   c                    [        U R                  5      n[        XR                  5        [	        [
        R                  " [
        R                  " U5      S:*  5      5        [        U R                  U R                  5      n[        X R                  5        [	        [
        R                  " [
        R                  " U5      S:*  5      5        g r  )
r
   r  r-   r  r+   r5   r   r  rC  r  )rf   tgt1tgt2s      r;   r  TestCorrCoef.test_simple	  sx    D)),rvvd|s*+,'D)),rvvd|s*+,r=   c                    [         R                  " / SQ/ SQ/5      n[        U5      n[         R                  " SS/SS//5      n[        X#5        [	        [         R
                  " [         R                  " U5      S:*  5      5        g Nr   r  y               @y              @r  r  r  )r5   r   r
   r,   r+   r   r  )rf   r  r  r  s       r;   test_complexTestCorrCoef.test_complex	  s_    HHi./qkhhT
S"I./!rvvc{c)*+r=   c                     [         R                  " / SQ/5      n[         R                  " / SQ/5      n[        [         R                  " X5      [         R                  " SS/SS//5      5        g r  )r5   r   r,   r
   rf   r  r4  s      r;   test_xyTestCorrCoef.test_xy	  sK    HHi[!HHl^$A)288b$Z#r4K+LMr=   c           	         [         R                  " SS9   [         R                  " S[        5        [	        [        [        R                  " / 5      5      [        R                  5        [	        [        [        R                  " / 5      R                  SS5      5      [        R                  " / 5      R                  SS5      5        [	        [        [        R                  " / 5      R                  SS5      5      [        R                  " [        R                  [        R                  /[        R                  [        R                  //5      5        S S S 5        g ! , (       d  f       g = fNTrecordalwaysr   rM   )
warningscatch_warningssimplefilterRuntimeWarningr/   r
   r5   r   r  r{   r   s    r;   
test_emptyTestCorrCoef.test_empty 
  s    $$D1!!(N;x5rvv>x(<(<Q(BC!xx|33Aq9;x(<(<Q(BC!xx"&&"&&)9BFFBFF;K(LMO 211   D;E
E'c                 >   SS/SS//n[         R                  " SS9   [        U5      nS S S 5        [        W[         R                  " SS/SS//5      5        [        [         R                  " [         R                  " U5      S:*  5      5        g ! , (       d  f       Nk= f)Ng0.++g}Ô%ITraiser   r  r  )r5   errstater
   r.   r   r+   r   r  )rf   r  r   s      r;   test_extremeTestCorrCoef.test_extreme	
  su    e_ufo.[[W%A &!!RXXCy3).D%EFrvvayC'() &%s   B
B	test_typec                 n    U R                   R                  U5      n[        X!S9nXR                  :X  d   eg Nr   )r  r0  r
   r   )rf   r  cast_Ar  s       r;   test_corrcoef_dtype TestCorrCoef.test_corrcoef_dtype
  s.    y)v/II%%%r=   r   N)r   r   r   r   r5   r   r  rC  r  r  r  r  r  r  r  r  r   r   r   	np_floatsr  r   r   r=   r;   r  r  	  s    
	-	-	,	.	/A 		,	-	,	.	/A 88	%	$	&	()D 88	I	I	K	M	J	J	LMD4-,N
O* [[[)4& 5&r=   r  c                      \ rS rSr\R
                  " SS/SS/SS//5      R                  r\R
                  " SS/SS//5      r\R
                  " / SQSS9r	\R
                  " / S	Q5      r
\R
                  " S
/S/S/S/S/S//5      R                  r\R
                  " SS/SS//5      r\R                  " S\R                  S9r\R
                  " / SQ5      r\R
                  " SS/SS//5      r\R                  " S5      r\R
                  " / SQ5      rS rS rS rS rS rS rS rS rS rS r\R>                  RA                  S\!5      S 5       r"S  r#S!r$g")#TestCovi
  r   rM   rO   r  r  )r  r  r   )ndmin)rO   rK   rO   r  r   皙?gٿrW   r   )r  r  r  gUUUUUU?gUUUUUU)g&S:?go_?g#~j?gZӼ?gQ|?c                 V    [        [        U R                  5      U R                  5        g r4   )r,   r   x1r  r   s    r;   rl   TestCov.test_basic$
  s    DGGdii0r=   c                     [         R                  " / SQ/ SQ/5      n[         R                  " SS/SS//5      n[        [        U5      U5        [        [        U[         R                  " S5      S9U5        g )Nr   r  r  r  r  rW   aweights)r5   r   r,   r   rd   )rf   r  r  s      r;   r  TestCov.test_complex'
  sW    HHi./hhT
S"I./A$A
3S9r=   c                     [         R                  " / SQ/5      n[         R                  " / SQ/5      n[        [        X5      [         R                  " SS/SS//5      5        g r  )r5   r   r,   r   r  s      r;   r  TestCov.test_xy-
  sF    HHi[!HHl^$A	288b$Z#r,C#DEr=   c           	         [         R                  " SS9   [         R                  " S[        5        [	        [        [        R                  " / 5      5      [        R                  5        [	        [        [        R                  " / 5      R                  SS5      5      [        R                  " / 5      R                  SS5      5        [	        [        [        R                  " / 5      R                  SS5      5      [        R                  " [        R                  [        R                  /[        R                  [        R                  //5      5        S S S 5        g ! , (       d  f       g = fr  )
r  r  r  r  r/   r   r5   r   r  r{   r   s    r;   r  TestCov.test_empty2
  s    $$D1!!(N;s288B<0"&&9s288B<#7#71#=>!xx|33Aq9;s288B<#7#71#=>!xx"&&"&&)9BFFBFF;K(LMO 211r  c           	      z   [         R                  " SS9   [         R                  " S[        5        [	        [        U R                  SS9[        R                  " [        R                  [        R                  * /[        R                  * [        R                  //5      5        S S S 5        g ! , (       d  f       g = f)NTr  r  rX   ddof)
r  r  r  r  r/   r   r  r5   r   r  r   s    r;   test_wrong_ddofTestCov.test_wrong_ddof;
  su    $$D1!!(N;s4773!xx"&&266'):+-66'266):)<  => 211s   BB,,
B:c           	          [        [        U R                  5      [        U R                  SS95        [        R                  " / SQ5      n[        [        U R                  U5      [        U R                  USS95        g )NF)rowvar)g+?g4@?g&S?go_?gJ4?)r,   r   x3r5   r   rf   r4  s     r;   test_1D_rowvarTestCov.test_1D_rowvarB
  sO    DGGc$''%&@AHH=>DGGQTWWa)FGr=   c                 z    [        [        U R                  SS9[        R                  " U R                  SS95        g )NrO   r  )r,   r   r  r5   varr   s    r;   test_1D_varianceTestCov.test_1D_varianceG
  s&    DGG!,bffTWW1.EFr=   c                 (   [        [        U R                  U R                  S9[        U R                  5      5        [        [        U R
                  U R                  S9U R                  5        [        [        U R
                  U R                  S9U R                  5        U R                  S-   n[        [        [        U R
                  US9  [        R                  " S[        R                  S9n[        [        [        U R
                  US9  [        R                  " S[        R                  S9n[        [        [        U R
                  US9  S[        R                  " S[        R                  S9-  n[        [        [        U R
                  US9  g )N)fweightsr@  rM   rW   r   rM   r_   rW   )r,   r   r  frequencies
x2_repeatsr  r  unit_frequenciesr  r1   r/  r5   rd   r  RuntimeErrorrc   )rf   nonintr  s      r;   test_fweightsTestCov.test_fweightsJ
  s   DGGd.>.>?DOO,	.DGGd.>.>?			#DGGd.C.CD			#!!C'idgg?GGF"''*lC1=GGARWW%lC1="''**j#tww;r=   c                    [        [        U R                  U R                  S9U R                  5        [        [        U R                  SU R                  -  S9[        U R                  U R                  S95        [        [        U R                  U R
                  S9U R                  5        [        R                  " S5      n[        [        [        U R                  US9  [        R                  " S5      n[        [        [        U R                  US9  S[        R                  " S5      -  n[        [        [        U R                  US9  g )Nr  r  r  rM   r  rW   )r,   r   r  r  r  unit_weightsr  r5   rd   r1   r  rc   ri  s     r;   test_aweightsTestCov.test_aweightsZ
  s    DGGdll;TYYGDGGcDLL.@ADGGdll;	=DGGd.?.?@$))LGGFOlC1=GGAJlC1=2771:j#tww;r=   c                    [        [        U R                  U R                  U R                  S9[        U R
                  5      5        [        [        U R                  U R                  U R                  S9U R                  5        [        [        U R                  U R                  U R                  S9U R                  5        [        [        U R                  U R                  U R                  S9U R                  5        [        [        U R                  U R                  SU R                  -  S9[        U R                  U R                  S95        [        [        U R                  U R                  U R                  S9U R                  5        g )N)r  r  r  r  )r,   r   r  r  r  r  r  r  r  r  r  r  r   s    r;   test_unit_fweights_and_aweights'TestCov.test_unit_fweights_and_aweightsf
  s+   DGGd.>.>%)%6%68DOO,	. 	DGGd.>.>%)%6%68			# 	DGGd.C.C%)%6%68			# 	DGGd.C.C%)\\3			# 	DGGd.C.C%(4<<%79DGGdll;	= 	DGGd.C.C%)%6%68			#r=   r  c                 n    U R                   R                  U5      n[        X!S9nXR                  :X  d   eg r  )r  r0  r   r   )rf   r  cast_x1r  s       r;   test_cov_dtypeTestCov.test_cov_dtypez
  s.    ''..+'+II%%%r=   c                     [         R                  " S5      n[         R                  " USSS9n[         R                  " UR                  SSS9n[	        X2SS9  g )Nr  r   T)r  r  Fr   )r5   rd   r   rE  r,   r  s       r;   test_gh_27658TestCov.test_gh_27658
  sA    GGFO66!!D1!E26r=   r   N)%r   r   r   r   r5   r   rE  r  r  r  r  r  r  rd   r  r  r  r  r  r  rl   r  r  r  r  r  r  r  r  r  r   r   r   r  r  r  r   r   r=   r;   r  r  
  sf   	Aq6Aq6Aq6*	+	-	-B88b#Yb	*+D	/	+B((9%KC53%#useDEGGJ88c4[4+./Dwwq0hh'G88gx(8W*=>?D771:L	:	;B1:F
O>H
G< 
<#( [[[)4& 5&
7r=   r  c                   &    \ rS rSrS rS rS rSrg)Test_I0i
  c                    [        [        S5      [        R                  " S5      5        [        R                  " / SQ5      n[        R                  " / SQ5      n[        [        U5      U5        [        [        U* 5      U5        [        R                  " SS/SS/S	S
/SS/SS//5      n[        [        U5      [        R                  " SS/SS/SS/SS/SS//5      5        [        R                  " S/5      n[	        UR
                  S5        [        [        R                  " S/5      [        R                  " S/5      5        g )Nr@  gǒ#?)gC7?gmM?g3a,?g$WV?ۏ?r  )gֿN^?gE ?g閡1?g%m? ?gDn@g>@v?guͥ?gVX˳?gua&?gB-sJ?g-^?g_V?gX.?gVaX?gj?gp?g~-@?gD/b?gݦ?g,Y1ؔ?g[!?gQL?gWsU+?g@?gfxw?r  r  r  )r-   r   r5   r   r0   rA   r/   )rf   r  r'  rC  i0_0s        r;   r  Test_I0.test_simple
  s    sGHH'(	*
 HHIJ88 8 9BqE8,BrFH-HHx,!:.!:.!:.!:.	0 1
 	qEHHz:.!:.!:.!:.!:.	0 1	2 uubT{TZZ&255";"7r=   c                   ^ [         R                  " S5      m " U4S jS5      n[        [         R                  " U" 5       5      U5      (       d   e[         R                  " T5      n[         R                  " U" 5       5      n[        X#5        g )NrK   c                   6   > \ rS rSr Y R                  rS rSrg)*Test_I0.test_non_array.<locals>.array_likei
  c                     U $ r4   r   )rf   r   contextreturn_scalars       r;   __array_wrap__9Test_I0.test_non_array.<locals>.array_like.__array_wrap__
  s    r=   r   N)r   r   r   r   __array_interface__r	  r   r}  s   r;   
array_liker  
  s    "#"7"7r=   r  )r5   r6   r  r  r   r/   )rf   r  r8  r  rg   s       @r;   r  Test_I0.test_non_array
  s_    IIaL	 	 "&&.
;;;;eeAheeJL!3$r=   c                     [         R                  " SS/5      n[        R                  " [        SS9   [        U5      nS S S 5        g ! , (       d  f       g = f)Nr   y      ?       @z#i0 not supported for complex valuesr   )r5   r   r   r.  r/  r   rg  s      r;   r  Test_I0.test_complex
  s9    HHa[!]]9,QRQ%C SRRs   A
Ar   N)r   r   r   r   r  r  r  r   r   r=   r;   r  r  
  s    8:% r=   r  c                        \ rS rSrS rS rSrg)
TestKaiseri
  c                    [        [        R                  " [        SS5      5      5        [	        [        SS5      [        R
                  " / 5      5        [	        [        SS5      [        R
                  " SS/5      5        [	        [        SS5      [        R
                  " / SQ5      5        [	        [        SS5      [        R
                  " / S	Q5      5        g )
NrO   r  r   rM    oF?rX   )r  vT=?r  r  r  gg?)?YJ?r  r  r  )r+   r5   isfiniter   r-   r   r   s    r;   r  TestKaiser.test_simple
  s    F1cN+,F1cNHHRL	*F1cNHHj*%=>	@F1cNHH &> ?	@ 	F1g.HH &> ?	@r=   c                     [        SS5        g )NrW   rK   )r   r   s    r;   test_int_betaTestKaiser.test_int_beta
  s    q!r=   r   N)r   r   r   r   r  r  r   r   r=   r;   r  r  
  s    @r=   r  c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)TestMeshgridi
  c           
          [        / SQ/ SQ5      u  p[        U[        R                  " / SQ/ SQ/ SQ/ SQ/5      5        [        U[        R                  " / SQ/ SQ/ SQ/ SQ/5      5        g )Nr   rK   rX   ry   rz   r  )rX   rX   rX   )ry   ry   ry   )rz   rz   rz   r   r/   r5   r   rf   XYs      r;   r  TestMeshgrid.test_simple
  s\    )\21bhh	(1(1(1(3 4 	5 	1bhh	(1(1(1(3 4 	5r=   c                 f    [        / SQ5      u  n[        U[        R                  " / SQ5      5        g )Nr  r   )rf   r"  s     r;   test_single_inputTestMeshgrid.test_single_input
  s!    |$1bhh|45r=   c                 V    / n[        / [        U6 5        [        / [        USS065        g )Nr   F)r/   r   r  s     r;   test_no_inputTestMeshgrid.test_no_input
  s)    2x/2x:E:;r=   c           	          / SQn/ SQn[        XSS9u  p4[        U[        R                  " / SQ/ SQ/ SQ/5      5        [        U[        R                  " / SQ/ SQ/ SQ/5      5        SS	/n[	        [        X5      S
   R
                  S:H  5        [	        [        XSS9S
   R
                  S:H  5        [	        [        XU5      S
   R
                  S:H  5        [	        [        XUSS9S
   R
                  S:H  5        [        [        [         XSS9  g )Nr   r  ijindexingr   )rM   rM   rM   rM   )rW   rW   rW   rW   rx   rw  r   r  rW   rK   )rK   rW   rM   )rW   rK   rM   notvalid)r   r/   r5   r   r+   rA   r1   rc   )rf   r  r4  r"  r#  r  s         r;   test_indexingTestMeshgrid.test_indexing
  s    !.1bhh(4(4(6 7 	8 	1bhh(4(4(6 7 	8
 Fq!''612-a066&@Aq!!$**i78q40399YFGj(A:Fr=   c           	          [        / SQ/ SQSS9u  p[        U[        R                  " / SQ/5      5        [        U[        R                  " S/S/S/S//5      5        g )	Nr   r  TsparserK   rX   ry   rz   r   r!  s      r;   test_sparseTestMeshgrid.test_sparse
  sK    )\$?1bhh	{341bhhaS1#s';<=r=   c                     [        / SQ/ SQSSS9n[        / SSS9n[        U[        5      (       d   e[        U[        5      (       d   eg )Nr   r  TFr5  r   )r   r  r  )rf   r  rC  s      r;   test_always_tupleTestMeshgrid.test_always_tuple
  sF    YTFR51!U####!U####r=   c                 6    [        [        [        / SQ/ SQSS9  g )Nr   r  r,  )rf  )r1   r/  r   r   s    r;   test_invalid_arguments#TestMeshgrid.test_invalid_arguments  s     	it	=r=   c                    [         R                  " SS[         R                  S9n[         R                  " SS[         R                  S9n[         R                  " X5      u  p4[        UR                  UR                  :H  5        [        UR                  UR                  :H  5        [         R                  " XSS9u  p4[        UR                  UR                  :H  5        [        UR                  UR                  :H  5        [         R                  " XSS9u  p4[        UR                  UR                  :H  5        [        UR                  UR                  :H  5        g )Nr   r   r   r  T)r   r4  )r5   r6   r1  r2  r   r+   r   )rf   r  r4  r"  r#  s        r;   r   TestMeshgrid.test_return_type  s     IIa2::.IIb"BJJ/{{1 177"#177"# {{1d+177"#177"# {{1-177"#177"#r=   c                     [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " XSSS9u  p4SUSS S 24'   [        USS S 24   S5        [        US	S S 24   U5        g )
Nr-  r.  gffffff
@g@FTr9  r   rO   )r5   r   r   r0   )rf   r"  r#  r  r4  s        r;   test_writebackTestMeshgrid.test_writeback#  sk    HHc3Z HHc3Z {{1D9!Q$Qq!tWa Qq!tWa r=   c                 4   [         R                  " S [        SS5       5       6 u  pp4nSn[        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        g )Nc              3   .   #    U  H  nS /U-  v   M     g7fr  r   )r  r   s     r;   r  -TestMeshgrid.test_nd_shape.<locals>.<genexpr>.  s     %C{!qcAg{s   rO   ry   )rM   rO   rW   rK   rX   )r5   r   re   r0   rA   )rf   rg   r   r   r  rD  expected_shapes          r;   test_nd_shapeTestMeshgrid.test_nd_shape-  sm    %CuQ{%CDaA(QWWn-QWWn-QWWn-QWWn-QWWn-r=   c                     [         R                  " S/SS// SQ5      u  pn[        U/ SQ// SQ//5        [        U/ SQ// SQ//5        [        U/ SQ// SQ//5        g )Nr   rO   rM   rV   r   r   rL   r5   r   r0   r   s       r;   test_nd_valuesTestMeshgrid.test_nd_values6  sW    ++qcAq695aQ)yk23Q)yk23Q)yk23r=   c                     [         R                  " S/SS// SQSS9u  pn[        U/ SQ/ SQ//5        [        U/ SQ/ S	Q//5        [        U/ SQ/ SQ//5        g )
Nr   rO   rM   rV   r,  r-  r   r   rL   rK  r   s       r;   test_nd_indexingTestMeshgrid.test_nd_indexing<  sV    ++qcAq69tDaQ)Y/01Q)Y/01Q)Y/01r=   r   N)r   r   r   r   r  r&  r)  r1  r6  r:  r=  r   rB  rH  rL  rO  r   r   r=   r;   r  r  
  s?    	56<
G(>
$=$0!.42r=   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestPiecewiseiC  c           	      |   [        SS/SS/S/5      n[        USS/5        [        SS/SS//S/5      n[        USS/5        [        SS/[        R                  " SS/5      S/5      n[        USS/5        [        SS/[        R                  " SS/5      S/5      n[        USS/5        [        SS/[        R                  " SS/5      /S/5      n[        USS/5        [        SS/SS//S /5      n[        USS/5        [	        [
        S[         SS/SS/// 5        [	        [
        S[         SS/SS/// SQ5        g )	Nr   TFrO   c                     grj  r   r  s    r;   r~  +TestPiecewise.test_simple.<locals>.<lambda>Z  s    r=   r_   z1 or 2 functions are expectedr   )r   r/   r5   r   r2   rc   r  s     r;   r  TestPiecewise.test_simpleE  sP   q!ftUmaS11q!f% q!fe}os31q!f% q!fbhhe}5s;1q!f% q!fbhh1v.41q!f% q!frxxA/01#61q!f%q!ft}o}=1q"g&J(G1v	4J(G1v		;r=   c                 N    [        SS/SS/SS//SS/5      n[        USS/5        g )NrO   rM   TFrW   rK   r   r/   r  s     r;   test_two_conditions!TestPiecewise.test_two_conditionsb  s3    q!fe}udm<q!fE1q!f%r=   c                 >    [        S/ SQ/ SQ5      n[        US5        g )NrW   )TFF)rK   rM   r   rK   )r   r0   r  s     r;   $test_scalar_domains_three_conditions2TestPiecewise.test_scalar_domains_three_conditionsf  s    a-y9Qr=   c                     [        SS/SS/S/5      n[        USS/5        [        SS/SS/SS/5      n[        USS/5        g )NrO   rM   TFr   rW   rX  r  s     r;   test_defaultTestPiecewise.test_defaultj  sR    q!ftUmaS11q!f% q!ftUmaV41q!f%r=   c                 J   [         R                  " S5      n[        XS:  SS/5      n[        UR                  S:H  5        [        US:H  5        Sn[        USS/SS/5      n[        UR                  S:H  5        [        US:H  5        [        U/ SQ/ S	Q5      n[        US5        g )
NrW   rK   r   rX   TFrO   ry  r   )r5   r   r   r+   r   r/   r  s      r;   r  TestPiecewise.test_0ds  s    HHQKaQA'!Qa$A/!Q a-y91a r=   c           	      *   Sn[        XS:*  US:  /SS/5      n[        US5        Sn[        XS:*  US:  US:*  -  US:  // SQ5      n[        US5        [        [        S[         XS:*  US:  /S/5        [        [        S[         XS:*  US:  // S	Q5        g )
NrW   rK   r   rX   r   rM   z2 or 3 functions are expectedrO   r   )r   r0   r/   r2   rc   r  s      r;   test_0d_comparison TestPiecewise.test_0d_comparison  s    aq&!a%1a&1Q aq&1q5Q!V"4a!e<iH1a J(Gq61q5/A3	0J(Gq61q5/<	9r=   c                     [         R                  " S5      n[         R                  " US:  5      n[        X/SS/5      n[        US5        g )NrW   rO   rM   )r5   r   r   r0   )rf   r  r   r4  s       r;   test_0d_0d_condition"TestPiecewise.test_0d_0d_condition  s<    HHQKHHQUOaq!f%Qr=   c                     [         R                  " / SQ/ SQ/5      n[        XS:  US:  // SQ5      n[        U[         R                  " / SQ/ SQ/5      5        g )N)g      g      r  )r@  r  r  r   rM   r  )r  r  r  )r  r  r  )r5   r   r   r/   r  s      r;   test_multidimensional_extrafunc-TestPiecewise.test_multidimensional_extrafunc  sR    HH(%' (aa%a*51bhh(4(6 7 	8r=   c                      " S S[         R                  5      n[         R                  " S5      R                  U5      n[	        X"S:  US:  // SQ5      n[        [        U5      U5        [        U/ SQ5        g )Nc                       \ rS rSrSrg)/TestPiecewise.test_subclasses.<locals>.subclassi  r   NrS  r   r=   r;   rT  rn    rU  r=   rT  r  r   rK   )r  r  r  )r  r  r  r  r  )r5   rV  r6   rW  r   r0   rX  )rf   rT  r  r  s       r;   r[  TestPiecewise.test_subclasses  s\    	rzz 	IIbMx(ab&!q&)=9T!Wh'Q./r=   r   N)r   r   r   r   r  rY  r\  r_  r  rd  rg  rj  r[  r   r   r=   r;   rR  rR  C  s/    ;:&&!980r=   rR  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\R                  R                  SSS/5      S 5       rS r\R                  R%                  \(       + SS9S 5       r\R                  R                  SSS//S/5      S 5       r\R                  R                  SS/S/S/S//5      S 5       r\R                  R                  S\R0                  S   5      S 5       rS rS rS rg!)"TestBincounti  c                     [         R                  " [         R                  " S5      5      n[        U[         R                  " S5      5        g )NrK   )r5   bincountr6   r/   rd   r  s     r;   r  TestBincount.test_simple  s*    KK		!%1bggaj)r=   c                     [         R                  " [         R                  " / SQ5      5      n[        U[         R                  " / SQ5      5        g )N)rO   rX   rM   rK   rO   )r   rM   rO   r   rO   rO   )r5   rs  r   r/   r  s     r;   test_simple2TestBincount.test_simple2  s-    KK121bhh'9:;r=   c                     [         R                  " S5      n[         R                  " / SQ5      n[         R                  " X5      n[	        X25        g )NrK   )皙?333333?r@  r1  )r5   r6   r   rs  r/   rf   r  r5  r4  s       r;   test_simple_weightTestBincount.test_simple_weight  s4    IIaLHH)*KK1 r=   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " X5      n[        U[         R                  " / SQ5      5        g )NrO   rM   rK   rX   rM   ry  rz  r@  r1  ry  )r   ry  r@  r   r@  r1  r5   r   rs  r/   r{  s       r;   test_simple_weight2 TestBincount.test_simple_weight2  sA    HH_%HH./KK1bhh'ABCr=   c                    [         R                  " / SQ5      n[         R                  " USS9n[        U[         R                  " / SQ5      5        / n[         R                  " USS9n[        U[         R                  " / 5      5        g )N)r   rO   r   rO   rO   rW   	minlength)rM   rW   r   r   r  r  s      r;   test_with_minlength TestBincount.test_with_minlength  sZ    HH_%KKQ'1bhhy12KKQ'1bhhrl+r=   c                    [         R                  " / SQ5      n[         R                  " USS9n[        U[         R                  " / SQ5      5        [         R                  " USS9n[        U[         R                  " / SQ5      5        g )N)r   rO   rO   rM   rM   rW   rW   rM   r  )rO   rM   rM   rM   r   r  r  s      r;   )test_with_minlength_smaller_than_maxvalue6TestBincount.test_with_minlength_smaller_than_maxvalue  sW    HH*+KKQ'1bhh|45KKQ'1bhh|45r=   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " XS5      n[        U[         R                  " / SQ5      5        g )Nr  r  rx   )r   ry  r@  r   r@  r1  r   r   r  r{  s       r;   test_with_minlength_and_weights,TestBincount.test_with_minlength_and_weights  sC    HH_%HH./KKa 1bhh'GHIr=   c                 x    [         R                  " / [        S9n[         R                  " U5      n[	        X5        g r  )r5   r   r%  rs  r/   r  s      r;   r  TestBincount.test_empty  s'    HHRs#KKN1 r=   c                     [         R                  " / [        S9n[         R                  " USS9n[	        U[         R
                  " S[        S95        g )Nr   rX   r  )r5   r   r%  rs  r/   r?   r  s      r;   test_empty_with_minlength&TestBincount.test_empty_with_minlength  s7    HHRs#KKQ'1bhhq45r=   r  r   rW   c                 p    [        [        R                  " / US9[        R                  " U[        S95        g )Nr  r   )r/   r5   rs  r?   r%  )rf   r  s     r;   test_empty_listTestBincount.test_empty_list  s%    2;;rY?88IS9	;r=   c                   ^ [         R                  " / [        S9m[        [        SU4S j5        [        [
        SU4S j5        [         R                  " S5      m[        [        SU4S j5        [        [
        SU4S j5        g )	Nr   z"'str' object cannot be interpretedc                  .   > [         R                  " T SS9$ Nfoobarr  r5   rs  r  s   r;   r~  <TestBincount.test_with_incorrect_minlength.<locals>.<lambda>      BKKX$Fr=   zmust not be negativec                  .   > [         R                  " T SS9$ Nr_   r  r  r  s   r;   r~  r        BKKR$@r=   rX   c                  .   > [         R                  " T SS9$ r  r  r  s   r;   r~  r    r  r=   c                  .   > [         R                  " T SS9$ r  r  r  s   r;   r~  r    r  r=   )r5   r   r%  r2   r/  rc   r6   r  s    @r;   test_with_incorrect_minlength*TestBincount.test_with_incorrect_minlength  sj    HHRs#I@F	H 	J2@	B IIaLI@F	H 	J2@	Br=   r  r  c                    [         R                  " [        R                  " [        R                  5      5      n[         R                  " [        R                  " [        R
                  5      5      n[        S5       H  n[        R                  " / SQ5        M     [        [         R                  " [        R                  " [        R                  5      5      U5        [        [         R                  " [        R                  " [        R
                  5      5      U5        [        S5       H  n[        R                  " / SQ/ SQ5        M      [        [         R                  " [        R                  " [        R                  5      5      U5        [        [         R                  " [        R                  " [        R
                  5      5      U5        g )Nr   r   r   )	r  r  r5   r   intpdoublere   rs  r0   )rf   intp_refcountdouble_refcountr#  s       r;   test_dtype_reference_leaks'TestBincount.test_dtype_reference_leaks  s     (9://"((299*=>rAKK	" S__RXXbgg%67GS__RXXbii%89?KrAKK	9- S__RXXbgg%67GS__RXXbii%89?Kr=   valsrM   c                 ,   [         R                  " U5      n[        [        5         [         R                  " U5        S S S 5        [        [        5         [         R                  " U5        S S S 5        g ! , (       d  f       N== f! , (       d  f       g = fr4   )r5   r*  r1   rc   rs  )rf   r  vals_arrs      r;   test_error_not_1dTestBincount.test_error_not_1d  sW     ::d#:&KK! ':&KK '& '&&&s   A4B4
B
Br  r  r     1c                     [        [        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = fr4   )r1   r/  r5   rs  )rf   r  s     r;   test_error_not_intTestBincount.test_error_not_int  s"    9%KK &%%s   0
>r  r7  c                 |    [         R                  " / SQUS9n[         R                  " U5      n/ SQn[        X45        g )Nr   rO   rO   rW   rM   rO   rz   r   rO   rW   rO   rO   r   r   r   rO   r  )rf   r  rg   r6  r'  s        r;   test_gh_28354TestBincount.test_gh_28354  s-    HH*"5Q+6,r=   c                 d    [         R                  " [         R                  " S5      S S S2   5        g )Nr  rM   )r5   rs  r6   r   s    r;   test_contiguous_handling%TestBincount.test_contiguous_handling  s     
BIIe$SqS)*r=   c                 p     " S S5      nU" 5       n[         R                  " U5      n/ SQn[        X45        g )Nc                       \ rS rSrS rSrg)0TestBincount.test_gh_28354_array_like.<locals>.Ai  c                 L    [         R                  " / SQ[         R                  S9$ )Nr  r   )r5   r   r  r   s    r;   	__array__:TestBincount.test_gh_28354_array_like.<locals>.A.__array__  s    xx 5RYYGGr=   r   N)r   r   r   r   r  r   r   r=   r;   r  r    s    Hr=   r  r  )r5   rs  r/   )rf   r  rg   r6  r'  s        r;   test_gh_28354_array_like%TestBincount.test_gh_28354_array_like  s1    	H 	H CQ+6,r=   r   N)r   r   r   r   r  rv  r|  r  r  r  r  r  r  r   r   r   r  r  r  r(   r  r  r  r5   	typecodesr  r  r  r   r   r=   r;   rq  rq    s-   *<!D,6J!
6
 [[[1a&1; 2;B" [[L(1IJL KL [[V1vh]3 4 [[VsebTC54&%AB C [[T2<<#=>- ?-+-r=   rq  c                       \ rS rSrS rS rS rS rS rS r	\
R                  " \R                  S S	 S
 // SQS9S 5       rS rS rS rS rS rS rS rS rS rSrg)
TestInterpi&  c           	      *   [        [        [        S/ / 5        [        [        [        SS/SS/5        [        [        [        SSS/SS/SS9  [        [        [        S/ / SS9  [        [        [        SS/SS/SS9  [        [        [        / / / SQ5        g )Nr   rO   rM   r$  h  rV   )r1   rc   r   r   s    r;   test_exceptionsTestInterp.test_exceptions(  s|    j&!R4j&!aS1a&9j&!aVaVAFj&!RC@j&!aS1a&Ej&"b)<r=   c           	         [        [        / / / 5      [        R                  " / [        R                  S95        [        [        / SS/SS/5      [        R                  " / [        R                  S95        [        [        / / / SS9[        R                  " / [        R                  S95        [        [        / SS/SS	/5      [        R                  " / [        R
                  S95        g )
Nr   rO   rM   rW   rK   r  r$  y      @      @r  )r/   r   r5   r   r2  rB   r   s    r;   test_empty_xTestInterp.test_empty_x0  s    6"b"-rxx"**/MN6"q!fq!f5rxx"**7UV2r2c*BHHRrzz,J	L21v/0"((2R]]2S	Ur=   c                     [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " SSS5      n[        [         R                  " X1U5      U5        g )Nr   rO   rX   ro   )r5   r  r-   r   rf   r  r4  x0s       r;   rl   TestInterp.test_basic9  sM    KK1a KK1a [[Ar"BIIbQ/4r=   c           	         [        SS5       GH  n[        R                  " U[        R                  S9n[        R                  " U[        R                  S9n[        R
                  " SSUS-
  U/[        R                  S9nUS S S2   n[        XBU5      n[        XRU5      n[        R
                  " / SQ[        S9nUS S S2   n	[        Xh5        [        Xy5        [        XBUSS9n[        XRUSS9n[        R
                  " / SQ[        S9nUS S S2   n	[        Xh5        [        Xy5        [        XBUS	S
9n[        XRUS	S
9n[        R
                  " / SQ[        S9nUS S S2   n	[        Xh5        [        Xy5        [        XBUSS	S9n[        XRUSS	S9n[        R
                  " / SQ[        S9nUS S S2   n	[        Xh5        [        Xy5        GM     g )NrO   r   r   r_   r   r   left)r   rO   rO   rO   rM   right)rO   rO   rO   rM   )r  r  )r   rO   rO   rM   )	re   r5   r6   r  rd   r   r   r  r0   )
rf   sizexpypincptsdecptsincresdecresinctgtdectgts
             r;   test_right_left_behavior#TestInterp.test_right_left_behavior?  s    !RLD4ryy1BRYY/BXXr1dQh5RYYGFDbD\FF+FF+FXXl%8FDbD\F((F3FF3FXXl%8FDbD\F((F!4FF!4FXXl%8FDbD\F((F!<FF!<FXXl%8FDbD\F((A !r=   c                 .   [         R                  " SSS5      n[         R                  " SSS5      nSn[        [         R                  " X1U5      U5        Sn[        [         R                  " X1U5      U5        [         R                  " S5      n[        [         R                  " X1U5      U5        [         R
                  " S5      n[        [         R                  " X1U5      U5        [         R                  n[        [         R                  " X1U5      U5        g )Nr   rO   rX   rz  )r5   r  r-   r   r1  r2  r  r  s       r;   test_scalar_interpolation_point*TestInterp.test_scalar_interpolation_pointe  s    KK1a KK1a BIIbQ/4BIIbQ/4ZZ^BIIbQ/4ZZ^BIIbQ/4VVBIIbQ/4r=   c                 l   / SQn/ SQnSS[         R                  S/n[        [         R                  " XU5      SS[         R                  [         R                  S/5        SS[         R                  S/n[        [         R                  " XU5      SS[         R                  [         R                  S/5        g )NrO   rM   r  rW   rK   r  rO   rM   rK   )r5   r  r-   r   r  )rf   r  r  fps       r;    test_non_finite_behavior_exact_x+TestInterp.test_non_finite_behavior_exact_xs  s    BFFABIIaR01a2KLBFFABIIaR01a2KLr=   c                     [        U S5      $ r  rF   r  s    r;   r~  TestInterp.<lambda>}      -1%r=   c                     [        SU 5      $ r  r  r  s    r;   r~  r  ~  r  r=   c                 D    [        U [        R                  " U S5      5      $ )NrU   )rF   r5   multiplyr  s    r;   r~  r    s    -2;;q"#56r=   )rC   zcomplex-realzcomplex-imagzcomplex-both)paramsidsc                     UR                   $ )z'scale function used by the below tests )param)rf   requests     r;   scTestInterp.sc{  s     }}r=   c           
      t   [        [        R                  " S[        R                  S/U" SS/5      5      U" [        R                  5      5        [        [        R                  " SS[        R                  /U" SS/5      5      U" [        R                  5      5        [        [        R                  " SSS/U" [        R                  S/5      5      U" [        R                  5      5        [        [        R                  " SSS/U" S[        R                  /5      5      U" [        R                  5      5        g)ztest that nans are propagated r@  rO   r   r   N)r0   r5   r   r  rf   r  s     r;   test_non_finite_any_nan"TestInterp.test_non_finite_any_nan  s    RYYsRVV!$4bqb9I6JKRPRPVPVZXRYYs!RVV$4bqb9I6JKRPRPVPVZXRYYs!!$4b"&&b9I6JKRPRPVPVZXRYYs!!$4bq"&&9I6JKRPRPVPVZXr=   c           
         [         R                  n[         R                  n[        [         R                  " SU* U7/U" SS/5      5      U" U5      5        [        [         R                  " SSS/U" U* U7/5      5      U" U5      5        [        [         R                  " SSS/U" U7U* /5      5      U" U5      5        [        [         R                  " S[         R                  * [         R                  7/U" SS/5      5      U" S5      5        g)z1Test that interp between opposite infs gives nan r@  r   r   rO   Nr5   r  r  r0   r   rf   r  r  r  s       r;   test_non_finite_infTestInterp.test_non_finite_inf  s    ffffRYYscTC4L"b\2BCRWMRYYsaL"sdSD\2BCRWMRYYsaL"sdSD\2BCRWM 	RYYsbffWrvvg$6";M8NOQSTVQWXr=   c           
         [         R                  n[         R                  n[        [         R                  " SU* S/U" U* S/5      5      U" U5      5        [        [         R                  " SU* S/U" U7S/5      5      U" U5      5        [        [         R                  " SU* S/U" SU* /5      5      U" U5      5        [        [         R                  " SU* S/U" SU7/5      5      U" U5      5        [        [         R                  " SSU7/U" U* S/5      5      U" U5      5        [        [         R                  " SSU7/U" U7S/5      5      U" U5      5        [        [         R                  " SSU7/U" SU* /5      5      U" U5      5        [        [         R                  " SSU7/U" SU7/5      5      U" U5      5        g)z?Test that interp where both axes have a bound at inf gives nan r@  rO   r   r   Nr  r  s       r;   test_non_finite_half_inf_xf&TestInterp.test_non_finite_half_inf_xf  st   ffffRYYscTaL"sdb\2BCRWMRYYscTaL"sdb\2BCRWMRYYscTaL"SD\2BCRWMRYYscTaL"SD\2BCRWMRYYsC4L"sdb\2BCRWMRYYsC4L"sdb\2BCRWMRYYsC4L"SD\2BCRWMRYYsC4L"SD\2BCRWMr=   c           
      H   [        [        R                  " S[        R                  * [        R                  * /U" SS/5      5      U" S5      5        [        [        R                  " S[        R                  * S/U" SS/5      5      U" S5      5        [        [        R                  " SS[        R                  7/U" SS/5      5      U" S5      5        [        [        R                  " S[        R                  7[        R                  7/U" SS/5      5      U" S5      5        g)z0Test interp where the x axis has a bound at inf r@  r   r   rO   Nr0   r5   r   r  r  s     r;   test_non_finite_half_inf_x%TestInterp.test_non_finite_half_inf_x  s    RYYsbffWrvvg$6Ar7DbfMRYYsbffWa$6Ar7DbfMRYYs1rvvg$6Ar7DbeLRYYsbffWrvvg$6Ar7DbeLr=   c           
          [        [        R                  " SSS/U" S[        R                  * /5      5      U" [        R                  * 5      5        [        [        R                  " SSS/U" S[        R                  7/5      5      U" [        R                  75      5        [        [        R                  " SSS/U" [        R                  * S/5      5      U" [        R                  * 5      5        [        [        R                  " SSS/U" [        R                  7S/5      5      U" [        R                  75      5        [        [        R                  " SSS/U" [        R                  * [        R                  * /5      5      U" [        R                  * 5      5        [        [        R                  " SSS/U" [        R                  7[        R                  7/5      5      U" [        R                  75      5        g)z0Test interp where the f axis has a bound at inf r@  r   rO   r   Nr  r  s     r;   test_non_finite_half_inf_f%TestInterp.test_non_finite_half_inf_f  sL   RYYsQFBa"&&/A,BCR[QRYYsQFBa"&&/A,BCR[QRYYsQFBb/A,BCR[QRYYsQFBb/A,BCR[QRYYsQFB"&&/A,BCR[QRYYsQFB"&&/A,BCR[Qr=   c           	         [         R                  " SSS5      n[         R                  " SSS5      S[         R                  " SSS5      -   S-  -   nSnUSU-   S-  -   n[        [         R                  " X1U5      U5        SnSn[        [         R                  " X1X%S9U5        S	nSn[        [         R                  " X1X&S
9U5        / SQn/ SQnSS[         R                  S/nSS[         R                  S-   [         R                  S/n[        [         R                  " XU5      U5        / SQn/ SQn/ SQn/ SQn[        [         R                  " XUSS9U5        g )Nr   rO   rX   r  rz  r_          @      @r  r   r  r  r         @      ?rK   y              ?iLiViG   rU  r  r   im     iBi^  i)      @      ?y      $@       @      @      @y      @      @)y      @      ?r  y     !@      ?y      @      ?r  y      
@      
@y      @      @y      @      @r  r$  )r5   r  r-   r   r  )	rf   r  r4  r  y0r  r  r  r  s	            r;   test_complex_interpTestInterp.test_complex_interp  s&   KK1a KK1a AAq!(<$<#DD1r6T/!BIIbQ/4BIIbQ:DABIIbQ<eD#rvvq1BIIaR0!44#0'BIIaR<a@r=   c                    [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " S5      n[        [         R                  " X1U5      U5        [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " [         R                  " S5      XE5      n[        US5        [        [        U[         R                  5      5        [         R                  " [         R                  " S5      XESS	9n[        US
5        [        [        U[         R                  5      5        g )Nr   rO   rX   rz  r  )rO   r_   rO   r>  rK   r$  r@  )	r5   r  r   r-   r   r0   r+   r  r2  )rf   r  r4  r  r  r  r6  s          r;   )test_zero_dimensional_interpolation_point4TestInterp.test_zero_dimensional_interpolation_point  s    KK1a KK1a XXb\BIIbQ/4XXi XXj!288A;/VQ
62::./288C=";VS!
62::./r=   c                     [         R                  " SSS5      n[         R                  " U5      n[        [         R                  " [         R
                  X5      S5        g )Nr   r   g-C6?r  )r5   r6   sinr-   r   r  )rf   r  r  s      r;   test_if_len_x_is_small!TestInterp.test_if_len_x_is_small  s:    YYq"f%VVBZBIIbeeR4c:r=   c           	      8   / SQn/ SQn/ SQn/ SQn[        [        R                  " XUSS9U5        [        R                  " USS9R	                  S	S
5      n[        R                  " USS9R	                  S	S
5      n[        [        R                  " XUSS9U5        g )Nr  r  )rX   r   rW   rK   )g      @r       !@g      @r  g      
@      @g      @r  r$  r   r   rM   r_   r  )r-   r5   r   r   r{   )rf   r  r  r  r4  s        r;   r4  TestInterp.test_period  s~    4#6BIIaR<a@HHQc"**1b1HHQc"**1b1BIIaR<a@r=   r   N)r   r   r   r   r  r  rl   r  r  r  r   fixturer5   r2  r  r  r   r  r  r
  r  r  r  r4  r   r   r=   r;   r  r  &  s    =U5$)L5M ^^


%%6	


Y	YNMRA80";
Ar=   r  )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibulllinearmedian_unbiasednormal_unbiasednearestlowerhighermidpoint)r%  r'  r(  r)  r*  r+  r,  r0  r$  c            	           \ rS rSrS rS rS rS rS r\	R                  R                  S\R                  S   5      S	 5       r\R                  S
    V VVs/ s H  nU[        R                  4PM     snnn \R                   \R                   4\R"                  \R"                  4\R                  \R                  4\R$                  \R$                  4\R&                  " S5      \R                  4/-   r\	R                  R                  SS/\R*                  S4\R,                  S4/5      \	R                  R                  SS/\5      \	R                  R                  / SQ/ SQ5      S 5       5       5       r\R                  S
   \R                  S   -   S-   r\	R                  R                  S\5      S 5       r\	R                  R                  S\5      S 5       r\	R                  R                  S\5      S 5       rS rS rS rS rS r S r!\	R                  R                  S\R,                  S4\"" \R,                  S S!9S"4/5      S# 5       r#S$ r$S% r%S& r&S' r'S( r(S) r)S* r*\	R                  R                  S+S,S-S,//5      \	R                  R                  S./ S/QS09S1 5       5       r+S2 r,\	R                  R                  S3/ S4Q5      S5 5       r-S6 r.S7 r/\	R                  R                  SS8S9/5      \	R                  R                  S:/ S;Q5      S< 5       5       r0\	R                  R                  S=\R                   \R"                  /5      \	R                  R                  S>\15      S? 5       5       r2\	R                  Rf                  S@ 5       r4\	R                  R                  S>\55      \	R                  R                  S+SASB/5      SC 5       5       r6\	R                  R                  S>\55      SD 5       r7SEr8gFs  snnn f )GTestPercentilei  c           
         [         R                  " S5      S-  n[        [         R                  " US5      S5        [        [         R                  " US5      S5        [        [         R                  " US5      S5        [         R                  US	'   [        [         R                  " US5      [         R                  5        [        [         R                  " USS
S9[         R                  5        [        [         R                  " USSS9[         R                  5        [        [         R                  " USS[         R
                  " U5      S9[         R                  5        g )Nrx   r@  r   r  r  r!  ro   r  rO   r-  methodr$  r5  r  )r5   r6   r0   
percentiler  rX  r  s     r;   rl   TestPercentile.test_basic  s    IIaL3R]]1a("-R]]1c*C0R]]1b)40vv!R]]1a("&&1R]]1a	:BFFCR]]1a?HMM!Q~"$,,q/3FF	
r=   c           	         [        S5       Vs/ s H  n[        US5      PM     nn[        R                  " U[        S5      5      n[	        U[        S5      5        [	        [        U5      [        5        [        R                  " U[        S5      5      n[	        U[        SS5      5        [	        [        U5      [        5        [        R                  " U[        S5      5      n[	        U[        SS5      5        [	        [        U5      [        5        [        R                  " U[        S5      /5      n[	        U[        R                  " [        SS5      /5      5        [	        [        U5      [        R                  5        g s  snf )Nrx   rM   r   r  rz   ro   rK   )re   r   r5   r7  r0   rX  r   rV  )rf   r   r  r  s       r;   test_fractionTestPercentile.test_fraction  s    %*1X.XXa^X.MM!Xa[)Q$T!Wh'MM!Xc]+QA'T!Wh'MM!Xb\*QA'T!Wh'MM!hrl^,Q(1a.!123T!Wbjj)! /s   Fc                     [         R                  " S5      n[         R                  " USS S S5        [         R                  " USS S SS5        [         R                  " S5      n[         R                  " USS USS5        g )NrX   Fr*  r  )r5   rd   r7  )rf   r  os      r;   test_apiTestPercentile.test_api)  s\    GGAJ
aD$.
aD$x8GGDM
aD!UH5r=   c                 N   [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        g N)y      ?      @y @      ?y?ffffff@Gr   r@  Dr   )r5   r   r1   r/  r7  rf   arr_cs     r;   r  TestPercentile.test_complex0  sk    =SIis;=SIis;=SIis;r=   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        [         R                  " USSS9/ SQ5        g )Nr   )rK   rK   rW   ro   r   r   )r5   r   r/   r7  r  s     r;   test_2DTestPercentile.test_2D8  s<    HHi	! "
 	2==BQ7Cr=   r   r8  c                 D   [         R                  " S[         R                  SSS/US9n[         R                  " USSS9n[         R                  R                  U[         R                  5        [         R                  R                  UR                  UR                  5        g )Nr       A@      D@      I@r   r*  r4  )r5   r*  r  r7  testingr0   r   )rf   r   r   r  s       r;   test_linear_nan_1D!TestPercentile.test_linear_nan_1D@  sp     jj$dD9Gmm 	

RVV,


		3995r=   r7  r6  functionquantiler  rL  input_dtypeexpected_dtype)r5  weightedr'  )
)r$  Fr  )r$  Tr  )r%  F     ;@)r&  Fr  )r'  Fr  )r(  FrV  )r)  F   )r*  Fr7  )r+  Fr  )r,  Fg      ;@c                    [         R                  " U5      n[         R                  " / SQUS9nU(       a  [         R                  " U5      OS n	U[         R                  L a6  U[         R
                  L a  U" S5      n[         R                  R                  n
O[         R                  R                  n
U" XX9S9nU
" XR                  U5      5        US;   a  US:X  aM  [         R                  R                  [         R                  " U5      R                  [         R                  5        g [         R                  R                  [         R                  " U5      R                  [         R                  " U5      5        g [         R                  R                  [         R                  " U5      R                  [         R                  " U5      5        g )N)r  g      4@rK  rL  rM  r   z0.4r6  )r$  r&  r6  )r5   r   r*  rX  r{  rR  rN  r-   assert_array_almost_equal_nulprX  r0   r2  )rf   rQ  rR  r5  rU  r'  rS  rT  r   r  test_functionr6  s               r;   test_linear_interpolation(TestPercentile.test_linear_interpolationS  s.   0 .1jj7{K'/",,s#T"--'2;;& 'u-JJ::MJJEEM#Hf11(;<<<c!

''

6(:(@(@"**M

''

6(:(@(@(*(=? JJ##BJJv$6$<$<$&HH^$<>r=   c           	          [        [        R                  " [        R                  " SUS9SSS9S5        [        [        R                  " [        R                  " SUS9SSS9S5        g )	Nr   r   ro   r.  r4  rK   r/  rX   r0   r5   r7  r6   rf   r   s     r;   test_lower_higher TestPercentile.test_lower_higher  sR    R]]299Ru#=r*1345	7R]]299Ru#=r*2456	8r=   c           	         [        [        R                  " [        R                  " SUS9SSS9S5        [        [        R                  " [        R                  " SUS9S-   S	SS9S
5        [        [        R                  " [        R                  " SUS9SSS9S5        [        [        R                  " [        R                  " SUS9S	SS9S
5        g )Nr   r   3   r0  r4  r>  rw  rO   ro   rX   r        @r^  r_  s     r;   test_midpointTestPercentile.test_midpoint  s    R]]299Ru#=r*467:	<R]]299Qe#<q#@"*4678	:R]]299Ru#=r*467:	<R]]299Ru#=r*4678	:r=   c           	          [        [        R                  " [        R                  " SUS9SSS9S5        [        [        R                  " [        R                  " SUS9SSS9S5        g )	Nr   r   rc  r-  r4  rX   1   rK   r^  r_  s     r;   test_nearestTestPercentile.test_nearest  sR    R]]299Ru#=r*3567	9R]]299Ru#=r*3567	9r=   c                 R   [         R                  R                  S5      n[         R                  " US5      n[         R                  R                  X!R                  5       5        [         R                  " US5      n[         R                  R                  X!R                  5       5        g )NrX   r  r   )r5   r  r'   r7  rN  r0   rD  r  )rf   r   r6  s      r;   'test_linear_interpolation_extrapolation6TestPercentile.test_linear_interpolation_extrapolation  sd    iinnQsC(


	2sA&


	2r=   c                     [         R                  " S5      S-  n[        [         R                  " U/ SQ5      / SQ5        g )Nrx   r@  )r   r  ro   )r   r!  r  )r5   r6   r0   r7  r  s     r;   test_sequenceTestPercentile.test_sequence  s)    IIaL3R]]1l3^Dr=   c           	      t   [         R                  " S5      R                  SS5      n[        [         R                  " US5      / SQ5        / SQ/ SQ/ SQ/n[        [         R                  " USS	S
9U5        / SQ/ SQ/ SQ/n[        [         R                  " USSS
9[         R
                  " U5      R                  5        [         R                  " S5      R                  SSSS5      n[        [         R                  " US5      R                  S5        [        [         R                  " US5      R                  S5        [        [         R                  " USS	S
9R                  S5        [        [         R                  " USSS
9R                  S5        [        [         R                  " USSS
9R                  S5        [        [         R                  " USSS
9R                  S5        [        [         R                  " USSS
9R                  S5        [        [         R                  " USSS9R                  S5        [        [         R                  " USSS9R                  S5        [        [         R                  " USS	SS9R                  S5        [        [         R                  " USSSS9R                  S5        [        [         R                  " USSSS9R                  S5        [        [         R                  " USSSS9R                  S5        [        [         R                  " USSSS9R                  S5        g )Nr?  rW   rK   )r  ro   r  )g      @rd  r  )rM   rW   rK   rX   r  )rx   rw  r   r  r   r   )      ?r  rW   )rD  rd  rz   )r   r  r  rO   r  rX   ry   r  ro   rY  )r  ro   r'  rc  )rM   rK   rX   ry   )rM   rW   rX   ry   rM   )rM   rW   rK   ry   )rW   rW   rX   ry   r/  r4  r   r5  )r5   r6   r{   r0   r7  r   rE  rA   )rf   r  r0r  s       r;   r9  TestPercentile.test_axis  sh   IIbM!!!Q'R]]1m46GHL.9R]]1m!<bAno>R]]1m!<bhhrlnnM IIm$,,Q1a8R]]1h/55t<R]]1l3994@R]]1hQ7==|LR]]1hQ7==|LR]]1hQ7==|LR]]1hQ7==|LMM!\288,	HR]]1h*2449E4	AR]]1l*2449E4	AR]]1hQ*2449E<	IR]]1hQ*2449E<	IR]]1hQ*2449E<	IR]]1hQ*2449E<	IR]]1l*2449E<	Ir=   c           	      b   [         R                  " S5      R                  SS5      n[        [         R                  " US5      S5        [        [         R                  " [         R                  " US5      5      5        [         R                  " / SQ5      n[        [         R                  " USSS9U5        [        [         R                  " USSS9R                  UR                  5        [         R                  " / S	Q5      n[        [         R                  " USS
S9U5        [        [         R                  " USS
S9R                  UR                  5        [         R                  " S
5      n[        [         R                  " USUS9S5        [        US5        [         R                  " S5      n[        [         R                  " USSUS9U5        [        XB5        [         R                  " S5      n[        [         R                  " USS
US9U5        [        XC5        [         R                  " S5      R                  SS5      n[        [         R                  " USSS9S5        [        [         R                  " [         R                  " US5      5      5        [         R                  " / SQ5      n[         R                  " USSSS9n[        XR5        [        UR                  UR                  5        [         R                  " / SQ5      n[         R                  " USSS
S9n[        Xc5        [        UR                  UR                  5        [         R                  " SUR                  S9n[         R                  " USSUS9n[        US5        [        US5        [         R                  " SUR                  S9n[         R                  " USSSUS9n[        Xr5        [        XB5        [         R                  " SUR                  S9n[         R                  " USSS
US9n[        Xs5        [        XC5        g )Nr?  rW   rK   ro   rd  r  r  r+  rB  r   r   r  rd  r  rO   r&  r   r&  r.  r4  r  )r5  r   )r  r  rC  r   r   r5  r&  rX   r5  r   r&  )r5   r6   r{   r0   r7  r+   isscalarr   rA   r-   emptyr   )rf   r  ru  r  r&  c0c1r   s           r;   test_scalar_qTestPercentile.test_scalar_q  s   IIbM!!!Q'R]]1b)3/BMM!R012XX&'R]]1bq126R]]1bq177BXXo&BMM!Ra8"=R]]1bq177BhhqkR]]1bc2C8S#hhqkR]]1bqc:B?ShhqkR]]1bqc:B?S IIbM!!!Q'R]]1b92>BMM!R012XX&']]1bq9RRXXrxx(XXl#]]1bq9B#RXXrxx(hhr)MM!RS9QS!hhq(MM!RaSAQShhq(MM!RaSAQSr=   c           
         [        [        [        R                  SS/SSS9  [        [        [        R                  S/S5        [        [        [        R                  S/S5        [        [        [        R                  S/[	        [        S5      5      S/-   5        [        [        [        R                  S/[	        [        S5      5      S	/-   5        g )
NrO   rM   8   r  r4  e   r_   ro   r/  )r1   rc   r5   r7  rB  re   r   s    r;   test_exceptionTestPercentile.test_exception  s    j"--!Q%	'j"--!c:j"--!b9j"--!d59o6MNj"--!d59o6NOr=   c                 J    [        [        R                  " / SQS5      S5        g )Nr   r   rO   )r0   r5   r7  r   s    r;   test_percentile_list#TestPercentile.test_percentile_list  s    R]]9a0!4r=   zpercentile, with_weightsFr$  r4  Tc           
         U(       a  [         O[        n[        R                  " / SQ5      n[        R                  " SUS9nSnU(       a  [        R
                  " U5      OS nU" XFXWS9nXL d   e[        U" XFUS9U5        [        R                  " / SQ/ SQ/5      n[        R                  " SUS9nU(       a  [        R
                  " U5      OS nU" XFSXWS	9nXL d   e[        U" XFUSS
9U5        [        R                  " SUS9nU" XFSXWS	9  [        U" XFUSS
9U5        [        R                  " S5      R                  SS5      nU(       a  [        R                  " / SQ/ SQ/5      n	O[        R                  " / SQ/ SQ/5      n	[        R                  " SUS9n
U(       a  [        R
                  " U5      OS n[        U" USSXS	9U	5        [        X5        [        R                  " / SQ/ SQ/5      n[        R                  " S5      n
[        [        R                  " USSU
S9U5        [        X5        [        R                  " / SQ/ SQ/5      n	[        R                  " SUR                  S9n
[        R                  " USSSU
S9n[        X5        [        X5        [        R                  " / SQ/ SQ/5      n[        R                  " SUR                  S9n
[        R                  " USSSU
S9n[        X5        [        X5        g )Nr   rc  r   )r&  r  r)  r   rU  r   )r   r&  r  r*  r%  rO   r?  rW   rK   ra  r  )r   r  r  r  rx  )rM   rK   rs  )rr  rD  r   ry  r  r{  r.  r}  )r   rK   rx   )rO   rX   rw  )r%  r  r5   r   r?   rX  r0   r6   r{   r  r7  r   )rf   r7  with_weights	out_dtyper  r4  r  r  r  ru  r&  r  r   s                r;   test_percentile_out"TestPercentile.test_percentile_out  s`    (CU	HHYHHT+%1",,q/tq4vvZg6:HHi! "HHV9-%1",,q/tq!<vvZgA>BHHV9-1aQ8ZgA>BIIbM!!!Q'<67B+-=>?BhhvY/%1",,q/tq(Er	
 	SXX)?;<hhvR]]1hQC@"ES XX|\23hhvQWW-MM!XgA3GQSXXy),-hhvQWW-MM!XgA3GQSr=   c           
         [         R                  " S5      R                  SSSS5      n[        [         R                  " USSS9R
                  S5        [        [         R                  " USSS9R
                  S	5        [        [         R                  " USSS9R
                  S
5        [        [         R                  " USSS9R
                  S5        [        [         R                  " USSS9R
                  S5        [        [         R                  " USSS9R
                  S
5        [        [         R                  " USSS9R
                  S	5        [        [         R                  " USSS9R
                  S5        [        [         R                  " USSSS9R
                  S
5        [        [         R                  " USSSS9R
                  S
5        [        [         R                  " [         R                  " USS/SS95      R
                  S5        [        [         R                  " [         R                  " USS/SS95      R
                  S5        [        [         R                  " [         R                  " USS/SS95      R
                  S5        [        [         R                  " [         R                  " USS/SS95      R
                  S5        g )Nr  r  rO   rM   ro   r   r   )rO   rM   rO   )r  rM   rO   )r  rO   rO   rW   )r  rO   rM   r_   rU   r[   r  r0  rt  r   )rM   rO   rM   rO   )rM   r  rM   rO   )rM   r  rO   rO   )rM   r  rO   rM   )r5   r6   r{   r/   r7  rA   r   rf   r  s     r;   test_percentile_empty_dim(TestPercentile.test_percentile_empty_dimH  s	   IIf%%b!Q22==BQ7==yI2==BQ7==zJ2==BQ7==zJ2==BQ7==zJ2==BR8>>
K2==BR8>>
K2==BR8>>
K2==BR8>>	J2==BQ0:<<AE%	' 	2==BR0:<<AE%	' 	288BMM!b"XA$FGMM'	)288BMM!b"XA$FGMM(	*288BMM!b"XA$FGMM(	*288BMM!b"XA$FGMM(	*r=   c                 J   [         R                  " / SQ5      n[         R                  " US/SS9  [        U[         R                  " / SQ5      5        [         R                  " / SQ5      n[         R                  " US/5        [        U[         R                  " / SQ5      5        g )NrM   rW   rK   rO   ro   Foverwrite_inputr5   r   r7  r0   rt   s     r;   test_percentile_no_overwrite+TestPercentile.test_percentile_no_overwrited  sf    HH\"
a"u5Q./HH\"
a"Q./r=   c           	         [         R                  " SSSS9n[         R                  " [         R                  " S5      USS9  [	        U[         R                  " SSSS95        [         R                  " SSSS9R                  5       n[         R                  " [         R                  " S5      USS9  [	        U[         R                  " SSSS9R                  5       5        g )Nr        Y@rX   )numr0  r4  )r5   r  r7  r6   r/   rU  )rf   r  s     r;   test_no_p_overwrite"TestPercentile.test_no_p_overwritem  s    KKDa(
biioq<1bkk"d:;KKDa(//1
biioq<1bkk"d:AACDr=   c                    [         R                  " / SQ5      n[         R                  " US/SS9n[        U[         R                  " S/5      5        [         R                  " / SQS/SS9n[        U[         R                  " S/5      5        g )Nr  ro   Tr  r  r  r   s      r;   test_percentile_overwrite(TestPercentile.test_percentile_overwriteu  s`    HH\"MM!bT48Q#(MM,dCQ#(r=   c                 r   [         R                  R                  SS9n[         R                  " U/S-  5      n[	        [         R
                  " USSS9[         R
                  " US5      5        [         R                  " USS5      n[	        [         R
                  " USS	S9[         R
                  " US5      5        UR                  SS
5      R                  5       n[	        [         R
                  " USSS9[         R
                  " US5      5        UR                  SS
5      R                  5       n[	        [         R
                  " USS/SS9[         R
                  " USS/S S95        [	        [         R
                  " USS/SS9[         R
                  " USS/SS95        [         R                  " S5      R                  S5      n[         R                  R                  UR                  5       5        [	        [         R
                  " USSS9S   [         R
                  " US S 2S S 2S S 2S4   R                  5       S5      5        [	        [         R
                  " USS/SS9S S 2S
4   [         R
                  " US S 2S S 2S
S S 24   R                  5       SS/5      5        [	        [         R
                  " USSS9S   [         R
                  " US S 2S S 2SS S 24   R                  5       S5      5        [	        [         R
                  " USSS9S   [         R
                  " USS S 2S S 2S S 24   R                  5       S5      5        [	        [         R
                  " USSS9S   [         R
                  " USS
S S 2S S 24   R                  5       S5      5        [	        [         R
                  " USSS9S   [         R
                  " USS S 2S S 2S
4   R                  5       S5      5        [	        [         R
                  " USSS9S   [         R
                  " USS S 2SS S 24   R                  5       S5      5        g )NG      r  r   r  r`   r   r_   r   rs   rO   rq   r  r  rN   r    rW   rX   rz   r  Z   rp  rW   rO   r  rM   rW   rO   rM   r%  rZ  rO   rU   rO   rW   rR   )r5   r  normaldstackr0   r7  moveaxisr   r   r6   r{   shuffleravelflattenrf   r=  r  r  s       r;   test_extended_axis!TestPercentile.test_extended_axis}  s4   II(+IIqcBhR]]1bv6a8LMKK2q!R]]1bx8"--2:NOJJq!!!#R]]1bw7q"9MNJJq!!!#R]]1r2hY?]]1r2hT:	<R]]1r2hT:]]1r2hQ7	9 IIn%--m<
		!'')$R]]1by9!<]]1Q1aZ=#8#8#:B?	AR]]1r2hY?1E]]1Q1aZ=#8#8#:RHE	GR]]1bz:1=]]1Q1aZ=#8#8#:B?	AR]]1by9!<]]1Q1aZ=#8#8#:B?	AR]]1bv6t<]]1Q1aZ=#8#8#:B?	AR]]1bw7=]]1Q1aZ=#8#8#:B?	AR]]1bv6t<]]1Q1aZ=#8#8#:B?	Ar=   c                    [         R                  " S5      n[        [        [         R                  USSS9  [        [        [         R                  USSS9  [        [        [         R                  USSS9  [        [        [         R                  USSS9  [        [
        [         R                  USSS9  [        [
        [         R                  US	SS9  [        [
        [         R                  US
SS9  g )Nr  r  r  )r   r\  r   r  rK   r   rK   rT   )r_   r_   )rW   r_   )r5   rd   r1   r&   r7  rc   r  s     r;   test_extended_axis_invalid)TestPercentile.test_extended_axis_invalid  s    GGM"ibAi2FiR@i"Ej"--2Fj"--RHj"--BGr=   c           	         [         R                  " S5      n[        [         R                  " USS SS9R                  S5        [        [         R                  " USSSS9R                  S5        [        [         R                  " USSSS9R                  S	5        [        [         R                  " USS
SS9R                  S5        [        [         R                  " USSSS9R                  S5        [        [         R                  " USSSS9R                  S5        [        [         R                  " USS/SSS9R                  S5        [        [         R                  " USS/SSS9R                  S5        g )Nr  rz   Tr  r   r`   rO   rO   rz   r  r   rO   rX   rz   rO   r  rW   rO   rz   r  ra  )r  rp  rO   rO   rz   rO   rO   )rM   rO   rO   rz   rO   )rM   rO   rX   rz   rO   )r5   rd   r0   r7  rA   r  s     r;   test_keepdimsTestPercentile.test_keepdims  s.   GGM"R]]1adTBHH!	#R]]1aftDJJ"	$R]]1aftDJJ!	#R]]1adTBHH"	$R]]1aEKK!	#R]]1ai$GMM!	# 	R]]1q!f9,0227%	JR]]1q!f6,0227%	Jr=   r\  rz   rO   r   NrO   r  r`   )r[   r_   argnames	argvaluesc                   ^^ [         R                  " S5      mUc  STR                  -  nO?[        UTR                  5      m[	        UU4S j[        TR                  5       5       5      n[         R                  " U5      U-   n[         R                  " U5      n[         R                  " TXSUS9nXTL d   e[        UR                  U5        g )Nr  r  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7frO   NrA   r  r   	axis_normr  s     r;   r  3TestPercentile.test_keepdims_out.<locals>.<genexpr>  &      L=J)^3]   #&Tr   r  r&  )
r5   rd   r   r%   r  re   rA   r  r7  r0   )rf   r\  r   	shape_outr&  rW  r  r  s         @@r;   test_keepdims_out TestPercentile.test_keepdims_out  s     GGM"<qvvI,T166:I L=B166]L LIHHQK)+	hhy!q!3G}}V\\9-r=   c           
      B   [         R                  " S5      n[         R                  " S5      n[        [         R                  " USSUS9U5        [        [         R                  " USSSUS9U5        [         R                  " S5      n[        [         R                  " USSUS9U5        [        [         R                  " USSSUS9U5        [         R                  " S	5      n[        [         R                  " US
US9U5        [        [         R                  " US
SUS9U5        g )NrK   r/  r   rz  r-  r|  rc  rO   r   rM   )r5   r?   rd   r0   r7  rf   r=  r  s      r;   test_outTestPercentile.test_out  s    HHTNGGFOR]]1a2A6R]]1a9!DaHHHTNR]]1a2A6R]]1a9!DaHHHRLR]]1aQ/3R]]1a	qA1Er=   zmethod, weighted))r*  F)r-  F)r$  F)r$  Tc                    U(       a  [         R                  " S5      US.nOSU0n[        R                  " SS9   [        R                  " SS[
        5        [         R                  " S5      n[         R                  " S5      n[         R                  US	'   [        [         R                  " US
S
4SU0UD6U5        [         R                  " S5      n[        [         R                  " USS4SU0UD6U5        [         R                  " S5      n[        [         R                  " US4SU0UD6U5        S S S 5        g ! , (       d  f       g = f)Nr/  r  r5  r5  Tr  r  rk  r  rZ  r   r&  rc  rO   r   )
r5   rd   r  r  filterwarningsr  r?   r  r0   r7  )rf   r5  rU  kwargsr=  r  s         r;   test_out_nanTestPercentile.test_out_nan  s     !#FCF'F$$D1##Hb.AAAffAdGq!Q@A@@!DAq!Q@A@@!DAq!==f=qA 211s   C6D99
Ec           	      
   [         R                  " S[        S9n[         R                  US'   [	        [         R
                  " US5      [         R                  5        [	        [         R
                  " USSS9[         R                  5        [	        [         R
                  " USS/SS9[         R                  " [         R                  /S-  5      5        [         R                  " S[        S9R                  SSS	5      n[         R                  US
'   [         R                  US'   [	        [         R
                  " US5      [         R                  5        [	        [         R
                  " US5      R                  S5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS5      n[         R                  US'   [         R                  US'   [	        [         R
                  " USS5      U5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS/S5      n[         R                  US S 2SS4'   [         R                  US S 2SS4'   [	        [         R
                  " USS/S5      U5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS5      n[         R                  US'   [         R                  US'   [	        [         R
                  " USS5      U5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS/S5      n[         R                  US S 2SS4'   [         R                  US S 2SS4'   [	        [         R
                  " USS/S5      U5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS5      n[         R                  US'   [         R                  US'   [	        [         R
                  " USS5      U5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS/S5      n[         R                  US S 2S4'   [         R                  US S 2S4'   [	        [         R
                  " USS/S5      U5        [         R
                  " [         R                  " S[        S9R                  SSS	5      SS/SSS9n[         R                  US S 2S4'   [         R                  US S 2S4'   [	        [         R
                  " USS/SSS9U5        g )Nr  r   rM   rz  r   r   333333?rW   rK   r   rO   rO   rM   r  rr   rO   r  rS   r-  r4  )	r5   r6   r  r  r0   r7  r   r{   r   r   s      r;   test_nan_behavior TestPercentile.test_nan_behavior  s   IIb&vv!R]]1c*BFF3R]]1c2BFF;R]]1sCjq9XXrvvhl+	- IIb&..q!Q7VV'
VV'
 	R]]1c*BFF3R]]1c*//3 MM"))Be4<<Q1EsAN&&$&&$R]]1c1-q1 MM"))Be4<<Q1E*a)VV!Q'
VV!Q'
R]]1sCj!4a8 MM"))Be4<<Q1EsAN&&$&&$R]]1c1-q1MMIIb&..q!Q7#sQHVV!Q'
VV!Q'
R]]1sCj!4a8 MMIIb&..q!Q7fFvv!vv!R]]1c62A6MM"))Be4<<Q1E*f.&&!Q$&&!Q$R]]1sCj&91=MM"))Be4<<Q1E*fY@&&!Q$&&!Q$R]]Sz6)567	9r=   c                 \   [         R                  " [        SS9   [        R                  " / SQ[        R
                  5        S S S 5        [         R                  " [        SS9   [        R                  " / SQ[        R
                  /5        S S S 5        [        R                  " SSS5      n[        R
                  US'   [         R                  " [        SS9   [        R                  " / SQU5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NzPercentiles must be inr   )rO   rM   rW   r  r  g     X@r  r   )r   r.  rc   r5   r7  r  r  )rf   r\  s     r;   
test_nan_qTestPercentile.test_nan_q8  s    ]]:-EFMM."&&1 G]]:-EFMM.266(3 GKKT2&vv!]]:-EFMM.!, GF GFFF GFs#   (C;#)DD;
D	
D
D+zm8[D]zM8[s]posr   r  r   c                 8   [         R                  " SSUS9nSX2'   [         R                  " US5      nUR                  U:X  d   e[         R                  " U5      (       d   e[         R                  " USS/5      nUR                  U:X  d   e[         R                  " U5      R                  5       (       d   e[         R                  " SSUS9R                  SS	5      nSX2S
4'   [         R                  " USSS9n[        [         R                  " U5      / SQ5        g Nr   r  r   NaTr  r  H   r_   rW   rO   r   rx  )r5   r6   r7  r   isnatr   r{   r/   rf   r   r  rg   r  s        r;   test_nat_basicTestPercentile.test_nat_basicC  s    
 IIa5)mmAr"yyE!!!xx}}}mmABx(yyE!!!xx}  """"IIau-55b!<q&	mmAr*288C=*>?r=   qtyper5  c                 >   U" S5      nU" S5      n[         R                  " SU5      nXES S& [         R                  " USUS9nXc:X  d   eUR                  UR                  :X  d   e[         R                  " USUS9nXd:X  d   eUR                  UR                  :X  d   eg )Nr   rO      N  ro   r4  c   )r5   r?   r7  r   )rf   r  r5  zeroonerg   r  s          r;   test_percentile_gh_29003'TestPercentile.test_percentile_gh_29003V  s     QxAhHHUE"'6
MM!R/yyww!''!!!MM!R/xxww!''!!!r=   c                 @   [        S5      n[        S5      n[        R                  " U/S-  5      nX#S S& [        R                  " US5      nXA:X  d   e[        R                  " U[        S5      5      nXA:X  d   e[        R                  " U5      R                  UR                  :X  d   e[        R                  " US5      nXB:X  d   e[        R                  " U[        S5      5      nXB:X  d   e[        R                  " U5      R                  UR                  :X  d   eg )Nr   rO   r  r  ro   r  )r   r5   r   r7  r   )rf   r  r  rg   r  s        r;   !test_percentile_gh_29003_Fraction0TestPercentile.test_percentile_gh_29003_Fractione  s    {qkHHdVe^$'6
MM!R yyMM!Xb\*yyxx{  AGG+++MM!R xxMM!Xb\*xxxx{  AGG+++r=   ro   r  c                     [         R                  " / SQ[         R                  S9n[         R                  " X2US9nUR                  [         R                  :X  d   eg NrO   rM   rW   rK   rX   r   r4  )r5   r   r1  r7  r   rf   r5  r\  rg   values        r;   test_q_weak_promotion$TestPercentile.test_q_weak_promotionx  s>     HH_BJJ7a62{{bjj(((r=   c                 v   [         R                  " / SQ[         R                  S9n[         R                  " U[         R                  " S5      US9nUR
                  [         R                  :X  d   e[         R                  " U[         R                  " S5      US9nUR
                  [         R                  :X  d   eg )Nr  r   ro   r4  )r5   r   r1  r7  r2  r   rf   r5  rg   r  s       r;   test_q_strong_promotion&TestPercentile.test_q_strong_promotion  sx    
 HH_BJJ7aB?{{bjj(((aB?{{bjj(((r=   r   N)9r   r   r   r   rl   r:  r>  r  rH  r   r   r   r5   r  rO  r2  r  r1  r{  r   H_F_TYPE_CODESrR  r7  r[  
TYPE_CODESr`  re  ri  rl  ro  r9  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  quantile_methodsr  r  r  interpolating_quantile_methodsr  r  r   )r  int_typer5   s   000r;   r2  r2    s8   
*&6<D [[Wbll7&;<6 =6 ')ll<&@&@(  ,&@JJ

3JJ

3JJ

3MM2==9HHSM2::6	88N [[j*5!{{C0!}}d356 [[m-=>O[[?
!"">" P6 ">H l+bll7.CCcIJ[[Wj18 28 [[Wj1: 2: [[Wj19 293E"IH.`P5 [["]]E"R]]>:DA	
11f*80E)A@	HJ( [[S1q!f+.[[
  	.	 /.F [[/ 2 BB$;9z	- [[Ww&89[[UK0@ 1 :@" [[Wrzz2::&>?[[X'78" 9 @" [[, ,$ [[X'EF[[S2t*-) . G)
 [[X'EF	) G	)ks   O9r2  c                   0   \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	\R                  S
   5      S 5       r\R                  R                  S\5      S 5       r\R                  R                  S\5      S 5       r\R*                  " \" \R.                  \R2                  " SSS9\R4                  " SSSSS9S9S9S 5       rS r\R                  R                  SSS/5      \R                  R                  S\5      \R                  R                  S/ SQ5      S 5       5       5       r\R                  R                  SSS/5      \R                  R                  S\5      \R                  R                  S/ SQ5      S 5       5       5       r\R                  R                  S\5      \R                  R                  S/ SQ5      S  5       5       r \R                  R                  S\5      \R                  R                  S/ S!Q5      S" 5       5       r!\R                  R                  S\5      S# 5       r"\R                  R                  S\5      S$ 5       r#S% r$\R                  R                  S\%" \&" \5      \&" \5      -
  5      5      S& 5       r'S' r(S( r)\R                  R                  SS)\RT                  S)S)/S)\RT                  S)\RT                  // S*Q\RV                  " S+5      RX                  /S,-  /5      \R                  R                  S-S.S//5      S0 5       5       r-\R                  R                  SS)\R\                  S)S)/S)\R\                  \R\                  S)//5      \R                  R                  S1S-/\/S.4\0\/4S/4/5      S2 5       5       r1S3 r2S4 r3\R                  R                  S\45      \R                  R                  S5S6S)/5      S7 5       5       r5\R                  R                  S\45      S8 5       r6S9r7g:);TestQuantilei  c                     X:  U-
  $ r4   r   )rf   r  r4  alphas       r;   r  TestQuantile.V  s    %r=   c                 x    / SQn[         R                  " US5      n[         R                  R                  USSS9  g )N)r  ry  r  g?g
ףp=
?rO   )maxulp)r5   rR  rN  assert_array_max_ulp)rf   r  rg   s      r;   test_max_ulpTestQuantile.test_max_ulp  s2    KK4  	

''4':r=   c                     [         R                  " S5      S-  n[        [         R                  " US5      S5        [        [         R                  " US5      S5        [        [         R                  " US5      S5        g )Nrx   r@  r   r  rO   r!  r  )r5   r6   r0   rR  r  s     r;   rl   TestQuantile.test_basic  sS    IIaL3R[[A&+R[[A&,R[[C($/r=   c                 l   [         R                  " S/5      n[         R                  " SS5      n[        X!S   5        [        [	        U5      UR
                  5        [         R                  " / SQ5      n[         R                  " X5      n[        X15        [        UR
                  UR
                  5        g )NTFr   )FTT)r5   r   rR  r0   rX  r   r/   )rf   rg   tf_quant	quant_ress       r;   test_correct_quantile_value(TestQuantile.test_correct_quantile_value  sw    HHdV;;tU+Xt$T(^QWW-HH()KK%	9(Y__agg.r=   c           	         [        S5       Vs/ s H  n[        US5      PM     nn[        R                  " US5      n[	        US5        [	        [        U5      [        5        [        R                  " US5      n[	        U[        SS5      5        [	        [        U5      [        5        [        R                  " US5      n[	        US5        [        U[        5      (       d   e[        R                  " U[        SS5      5      n[	        U[        SS5      5        [	        [        U5      [        5        [        R                  " U[        SS5      /5      n[	        U[        R                  " [        SS5      /5      5        [	        [        U5      [        R                  5        [        R                  " U[        SS5      //5      n[	        U[        R                  " [        SS5      //5      5        [	        [        U5      [        R                  5        [        R                  " S5      n[	        [        R                  " U[        SS5      5      [        SS5      5        g s  snf )	Nrx   rM   r   rO   rz   r@  r  rK   )re   r   r5   rR  r0   rX  r  r  r   rV  r6   )rf   r   r  r\  s       r;   r:  TestQuantile.test_fraction  s   %*1X.XXa^X.KK1QT!Wh'KK1QA'T!Wh'KK2Q!U####KK8Aq>*QA'T!Wh'KKHQN+,Q(1a.!123T!Wbjj)KKXa^,-.Q8Aq>"2!345T!Wbjj) IIaLR[[HQN3Xa^D7 /s   I c                 N   [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        [         R                  " / SQSS9n[        [        [         R                  US5        g rA  )r5   r   r1   r/  rR  rD  s     r;   r  TestQuantile.test_complex  sk    =SIieS9=SIieS9=SIieS9r=   c                 h   [         R                  " / SQ5      nUR                  5       n[         R                  " [         R                  " S5      USS9  [        X!5        UR                  5       nUR                  5       n[         R                  " [         R                  " S5      USS9  [        X!5        g )N)r   rr  r  r@  r  r  r0  r4  )r5   r   r   rR  r6   r/   rU  )rf   p0r  s      r;   r   TestQuantile.test_no_p_overwrite  sr    XX/0GGI
BIIdOQz:1!YY[HHJ
BIIdOQz:1!r=   r   r7  c                     [         R                  " [         R                  " SS/US9S/SS9nUR                  U:X  d   eg )NrO   rM   r   r@  r-  r4  )r5   rR  r   r   )rf   r   r  s      r;   test_quantile_preserve_int_type,TestQuantile.test_quantile_preserve_int_type  s:    kk"((Aq67#!*,yyE!!!r=   r5  c                     / SQn[         R                  " USS/US9n[        U[         R                  " SS/5      5        g )N)r   r  r?  r   rO   )r\  r5  r   r?  )r5   rR  r0   r   )rf   r5  r   rR  s       r;   test_q_zero_oneTestQuantile.test_q_zero_one  s6     ;;sq!fV<XrxxR12r=   c                 >   [         R                  " SSS5      n[         R                  " [         R                  " / SQ5      S-  X!S9n[	        [         R
                  " U5      U5        [         R                  " / SQX!S9n[	        [         R
                  " U5      U5        g )Nr   rO   r  )r   rO   rO   rM   rM   rW   rW   rK   rX   rX   rO   rO   rw  rw  rw  rx   rx   rz   r1  r4  )r  r  r   r  )r5   r  rR  r   r0   r  )rf   r5  r%  rR  s       r;   test_quantile_monotonic$TestQuantile.test_quantile_monotonic  sy    
 [[As#;;rxx )2  358 9:<MRWWX&1 ;;/CRWWX&1r=   rW   r&  )	min_value	max_valueFu <7u <7~)allow_infinity	allow_nanr0  r1  )r   rA   elements)r   c                     [         R                  " SSS5      n[         R                  " X5      n[        [         R                  " U5      U5        g )Nr   rO   g{Gz?)r5   r6   rR  r0   r  )rf   r   r%  rR  s       r;   test_quantile_monotonic_hypo)TestQuantile.test_quantile_monotonic_hypo  s7     YYq!T";;s'RWWX&1r=   c                 .   [         R                  " / SQ/ SQ/5      n[         R                  US   S'   [         R                  " US5      n[         R                  " U5      (       d   e[        [         R                  " US5      [         R                  5        g )N)r  rB  r  )r  r   r  r   rO   r@  )r5   r   r  rR  r~  r0   )rf   rg   r6  s      r;   test_quantile_scalar_nan%TestQuantile.test_quantile_scalar_nan  sd    HHm\23&&!QQ${{6""""R[[C("&&1r=   r  Tr  )ry  r@  ?c           
         U(       a   U[         ;  a  [        R                  " S5        [        R                  R                  S5      nSnUR	                  U5      nU(       a  UR                  SSUS9OS n[        R                  " XcX'S9nUS;   aD  [        R                  " [        R                  " U R                  XU5      5      5      S	U-  :  d   eg [        XS-  5      XS-  :X  a6  U(       d/  [        [        R                  " U R                  XU5      US
9SSS9  g [        [        R                  " U R                  XU5      US
9SSU-  [        R                  " USU-
  /5      -  S9  g )N Weights not supported by method.rs  f   r   r   r  r   r  r6  )r/  r1  r)  g+=)atolrO   )methods_supporting_weightsr   skipr5   r  r  r&  rR  r  r  r  r%  r,   r   r  )	rf   r  r5  r  r  r9   r4  r5  r  s	            r;   %test_quantile_identification_equation2TestQuantile.test_quantile_identification_equation  s    v%??KK:;ii##D)
 JJqM4;CLLQRaL0KK;[ 66"''$&&u"567#'AAA^qy(

466!.:AE BJJtvvaE':AFURWWeQY%788:r=   c           	      2   U(       a   U[         ;  a  [        R                  " S5        [        R                  R                  S5      nSnUR	                  U5      nU(       a  UR                  SSUS9OS n[        R                  " XcX'S9nSn	[        [        R                  " X-   X2US9X-   5        [        [        R                  " X-  X2US9X-  5        U(       a  g [        R                  " U* S	U-
  US
9* nUS:X  a}  XS-  [        XS-  5      :X  d*  [        R                  " XS-  5      [        XS-  5      S	-   :X  a   [        U[        R                  " XcSS
95        g [        U[        R                  " XcSS
95        g US:X  a  XS-  [        XS-  5      :X  a   [        U[        R                  " XcSS
95        g [        R                  " XS-  5      [        XS-  5      S	-   :X  a&  [        U[        R                  " XcS	U-  -   SS
95        g [        U[        R                  " XcSS
95        g US:X  a&  [        U[        R                  " XcS	U-  -   US
95        g US:X  aY  XS-  [        XS-  5      :X  a&  [        U[        R                  " XcS	U-  -   US
95        g [        U[        R                  " XcUS
95        g US:X  a   [        U[        R                  " XcSS
95        g US:X  a   [        U[        R                  " XcSS
95        g [        U[        R                  " XcUS
95        g )Nr?  rs  r@  r   r   rA  r6  g      +@rO   r4  r$  r/  r.  r&  r'  r-  )rC  r   rD  r5   r  r  r&  rR  r,   r%  round)
rf   r  r5  r  r  r9   r4  r5  r\  r   s
             r;   'test_quantile_add_and_multiply_constant4TestQuantile.test_quantile_add_and_multiply_constant0  sy    v%??KK:;ii##D)
 JJqM4;CLLQRaL0KK; 	AE5K	 	AE5K	 [[!QYv66^#	S^+88AI&#ai.1*<<2;;q#IJ2;;q#HI,,yC	N*2;;q#IJ!)$AI(::r{{1a!emHEG  2;;q#HI22Ar{{1a!emFKLy yC	N*2;;q!a%-#OP2;;q#GHwAr{{1HEFxAr{{1GDE Ar{{1FCDr=   c                 p   [         R                  R                  S5      nSnUR                  U5      n[         R                  " XRUS9n[         R                  " U5      n[         R                  " XRXS9n[        X5        S[         R                  " U5      -  n[         R                  " XRXS9n[        X5        g )Nrs  r@  r4  r6  g     @ @)r5   r  r  rR  rX  r,   )	rf   r5  r  r  r9   r4  r\  r5  qws	            r;   test_quantile_constant_weights+TestQuantile.test_quantile_constant_weightss  s     ii##D)
 JJqMKK0LLO[[&<BLLO#[[&<r=   )r   ry  r@  r=  rO   c                 :   [         R                  R                  S5      nSnUR                  U5      nUR                  SSU[         R                  S9n[         R
                  " XRXS9n[         R
                  " [         R                  " XV5      X!S9n[        Xx5        g )Nrs  r@  r   r   )r  r   r  r   r6  r4  )r5   r  r  r&  r  rR  r  r,   )	rf   r5  r  r  r9   r4  r5  rL  r\  s	            r;   "test_quantile_with_integer_weights/TestQuantile.test_quantile_with_integer_weights  sv     ii##D)
 JJqMLLQRarxxL@[[&<KK		!>r=   c                    [         R                  R                  S5      nUR                  S5      n[         R                  " UR                  S5      5      nSn[         R                  " X5XASS9n[         R
                  " SS9n[        S	5       H6  n[        S
5       H$  n	[         R                  " X8S S 2U	4   XQUS9XxU	4'   M&     M8     [        Xg5        / SQn[         R                  " X5XASS9n[         R
                  " SS9n[        S	5       H9  n[        S
5       H'  n	[         R                  " X8S S 2U	4   XQUS9US S 2X4'   M)     M;     [        Xg5        SS/SS/SS//n[         R                  " X5XASS9nUR                  S5      n[        Xg5        [         R                  " UR                  S5      5      nSn[         R                  " X5XASS9n[         R
                  " SS9n[        S	5       H=  n[        S
5       H+  n	[         R                  " X8S S 2U	4   XQXHS S 2U	4   S9XxU	4'   M-     M?     [        Xg5        [         R                  " X5XASS9n[         R                  " X5XAS S9n[        Xg5        [         R                  " X5XASS9n[         R
                  " SS9n[        S	5       H   n[         R                  " X8   XTU   US9Xx'   M"     [        Xg5        g )Nrs  )rM   r   rW   r   r@  rO   r  r5  r   r  r  rM   rW   r6  )r   ry  r  r  r0  rO   )ry   rM   rW   r   ry  r  r  r0  )rW   rM   rM   rW   rN   rr   rY  r  )	r5   r  r  r  rR  r?   re   r,   r{   )
rf   r5  r  r4  r5  r  r\  q_resr   r#  s
             r;   #test_quantile_with_weights_and_axis0TestQuantile.test_quantile_with_weights_and_axis  sk   ii##D) JJz"FF3::b>"KK!Cv&qA1X kkAgJad  
 	! +KK!Cy)qA1X!#AgJa"ag  
 	! SC:Qx0KK!Cl+! FF3::j)*KK!Cv&qA1X kkAgJa1ajd  
 	! KK!KAaTJ!KK!Ht$qA{{14!VLEH !r=   c                     / SQn[         R                  " S5      n[         R                  " USUSS9n[         R                  " USUSS9nXCS   :X  d   eXSS   :X  d   eg )	N)r   r   rO   rM   rW   r   ry   r   r$  r  rO   rM   rK   )r5   r6   rR  )rf   r5  r5  r4  y_miny_maxs         r;   test_quantile_weights_min_max*TestQuantile.test_quantile_weights_min_max  sZ     IIaLAq!NCAq!NC!}}!}}r=   c                     SS/nSS/n[         R                  " [        SS9   [        R                  " USUSS9  S S S 5        g ! , (       d  f       g = f)	NrO   rM   r  zWeights must be non-negativer   r@  r$  r  r   r.  rc   r5   rR  )rf   r4  r5  s      r;   -test_quantile_weights_raises_negative_weights:TestQuantile.test_quantile_weights_raises_negative_weights  sB    F1I]]:-KLKK3.A MLLs   A
Ac                     SS/nSS/nSn[         R                  " [        US9   [        R                  " USX1S9  S S S 5        g ! , (       d  f       g = f)NrO   rM   r@  z+Only method 'inverted_cdf' supports weightsr   r  r]  )rf   r5  r4  r5  ri  s        r;   0test_quantile_weights_raises_unsupported_methods=TestQuantile.test_quantile_weights_raises_unsupported_methods  sE    
 F!H;]]:S1KK39 211s   A
Ac           	      L   [        SS5      [        SS5      /n[        R                  " US/SS9n[        U[        R                  " [        SS5      5      5        [        R                  " U[        SS5      /SS9n[        U[        R                  " [        SS5      5      5        g )Nr   rO   r   r)  r4  rM   r  )r   r5   rR  r0   r   )rf   r   rR  s      r;   test_weibull_fraction"TestQuantile.test_weibull_fraction  sy    1~x2/;;sQE)<XrxxA78;;sXa^$4YGXrxxB89r=   c           	      .   SnSn/ SQn[        S[        R                  " USS X!S95        [        S[        R                  " USS X!S95        [        S[        R                  " USS	 X!S95        [        S[        R                  " USS
 X!S95        [        S[        R                  " USS X!S95        [        S[        R                  " USS X!S95        [        S[        R                  " USS X!S95        [        S	[        R                  " X2US95        g )Nr&  r@  )
rO   rM   rW   rK   rX   ry   rz   rx   rw  r   rM   r   rW   r4  rK   rX   ry   rz   rx   rw  )r0   r5   rR  )rf   rn  r\  r   s       r;   test_closest_observation%TestQuantile.test_closest_observation  s    !-QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC156r=   rO   r   r2  rK   dtyr_  r6  c           
      h   SnSn[         R                  " / SQ/S-  5      n[         R                  " US/S-  /US9n[        R                  " [        SS9   [         R
                  " S	S
9   [         R                  " XTXcSS9nS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr$  r@  r  rM   rK   r   z*Weights included NaN, inf or were all zeror   ignorer  rO   rS  )r5   r   r   r.  rc   r  rR  )rf   r  ri  rn  r\  r   wgtsrg   s           r;   test_inf_zeroes_err TestQuantile.test_inf_zeroes_err  s    
 hh~)*xx3%!),C8]]:CE
 *KKQG +E E
 +*E Es$   B#*BB#
B 	B##
B1errc                    SnSn[         R                  " / SQ/S-  5      n[         R                  " US/S-  /US9n[        R                  " U5         [         R                  " XeXtS9nS S S 5        g ! , (       d  f       g = f)Nr$  r@  r  rM   rK   r   r  )r5   r   r   r.  rR  )	rf   ro  ri  r  rn  r\  r   rl  rg   s	            r;   test_nan_errTestQuantile.test_nan_err  sf    
 hh~)*xx3%!),C8]]3CD;A  s   A11
A?c                 &   [         R                  " SS/[        S5      S9nU[        S5      :X  d   e[        U[        5      (       d   e[         R                  " SS/[        S5      S9nU[        SS5      :X  d   e[        U[        5      (       d   eg )NrO   rM   )r\  r@  rW   )r5   rR  r   r  )rf   r  s     r;   test_quantile_gh_29003_Fraction,TestQuantile.test_quantile_gh_29003_Fraction!  s~    KKA(1+.HQK!X&&&&KKA(2,/HQN"""!X&&&&r=   c                     [         R                  " S[         R                  S9nSn[         R                  " X5      nX2S-  :X  d   eUR                  [         R                  :X  d   eg )NiQ  r   g+?iP  )r5   r6   r  rR  r   )rf   rg   r\  r  s       r;   test_float16_gh_29003"TestQuantile.test_float16_gh_29003*  sO    IIfBJJ/A!F
"""{{bjj(((r=   r\  r@  c                     [         R                  " / SQ[         R                  S9n[         R                  " X2US9nUR                  [         R                  :X  d   eg r   )r5   r   r1  rR  r   r  s        r;   r  "TestQuantile.test_q_weak_promotion1  s>     HH_BJJ7A0{{bjj(((r=   c                 v   [         R                  " / SQ[         R                  S9n[         R                  " U[         R                  " S5      US9nUR
                  [         R                  :X  d   e[         R                  " U[         R                  " S5      US9nUR
                  [         R                  :X  d   eg )Nr  r   r@  r4  )r5   r   r1  rR  r2  r   r  s       r;   r  $TestQuantile.test_q_strong_promotion8  sx    
 HH_BJJ7Arzz#v>{{bjj(((Arzz#v>{{bjj(((r=   r   N)8r   r   r   r   r  r  rl   r  r:  r  r  r   r   r   r5   r  r(  r  r+  r.  
hypothesisgivenr   r2  str&  floatsr8  r;  rE  rI  rC  rM  rP  rU  rZ  r^  sortedsetra  rd  rg  r  finforD  rm  r  rc   r  rq  rt  rw  r  r  r  r   r   r=   r;   r  r    sU    ;0/E>:
" [[Wbll<&@A" B"
 [[X'783 93 [[X'782 92 RZZ[[1E "		%4:e!MNO
2O
2
2 [[Y6[[X'78[[Wo6 : 7 9 7 :D [[Y6[[X'78[[Wo6>E 7 9 7>E@ [[X'AB[[Wo6 7 C$ [[X'AB[[W&;< = C [[X'AB6" C6"p [[X'AB CB [[3'(3/I+JJK:	::7 [[YABFFArvv 6hhy!%%&*,- [[UT3K0H 1-H [[YABFFBFFA 679[[eU^$>:">!DEG<G9<') [[X'EF[[S3(+) , G)
 [[X'EF	) G	)r=   r  c                       \ rS rSr\R
                  " \R                  " SSSSS9\R                  " SSSSS9\R                  " SSSSS9\R                  " SSSSS9S9S	 5       r\R
                  " \R                  " SSSSS9\R                  " SSSSS9\R                  " SSSSS9S
9S 5       r	\R
                  " \R                  " SSSSS9\R                  " SSSSS9\R                  " SSSSS9S
9S 5       r
S rSrg)TestLerpiE  Fr   rO   )r5  r4  r0  r1  r2  r3  )t0t1rg   r   c                     [         R                  " X4U5      n[         R                  " X4U5      nX:X  d  X4:X  a  XV:X  d   eg X:  X4:  :X  a  XV::  d   eg XV:  d   eg r4   rE  _lerp)rf   r  r  rg   r   l0l1s          r;   +test_linear_interpolation_formula_monotonic4TestLerp.test_linear_interpolation_formula_monotonicF  sT     YYqR YYqR 8qv8O8g15!8O88O8r=   )trg   r   c                     X#::  a(  U[         R                  " X#U5      s=::  a  U::  d   e   eg U[         R                  " X#U5      s=::  a  U::  d   e   eg r4   r  )rf   r  rg   r   s       r;   )test_linear_interpolation_formula_bounded2TestLerp.test_linear_interpolation_formula_boundedX  sQ     6		!*/a/////		!*/a/////r=   c                     [         R                  " X#SSU-
  -
  5      n[         R                  " X2SU-
  5      n[        XE5        g r  )rE  r  r,   )rf   r  rg   r   r  r  s         r;   +test_linear_interpolation_formula_symmetric4TestLerp.test_linear_interpolation_formula_symmetricd  s8     yyqAE{+		!A&$r=   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[        R                  " XU5      S:X  d   eg )NrM   rX   ry  g@)r5   r   rE  r  )rf   rg   r   r  s       r;   +test_linear_interpolation_formula_0d_inputs4TestLerp.test_linear_interpolation_formula_0d_inputsp  sB    HHQKHHQKHHSMyyq!S(((r=   r   N)r   r   r   r   r}  r~  r  r  r  r  r  r  r   r   r=   r;   r  r  E  s=   U5-.!=U5-.!=		E%,2eE		E%,2eEFF 		E%,-<		E%,2eE		E%,2eE	F0F0 		E%,-<		E%,2eE		E%,2eE	F%F%)r=   r  c                      \ rS rSrS rS rS rS rS r\	R                  R                  S/ SQS	\R                  S
/\R                  S45      S 5       rS rS rS r\	R                  R%                  \SS9S 5       rS rS rS rS r\	R                  R                  S/ SQS9S 5       r\	R                  R                  SS/5      \	R                  R                  S/ SQ5      S 5       5       rS rg!)"
TestMedianiw  c                 l   [         R                  " S5      n[         R                  " S5      n[         R                  " S5      R                  SS5      n[	        [         R
                  " U5      S5        [        [         R
                  " U5      S5        [        [         R
                  " U5      S5        [        [         R
                  " USS9/ S	Q5        [	        [         R
                  " USS9SS
/5        [        [         R
                  " US S9S5        [         R                  " / SQ5      n[        US   US   -   S-  [         R
                  " U5      5        [         R                  " / SQ5      n[	        US   [         R
                  " U5      5        [         R                  " / SQ5      n[	        US   [         R
                  " U5      5        [	        [         R
                  " U5      R                  S5        [         R                  US'   [	        [         R
                  " U5      R                  S5        g )NrO   rM   ry   rW   r@  r  r   r   r  r  r!  rK   )6-¦?0?}r?g4?r   )r  r  r  )r  r  r  r_   )
r5   r   r6   r{   r0   medianr,   r-   r   r  )rf   a0a1r  rg   s        r;   rl   TestMedian.test_basicy  sh   XXa[YYq\YYq\!!!Q'RYYr]A&		"s+		"s+		"1-?RYYr*QF3		"40#6HH@AQqTAaD[B.		!=HH56QqT299Q<(HH56QrUBIIaL)RYYq\&&*vv!RYYq\&&*r=   c                    [         R                  " SS/SS/SS/SS//5      nU[         R                  R                  SS	S
S94 Hc  nUR	                  5       n[         R
                  " US S9  [        UR                  5       H  n[         R
                  " X$S9  M     [        X#5        Me     [        [         R
                  " USS9SS/5        [        [         R
                  " UR                  SS9SS/5        [        [         R
                  " U5      S5        [        [         R
                  " US S9S5        [        [         R
                  " UR                  5      S5        g )NrM   rW   r   rO   ry   rz   rK   rX   r  r,  r  r   r!  )r5   r   r  randintr   r  re   r   r/   r,   rE  )rf   a3rg   origr  s        r;   test_axis_keywordTestMedian.test_axis_keyword  s   XX1v1v1v1v   bii''3Y'?@A668DIIad#AFFm		!% $q' A 			"1-1v6		"$$Q/!Q8		"s+		"40#6		"$$-r=   c           	         [         R                  " SS/SS/SS/SS//5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      R                  SS5      n[	        [         R
                  " UR                  5       S	S
9S5        [	        [         R
                  " UR                  5       S	S
9S5        [	        [         R
                  " UR                  5       S	S
9S5        [	        [         R
                  " UR                  5       S	SS9/ SQ5        [	        [         R
                  " UR                  5       S	SS9SS/5        [	        [         R
                  " UR                  5       S	S S9S5        [	        [         R
                  " UR                  5       S	SS9SS/5        [	        [         R
                  " UR                  R                  5       S	SS9SS/5        [         R                  " S[         R                  S9R                  S5      n[         R                  R                  UR                  5       5        [	        [         R
                  " US S9[         R
                  " UR                  5       S S	S95        [	        [         R
                  " USS9[         R
                  " UR                  5       SS	S95        [	        [         R
                  " USS9[         R
                  " UR                  5       SS	S95        [	        [         R
                  " USS9[         R
                  " UR                  5       SS	S95        g )NrM   rW   r   rO   ry   rz   rK   rX   Tr  r@  r  )r  r   r  r  r   rV   r   )r   r  )r5   r   r6   r{   r,   r  r   rE  r1  r  r  r  )rf   r  r  r  r  a4s         r;   test_overwrite_keyword!TestMedian.test_overwrite_keyword  sU   XX1v1v1v1v   XXa[YYq\YYq\!!!Q'		"'')TBAF		"'')TBCH		"'')TBCHIIbggiA>	QIIbggiA>A	HIIbggiDA3	HIIbggiA>A	HIIbddiik4a@1a&	J YYy

3;;IF
		"((*%		"40		"'')$M	O		"1-		"'')!TJ	L		"1-		"'')!TJ	L		"1-		"'')!TJ	Lr=   c                     / SQn[        [        R                  " U5      S5        U/n[        [        R                  " U5      S5        [        [        R                  " USS9U5        g )Nr   rM   r   r   )r-   r5   r  r,   )rf   r  r  s      r;   rl  TestMedian.test_array_like  sG    BIIaL!,SBIIbM1-		"1-q1r=   c                      " S S[         R                  5      nU" / SQ5      n[        [         R                  " U5      S5        g )Nc                   (    \ rS rSrSS jrSS jrSrg),TestMedian.test_subclass.<locals>.MySubClassi  Nc                 \    [         R                  " U5      R                  U 5      nX#l        U$ r4   )r5   r*  rW  info)clsinput_arrayr  objs       r;   __new__4TestMedian.test_subclass.<locals>.MySubClass.__new__  s%    jj-2237
r=   c                     g)Nr   )rf   r   r   r&  s       r;   r  1TestMedian.test_subclass.<locals>.MySubClass.mean  s    r=   r   r4   )NNN)r   r   r   r   r  r  r   r   r=   r;   
MySubClassr    s    
r=   r  r   r  )r5   rV  r0   r  )rf   r  rg   s      r;   r  TestMedian.test_subclass  s0    	 	 y!RYYq\2&r=   r   r  r  r  r  c                      " S S[         R                  5      n[         R                  " [         R                  " U5      R	                  U5      5      n[        X25      (       d   eg)z6Check that we return subclasses, even if a NaN scalar.c                       \ rS rSrSrg)-TestMedian.test_subclass2.<locals>.MySubclassi  r   NrS  r   r=   r;   
MySubclassr    rU  r=   r  N)r5   rV  r  r   rW  r  )rf   r   r  rn  s       r;   test_subclass2TestMedian.test_subclass2  sF    	 	 IIbhhsm((45!((((r=   c                 p   [         R                  " S5      n[         R                  " S5      n[        [         R                  " USUS9U5        [         R                  " S5      n[        [         R                  " USUS9U5        [         R                  " S5      n[        [         R                  " X!S9U5        g )Nr  r/  r   rz  rc  rO   r   )r5   r?   rd   r0   r  r  s      r;   r  TestMedian.test_out  sw    HHTNGGFORYYq!+Q/HHTNRYYq!+Q/HHRLRYYq(!,r=   c           	      *   [         R                  " SS9   [         R                  " SS[        5        [        R
                  " S5      n[        R                  " S5      n[        R                  US'   [        [        R                  " USUS	9U5        [        R
                  " S
5      n[        [        R                  " USUS	9U5        [        R
                  " S5      n[        [        R                  " X!S	9U5        S S S 5        g ! , (       d  f       g = f)NTr  r  rk  r  r/  rZ  r   rz  rc  rO   r   )
r  r  r  r  r5   r?   rd   r  r0   r  r  s      r;   r  TestMedian.test_out_nan  s    $$D1##Hb.AAAffAdG1aQ/3A1aQ/3A1,a0 211s   C&D
Dc                    [         R                  " S[        S9n[         R                  US'   [	        [         R
                  " U5      [         R                  5        [	        [         R
                  " USS9[         R                  5        [         R                  " S[        S9R                  SSS5      n[         R                  US'   [         R                  US	'   [	        [         R
                  " U5      [         R                  5        [	        [         R
                  " U5      R                  S5        [         R
                  " [         R                  " S[        S9R                  SSS5      S5      n[         R                  US
'   [         R                  US'   [	        [         R
                  " US5      U5        [         R
                  " [         R                  " S[        S9R                  SSS5      S5      n[         R                  US'   [         R                  US'   [	        [         R
                  " US5      U5        [         R
                  " [         R                  " S[        S9R                  SSS5      S5      n[         R                  US'   [         R                  US'   [	        [         R
                  " US5      U5        g )Nr  r   rM   r   r   rW   rK   r   r  r  rr   rO   r  rS   )r5   r6   r  r  r0   r  r{   r   r   s      r;   r  TestMedian.test_nan_behavior  s   IIb&vv!RYYq\266*RYYqq)2662IIb&..q!Q7VV'
VV'
 	RYYq\266*RYYq\&&* IIbii%088AqA1E&&$&&$RYYq!_a( IIbii%088AqA1E&&$&&$RYYq!_a( IIbii%088AqA6Jvv!vv!RYYq&)1-r=   zfp errors don't work correctlyr  c                    [         R                  " / [        S9n[        R                  " SS9 n[        R
                  " SS[        5        [        [         R                  " U5      [         R                  5        [        US   R                  [        L 5        [        [        U5      S5        S S S 5        [         R                  " / [        SS	9n[        R                  " SS9 n[        R
                  " SS[        5        [        [         R                  " U5      [         R                  5        [        US   R                  [        L 5        S S S 5        [         R                  " / [        SS	9n[        [         R                  " USS
9U5        [        [         R                  " USS
9U5        [         R                  " [         R                  [        SS	9n[        R                  " SS9 n[        R
                  " SS[        5        [        [         R                  " USS
9U5        [        US   R                  [        L 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nr   Tr  r  rk  r   rM   rW   )r   r  r   rO   )r5   r   r  r  r  r  r  r0   r  r  r+   categoryr{  )rf   rg   r5  r   s       r;   r  TestMedian.test_empty  s    HHRu%$$D1Q##Hb.A1rvv.AaDMM^34Q#	 2 HHRuA.$$D1Q##Hb.A1rvv.AaDMM^34 2 HHRuA.RYYqq)1-RYYqq)1- HHRVV52$$D1Q##Hb.A11-q1AaDMM^34 21+ 21 21 21s&   A>I
"A)I'AI.

I
I+.
I<c           	      V   [         R                  " S5      n[        [        [         R                  " UR                  [        5      5      5      [        5        [         R                  US'   [        [        [         R                  " UR                  [        5      5      5      [        5        g )NrB  rM   )	r5   r6   r+   rX  r  r0  r   r  r  )rf   r=  s     r;   test_objectTestMedian.test_object5  s^    IIbMRYYqxx/0159vv!RYYqxx/0159r=   c                 F   [         R                  R                  SS9n[         R                  " U/S-  5      n[	        [         R
                  " USS9[         R
                  " U5      5        [         R                  " USS5      n[	        [         R
                  " USS9[         R
                  " U5      5        UR                  SS	5      R                  5       n[	        [         R
                  " US
S9[         R
                  " U5      5        [	        [         R
                  " USS9[         R
                  " US S95        [	        [         R
                  " USS9[         R
                  " USS95        [	        [         R
                  " USS9[         R
                  " USS95        [         R                  " S5      R                  S5      n[         R                  R                  UR                  5       5        [	        [         R
                  " USS9S   [         R
                  " US S 2S S 2S S 2S4   R                  5       5      5        [	        [         R
                  " USS9S	   [         R
                  " US S 2S S 2S	S S 24   R                  5       5      5        [	        [         R
                  " USS9S   [         R
                  " US S 2S S 2SS S 24   R                  5       5      5        [	        [         R
                  " USS9S   [         R
                  " USS S 2S S 2S S 24   R                  5       5      5        [	        [         R
                  " USS9S   [         R
                  " USS	S S 2S S 24   R                  5       5      5        [	        [         R
                  " USS9S   [         R
                  " USS S 2S S 2S	4   R                  5       5      5        [	        [         R
                  " USS9S   [         R
                  " USS S 2SS S 24   R                  5       5      5        g )Nr  r  r   r`   r   r_   r   rs   rO   rq   rN   r  ro  r  r  rp  r  rM   r  r%  rZ  r  r  rR   )r5   r  r  r  r0   r  r  r   r   r6   r{   r  r  r  r  s       r;   r  TestMedian.test_extended_axis;  s   II(+IIqcBhRYYqv.		!=KK2q!RYYqx0"))A,?JJq!!!#RYYqw/1>RYYqy1299QT3JKRYYqu-ryy/CDRYYqv.		!"0EFIIn%--m<
		!'')$RYYqy1!4YYqAq!}4467	9RYYqy1!4YYqAq!}4467	9RYYqz215YYqAq!}4467	9RYYqy1!4YYqAq!}4467	9RYYqv.t4YYqAq!}4467	9RYYqw/5YYqAq!}4467	9RYYqv.t4YYqAq!}4467	9r=   c                 \   [         R                  " S5      n[        [        [         R                  USS9  [        [        [         R                  USS9  [        [        [         R                  USS9  [        [        [         R                  USS9  [        [
        [         R                  USS9  g )Nr  r  r   r  rK   r  rT   )r5   rd   r1   r&   r  rc   r  s     r;   r  %TestMedian.test_extended_axis_invalidY  sj    GGM"iAB7iAG<iAA6iAF;j"))QV<r=   c                 (   [         R                  " S5      n[        [         R                  " US SS9R                  S5        [        [         R                  " USSS9R                  S5        [        [         R                  " USSS9R                  S5        [        [         R                  " US	SS9R                  S
5        [        [         R                  " USSS9R                  S5        [        [         R                  " USSS9R                  S5        g )Nr  Tr  r   r`   r  r   r  r  r  ra  rp  r  )r5   rd   r0   r  rA   r  s     r;   r  TestMedian.test_keepdimsa  s    GGM"RYYqtd;AA!	#RYYqv=CC"	$RYYqv=CC!	#RYYqtd;AA"	$RYYq|dCII!	#RYYqy4@FF!	#r=   r   r  r  c                 j  ^^ [         R                  " S5      mUc  STR                  -  nO?[        UTR                  5      m[	        UU4S j[        TR                  5       5       5      n[         R                  " U5      n[         R                  " TUSUS9nXCL d   e[        UR                  U5        g )Nr  r  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7fr  r  r  s     r;   r  /TestMedian.test_keepdims_out.<locals>.<genexpr>  r  r  Tr  )
r5   rd   r   r%   r  re   r  r  r0   rA   )rf   r   r  r&  rW  r  r  s        @@r;   r  TestMedian.test_keepdims_outp  s     GGM"<qvvI,T166:I L=B166]L LIhhy!14$C@}}V\\9-r=   r   zm8[s]r  r  c                 4   [         R                  " SSUS9nSX2'   [         R                  " U5      nUR                  U:X  d   e[         R                  " U5      (       d   e[         R
                  " USS/5      nUR                  U:X  d   e[         R                  " U5      R                  5       (       d   e[         R                  " SSUS9R                  SS	5      nSX2S
4'   [         R                  " USS9n[        [         R                  " U5      / SQ5        g r  )	r5   r6   r  r   r  r7  r   r{   r/   r  s        r;   test_nat_behaviorTestMedian.test_nat_behavior  s    
 IIa5)iilyyE!!!xx}}}mmABx(yyE!!!xx}  """"IIau-55b!<q&	ii"288C=*>?r=   r   N)r   r   r   r   rl   r  r  rl  r  r   r   r   r5   r  r  r  r  r  r  r)   r  r  r  r  r  r  r  r   r   r=   r;   r  r  w  s   +,.$LB2' [[U*R,<bffbIK)K)-
1.@ [[(HI5 J5::9<=# [[
  	.	. [[Wwi0[[UK0@ 1 1@r=   r  c                   b    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rSr	g)TestSortComplexi  ztype_in, type_out))lrC  )hr   )Hr   )r   r   )rC  r   )r  rB  c                     [         R                  " / SQUS9n[         R                  " U5      n[         R                  " U5      R	                  U5      n[        XE5        [        UR                  UR                  5        g )N)rX   rW   ry   rM   rO   r   )r5   r   sort_complexr  r0  r0   r   )rf   type_intype_outrg   r6  r'  s         r;   test_sort_realTestSortComplex.test_sort_real  sT     HH_G4#771:$$X.V&V\\8>>2r=   c                     [         R                  " / SQSS9n[         R                  " / SQSS9n[         R                  " U5      n[        X25        [        UR                  UR                  5        g )N)r        ?       r	  r  rC  r   )r	  r  r  r  )r5   r   r  r0   r   )rf   rg   r'  r6  s       r;   test_sort_complex!TestSortComplex.test_sort_complex  sL    HH5SA88<CH#V&V\\8>>2r=   r   N)
r   r   r   r   r   r   r   r  r  r   r   r=   r;   r  r    s0    [[0 3
 333r=   r  )r  )r  r  )rh  r  r}  r  r  	fractionsr   	functoolsr   r}  hypothesis.strategies
strategiesr  r   hypothesis.extra.numpyr   numpyr5   numpy.lib._function_base_impllib_function_base_implrE  r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   numpy._core.numericr%   numpy.exceptionsr&   numpy.randomr'   numpy.testingr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   halfsingler  r{  r  r<   rF   rH   r   r   r   r   r   r   r   r	  ru  r  r  r  r  r  r  r  r(  r*  r_  r  r  r  rw  r  r  r  r  r  r  r  r;  rS  rg  r}  r  r  r  r  r  r  rR  rq  r  r  r  rC  r2  r  r  r  r  r   r=   r;   <module>r     sK      
     "  )  + +                 B 5 &     WWbiiBMM:	I= I=Xd1 d1N: :": :$ "KL( M( 3  3FF4 F4R7$ 7$th0 h0V	; 	;	: 	:E E8 80E E(J J8:I< I<Xx> x>v}" }"@' '4OM OMd$" $"R!CC CCL- -`R8 R8j5 56 S2<<--W0EE j)i; i; *i;X;1 ;1|+5 +5\	D 	D' '"B& B&Jm7 m7`2 2j &q2 q2ha0 a0H|- |-~MA MA` "@  -- D
) D
)Nv) v)r/) /)da@ a@H	3 3r=   