
    (phh                       S SK r S SKrS SKrS SKrS SKJ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Jr  S SKrS SK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   S SK!J"s  J#r$  S SK%J&r&  S SK'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrG  S S	KHJIrI  S
 rJS rK " S S5      rL " S S5      rM " S S5      rN " S S5      rO " S S5      rP " S S5      rQ " S S5      rR " S S5      rS " S 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] " S0 S15      r^ " S2 S35      r_SqS4 jr`SrS5 jra " S6 S75      rb " S8 S95      rc " S: S;5      rd " S< S=5      re\R                  R                  S>S?\R                  S@   -   \R                  SA   -   5      \R                  R                  SB/ SCQ5       " SD SE5      5       5       ri " SF SG5      rj " SH SI5      rk " SJ SK5      rl " SL SM5      rm " SN SO5      rn " SP SQ5      ro " SR SS5      rp " ST SU5      rq " SV SW5      rr " SX SY5      rs " SZ S[5      rt " S\ S]5      ru " S^ S_5      rv " S` Sa5      rw/ SbQrx " Sc Sd5      ry " Se Sf5      rz " Sg Sh5      r{ " Si Sj5      r| " Sk Sl5      r} " Sm Sn5      r~ " So Sp5      rg)s    N)Fraction)arrays)partial)ma)assert_assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_raisesassert_allcloseIS_PYPYassert_warnsassert_raises_regexsuppress_warningsHAS_REFCOUNTIS_WASM)rand) add_newdoc_ufuncangleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanningi0insertinterpkaisermeshgridmsort	piecewiseplacerot90selectsetxor1dsinctrapz
trim_zerosunwrapunique	vectorize)normalize_axis_tuplec                 p    [         R                  " U 5      n[         R                  R                  X5      nU$ N)nparangeaddouter)ndatas     U/var/www/html/venv/lib/python3.13/site-packages/numpy/lib/tests/test_function_base.pyget_matr?      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
)r8   zeros	broadcastshapecomplex_realimag)rF   rG   rets      r>   _make_complexrI   %   s6    
 ((2<<+112;;
?CHHJr@   c                   &    \ rS rSrS rS rS rSrg)	TestRot900   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      rP   rP   r      rP   axesrP   rP   r   rP   rR   rR   )rR      rN      rP   r[   rR   r   rZ   r[   rN   rZ   rP   rR   r      )krX   r   rR   rR   r   r`   rT   )r   
ValueErrorr,   r8   onesranger   )selfab1b2b3b4r`   s          r>   
test_basicTestRot90.test_basic1   s   j%4j%)9Hj%eDj%eDj%)9G!f!f!f !f!f!f  r2q!Aq+ "r2q!Aq+ "r2q!Aq+ "q"aAq+ ! 	U5/e<a@U1.a2E0JKr@   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   (   rZ   )rr   rq   rZ   rV   rS   r   ra   rR   rP   rX   ra   )r8   rf   r   r,   rD   rh   ri   s     r>   	test_axesTestRot90.test_axesQ   sR    GGK U1X^^[1U15)5+@AU15)5+ABr@   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   rO   rP   rZ         r   rR   rN   r[   rb   rS   rc   rt   )rP   r   rd   )r8   r9   reshaper   r,   rg   )rh   ri   
a_rot90_01
a_rot90_12
a_rot90_20
a_rot90_10r`   s          r>   test_rotation_axesTestRot90.test_rotation_axesW   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zqSv>@ r@    N)__name__
__module____qualname____firstlineno__rn   rw   r   __static_attributes__r   r@   r>   rK   rK   0   s    L@C@r@   rK   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)TestFlipt   c                    [        [        R                  [        R                  [        R                  " S5      SS9  [        [        R                  [        R                  [        R                  " S5      SS9  [        [        R                  [        R                  [        R                  " S5      SS9  [        [        R                  [        R                  [        R                  " S5      SS9  g )NrN   rR   axisrN   rN   rP   r^   r   rZ   )r   r8   	AxisErrorfliprf   rh   s    r>   rw   TestFlip.test_axesv   sz    bllBGGRWWQZa@bllBGGRWWV_1EbllBGGRWWV_2FbllBGGRWWV_6Jr@   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 )NrN   ra   rR   rQ   rY   r]   r\   r?   r   r8   r   rh   ri   bs      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 )NrN   ra   r   rQ   rY   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   rR   rP   rZ   rN   r[   r{   r|   r8   arrayr   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   rP   rZ   rN   r[   r   )	r8   r9   r}   rg   ndimr   r   r    swapaxes)rh   ri   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rR   rP   rZ   rN   r[   r{   )r{   r[   rN   rZ   rP   rR   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   rR   rP   rZ   rN   r[   r{   r|   r   r   rV   rt   r   rh   ri   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   rw   r   r   r   r   r   r   r   r   r   r   r@   r>   r   r   t   s1    K'''''E$1r@   r   c                        \ rS rSrS rS rSrg)TestAny   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   rR   r   r   r   r   r   )rR   r   rR   r   )r   r8   anyrh   y1y2y3s       r>   rn   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   rR   r   rR   rR   r   r   r   rR   r   rR   rR   )r   r8   r   r	   rh   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   rn   r   r   r   r@   r>   r   r      s     :r@   r   c                        \ rS rSrS rS rSrg)TestAll   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   rR   rR   r   r   rR   rR   rR   rR   )r   r8   allr   r   s       r>   rn   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   rR   r   rR   rR   rR   r   r   rR   )r   r8   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   c                   &    \ rS rSrS rS rS rSrg)TestCopy   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 )NrR   rP   rZ   rN   
   )r   r   )r8   r   copyr	   r   )rh   ri   a_copys      r>   rn   TestCopy.test_basic   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 )NrR   rP   rZ   rN   Forder)r8   r   r   flagsc_contiguousf_contiguousr   )rh   ri   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 )Nr[   F)subokT)r   rf   r   isMaskedArrayr8   r   )rh   mxs     r>   
test_subokTestCopy.test_subok  sl    WWQZB$$RWWRu%=>>?  4!89:B$$RWWR[112r@   r   N)r   r   r   r   rn   r   r   r   r   r@   r>   r   r      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g)TestAveragei!  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   rb   rP   rc   rR   r[   )r8   r   r   r   rf   r
   meanr   )rh   r   r   r   y4y5s         r>   rn   TestAverage.test_basic#  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   )rZ   rN   rR         ?       @)rR   rP   r[   )rR   r{      r   )r         @r  rR   rZ   )r         @      #@rN   rN   rN   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  )r8   r   rD   r	   )
rh   xr   expected_avgr  expected_wavgexpected_wsumavgwavgwsums
             r>   test_basic_keepdimsTestAverage.test_basic_keepdims5  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                 T   [         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        / 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 )Nr   r  rP   r   r   r   rR   r   )r  r   )r   r  r  r   r         @)r   r   rP   r  r[   rP   rZ   rN   rZ   F)r  r   r  )r   r   r  Tr   r  )r8   r9   r   sumr
   r   r	   r   r   astypefloat32float64r   dtyperesult_typer}   )rh   ywactualdesiredr   w0w1w2r   w3r  s               r>   test_weightsTestAverage.test_weightsL  s   IIbMIIbM&99R=A%**,r1BIIbM4E4E4GGF,XXy),-Va0((<(F,a0((B8$F, #((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+r@   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   rR   r   rP   )r  r   r  )r   r   r   r   r   )r8   r   r   r   r	   )rh   r"  r  sclr&  r'  r(  s          r>   test_returnedTestAverage.test_returnedx  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        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>   subclassr2        r@   r4  rR   rP   rZ   rN   r  )r8   ndarrayr   viewr   typer   )rh   r4  ri   r#  s       r>   test_subclassesTestAverage.test_subclasses  s    	rzz 	HHqeQqE]#((2HHqeQqE]#((2T"**Q-((3T"**Q23X>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=  rR   rP   rZ   rN   r   r  )r8   r   r   r   r   )rh   typsatwtrtri   r#  s          r>   test_upcastingTestAverage.test_upcasting  sp    9JBB1Q%1b1A1Q%1b1A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   rR   r   r  )	r8   r   rg   decimalDecimalr  r
   r   r   )rh   r  ri   _r#  s        r>   test_object_dtypeTestAverage.test_object_dtype  s    HH%)<)Qgooa()<=HH%)<)Qgooa()<=	UUWAFF1Iwq'<= =<s    B>" Cc                     [         R                  " [        SS5      [        SS5      /5      n[        [         R                  " U5      [        SS5      5        g )NrR   r[   rZ   rP   )r8   r   r   r   r   rv   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   rn   pytestmarkparametrizer  r*  r.  r9  rD  rJ  rM  r   r   r@   r>   r   r   !  s    8$ [[F
TC5)dVcU	;j
!1&7a&?#i[
2	300"*,X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Srg)
TestSelect  r   r   r|   rz   	   )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 r7   )rg   lenzip)rh   condvaluesdefaultoutputm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^  rZ   )choices
conditionsr	   r-   rc  r   rZ  rh   rh  ri  s      r>   rn   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 )NTrW  rR      rN   rZ   rN   rZ   r   rg  rR   )	r8   r   r9   r}   r	   r-   rf   r   rD   rh   ri  rh  s      r>   test_broadcastingTestSelect.test_broadcasting  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              ?rR   rP   rZ   r[   r|   r   )r   r-   ri  rh  r   r8   rE   r  int8r   nanisnan)rh   choicerh  dr`  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                 ^    [        [        [        / / S5        [        [        [        / / 5        g )N              @)r   re   r-   r   s    r>   test_deprecated_empty TestSelect.test_deprecated_empty  s     j&"b"5j&"b1r@   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   )	rh  ri  r  r8   int_r   	TypeErrorr-   uint8rj  s      r>   test_non_bool_deprecation$TestSelect.test_non_bool_deprecation  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   rR   )r8   r   r-   rp  s      r>   test_many_argumentsTestSelect.test_many_arguments  s8    hhw'(3.
88QC=/C'z#r@   r   Nr   )r   r   r   r   r8   r   rh  ri  rc  rn   rq  rz  r~  r  r  r   r   r@   r>   rS  rS    s    xx	"xx	"xx	"$G ((01((/0((/02J)C
@2>$r@   rS  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)
TestInserti  c           
      z   / 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        [        R                  " SS9 n[        R                  " SS[        5        [        [        U[        R                  " S/S-  5      S
5      / SQ5        [        US   R                  [        L 5        S S S 5        g ! , (       d  f       g = f)Nr   r   rR   )rR   rR   rP   rZ   rZ   )rR   rP   rZ   rR   r   )rR   rR   rP   rZ   rP   rZ   )rR   ra   rZ   rV  )rR   rV  rP   rV  rZ   rV  ra   )rV  rR   rV  rP   rV  rZ   ra   rR   rZ   rU  )rR   rz   rP   r|   rZ   rV  r?  r   r   r   Trecordalways rN   )rR   rV  rV  rV  rV  rP   rZ   )r   r%   slicer8   r   r  warningscatch_warningsfilterwarningsFutureWarningr   category)rh   ri   r   r#  s       r>   rn   TestInsert.test_basic  sF   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&* $$D1Q##Hb-@q"((D6A:.24IKAaDMM]23	 211s   7A,F,,
F: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        [        [        R                  [        USUS S 2SS S 24   S	S9  [        [        R                  [        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   rO   r   rR   r   r   rP   )rR   rR   rP   rR   rZ   rN   r      r  ra   rX   )r   r%   r8   r   r9   repeatr}   concatenateTr   r   )rh   ri   rr   r   s        r>   test_multidimTestInsert.test_multidim  sB   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dGQ!A#Q7; IIbM!!),VAq!AaF)"5Aq!AaF)!4	6VAq!AqF)"5Aq!AqF)!4	6 	bllFAq!Aq!G*1EbllFAq!Aq!G*2F IIbM!!),VAq!Aq!G*26Aq!Aq!G*15	7VAq!Aq!G*26Aq!Aq!G*15	7r@   c                 D   [         R                  " S5      n[        R                  " [         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)NrR   rP   r   r   nonsense)r8   r   rO  raisesr   r%   r  rv   s     r>   test_0dTestInsert.test_0d,  sd    HHQK]]2<<(1b!!$ )]]9%1b!*- &% )(%%s   B *B 
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>.SubClassi4  r   Nr3  r   r@   r>   SubClassr  4  r5  r@   r  r   r   rR   rP   rX   ra   )	r8   r6  r9   r7  r   
isinstancer%   r  r   rh   r  ri   s      r>   test_subclassTestInsert.test_subclass3  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   rQ   rY   )r8   r   r%   r   rh   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))rR   ri   )rP   r   )rZ   r   )foor   )bara1r?  )rN   ry  r   rP   rZ   )r8   r   r%   r	   r   )rh   ri   valr   s       r>   test_structured_array TestInsert.test_structured_arrayE  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)NrQ   r   r   r      r?  )rO  r  
IndexErrorr8   r%   r   floatr   s    r>   test_index_floatsTestInsert.test_index_floatsO  ss    ]]:&IIi3*!5Bx@ ']]:&IIi"E!:B? '& '&&&s   3B+02B<+
B9<
C
idxrN   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 boundsmatchrQ   rZ   rN   )rO  r  r  r8   r%   )rh   r  s     r>   test_index_out_of_bounds#TestInsert.test_index_out_of_boundsU  s2    ]]:_=IIi#A/ >==s   A
Ar   N)r   r   r   r   rn   r  r  r  r  r  r  rO  rP  rQ  r  r   r   r@   r>   r  r    sQ    4((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rZ   rN   r[   r   r^   r        $@rZ   r        "@rN   r  r  rz   r   r   r   r   )r  r  r  rR   )r  r  r  )r   r8   amaxr   s      r>   rn   TestAmax.test_basic]  sW    &RWWQZ& 	RWWQQ')9:RWWQQ')9:r@   r   Nr   r   r   r   rn   r   r   r@   r>   r  r  [  s    ;r@   r  c                       \ rS rSrS rSrg)TestAminig  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   rR   )r   r  r   )r   r8   aminr   s      r>   rn   TestAmin.test_basici  sU    &RWWQZ& 	RWWQQ'9RWWQQ'9r@   r   Nr  r   r@   r>   r  r  g  s    :r@   r  c                       \ rS rSrS rSrg)TestPtpis  c                    [         R                  " / SQ5      n[        UR                  SS9S5        [         R                  " / SQ/ SQ/ SQ/5      n[        UR                  SS9/ SQ5        [        UR                  S	S9/ S
Q5        [        UR                  SSS9/ SQ/5        [        UR                  SSS9S//5        g )Nr  r   r         .@r  r  r  )r        @r  ra   )r  r  r  Tr  rb   r  )r8   r   r   ptpr   s      r>   rn   TestPtp.test_basicu  s    HH/0QUUU]D)HHm$#% & 	QUUU]O4QUUU^_5QUUDU1O3DEQUUU5w?r@   r   Nr  r   r@   r>   r  r  s  s    
@r@   r  c                       \ rS rSrS rSrg)
TestCumsumi  c           
      $   / 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                  " X#5      n[         R                  " / SQU5      n[        [         R                  " USS9U5        [         R                  " / SQ/ SQ/ S	Q/U5      n[        [         R                  " USS9U5        [         R                  " / S
Q/ SQ/ SQ/U5      n[        [         R                  " USS9U5        M     g )NrR   rP   r   r  r{   r[   rN   rR   rP   rZ   rN   r[   r{   r|   rV  r   rZ   rN   r[   )rR   rZ   r_   r     #   '   r   r   )r{   rz   r   r_   )   r        )rR   rZ   r{   r   )r[   r  r     )r   r_         rR   )r8   ru  r  int16uint16int32uint32r  r  	complex64
complex128r   r	   cumsum)rh   baba2ctyperi   a2tgts          r>   rn   TestCumsum.test_basic  s   $\=9ggrxx299bhhiiRZZmm%E #A#%B((5u=Cryy3S9((~/?@%ICryy!4c:((1ABEKCryy!4c:%r@   r   Nr  r   r@   r>   r  r    s    ;r@   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   rR   r   r    g  rq   $   T      ra   )r  b  X  )r8   r  r  r  r  r  r  r  r  r   r   ArithmeticErrorprodr   r	   rh   r  r  r  ri   r  s         r>   rn   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S rSrg)TestCumprodi  c           
         / SQn/ SQ/ SQ/ SQ/n[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  4 GHF  n[         R                  " X5      n[         R                  " X#5      nUS;   a`  [        [        [         R                  U5        [        [        [         R                  US5        [        [        [         R                  U5        M  [        [         R                  " USS9[         R                  " / S	QU5      5        [        [         R                  " US
S9[         R                  " / SQ/ SQ/ SQ/U5      5        [        [         R                  " USS9[         R                  " / SQ/ SQ/ SQ/U5      5        GMI     g )Nr  r  r  r  r  rR   ra   r   )rR   rP   r     i(  i  r  r   )r[   rm     r  r  )rR   rP   r{   r  )r[   r     r	  )r   r  r   r
  )r8   r  r  r  r  r  r  r  r  r   r   r  cumprodr	   r  s         r>   rn   TestCumprod.test_basic  sA   $\=9hh		288RYYjj"**bllBMMKE#A#%B
"orzz1=orzz2qAorzz1="2::ab#9#%88 -@AF$HI #2::bq#9#%88\-<->-@AF$HI #2::br#:#%88]-?-?-ABG$IJ!Kr@   r   Nr  r   r@   r>   r  r    s    Jr@   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)TestDiffi  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)rR   rN   r{   r|   rm  )rZ   rP   rR   r[   )ra   ra   rN   r   r[   rP   r<   rZ   )皙?皙@r   gɿ皙)r  g?g	皙?)TTFFrW  T)r8   r   r	   r   r
   )rh   r  outout2out3s        r>   rn   TestDiff.test_basic  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        [        [         R                  [        USS9  [        [         R                  [        USS9  [         R                  " S[         R                  5      n[        [        [        U5        g )N)r   r  r  rR   rP   )r      r  ra   )r   r     r   r   )rV  r  r  rX   rZ   r  gq?)
r8   rB   rf   r	   r   r   r   r   r  re   )rh   r  exps      r>   	test_axisTestDiff.test_axis  s    HH\"!QTT1*ggl#Aqt!tQJ47BHH\$:;4+RXXl-CD4?BHH[,AB4?C04+S1bllD!!4bllD!"5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  rR   ra   rP   r  r   r   )r<   r   )r   r	   r   )rh   r  out1r   r!  out4s         r>   r   TestDiff.test_nd  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  pE[        [        U5      [        R                  L 5        [        XT5        [        UR                  [        R                  5        [        [        U5      [!        S[        U5      U-
  5      5        M     g s  snf )NrZ   ra   r  rR   r[   r   start)listrg   r   re   r   r   	enumerater[  r8  r8   r6  r	   r   r   r  rZ  max)rh   r  r<   r_  expectedr  s         r>   test_nTestDiff.test_n  s    qNj$R0(-a41$q,4FQCR(Q!!""+C,A"KADI+,s-BGG,S3q#a&1*#56	 #L 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?  rR   timedelta64[D]r   rZ   r.  r  )
r8   r9   
datetime64r   extendr1  r   r	   r   r   )rh   r  r3  r<   r&  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 )NrR   rP   rZ   rN   r[   r{   r|   rz   rV  r   FTmaskr  )r   r   r   r	   r=   r>  r   r8  )rh   r  r  r!  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  [        [         R                  [        USSS9  g )Nr[   rR   r   )prependra   r{   rN   rP   )r   rA  rZ   rZ   rZ   )rA  r   )r8   r9   r	   r   rf   r  r}   r   re   rB   r   rh   r  resultr3  s       r>   test_prependTestDiff.test_prepend  se   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"''1bhhuoFbllD!QQ?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  [        [         R                  [        USSS9  g )Nr[   r   )append)rR   rR   rR   rR   r  rP   rN   rR   )r   rH  ra   r^   rX   rB  rZ   )rH  r   )	r8   r9   r   r	   r}   r   re   rB   r   rC  s       r>   test_appendTestDiff.test_append7  sC   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"''1RXXe_EbllD!AA>r@   r   N)r   r   r   r   rn   r'  r   r4  r:  r  rE  rI  r   r   r@   r>   r  r    s+    /&+ 	7
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)
TestDeleteiT  c                     [         R                  " S5      U l        [         R                  " S5      R                  S5      R	                  SSS5      U l        g )Nr[   rP   rR   )r8   r9   ri   r  r}   nd_ar   s    r>   setup_methodTestDelete.setup_methodV  s:    1IIaL''*221a;	r@   c                 <   [        U R                  U5      n[        U R                  USS9nSU-  n[        [	        X R                  U4   5      U R                  US9  [	        USS S 2S4   U R                  SUS4   5      n[        XPR                  SS S 2S4   US9  g )NrR   r   zDelete failed for obj: %r)err_msgr   )r   ri   rN  r	   r.   )rh   indicesa_delnd_a_delmsgxors         r>   _check_inverse_of_slicing$TestDelete._check_inverse_of_slicingZ  s    tvvw'$))W15)G38E66'(+<=tvv#&	(x!Q'1gq=)AB3		!Aq& 13?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)rX   r   rR   rP   rN   r[   )r^   ra   rR   rZ   )r  rX  )rh   limsstepsr/  stopstepss          r>   test_slicesTestDelete.test_slicesc  sD    &E!De40A2215 "  r@   c                    U R                  [        R                  " SS/SS//5      5        [        R                  " [
        5         [        U R                  S/5        S S S 5        [        R                  " [
        5         [        U R                  S/5        S S S 5        U R                  / SQ5        U R                  / SQ5        [        R                  " [        5         [        U R                  S5        S S S 5        [        R                  " [        5         [        U R                  S	5        S S S 5        [        R                  " [        5         [        U R                  S	/S
-  5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   rR   rP   r  i)r   ra   rP   rP   )TFFTFTFrN   )	rX  r8   r   rO  r  r  r   ri   re   r   s    r>   
test_fancyTestDelete.test_fancyl  s   &&rxx!Q!Q0@'AB]]:&466C5! ']]:&466D6" ' 	&&}5&&'HI ]]:&4664  ']]:&4665! ' ]]:&466E719% '&! '&&& '&&& '&s<   E6 F FF*F;6
F
F
F'*
F8;
G	c                 H    U R                  S5        U R                  S5        g )Nr   r  )rX  r   s    r>   test_singleTestDelete.test_single  s    &&q)&&r*r@   c                 @   [         R                  " S5      n[        R                  " [         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)NrR   r   r   r  )r8   r   rO  r  r   r   r  rv   s     r>   r  TestDelete.test_0d  s`    HHQK]]2<<(1bq! )]]9%1bz* &% )(%%s   A>)B>
B
Bc                     " S S[         R                  5      nU R                  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   Nr3  r   r@   r>   r  rm    r5  r@   r  r   rR   rP   rX   )r8   r6  ri   r7  r   r  r   r  r  s      r>   r  TestDelete.test_subclass  s    	rzz 	FFKK!
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   rP   r[   r   r   <   rR   r   )	r8   r9   r}   r   r  r   r   r   r   )rh   r`   r`  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)NrQ   r   r   r?  )rO  r  r  r8   r   r   r  r   s    r>   r  TestDelete.test_index_floats  sk    ]]:&IIi3*!56 ']]:&IIi"E!:; '& '&&&s   0B'-1B8'
B58
CindexerrR   c                    [        U R                  S5      n[        U R                  U5      n[        X#5        [        U R                  SSS9n[        U R                  [        R
                  " S/5      SS9n[        XE5        g )NrR   r   )r   ri   r   rN  r8   r   )rh   ru  	a_del_intrT  nd_a_del_intrU  s         r>   test_single_item_array!TestDelete.test_single_item_array  s`    4661%	tvvw'Y&dii3$))RXXqc];\,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)NrR   F)rZ   rR   r?  Tra   r   r   rP   zm8[ns])
r   r8   rf   r   r	   boolrO  r  r  object)rh   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%)ri   rN  N)r   r   r   r   rO  rX  ra  rd  rg  r  r  rq  r  rO  rP  rQ  r8   r   ry  r  r   r   r@   r>   rL  rL  T  sl    <@6&*++?A< [[Y1#(<=- >->r@   rL  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)TestGradienti  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 )NrR   rZ   rN   r   r   r   r   )r8   r   r	   r!   rh   vr  dxs       r>   rn   TestGradient.test_basic  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 )Nr[   )r   r   r  r        &@   r         ?rP   rR   r   z.*scalars or 1dra   )
r8   r  rf   r9   r}   r!   r   r   re   stack)rh   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dBHHbT!V"5q	: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  r[   rP   rR   rb   r   )	r8   r9   r}   r  rf   r   re   r!   r  )rh   r  r  s      r>   test_badargsTestGradient.test_badargs  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  i  r7  r8   r   r	   r!   r   r   rh   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 )NrR   rZ   rN   Fr=  r   r[   rP   
edge_order)FFTFF)r8   r   r   r!   r   r8  r   _maskr9   maskedr	   r>  )rh   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        [         R                  " [         R                  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   rR   r   rP   rZ   rN   r{   rz   r  gQ?T)	r8   linspaceabsr!   r   r   randomseedsort)rh   r  r  r"  
analytical	num_errors         r>   test_second_order_accurate'TestGradient.test_second_order_accurate  sN   
 KK1b!qTAaD[QJQ!V#a!e+aZ!a%'!+
FFBKK!<zIQNO	y4'(D01 			qGGBII$$R()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  )r{   rR   ra   rR   )r         ?r   r   r  r  r  )r   r  r   r   r  r   )      @r  r   r   r        )r  r   333333?r        ?r   )r  r   r  r  r  g      пrP   r   rb   )r   r  r   rc   )r8   r   tiler}   r9   r!   r	   r
   r  r   rD   )rh   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,-GGAu		"a 0088562 :EB =uE''">F''"A5I &'$6M8J#KJAr*EDAv!&:?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!&:?DA!%*>Dt*Q3Q1AaJGDii0AaJGD. $P  8%AFV%AF47DG,47DG,DG]__5DG_58%AFV%AF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  [        [         R                  [        USS	9  [        [         R                  [        USS	9  g )NrR   rZ   rN   r   r   r   r   r   r   ra   rc   rP   r^   )r8   r   r	   r!   r
   r   r  r   r  s       r>   test_specific_axesTestGradient.test_specific_axesk  sQ   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qE#Ir!uSy1	3 	i1a;bllHaa8bllHab9r@   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   rm  r  iA  ,  r7  r?  )rP   r|   r|   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?  )	r8   float16r  r  r   r   r!   r   r   )rh   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 )NrP   rR   r  rZ   r   )r!   r8   r9   r   re   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)r[   rN   rZ   rP   rR   r?  ra   r8   r   r!   r	   rZ  )rh   r  r  gs       r>   test_f_decreasing_unsigned_int+TestGradient.test_f_decreasing_unsigned_int  s1     HH_G4QK1rd3q6k*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 )NrR   rZ   ra   r?  rP   )r8   iinfor2  r   r!   r	   )rh   r  maxintr  r  dfdxs         r>   test_f_signed_int_big_jump'TestGradient.test_f_signed_int_big_jump  s`     '"&&HHaVHHb&\1~4A:!"3!4Q!67r@   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   rP   rN   rX   r  )rh   r  r  r  r  s        r>   test_x_decreasing_unsigned'TestGradient.test_x_decreasing_unsigned  s?     HHYg.HHY~4"c!f-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 )Nra   r?  rP   r   r  )r8   r  minr2  r   r!   r	   )rh   r  minintr  r  r  r  s          r>   test_x_signed_int_big_jump'TestGradient.test_x_signed_int_big_jump  sn     '"&&'"&&HHb&\1HHfk1%&~4#s,r@   c                     [         R                  " SS/SS/45      n[         R                  " 5       (       a  [        U5      [        L d   eg [        U5      [
        L d   eg )NrR   rP   rZ   )r8   r!   _using_numpy2_behaviorr8  tupler0  rh   r~  s     r>   test_return_typeTestGradient.test_return_type  sP    kkAq6Aq6*+$$&&9%%%9$$$r@   r   N)!r   r   r   r   rn   r  r  r  r  r  r  r  r  r  r  rO  rP  rQ  r8   r  r  r  uint64r  ru  r  r  int64r  r  r  r  r   r   r@   r>   r  r    sQ   ,:2? 
8H2(>6@:4	8>
H [[Y299)+BII)? @+@+
 [[Y"(()+288)= >8>8 [[Y299)+BII)? @.@. [[Y"(()+288)= >->-%r@   r  c                        \ rS rSrS rS rSrg)	TestAnglei  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      ?      @rP   r   rt  rR   ra                      ?      y            @r   r   r   T)degr  r  )r8   sqrtr   arctanpir   r   )rh   r  r"  yozzos         r>   rn   TestAngle.test_basic  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  rR   rP         ?      ?r   r   r   )
r8   r   r   r  r  r  r   r   r8  r>  )rh   r  r3  r$  s       r>   r  TestAngle.test_subclass  s    EEKKBGGAJqLF$;<=uu||!55;;		) 4a3HIeellqT&\4>2V[[(--0V&r@   r   N)r   r   r   r   rn   r  r   r   r@   r>   r  r    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\R*                  R-                  S	\R
                  " / S
Q5      \R
                  " / SQ5      \R
                  " / SQ5      /5      S 5       rS rS rSrg)TestTrimZerosi  )r   r   rR   r   rP   rZ   rN   r   c                     ^  SnU 4S jU 5       $ )N)ri   r   r   ry  c              3   <   >#    U  H  n[        TU5      v   M     g 7fr7   )getattr).0namerh   s     r>   	<genexpr>'TestTrimZeros.values.<locals>.<genexpr>  s     ;
d##
s   r   )rh   
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 )NrP   ra   r8   s_r]  r1   r	   rh   slcarrr~  s       r>   rn   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 )Nra   r   trimr  r  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 )NrP   r   r  r  r  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]  r8   
zeros_liker   r1   rZ  )rh   _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  )r8   rB   r1   r	   rh   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 )NrR   rP   )r8   r  r1   r	   )rh   r  r  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)NrR   N)r8   r   r1   r	   r$  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 r7   )r1   ri   tolistr  r0  r  s     r>   test_list_to_listTestTrimZeros.test_list_to_list"  s)    )#t$$$$r@   r   N)r   r   r   r   r8   r   ri   r  r  r   complexr   r}  ry  r]  rn   r  r  r!  r%  rO  rP  rQ  r(  r+  r/  r   r   r@   r>   r  r    s    
)*A	A	A	A<..."%
 [[	-	 	-	 	-	 	"**
%
%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)rR   rZ   rP   rR   rP   rZ   rZ   rR   )rZ   rP   rP   rZ   rZ   )r8   r   r   r	   r   s      r>   rn   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   rR   )rR   rN   rZ   rP   r[   rz   r|   )r   rR   r   rR   r   rR   r   rP   rN   r{   )rR   rP   rZ   rN   r[   r{   r|   r|   rz   )rR   r   rR   r   rR   r   rR   rV  )rz   rP   rV  rN   rz   r{   rV  z!Cannot insert from an empty arrayc                  "   > [        T / SQ/ 5      $ )N)r   r   r   r   r   rR   r   )r+   ri   s   r>   <lambda>'TestExtins.test_place.<locals>.<lambda>=  s    E!-BB$Gr@   12349)
r   r  r+   r8   r   r	   rB   r9   r   re   rv   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	   )rh   ri   r>  acr   s        r>   	test_bothTestExtins.test_bothD  sE    H3wVVXDaqaq1!r@   r   N)r   r   r   r   rn   r?  rC  r   r   r@   r>   r3  r3  '  s    /
+,"r@   r3  c                 4    U[         R                  " U 5      -  $ r7   mathfloorr  r"  s     r>   _foo1rJ  P  s    TZZ]?r@   c                 :    U[         R                  " U 5      -  U-   $ r7   rF  )r  r"  r  s      r>   _foo2rL  T  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/g.)/TestVectorizeiX  c                 V    S n[        U5      nU" / SQ/ SQ5      n[        U/ SQ5        g )Nc                     X:  a  X-
  $ X-   $ r7   r   ri   r   s     r>   addsubtract.TestVectorize.test_simple.<locals>.addsubtract[      uuur@   r   rZ   r{   rV  rR   rZ   r[   r|   rR   r{   rR   rP   r4   r	   rh   rR  r  r  s       r>   test_simpleTestVectorize.test_simpleZ  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-   $ r7   r   rQ  s     r>   rR  .TestVectorize.test_scalar.<locals>.addsubtractf  rT  r@   rU  r[   )r[   rz   rR   rN   rX  rY  s       r>   test_scalarTestVectorize.test_scalare  s)    	 k"lA1l+r@   c                 r    [         R                  " SSS5      n[        S 5      nU" U5      n[        X15        g )Nr^   rP   i'  c                     U $ r7   r   r  s    r>   r:  *TestVectorize.test_large.<locals>.<lambda>r      r@   )r8   r  r4   r	   )rh   r  r  r"  s       r>   
test_largeTestVectorize.test_largep  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  rP   )r4   rG  cosr8   r   r  r   )rh   r  argsr1r2s        r>   
test_ufuncTestVectorize.test_ufuncv  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-   $ r7   r   rQ  s     r>   r  (TestVectorize.test_keywords.<locals>.foo  	    5Lr@   r   r  rP   rY   ro  r4   r8   r   r	   rh   r  r  rj  rk  rl  s         r>   test_keywordsTestVectorize.test_keywords}  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   r4   rJ  r  r8   r9   r	   rh   r  rk  rl  s       r>    test_keywords_with_otypes_order1.TestVectorize.test_keywords_with_otypes_order1  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 rx  r{  r|  s       r>    test_keywords_with_otypes_order2.TestVectorize.test_keywords_with_otypes_order2  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 )Nry  r   r   r"  r{  rh   r  rk  rl  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 )Nry  $@r  )r  ra   r  r4   rL  r  r   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 )	Nry  r  r  ra   )r  r  r"  rR   rP   rZ   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                 h    SS K n [        UR                  5        g ! [         a    [	        5       ef = fr  )r  r4   	randrange	ExceptionAssertionError)rh   r  s     r>   test_keywords_no_func_code(TestVectorize.test_keywords_no_func_code  s2     		#f&&' 	# ""	#s    1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 )NrR   c                 
    X-   $ r7   r   rQ  s     r>   r  5TestVectorize.test_keywords2_ticket_2100.<locals>.foo  rr  r@   r   r9  r  )r   ri   rP   r   rY   ro  rs  rt  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  )r0  pop)r  p_pr~  s       r>   	mypolyval;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyval  s;    aB&&)Cgq	) "Jr@   r  rR   )excludedrZ   r{   r   r   )r  r  )r  )r8   r4   r	   )rh   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@   rR   rP   rZ   rN   rQ  rz   rX  rh   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      $ r7   )r8   r  )r  s    r>   r  3TestVectorize.test_keywords5_ticket_2100.<locals>.f  s    771:r@   rR   rP   rZ   rN   rz   rX  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NrR   r   r   r@   r>   r  5TestVectorize.test_coverage1_ticket_2100.<locals>.foo      r@   rR   rX  rh   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   rc  s    r>   r  3TestVectorize.test_assigning_docstring.<locals>.foo	      Hr@   zProvided documentation)doc)r4   r   __doc__)rh   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  rP   c                     XR                   -  $ r7   r  rv   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  rV  rP   )r	   r4   r  r8   r9   )rh   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 $ r7   r   rc  s    r>   r:  @TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>#      r@   rZ   r  c                     U $ r7   r   rc  s    r>   r:  r  &  r  r@   )r4   r8   r9   r   )rh   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 $ r7   r   rc  s    r>   r:  7TestVectorize.test_string_ticket_1892.<locals>.<lambda>.      1r@   d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r8   r4   r   )rh   r  r`  s      r>   test_string_ticket_1892%TestVectorize.test_string_ticket_1892,  s#    LL%Q!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   rR   rP   r   )r  _callss    r>   r  #TestVectorize.test_cache.<locals>.f6  s    1INI6Mr@   Tr[   )r4   cacher8   r9   r	   r   rZ  )rh   r  r  r  s      @r>   
test_cacheTestVectorize.test_cache2  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 $ r7   r   rc  s    r>   r:  +TestVectorize.test_otypes.<locals>.<lambda>A  r  r@   r   r[   )r8   r4   rz  r9   r	   rh   r  r  s      r>   test_otypesTestVectorize.test_otypes@  s2    LL%IIaL1Q4#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)->()rc  r   z	(x,y)->()rI  z(x),(y)->()r  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r   )ri   r   r   )ry  )ry  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))r   nfb_parse_gufunc_signaturer   re   r   s    r>   test_parse_gufunc_signature)TestVectorize.test_parse_gufunc_signatureF  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-   $ r7   r   rQ  s     r>   rR  8TestVectorize.test_signature_simple.<locals>.addsubtracti  rT  r@   z	(),()->()	signaturerU  rV  rW  rX  rY  s       r>   test_signature_simple#TestVectorize.test_signature_simpleh  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       $ r7   r   r9  s    r>   r   4TestVectorize.test_signature_mean_last.<locals>.meant  s    668Or@   z(n)->()r  rR   rZ   rP   rN   rX  )rh   r   r  r  s       r>   test_signature_mean_last&TestVectorize.test_signature_mean_lasts  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       -
  $ r7   r  r9  s    r>   center3TestVectorize.test_signature_center.<locals>.center|  s    vvx<r@   (n)->(n)r  rR   rZ   rP   rN   ra   rX  )rh   r  r  r  s       r>   test_signature_center#TestVectorize.test_signature_center{  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$ r7   r   rc  s    r>   r:  :TestVectorize.test_signature_two_outputs.<locals>.<lambda>      r@   	()->(),()r  r   rP   r   rR   )r4   r   r  r  rZ  r	   rh   r  r  s      r>   test_signature_two_outputs(TestVectorize.test_signature_two_outputs  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)r  rR   rP   r   r7  r   r   )r4   r8   r;   r	   r  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 $ Nra   r   rc  s    r>   r:  <TestVectorize.test_signature_computed_size.<locals>.<lambda>  
    #2r@   z(n)->(m)r  r   rR   rP   r  rZ   rX  r  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-   $ r7   r   rQ  s     r>   r  2TestVectorize.test_signature_excluded.<locals>.foo  rr  r@   ()->()r   )r  r  r   r  r   r  ro  rX  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 $ r7   r   rc  s    r>   r:  5TestVectorize.test_signature_otypes.<locals>.<lambda>  re  r@   r  r  r  rz  r   )r4   r   r   r8   r	   r  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)r  zwrong number of positionalrR   rP   zdoes not have enough dimensions$inconsistent size for core dimensionr   r  )r4   operatorr:   r   r  re   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 $ r  r   rc  s    r>   r:  >TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r@   r  r  r(  r   c                     U $ r7   r   rc  s    r>   r:  r.    re  r@   r  zwrong number of outputsrR   c                     X 4$ r7   r   rc  s    r>   r:  r.    r  r@   r  rP   )r4   r   re   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 $ r7   r   rc  s    r>   r:  5TestVectorize.test_size_zero_output.<locals>.<lambda>  r  r@   r   r[   r?  rz  r   c                     U $ r7   r   rc  s    r>   r:  r5    r  r@   r  r  c                     U $ r7   r   rc  s    r>   r:  r5    r  r@   r$  c                     U $ r7   r   rc  s    r>   r:  r5    r  r@   r  c                     U $ r7   r   rc  s    r>   r:  r5    r  r@   c                     U /$ r7   r   rc  s    r>   r:  r5    s    A3r@   z()->(n)znew output dimensions)	r8   r4   rB   intr   re   rz  r	   r  r  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   Nr3  r   r@   r>   r4  r@    r5  r@   r4  )r   r   r   r  )r   r   r   r   )r  r  r  )r  r  r  z(m,m),(m)->(m)r  )r   r   r   )r  r  r  )r  r  r  c                 
    X-  $ r7   r   rI  s     r>   r:  /TestVectorize.test_subclasses.<locals>.<lambda>  s    r@   )r8   r6  r   r7  r4   matmulr   r8  )rh   r4  r`  r  matvecr  mults          r>   r9  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-   $ r7   r   rQ  s     r>   r  #TestVectorize.test_name.<locals>.f2   s	    5Lr@   r  )r8   r4   r   )rh   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-   $ r7   r   rQ  s     r>   rR  1TestVectorize.test_decorator.<locals>.addsubtract  s    uuur@   rU  rV  rW  rX  )rh   rR  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   rc  s    r>   r  'TestVectorize.test_docstring.<locals>.f  s	     Hr@   rP   rS  )r4   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-   $ r7   r   rI  s     r>   r  'TestVectorize.test_partial.<locals>.foo  rr  r@   rZ   rR   rN   )r   r8   r4   )rh   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 )Nr  r  r$  c                     U $ r7   r   rc  s    r>   r  8TestVectorize.test_signature_otypes_decorator.<locals>.f#  r  r@   r   r  )r4   r   r   r8   r	   r   r  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)NrZ   )pyfuncr   r  r8   r4   rh   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>.foo2  s    r@   rf  )rh   r  s     r>   test_no_keywordsTestVectorize.test_no_keywords0  s1    9%\\(# $ &%%s	   6
Ac                     [        S S/5      nU" S/5      n[        UR                  [        R                  " S5      5        g )Nc                     U $ r7   r   rc  s    r>   r:  ?TestVectorize.test_positional_regression_9477.<locals>.<lambda>:  r  r@   r  rP   )r4   r   r   r8   r  s      r>   test_positional_regression_9477-TestVectorize.test_positional_regression_94776  s4     {i[1qcFQWWbhhy12r@   r   N)0r   r   r   r   rZ  r_  rf  rm  ru  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*  r1  r<  r9  rJ  rO  rW  r]  rb  ri  ro  rt  r   r   r@   r>   rN  rN  X  s    	,	,!*##	#
#&	)##"=	:6#
%.	#($ 6D	,&2,8 09)6(#	,,!)3r@   rN  c                       \ rS rSr " S S5      r\R                  R                  \(       + SS9\R                  R                  SS\R                  4S/5      S	 5       5       rS
rg)	TestLeaksi?  c                   .    \ rS rSrSrS r\S 5       rSrg)TestLeaks.Ai@  r  c                     gr  r   rh   rj  s     r>   boundTestLeaks.A.boundC  r  r@   c                      gr  r   )rj  s    r>   unboundTestLeaks.A.unboundF  s    r@   r   N)	r   r   r   r   itersr|  staticmethodr  r   r   r@   r>   rh  ry  @  s     	 
	 
	r@   rh  Python lacks refcountsreasonz
name, incrr|  )r  r   c                    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   rR   r   r[   )gcr  rh  disablerU  getrefcountrg   r  r8   
frompyfuncr  r9   r   collectenable)	rh   r	  incrr  A_funcrefcountr   ri   r  s	            r>   test_frompyfunc_leaksTestLeaks.test_frompyfunc_leaksJ  s     	&


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

 0(;IIKBIIKs   C=D: :Er   N)r   r   r   r   rh  rO  rP  skipifr   rQ  r  r  r   r   r@   r>   rw  rw  ?  sf      [[L(1IJ[[\agg, 	 K
r@   rw  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)TestDigitizeih  c                     [         R                  " SS5      n[         R                  " SS5      n[        [        X5      [         R                  " S5      5        g )Nr[  r[   r  r  r8   r9   r	   r   rh   r  binss      r>   test_forwardTestDigitize.test_forwardj  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 )Nr[   r[  ra   r  r  r  r  s      r>   test_reverseTestDigitize.test_reverseo  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   r8   r  r  r2  r   r   r   )rh   r  bins      r>   test_randomTestDigitize.test_randomt  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)rR   r[   rN   r   rz   r  r   )rR   r[   r   )rR   rP   rR   rZ   rP   rZ   r   )r   rR   rR   rP   rP   rZ   r   T)r	   r   )rh   r  r  default_answerright_answers        r>   test_right_basicTestDigitize.test_right_basicy  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 )Nr[  r[   rN   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 )Nr[   r[  ra   rN   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)ra   r   rR   rP   r   F)r   rP   rZ   rZ   T)r   r   rP   rZ   r   )rZ   rP   r   r   )rZ   rZ   rP   r   r   )r   r   rN   rN   )r   r   r   rN   r   )rR   rR   r   rR   )r	   r   r   re   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)rR   rP   y      @      ?r   )r   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   Nr3  r   r@   r>   rh  r    r5  r@   rh  r[   rR   rZ   FT)r8   r6  r9   r7  r   r  r   )rh   rh  ri   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          rR   r   r8   r   r  s     r>   test_large_integers_increasing+TestDigitize.test_large_integers_increasing  s&    R[[UAEN3Q7r@   z8gh-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  rO  rP  xfailr  r   r   r@   r>   r  r  h  si    =
=
/
BC
C
7
5 498
 [[I  K8K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 )NrR   rP   r   r  )r	   r2   r8   r  r   r   r   r   r   s    r>   rZ  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 )NrR   i     periodrP   r     )r   K         r  )r   r  r  r  r  rT     )r   r  r  r  r  r     )r  discont)
r	   r2   r   r8   r   r   r   r   modr   )rh   
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   rZ  r  r   r   r@   r>   r  r    s    >5r@   r  r   O
AllIntegerFloatM)r   rR   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   r  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   r  rR   r   r         @rN   )r8   r   r#   r  r!  r   r   r    r	   rf   r
   r  rh   r   r  scalarr#  	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   r  rR   r   r   g(\@rN   )r8   r   r"   r  r!  r   r   r    r	   rf   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   r  rR   r   r   g^)@rN   )r8   r   r   r  r!  r   r   r    r	   rf   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   r  rR   r   r   g=
ףp=@rN   )r8   r   r   r  r!  r   r   r    r	   rf   r
   r  r  s         r>   test_blackmanTestFilterwindows.test_blackman  r  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   r  rR   r   r   rf  )r8   r   r'   r  r!  r   r   r    r	   rf   r
   r  r  s         r>   test_kaiserTestFilterwindows.test_kaiser2  s    !)"-61C<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 12r:r@   r   )r   r   r   r   strr;  r  r  r  r  r  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)	TestTrapziH  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   r  r  rP   )r  rR   r|   )r8   r9   r0   r&  r  r  r
   )rh   r  r  s      r>   rZ  TestTrapz.test_simpleJ  sS    IIc2r""&&qAv&RUU);;D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   rR   rZ   rP   rz   r_   ra   r   )r  r   )r8   r  	ones_liker  r0   r
   )rh   r  r"  r  wxwywzqqxqyqzr  s               r>   	test_ndimTestTrapz.test_ndimP  s   KK1a KK1a KK1b!\\!_!qt,
1

2!\\!_!qt,
1

2!\\!_!qt,
1

2!atmqa.4a<@Qd]##((a(0T1d]##((a(0T4]##((a(0 !D$'a0A"!aQ/A"!tAQ/A" !q!A"!q!A"!q!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 )Nr[   rP   r=  g      *@)r8   r9   r   r   r
   r0   )rh   r  r"  r>  ymr  xms          r>   r  TestTrapz.test_maskedu  s     IIaLEAvUU[[[&E"L!,UU[[[&E"M1-UU[[[&E!L!,r@   r   N)r   r   r   r   rZ  r  r  r   r   r@   r>   r  r  H  s    %##J-r@   r  c                        \ rS rSrS 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   rR   ra   r  r|   )r   r/   r8   r  r   r    rh   r#  s     r>   rZ  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/   r8   r   r0  r  r	   )rh   r  r   r   r   s        r>   test_array_likeTestSinc.test_array_like  sG    H"((1+$q']%(^2"2"r@   r   N)r   r   r   r   rZ  r  r   r   r@   r>   r  r    s    3#r@   r  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)	rN   rZ   rP   rR   rR   rP   rZ   rN   r   )r   rR   rP   rZ   rN   )rR   rR   rR   rR   rR   rR   )widgethamr  r  r  r  )r  r  r  r  )      @      @r        ?      $@r   r  )r  r  r  r   )r8   r   r   r   r3   r  s     r>   rZ  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   rZ  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                  R	                  U5        [        [        [         R                  R                  U5        [        [        [         R                  R                  U5        g )Nr   rR   rP   )r8   infrv  libasarray_chkfiniter   re   r   s       r>   rZ  TestCheckFinite.test_simple  sc    266N266N
  #j"&&":":A>j"&&":":A>r@   c                     / SQn[         R                  R                  US[         R                  S9n[	        UR
                  [         R                  :H  5        g )Nr   r   )r   r   )r8   r!  r"  r  r   r   rv   s     r>   test_dtype_order TestCheckFinite.test_dtype_order  s;    FF$$Qc$D2::%&r@   r   N)r   r   r   r   rZ  r%  r   r   r@   r>   r  r    s    ?'r@   r  c            	          \ 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S rS r\R&                  R)                  S\R*                  \R,                  \R.                  \R0                  /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/  r2  r   toBC,)r-  r0  r3  r5  r   @02v?)r.  r1  r4  r6  r7  r   c                 Z    [        [        R                  " / SQ/ SQ5      SS/SS//5        g )Nr   )rR   r   rR   r         )r
   r8   r   r   s    r>   test_non_arrayTestCorrCoef.test_non_array  s'    BKK	9= #Yr
3	5r@   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   rh  r
   r  r   r8   r   r  r  r  )rh   tgt1tgt2s      r>   rZ  TestCorrCoef.test_simple  sx    D)),rvvd|s*+,'D)),rvvd|s*+,r@   c           	      J   [        5        n[        R                  " S5        [        [        [
        U R                  SS9  UR                  [        5        [        [        U R                  SS9U R                  5        [        [        U R                  U R                  SS9U R                  5        [        [        U R                  SS9U R                  5        [        [        U R                  U R                  SS9U R                  5        S S S 5        g ! , (       d  f       g = f)Nr  ra   ddofrZ   )r   r  simplefilterr   DeprecationWarningr   rh  filterr
   r  r  r  rh   sups     r>   	test_ddofTestCorrCoef.test_ddof  s     C!!(++XtvvBGJJ)*b 9499Eb A499Ma 8$))Da @$))L !  s   D D
D"c           	         [        5        n[        R                  " S5        [        [        [
        U R                  U R                  SS5        [        [        [
        U R                  SS9  UR                  [        5        [        [        U R                  SS9U R                  5        S S S 5        g ! , (       d  f       g = f)Nr  rR   r   )bias)r   r  rC  r   rD  r   rh  r  rE  r
   r  rF  s     r>   	test_biasTestCorrCoef.test_bias  sx     C!!(++Xtvvtvvq!L+XtvvAFJJ)*a 8$))D !  s   BB22
C 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   rt  y               @r}  r   r  rt  )r8   r   r   r   r   r   r  )rh   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 rO  )r8   r   r   r   rh   r  r"  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NTr  r  r   rP   )
r  r  rC  RuntimeWarningr	   r   r8   r   rv  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   r9  )r8   errstater   r   r   r   r   r  )rh   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?  )rh  r  r   r   )rh   rb  cast_Ar~  s       r>   test_corrcoef_dtype TestCorrCoef.test_corrcoef_dtype	  s.    y)v/II%%%r@   r   N)r   r   r   r   r8   r   rh  r  r  r  r:  rZ  rH  rL  rQ  rU  rZ  r`  rO  rP  rQ  halfsingledouble
longdoublerf  r   r   r@   r>   r(  r(    s    
	-	-	,	.	/A 		,	-	,	.	/A 88	%	$	&	()D 88	I	I	K	M	J	J	LMD5-
ME,N
O* [[[277BIIryy"--*XY& Z&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\RB                  \RD                  \RF                  \RH                  /5      S 5       r%S r&g!)"TestCovi	  r   rP   rR   r   r9  )r   r   r   )ndmin)rR   rN   rR   r   r   皙?gٿrZ   r?  )r   r  r   gUUUUUU?gUUUUUU)g&S:?go_?g#~j?gZӼ?gQ|?c                 V    [        [        U R                  5      U R                  5        g r7   )r   r   x1r  r   s    r>   rn   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   rP  r   r  rt  rZ   aweights)r8   r   r   r   rf   )rh   r  r~  s      r>   rQ  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 rO  )r8   r   r   r   rT  s      r>   rU  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rX  )
r  r  rC  rY  r	   r   r8   r   rv  r}   r   s    r>   rZ  TestCov.test_empty*	  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  r[   rA  )
r  r  rC  rY  r	   r   rq  r8   r   r   r   s    r>   test_wrong_ddofTestCov.test_wrong_ddof3	  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   x3r8   r   rh   r"  s     r>   test_1D_rowvarTestCov.test_1D_rowvar:	  sO    DGGc$''%&@AHH=>DGGQTWWa)FGr@   c                 z    [        [        U R                  SS9[        R                  " U R                  SS95        g )NrR   rA  )r   r   r  r8   varr   s    r>   test_1D_varianceTestCov.test_1D_variance?	  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  rP   rZ   r?  rP   ra   rZ   )r   r   r  frequencies
x2_repeatsrq  r  unit_frequenciesr  r   r  r8   rf   r  RuntimeErrorre   )rh   nonintr  s      r>   test_fweightsTestCov.test_fweightsB	  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 )Nrt  r   r  rP   r9  rZ   )r   r   rq  r  r  unit_weightsr  r8   rf   r   r  re   r  s     r>   test_aweightsTestCov.test_aweightsR	  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  ru  r   rt  )r   r   r  r  r  r  rq  r  r  r  r  r  r   s    r>   test_unit_fweights_and_aweights'TestCov.test_unit_fweights_and_aweights^	  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@   rb  c                 n    U R                   R                  U5      n[        X!S9nXR                  :X  d   eg rd  )rq  r  r   r   )rh   rb  cast_x1r~  s       r>   test_cov_dtypeTestCov.test_cov_dtyper	  s.    ''..+'+II%%%r@   r   N)'r   r   r   r   r8   r   r  rq  r  r  r  r  r  rf   r  r  r  r  r  r  rn   rQ  rU  rZ  r|  r  r  r  r  r  rO  rP  rQ  rh  ri  rj  rk  r  r   r   r@   r>   rm  rm  	  s{   	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< 
<#( [[[277BIIryy"--*XY& Z&r@   rm  c                   &    \ rS rSrS rS rS rSrg)Test_I0iy	  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   ro  r   )r
   r$   r8   r   r   rD   r	   )rh   rh  r3  r  i0_0s        r>   rZ  Test_I0.test_simple{	  s   sGHH'(	*
 HHIJ88[\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 )NrN   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 $ r7   r   )rh   r  s     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   r9  s   r>   
array_liker  	  s    "#"7"7r@   r  )r8   r9   r  r  r$   r	   )rh   r  r&  r~  ri   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  )r8   r   rO  r  r  r$   )rh   ri   r~  s      r>   rQ  Test_I0.test_complex	  s9    HHa[!]]9,QRQ%C SRRs   A
Ar   N)r   r   r   r   rZ  r:  rQ  r   r   r@   r>   r  r  y	  s    88% 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 )
NrR   r   r   rP    oF?r[   )r  vT=?r   r  r  gg?)?YJ?r   r  r  )r   r8   isfiniter'   r
   r   r   s    r>   rZ  TestKaiser.test_simple	  s    F1cN+,F1cNHHRL	*F1cNHHj*%=>	@F1cNHH &> ?	@ 	F1g.HH &> ?	@r@   c                     [        SS5        g )NrZ   rN   )r'   r   s    r>   test_int_betaTestKaiser.test_int_beta	  s    q!r@   r   N)r   r   r   r   rZ  r  r   r   r@   r>   r  r  	  s    @r@   r  c                       \ rS rSrS rSrg)	TestMsorti	  c           
         [         R                  " / SQ/ SQ/ SQ/5      n[        R                  " [        SS9   [        [        U5      [         R                  " / SQ/ SQ/ SQ/5      5        S S S 5        g ! , (       d  f       g = f)	N)\?bCQ?הs?)w?kl?*dta?)ӯ?6H?ܘC?zmsort is deprecatedr  )r  r  r  )r  r  r  )r  r  r  )r8   r   rO  warnsrD  r
   r)   rg  s     r>   rZ  TestMsort.test_simple	  si    HH:::< = \\,4IJa>>>@ AB KJJs   3A55
Br   Nr  r   r@   r>   r  r  	  s    	Br@   r  c                   V    \ 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   rN   r[   r{   r|   r	  )r[   r[   r[   )r{   r{   r{   )r|   r|   r|   r(   r	   r8   r   rh   XYs      r>   rZ  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  )rh   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   )rP   rP   rP   rP   )rZ   rZ   rZ   rZ   rz   rV  r   rn  rZ   rN   )rN   rZ   rP   )rZ   rN   rP   notvalid)r(   r	   r8   r   r   rD   r   re   )rh   r  r"  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sparserN   r[   r{   r|   r  r  s      r>   test_sparseTestMeshgrid.test_sparse	  sK    )\$?1bhh	{341bhhaS1#s';<=r@   c                 6    [        [        [        / SQ/ SQSS9  g )Nr   r  r  )rS  )r   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   r  )r8   r9   r  r  r(   r   r   )rh   r  r"  r  r  s        r>   r  TestMeshgrid.test_return_type
  s     IIa2::.IIb"BJJ/{{1177"#177"# {{1T*177"#177"# {{1t,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@FT)r  r   r   rR   )r8   r   r(   r   )rh   r  r  r  r"  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   Nr   )r  r   s     r>   r
  -TestMeshgrid.test_nd_shape.<locals>.<genexpr>'
  s     %C{!qcAg{s   rR   r{   )rP   rR   rZ   rN   r[   )r8   r(   rg   r   rD   )rh   ri   r   r   ry  r  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   rR   rP   rY   r   r   rO   r8   r(   r   r   s       r>   test_nd_valuesTestMeshgrid.test_nd_values/
  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   rR   rP   rY   r  r  r   r   rO   r  r   s       r>   test_nd_indexingTestMeshgrid.test_nd_indexing5
  sV    ++qcAq69tDaQ)Y/01Q)Y/01Q)Y/01r@   r   N)r   r   r   r   rZ  r  r  r  r  r  r  r  r  r  r  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)TestPiecewisei<
  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   TFrR   c                     gr  r   rc  s    r>   r:  +TestPiecewise.test_simple.<locals>.<lambda>S
  s    r@   ra   z1 or 2 functions are expectedr   )r*   r	   r8   r   r   re   r  s     r>   rZ  TestPiecewise.test_simple>
  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 )NrR   rP   TFrZ   rN   r*   r	   r  s     r>   test_two_conditions!TestPiecewise.test_two_conditions[
  s3    q!fe}udm<q!fE1q!f%r@   c                 >    [        S/ SQ/ SQ5      n[        US5        g )NrZ   )TFF)rN   rP   r   rN   )r*   r   r  s     r>   $test_scalar_domains_three_conditions2TestPiecewise.test_scalar_domains_three_conditions_
  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 )NrR   rP   TFr   rZ   r  r  s     r>   test_defaultTestPiecewise.test_defaultc
  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 )
NrZ   rN   r   r[   TFrR   rX  r   )r8   r   r*   r   r   r	   rT  s      r>   r  TestPiecewise.test_0dl
  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 )
NrZ   rN   r   r[   r   rP   z2 or 3 functions are expectedrR   r   )r*   r   r	   r   re   rT  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 )NrZ   rR   rP   )r8   r   r*   r   )rh   r  r   r"  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   rP   r  )r9  r9  r9  )r   r   r   )r8   r   r*   r	   rT  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   Nr3  r   r@   r>   r4  r  
  r5  r@   r4  r  r   rN   )r9  r   r   )r9  r9  r   r   r   )r8   r6  r9   r7  r*   r   r8  )rh   r4  r  r  s       r>   r9  TestPiecewise.test_subclasses
  s[    	rzz 	IIbMx(aB$1}5T!Wh'Q./r@   r   N)r   r   r   r   rZ  r   r  r  r  r  r  r  r9  r   r   r@   r>   r  r  <
  s/    ;:&&!980r@   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\R                  R!                  \(       + SS9S 5       r\R                  R'                  SSS//S/5      S 5       rSrg)TestBincounti
  c                     [         R                  " [         R                  " S5      5      n[        U[         R                  " S5      5        g )NrN   )r8   bincountr9   r	   rf   r  s     r>   rZ  TestBincount.test_simple
  s*    KK		!%1bggaj)r@   c                     [         R                  " [         R                  " / SQ5      5      n[        U[         R                  " / SQ5      5        g )N)rR   r[   rP   rN   rR   )r   rP   rR   r   rR   rR   )r8   r  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 )NrN   )皙?333333?r  r  )r8   r9   r   r  r	   rh   r  r#  r"  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rR   rP   rN   r[   rP   r   r!  r  r  r   )r   r   r  r   r  r  r8   r   r  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   rR   r   rR   rR   rZ   	minlength)rP   rZ   r   r   r(  rT  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   rR   rR   rP   rP   rZ   rZ   rP   r,  )rR   rP   rP   rP   r   r(  rT  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'  rz   )r   r   r  r   r  r  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 rd  )r8   r   r;  r  r	   rT  s      r>   rZ  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?  r[   r,  )r8   r   r;  r  r	   rB   rT  s      r>   test_empty_with_minlength&TestBincount.test_empty_with_minlength
  s7    HHRs#KKQ'1bhhq45r@   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,  r8   r  rc  s   r>   r:  <TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
      BKKX$Fr@   zmust not be negativec                  .   > [         R                  " T SS9$ Nra   r,  r?  rc  s   r>   r:  r@  
      BKKR$@r@   r[   c                  .   > [         R                  " T SS9$ r=  r?  rc  s   r>   r:  r@  
  rA  r@   c                  .   > [         R                  " T SS9$ rC  r?  rc  s   r>   r:  r@  
  rD  r@   )r8   r   r;  r   r  re   r9   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   )	rU  r  r8   r   intprj  rg   r  r   )rh   intp_refcountdouble_refcountjs       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@   valsrP   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r7   )r8   asarrayr   re   r  )rh   rP  vals_arrs      r>   test_error_not_1dTestBincount.test_error_not_1d
  sW     ::d#:&KK! ':&KK '& '&&&s   A4B4
B
Br   N)r   r   r   r   rZ  r  r#  r)  r.  r1  r4  rZ  r9  rG  rO  rP  r  r   rN  rQ  rT  r   r   r@   r>   r  r  
  s    *<!D,6J!
6
B" [[L(1IJL KL [[V1vh]3 4r@   r  c                       \ rS rSrS rS rS rS rS r\	R                  " S 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  g )Nr   rR   rP   r  h  )r   re   r&   r   s    r>   test_exceptionsTestInterp.test_exceptions  sl    j&!R4j&!aS1a&9j&!aVaVAFj&!RC@j&!aS1a&Er@   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   rR   r[   rq   )r8   r  r
   r&   rh   r  r"  x0s       r>   rn   TestInterp.test_basic	  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 )NrR   r   r?  ra   r   r   left)r   rR   rR   rR   rP   right)rR   rR   rR   rP   )rb  rd  )r   rR   rR   rP   )	rg   r8   r9   rj  rf   r   r&   r  r   )
rh   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   rR   r[   r!  )r8   r  r
   r&   r  r  rv  r]  s       r>   test_scalar_interpolation_point*TestInterp.test_scalar_interpolation_point5  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rR   rP   r  rZ   rN   r  rR   rP   rN   )r8   r   r
   r&   rv  )rh   r  rf  fps       r>    test_non_finite_behavior_exact_x+TestInterp.test_non_finite_behavior_exact_xC  s    BFFABIIaR01a2KLBFFABIIaR01a2KLr@   c                 .    [         R                  " U 5      $ r7   )r8   float_rc  s    r>   r:  TestInterp.<lambda>L  s    "))A,r@   c                     [        U S5      $ r  rI   rc  s    r>   r:  rz  M      -1%r@   c                     [        SU 5      $ r  r|  rc  s    r>   r:  rz  N  r}  r@   c                 D    [        U [        R                  " U S5      5      $ )NrX   )rI   r8   multiplyrc  s    r>   r:  rz  O  s    -2;;q"#56r@   )rF   zcomplex-realzcomplex-imagzcomplex-both)paramsidsc                     UR                   $ )z'scale function used by the below tests )param)rh   requests     r>   scTestInterp.scK  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  rR   r   r   N)r   r8   r&   rv  rh   r  s     r>   test_non_finite_any_nan"TestInterp.test_non_finite_any_nanZ  s    RYYsRVV!$4bqb9I6JKRPRPVPVZXRYYs!RVV$4bqb9I6JKRPRPVPVZXRYYs!!$4b"&&b9I6JKRPRPVPVZXRYYs!!$4bq"&&9I6JKRPRPVPVZXr@   c           
         [        [        R                  " S[        R                  * [        R                  7/U" SS/5      5      U" [        R                  5      5        [        [        R                  " SSS/U" [        R                  * [        R                  7/5      5      U" [        R                  5      5        [        [        R                  " SSS/U" [        R                  7[        R                  * /5      5      U" [        R                  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   rR   Nr   r8   r&   r   rv  r  s     r>   test_non_finite_infTestInterp.test_non_finite_infa  s    RYYsbffWrvvg$6!";M8NOQSTVTZTZQ[\RYYs1A$6RVVGbffW;M8NOQSTVTZTZQ[\RYYs1A$6RVVGbffW;M8NOQSTVTZTZQ[\ 	RYYsbffWrvvg$6";M8NOQSTVQWXr@   c           
         [        [        R                  " S[        R                  * S/U" [        R                  * S/5      5      U" [        R                  5      5        [        [        R                  " S[        R                  * S/U" [        R                  7S/5      5      U" [        R                  5      5        [        [        R                  " S[        R                  * S/U" S[        R                  * /5      5      U" [        R                  5      5        [        [        R                  " S[        R                  * S/U" S[        R                  7/5      5      U" [        R                  5      5        [        [        R                  " SS[        R                  7/U" [        R                  * S/5      5      U" [        R                  5      5        [        [        R                  " SS[        R                  7/U" [        R                  7S/5      5      U" [        R                  5      5        [        [        R                  " SS[        R                  7/U" S[        R                  * /5      5      U" [        R                  5      5        [        [        R                  " SS[        R                  7/U" S[        R                  7/5      5      U" [        R                  5      5        g)z?Test that interp where both axes have a bound at inf gives nan r  rR   r   r   Nr  r  s     r>   test_non_finite_half_inf_xf&TestInterp.test_non_finite_half_inf_xfj  s   RYYsbffWA$6RVVG";M8NOQSTVTZTZQ[\RYYsbffWA$6RVVG";M8NOQSTVTZTZQ[\RYYsbffWA$6!bffW;M8NOQSTVTZTZQ[\RYYsbffWA$6!bffW;M8NOQSTVTZTZQ[\RYYs1rvvg$6RVVG";M8NOQSTVTZTZQ[\RYYs1rvvg$6RVVG";M8NOQSTVTZTZQ[\RYYs1rvvg$6!bffW;M8NOQSTVTZTZQ[\RYYs1rvvg$6!bffW;M8NOQSTVTZTZQ[\r@   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   rR   Nr   r8   r&   r   r  s     r>   test_non_finite_half_inf_x%TestInterp.test_non_finite_half_inf_xu  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   rR   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   rR   r[   rt  r!  ra          @      @ra  r   rc  rt  r         @      ?rN   y              ?iLiViG   r  r  r   im     iBi^  i)      @      ?y      $@       @      @      @y      @      @)y      @      ?r  y     !@      ?y      @      ?r  y      
@      
@y      @      @y      @      @rY  r  )r8   r  r
   r&   r   )	rh   r  r"  r^  y0rb  rd  rf  ru  s	            r>   test_complex_interpTestInterp.test_complex_interp  s&   KK1a KK1a AAq!(<$<d#BB1R4+BIIbQ/4BIIbQ:DABIIbQ<eDrvvq!bffTk2661-BIIaR0!44#(#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   rR   r[   r!  r  )rR   ra   rR   r  rN   r  r  )	r8   r  r   r
   r&   r   r   r  r  )rh   r  r"  r^  rf  ru  r$  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   )r8   r9   sinr
   r&   r  )rh   rf  ru  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  )r[   r   rZ   rN   )g      @r       !@g      @r   g      
@      @g      @rY  r  r   r   rP   ra   rb  )r
   r8   r&   r   r}   )rh   r  rf  ru  r"  s        r>   r  TestInterp.test_period  s~    4#6BIIaR<a@HHQc"**1b1HHQc"**1b1BIIaR<a@r@   r   N)r   r   r   r   rZ  rn   rn  rq  rv  rO  fixturer  r  r  r  r  r  r  r  r  r  r   r   r@   r>   rW  rW     s    F5$)L5M ^^%%6	


YY	]MRA80";
Ar@   rW  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/\5      \	R                  R                  SS// SQ5      S 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S 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S(9S) 5       5       r(S* r)S+ r*S, r+S- r,\	R                  R                  SS.S//5      \	R                  R                  S0/ S1Q5      S2 5       5       r-S3r.g4s  snnn f )5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        g )Nrz   r  r   r   r  r  rq   r  rR   nearestmethod)r8   r9   r   
percentilerv  r  s     r>   rn   TestPercentile.test_basic  s    IIaL3R]]1a("-R]]1c*C0R]]1b)40vv!R]]1a("&&1R]]1a	:BFFCr@   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 )Nrz   rP   r   r  r|   rq   rN   )rg   r   r8   r  r   r8  r   r6  )rh   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 )Nr[   Flinearro  )r8   rf   r  )rh   ry  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   )r8   r   r   r  r  rh   arr_cs     r>   rQ  TestPercentile.test_complex  sk    7sCis;7sCis;7sC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   )rN   rN   rZ   rq   r   r   )r8   r   r	   r  r  s     r>   test_2DTestPercentile.test_2D  s<    HHi	! "
 	2==BQ7Cr@   r   r  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  r  )r8   rR  NANr  testingr   r   )rh   r   r  r~  s       r>   test_linear_nan_1D!TestPercentile.test_linear_nan_1D  sp     jj$dD9Gmm 	

RVV,


		3995r@   r  r  input_dtypeexpected_dtyper  r3  )	)inverted_cdfr  )averaged_inverted_cdf     ;@)closest_observationr  )interpolated_inverted_cdfr  )hazenr  )weibull   )r  r%  )median_unbiasedr  )normal_unbiasedg      ;@c                 `   [         R                  " U5      n[         R                  " 5       S:X  a%  [         R                  " U[         R                  5      n[         R
                  " / SQUS9n[         R                  " USUS9n[         R                  R                  XdR                  U5      S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legacy)r  g      4@r  r  r  r?  r  r  r  )r  r  r  )r8   r   _get_promotion_statepromote_typesr  rR  r  r  r
   r8  r   )rh   r  r3  r  r  r  r$  s          r>   test_linear_interpolation(TestPercentile.test_linear_interpolation
  s   " .1""$0--nbjjINjj7{KsD8


&&''12	7 <<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?  rq   lowerr  rN   higherr[   r   r8   r  r9   rh   r   s     r>   test_lower_higher TestPercentile.test_lower_higher1  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   midpointr  r  rV  rR   rq   r[   r        @r  r  s     r>   test_midpointTestPercentile.test_midpoint8  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?  r  r  r  r[   1   rN   r  r  s     r>   test_nearestTestPercentile.test_nearestC  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 )Nr[   r  r   )r8   r  r   r  r  r   r2  r  )rh   r  r$  s      r>   'test_linear_interpolation_extrapolation6TestPercentile.test_linear_interpolation_extrapolationJ  sd    iinnQsC(


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


	2r@   c                     [         R                  " S5      S-  n[        [         R                  " U/ SQ5      / SQ5        g )Nrz   r  )r   r  rq   )r   r  r  )r8   r9   r   r  r  s     r>   test_sequenceTestPercentile.test_sequenceS  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 )Nrm  rZ   rN   )r  rq   r  )g      @r  r  )rP   rZ   rN   r[   r  )rz   rV  r   r  r   r   )      ?r  rZ   )      @r  r|   )r  r  r  rR   rY  r[   r{   r  rq   )rP   )r  rq   r  rZ   )rP   rN   r[   r{   )rP   rZ   r[   r{   rP   )rP   rZ   rN   r{   )rZ   rZ   r[   r{   r  r  r   r  )r8   r9   r}   r   r  r   r  rD   )rh   r  r0rk  s       r>   r'  TestPercentile.test_axisW  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 )Nrm  rZ   rN   rq   r  r  r  r  r  r   r   r  r  r  rR   r  r   r  r  r  r  )r  r   )r   r  r  r   r?  r  r  r[   r  r   r  )r8   r9   r}   r   r  r   isscalarr   rD   r
   emptyr   )rh   r  r  rk  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XX'(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(XXn%]]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 )
NrR   rP   8   r>  r  e   ra   rq   r  )r   re   r8   r  r0  rg   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   rR   )r   r8   r  r   s    r>   test_percentile_list#TestPercentile.test_percentile_list  s    R]]9a0!4r@   c           	         [         R                  " / SQ5      n[         R                  " S5      nSn[         R                  " XUS9  [	        [         R                  " X5      U5        [         R                  " / SQ/ SQ/5      n[         R                  " S5      n[         R                  " XSUS9  [	        [         R                  " XSS9U5        [         R                  " S	5      n[         R                  " XS
US9  [	        [         R                  " XS
S9U5        [         R
                  " S5      R                  SS5      n[         R                  " / SQ/ SQ/5      n[         R                  " S5      n[	        [         R                  " USSUS9U5        [	        XT5        [         R                  " / SQ/ SQ/5      n[         R                  " S5      n[	        [         R                  " USS
US9U5        [	        XV5        [         R                  " / SQ/ SQ/5      n[         R                  " SUR                  S9n[         R                  " USSSUS9n[	        Xt5        [	        XT5        [         R                  " / SQ/ SQ/5      n[         R                  " SUR                  S9n[         R                  " USSS
US9n[	        Xv5        [	        XV5        g )Nr   r  r  r   rB  r   r	  r   rZ   rP   rR   rm  rZ   rN   )r   r   r  r  r  )rP   rN   r   )r  r  r  r  r  r   rR   rP   rZ   r  r?  r  r  )r   rN   rz   )rR   r[   rV  )	r8   r   rB   r  r   r9   r}   r  r   )rh   r  r"  r  r  r  rk  r   s           r>   test_percentile_out"TestPercentile.test_percentile_out  s   HHYHHTN
a"R]]1(!,HHi! " HHV
a*R]]1a0!4HHV
a*R]]1a0!4IIbM!!!Q'XX)+;<=hhvR]]1hQC@"ESXX+->?@hhvR]]1hQC@"ES XX~|45hhvQWW-MM!XgA3GQSXX{K01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  rR   rP   rq   r   r   )rR   rP   rR   )r  rP   rR   )r  rR   rR   rZ   )r  rR   rP   ra   rX   r^   r  r  r  r   )rP   rR   rP   rR   )rP   r  rP   rR   )rP   r  rR   rR   )rP   r  rR   rP   )r8   r9   r}   r	   r  rD   r   rh   ry  s     r>   test_percentile_empty_dim(TestPercentile.test_percentile_empty_dim  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rP   rZ   rN   rR   rq   Foverwrite_inputr8   r   r  r   rv   s     r>   test_percentile_no_overwrite+TestPercentile.test_percentile_no_overwrite  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@r[   )numr  r  )r8   r  r  r9   r	   r.  )rh   r  s     r>   test_no_p_overwrite"TestPercentile.test_no_p_overwrite  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$  rq   Tr%  r  r'  r   s      r>   test_percentile_overwrite(TestPercentile.test_percentile_overwrite  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      re  r   r  rb   r   ra   r   ru   rR   rs   r  rp  rQ   r    rZ   r[   r|   r  Z   r   rR   rZ   rZ   rR   r  rP   rZ   rR   rP   r  rP   rR   rR   rX   rR   rZ   rU   )r8   r  normaldstackr   r  moveaxisr   r   r9   r}   shuffleravelflattenrh   r  r  ry  s       r>   test_extended_axis!TestPercentile.test_extended_axis  s.   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]]1b	:1=]]1QqAX;#6#6#8"=	?R]]1r2hY?1E]]1Qq!AX;#6#6#82r(C	ER]]1bz:1=]]1Qq!AX;#6#6#8"=	?R]]1by9!<]]1Qq1W:#5#5#7<	>R]]1bv6t<]]1Q!AX;#6#6#8"=	?R]]1bw7=]]1QqAX;#6#6#8"=	?R]]1bv6t<]]1Qq!AX;#6#6#8"=	?r@   c                 2   [         R                  " S5      n[        [         R                  [         R                  USSS9  [        [         R                  [         R                  USSS9  [        [         R                  [         R                  USSS9  [        [         R                  [         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 )Nr8  r  r  )r   r  r   r  rN   r   rN   rW   )ra   ra   )rZ   ra   )r8   rf   r   r   r  re   r   s     r>   test_extended_axis_invalid)TestPercentile.test_extended_axis_invalid4  s    GGM"bllBMM12DbllBMM17bIbllBMM11CbllBMM16RH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 )Nr8  r|   Tr  r   rb   rR   rR   r|   r  r   rR   r[   r|   rR   ro  rZ   rR   r|   r  r  )r  r:  rR   rR   r|   rR   rR   )rP   rR   rR   r|   rR   )rP   rR   r[   r|   rR   )r8   rf   r   r  rD   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  r|   rR   r   NrR   ro  rb   )r^   ra   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 )Nr8  ro  c              3   P   >#    U  H  oT;   a  S OTR                   U   v   M     g7frR   NrD   r  r   	axis_normry  s     r>   r
  3TestPercentile.test_keepdims_out.<locals>.<genexpr>d  &      L=J)^3]   #&Tr   r  r  )
r8   rf   r   r5   r  rg   rD   r  r  r   )rh   r  r   	shape_outr  rD  r^  ry  s         @@r>   test_keepdims_out TestPercentile.test_keepdims_outS  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rN   r  r   r  r  r
  r  rR   r   rP   )r8   rB   rf   r   r  rh   r  ry  s      r>   test_outTestPercentile.test_outm  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@   c                    [         R                  " SS9   [         R                  " SS[        5        [        R
                  " S5      n[        R                  " S5      n[        R                  US'   [        [        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        S S S 5        g ! , (       d  f       g = f)NTr  r  r  rg  r  r=  r   r  r  r
  r  rR   r   )
r  r  r  rY  r8   rB   rf   rv  r   r  rh  s      r>   test_out_nanTestPercentile.test_out_nanz  s   $$D1##Hb.AAAffAdGq!QA6:aAiQ?DAq!QA6:aAiQ?DAq!3Q7a9!<aA 211s   EE--
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?  rP   r!  r   r   g333333?rZ   rN   r   rR   rR   rP   r  rt   rR   r?  rV   r  r  )	r8   r9   r  rv  r   r  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  )rR   rP   rZ   r  r   g     X@r  r   )rO  r  re   r8   r  rv  r  )rh   r  s     r>   
test_nan_qTestPercentile.test_nan_q  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   r5  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  rp  H   ra   rZ   rR   r   rW  )r8   r9   r  r   isnatr   r}   r	   rh   r   ru  ri   r~  s        r>   test_nat_basicTestPercentile.test_nat_basic  s    
 IIa5)mmAr"yyE!!!xx}}}mmABx(yyE!!!xx}  """"IIaU+33B:q&	mmAr*288C=*>?r@   r   N)/r   r   r   r   rn   r  r  rQ  r  rO  rP  rQ  r8   	typecodesr  r  r  r  rk  r   H_F_TYPE_CODESr  
TYPE_CODESr  r  r  r  r  r'  r  r  r  r  r!  r(  r-  r0  rG  rL  rS  rd  ri  rl  rp  rs  r}  r   )r  int_typer8   s   000r>   r  r    s   D*&6<D [[Wbll7&;<6 =6 ')ll<&@&@(  ,&@JJ

3JJ

3JJ

3MM2==9HHSM2::6	88N [[m-=>O[[h
3	 
!>
! P>2 l+bll7.CCcIJ[[Wj18 28 [[Wj1: 2: [[Wj19 293E"IH.`P5'R*80E)?@	HJ( [[S1q!f+.[[
  	.	 /.FA$;9z	- [[Ww&89[[UK0@ 1 :@is   Jr  )r  r  r  r  r  r  r  r  r  r  r  r  r  c                   ~   \ 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,                  \R0                  " SSS9\R2                  " SSSSS9S9S9S 5       rS 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Srg)TestQuantilei  c                     X:  U-
  $ r7   r   )rh   r  r"  alphas       r>   ra  TestQuantile.V  s    %r@   c                 x    / SQn[         R                  " US5      n[         R                  R                  USSS9  g )N)r   r   ro  g?g
ףp=
?rR   )maxulp)r8   quantiler  assert_array_max_ulp)rh   r  ri   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 )Nrz   r  r   r   rR   r  r  )r8   r9   r   r  r  s     r>   rn   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)r8   r   r  r   r8  r   r	   )rh   ri   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      [        R                  5        [        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 )	Nrz   rP   r   rR   r|   r  r  rN   )
rg   r   r8   r  r   r8  r  r   r6  r9   )rh   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T!Wbjj)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 r  )r8   r   r   r  r  r  s     r>   rQ  TestQuantile.test_complex-  sk    7sCieS97sCieS97sC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   r  r  r  r   r+  r  r  )r8   r   r   r  r9   r	   r.  )rh   p0r  s      r>   r-   TestQuantile.test_no_p_overwrite6  sr    XX/0GGI
BIIdOQz:1!YY[HHJ
BIIdOQz:1!r@   r   r  c                     [         R                  " [         R                  " SS/US9S/SS9nUR                  U:X  d   eg )NrR   rP   r?  r  r  r  )r8   r  r   r   )rh   r   r~  s      r>   test_quantile_preserve_int_type,TestQuantile.test_quantile_preserve_int_typeB  s:    kk"((Aq67#!*,yyE!!!r@   r  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   rR   r  )r   rR   rR   rP   rP   rZ   rZ   rN   r[   r[   rR   rR   rV  rV  rV  rz   rz   r|   r  r  )r   r   r   r   )r8   r  r  r   r   r  )rh   r  r  r  s       r>   test_quantile_monotonic$TestQuantile.test_quantile_monotonicH  sy    
 [[As#;;rxx )2  358 9:<MRWWX&1 ;;/CRWWX&1r@   rZ   r  )	min_value	max_valueFu <7u <7~)allow_infinity	allow_nanr  r  )r   rD   elements)r  c                     [         R                  " SSS5      n[         R                  " X5      n[        [         R                  " U5      U5        g )Nr   rR   g{Gz?)r8   r9   r  r   r  )rh   r  r  r  s       r>   test_quantile_monotonic_hypo)TestQuantile.test_quantile_monotonic_hypoV  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  r  r  )r   r   r   r   rR   r  )r8   r   rv  r  r  r   )rh   ri   r$  s      r>   test_quantile_scalar_nan%TestQuantile.test_quantile_scalar_nan`  sd    HHm\23&&!QQ${{6""""R[[C("&&1r@   r  )r   r  g?c           
      H   [         R                  R                  S5      nSnUR                  U5      n[         R                  " XRUS9nUS;   aD  [         R                  " [         R
                  " U R                  XeU5      5      5      SU-  :  d   eg [        XB-  5      XB-  :X  a0  [        [         R
                  " U R                  XeU5      5      SSS9  g [        [         R
                  " U R                  XeU5      5      SS	U-  [         R                  " US	U-
  /5      -  S9  g )
N  f   r  )r  r  r   g+=)atolrR   )
r8   r  default_rngr  r  r   ra  r;  r   r  )rh   r  r  rngr<   r"  r  s          r>   %test_quantile_identification_equation2TestQuantile.test_quantile_identification_equationg  s     ii##D)
 JJqMKK0[ 66"''$&&u"567#'AAA^qy(BGGDFF1$78!%H BGGDFF1$78!URWWeQY%788:r@   c           	         [         R                  R                  S5      nSnUR                  U5      n[         R                  " XRUS9nSn[	        [         R                  " Xu-   X!S9Xv-   5        [	        [         R                  " Xu-  X!S9Xv-  5        [         R                  " U* SU-
  US9* nUS:X  a}  XB-  [        XB-  5      :X  d*  [         R                  " XB-  5      [        XB-  5      S-   :X  a   [	        U[         R                  " XRSS95        g [	        U[         R                  " XRSS95        g US	:X  a  XB-  [        XB-  5      :X  a   [	        U[         R                  " XRSS95        g [         R                  " XB-  5      [        XB-  5      S-   :X  a&  [	        U[         R                  " XRSU-  -   SS95        g [	        U[         R                  " XRSS95        g US
:X  a&  [	        U[         R                  " XRSU-  -   US95        g US:X  aY  XB-  [        XB-  5      :X  a&  [	        U[         R                  " XRSU-  -   US95        g [	        U[         R                  " XRUS95        g US:X  a   [	        U[         R                  " XRSS95        g US:X  a   [	        U[         R                  " XRSS95        g [	        U[         R                  " XRUS95        g )Nr  r  r  g      +@rR   r  r  r  r  r  r  )r8   r  r  r  r   r;  round)rh   r  r  r  r<   r"  r  r   s           r>   'test_quantile_add_and_multiply_constant4TestQuantile.test_quantile_add_and_multiply_constant  s5    ii##D)
 JJqMKK0 	AE5@!%HAE5@!%H[[!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ck(CE  2;;q#HI22Ar{{1ack&IJy yC	N*2;;q!A#+f#MN2;;q#GHwAr{{1HEFxAr{{1GDE Ar{{1FCDr@   r   N)r   r   r   r   ra  r  rn   r  r  rQ  r-  rO  rP  rQ  r8   r  r  quantile_methodsr  
hypothesisgivenr   r  stintegersfloatsr  r  r  r  r   r   r@   r>   r  r    sT    ;0/E>:
" [[Wbll<&@A" B"
 [[X'782 92 RZZ[[1E "		%4:e!MNO
2O
2
2 [[X'78[[Wo6: 7 9:8 [[X'78[[Wo66E 7 96E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)TestLerpi  Fr   rR   )r  r  r  r  r  r  )t0t1ri   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 r7   r  _lerp)rh   r  r  ri   r   l0l1s          r>   +test_linear_interpolation_formula_monotonic4TestLerp.test_linear_interpolation_formula_monotonic  sT     YYqR YYqR 8qv8O8g15!8O88O8r@   )tri   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 r7   r  )rh   r  ri   r   s       r>   )test_linear_interpolation_formula_bounded2TestLerp.test_linear_interpolation_formula_bounded  sQ     6		!*/a/////		!*/a/////r@   c                     [         R                  " X#SSU-
  -
  5      n[         R                  " X2SU-
  5      n[        XE5        g r  )r  r  r   )rh   r  ri   r   rb  rd  s         r>   +test_linear_interpolation_formula_symmetric4TestLerp.test_linear_interpolation_formula_symmetric  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 )NrP   r[   r   g@)r8   r   r  r  )rh   ri   r   r  s       r>   +test_linear_interpolation_formula_0d_inputs4TestLerp.test_linear_interpolation_formula_0d_inputs  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    s=   U5-.!=U5-.!=))eE.4G))eE.4GHH 		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!)"
TestMediani  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 )NrR   rP   r{   rZ   r  r  r   r   r  r  r  rN   )6-¦?0?}r?g4?r   )r  r  r  )r  r  r  ra   )
r8   r   r9   r}   r   medianr   r
   r   rv  )rh   a0r  r  ri   s        r>   rn   TestMedian.test_basic  si   XXa[YYq\YYq\!!!Q'RYYr]A&		"s+		"s+		"1-/@A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 )NrP   rZ   r   rR   r{   r|   rN   r[   r  r  r6  r   r  )r8   r   r  randintr   r  rg   r   r	   r   r  )rh   a3ri   origaxs        r>   test_axis_keywordTestMedian.test_axis_keyword
  s   XX1v1v1v1v   bii''3Y'?@A668DIIad#AFFm		!% $q' A 			"1-Aw7		"$$Q/!a9		"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 )NrP   rZ   r   rR   r{   r|   rN   r[   Tr%  r  r  )r&  r   r  rp  r?  rY   r   )r   r&  )r8   r   r9   r}   r   r  r   r  r  r  rC  rD  )rh   r  r  r  r  a4s         r>   test_overwrite_keyword!TestMedian.test_overwrite_keyword  sS   XX1v1v1v1v   XXa[YYq\YYq\!!!Q'		"'')TBAF		"'')TBCH		"'')TBCH		"'')TJ)	+IIbggiA>A	HIIbggiDA3	HIIbggiA>Q	I		"$$))+t!LQ	! 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   rP   r   r   )r
   r8   r  r   )rh   r  r  s      r>   r  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>.MySubClassiF  Nc                 \    [         R                  " U5      R                  U 5      nX#l        U$ r7   )r8   rR  r7  info)clsinput_arrayr  objs       r>   __new__4TestMedian.test_subclass.<locals>.MySubClass.__new__H  s%    jj-2237
r@   c                     g)Nr   )rh   r   r   r  s       r>   r   1TestMedian.test_subclass.<locals>.MySubClass.meanM  s    r@   r   r7   )NNN)r   r   r   r   r  r   r   r   r@   r>   
MySubClassr  F  s    
r@   r  r   r  )r8   r6  r   r  )rh   r  ri   s      r>   r  TestMedian.test_subclassD  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>.MySubclassiW  r   Nr3  r   r@   r>   
MySubclassr  W  r5  r@   r  N)r8   r6  r  r   r7  r  )rh   r  r  r`  s       r>   test_subclass2TestMedian.test_subclass2S  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 )Nrg  r  r   r  r  rR   r   )r8   rB   rf   r   r  rh  s      r>   ri  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  r  rg  r  r=  r   r  r  rR   r   )
r  r  r  rY  r8   rB   rf   rv  r   r  rh  s      r>   rl  TestMedian.test_out_nanf  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?  rP   r   r   rZ   rN   r   ro  r  rt   rR   r?  rV   )r8   r9   r  rv  r   r  r}   r   r   s      r>   rp  TestMedian.test_nan_behaviorr  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  r  r   rP   rZ   )r   rn  r   rR   )r8   r   r  r  r  r  rY  r   r  rv  r   r  rZ  )rh   ri   r#  r   s       r>   rZ  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 )Nr  rP   )	r8   r9   r   r8  r  r  r}  r  rv  )rh   r  s     r>   test_objectTestMedian.test_object  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 )Nr3  r6  r   rb   r   ra   r   ru   rR   rs   rQ   r  )ra   r7  r8  r:  r;  rP   r<  r  r=  r>  r?  rU   )r8   r  r@  rA  r   r  rB  r   r   r9   r}   rC  rD  rE  rF  s       r>   rG  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1Q{2245	7RYYqy1!4YYq1a{2245	7RYYqz215YYq1a{2245	7RYYqy1!4YYq1Qqz1134	6RYYqv.t4YYqAa{2245	7RYYqw/5YYq1Q{2245	7RYYqv.t4YYq1a{2245	7r@   c                    [         R                  " S5      n[        [         R                  [         R                  USS9  [        [         R                  [         R                  USS9  [        [         R                  [         R                  USS9  [        [         R                  [         R                  USS9  [        [
        [         R                  USS9  g )Nr8  r  r   rJ  rN   rK  rW   )r8   rf   r   r   r  re   r   s     r>   rL  %TestMedian.test_extended_axis_invalid  sz    GGM"bllBIIqr:bllBIIqw?bllBIIqq9bllBIIqv>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 )Nr8  Tr  r   rb   rO  r   rP  ro  rQ  r  r:  rR  )r8   rf   r   r  rD   r   s     r>   rS  TestMedian.test_keepdims  s    GGM"RYYqtd;AA!	#RYYqv=CC"	$RYYqv=CC!	#RYYqtd;AA"	$RYYq|dCII!	#RYYqy4@FF!	#r@   r   rU  rV  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 )Nr8  ro  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`  ra  Trb  )
r8   rf   r   r5   r  rg   r  r  r   rD   )rh   r   rc  r  rD  r^  ry  s        @@r>   rd  TestMedian.test_keepdims_out  s     GGM"<qvvI,T166:I L=B166]L LIhhy!14$C@}}V\\9-r@   r   zm8[s]ru  rv  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 rx  )	r8   r9   r  r   r{  r  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+33B:q&	ii"288C=*>?r@   r   N)r   r   r   r   rn   r  r  r  r  rO  rP  rQ  r8   rv  r   ri  rl  rp  r  r   rZ  r  rG  rL  rS  rd  r  r   r   r@   r>   r  r    s   +,.$LB2' [[U*R,<bffbIK)K)-
1.@ [[(HI5 J5::7<=# [[
  	.	. [[Wwi0[[UK0@ 1 1@r@   r  c                        \ rS rSrS rS rSrg)TestAdd_newdoc_ufunci  c                 x    [        [        [        SS5        [        [        [        [        R
                  S5        g )NrP   blah)r   r  r   re   r8   r:   r   s    r>   test_ufunc_arg#TestAdd_newdoc_ufunc.test_ufunc_arg  s$    i!11f=j"2BFFFCr@   c                 L    [        [        [        [        R                  S5        g )NrZ   )r   r  r   r8   r:   r   s    r>   test_string_arg$TestAdd_newdoc_ufunc.test_string_arg  s    i!12661=r@   r   N)r   r   r   r   r  r!  r   r   r@   r>   r  r    s    D>r@   r  c                   *   \ rS rSr\R
                  R                  \R                  R                  S:H  SS9\R
                  R                  \SS9S 5       5       r\R
                  R                  \R                  R                  S:H  SS9S 5       rSrg	)
TestAdd_newdoci   rP   Python running -OOr  PyPy does not modify tp_docc                    Sn[        [        R                  R                  R                  R
                  S [        U5       U5        [        [        [        R                  R                  R                  R
                  5      S:  5        [        [        [        R                  R                  R                  R
                  5      S:  5        g )Nz"Current flat index into the array.r  )r   r8   coreflatiterindexr  rZ  r   ufuncidentityr!  index_tricksmgrid)rh   r  s     r>   test_add_docTestAdd_newdoc.test_add_doc"  s     3RWW%%++33ISX>DBGGMM**223c9:BFF''--556<=r@   c                     [         R                  R                  R                  R                  n[         R
                  " SSS5        U[         R                  R                  R                  R                  :X  d   eg )Nz
numpy.corer)  )r*  zbad docstring)r8   r(  r)  r*  r  
add_newdoc)rh   prev_docs     r>   test_errors_are_ignored&TestAdd_newdoc.test_errors_are_ignored+  sT    77##))11 	lJ0JK277++1199999r@   r   N)r   r   r   r   rO  rP  r  rU  r   rV  r  r   r/  r4  r   r   r@   r>   r$  r$     s    [[		**a/8LM[[w'DE> F N> [[		**a/8LM: N:r@   r$  c                   *   \ rS rSr\R
                  R                  \R                  R                  S:H  SS9\R
                  R                  \
SS9S 5       5       r\R
                  R                  \R                  R                  S:H  SS9S 5       rSrg	)
TestAddDocstringi4  rP   r%  r  r&  c                     [         R                  " [         R                  R                  [         R                  R                  R                  5        S n[         R                  " XR                  5        g )Nc                      g	docstringNr   r   r@   r>   func6TestAddDocstring.test_add_same_docstring.<locals>.func=      r@   )r8   add_docstringr6  flatr  rh   r<  s     r>   test_add_same_docstring(TestAddDocstring.test_add_same_docstring7  sC     	"**//*A*AB	 	||,r@   c                 :   [        [        5         [        R                  " [        R                  R
                  S5        S S S 5        S n[        [        5         [        R                  " US5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nzdifferent docstringc                      gr:  r   r   r@   r>   r<  =TestAddDocstring.test_different_docstring_fails.<locals>.funcI  r>  r@   )r   r  r8   r?  r6  r@  rA  s     r>   test_different_docstring_fails/TestAddDocstring.test_different_docstring_failsC  sd     <(RZZ__.CD )	 <(T#89 )( )( )(s   0A;B;
B	
Br   N)r   r   r   r   rO  rP  r  rU  r   rV  r   rB  rG  r   r   r@   r>   r7  r7  4  s     [[		**a/8LM[[(EF- G N- [[		**a/8LM
: N
:r@   r7  c                   b    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rSr	g)TestSortComplexiQ  ztype_in, type_out))lr  )hr   )Hr   )r   r   )r  r   )r  r  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)r[   rZ   r{   rP   rR   r?  )r8   r   sort_complexr  r  r   r   )rh   type_intype_outri   r$  r3  s         r>   test_sort_realTestSortComplex.test_sort_realS  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  r  r?  )r  rU  r  r  )r8   r   rO  r   r   )rh   ri   r3  r$  s       r>   test_sort_complex!TestSortComplex.test_sort_complexc  sL    HH5SA88<CH#V&V\\8>>2r@   r   N)
r   r   r   r   rO  rP  rQ  rR  rV  r   r   r@   r>   rJ  rJ  Q  s0    [[0 3
 333r@   rJ  )r   )r   r   )r)  r  rU  rG  	fractionsr   rG  rO  r  hypothesis.extra.numpyr   hypothesis.strategies
strategiesr  	functoolsr   numpyr8   r   numpy.testingr   r   r	   r
   r   r   r   r   r   r   r   r   r   numpy.lib.function_baser!  function_baser  numpy.randomr   	numpy.libr   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/   r0   r1   r2   r3   r4   numpy.core.numericr5   r?   rI   rK   r   r   r   r   r   rS  r  r  r  r  r  r   r  r  rL  r  r  r  r3  rJ  rL  rN  rw  r  r  rP  rQ  r  r  r  r  r  r  r(  rm  r  r  r  r  r  r  rW  r  r  r  r  r  r  r$  r7  rJ  r   r@   r>   <module>rd     s     
      ) "      
 & %          4A@ A@Hd1 d1N: :": :$ 3  3FK4 K4Z;$ ;$|l0 l0^	; 	;	: 	:@ @; ;.E E(J J6I? I?Xr> r>j@% @%F' '4>% >%B$" $"Rd3 d3N& &RR8 R8j5 56 S2<<--W0EE j)i; i; *i;X;- ;-|# #"	D 	D' '"X& X&vg& g&T1 1h &B Bk2 k2\a0 a0H] ]@A ADc@ c@L NE NEb/) /)da@ a@H	> >: :(: ::3 3r@   