
    Icgh                       d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZ d dlZd dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZm Z  d dl!m"c m#Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d d	lHmIZI d
 ZJd ZK G d d      ZL G d d      ZM G d d      ZN G d d      ZO G d d      ZP G d d      ZQ G d d      ZR G d d      ZS G d d      ZT G d d      ZU G d  d!      ZV G d" d#      ZW G d$ d%      ZX G d& d'      ZY G d( d)      ZZ G d* d+      Z[ G d, d-      Z\ G d. d/      Z] G d0 d1      Z^ G d2 d3      Z_dqd4Z`drd5Za G d6 d7      Zb G d8 d9      Zc G d: d;      Zd G d< d=      Zeej                  j                  d>d?ej                  d@   z   ej                  dA   z         ej                  j                  dBg dC       G dD dE                    Zi G dF dG      Zj G dH dI      Zk G dJ dK      Zl G dL dM      Zm G dN dO      Zn G dP dQ      Zo G dR dS      Zp G dT dU      Zq G dV dW      Zr G dX dY      Zs G dZ d[      Zt G d\ d]      Zu G d^ d_      Zv G d` da      Zwg dbZx G dc dd      Zy G de df      Zz G dg dh      Z{ G di dj      Z| G dk dl      Z} G dm dn      Z~ G do dp      Zy)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    t        j                  |       }t         j                  j                  ||      }|S N)nparangeaddouter)ndatas     ]/var/www/html/bid-api/venv/lib/python3.12/site-packages/numpy/lib/tests/test_function_base.pyget_matr?      s(    99Q<D66<<d#DK    c                     t        j                  t        j                  | |      j                  t         j                        }| |_        ||_        |S )za
    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   %   s<    
 ((2<<d+112;;
?CCHCHJr@   c                       e Zd Zd Zd Zd Zy)	TestRot90c                    t        t        t        t        j                  d             t        t        t        t        j                  d      d       t        t        t        t        j                  d      d       t        t        t        t        j                  d      d       t        t        t        t        j                  d      d       g dg d	g}d
dgddgddgg}g dg dg}ddgddgdd
gg}g dg d	g}t        ddd      D ]  }t        t        ||      |        t        ddd      D ]  }t        t        ||      |        t        ddd      D ]  }t        t        ||      |        t        ddd      D ]  }t        t        ||      |        t        t        t        |d      d      |       t        t        |dd      t        |dd             y )N      rO   rO   r      rO   axesrO   rO   r   rO   rQ   rQ   )rQ      rM      rO   rZ   rQ   r   rY   rZ   rM   rY   rO   rQ   r      )krW   r   rQ   rQ   r   r_   rS   )r   
ValueErrorr,   r8   onesranger   )selfab1b2b3b4r_   s          r>   
test_basicz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qA+ "r2q!AqA+ "r2q!AqA+ "q"aAqA+ ! 	U5/e<a@U1.a2E0JKr@   c                     t        j                  d      }t        t        |      j                  d       t        t        |d      t        |d             t        t        |d      t        |d             y )N)2   (   rY   )rp   ro   rY   rU   rR   r   r`   rQ   rO   rW   r`   )r8   re   r   r,   rD   rg   rh   s     r>   	test_axeszTestRot90.test_axesQ   sR    GGK U1X^^[1U15)5+@AU15)5+ABr@   c           	         t        j                  d      j                  d      }ddgddggddgd	d
ggg}ddgddggd
dgd	dggg}d	dgddggd
dgddggg}d	d
gddggddgddggg}t        t	        |d      |       t        t	        |d      |       t        t	        |d      |       t        dd
      D ])  }t        t	        ||d      t	        ||dz
  d             + y )N   rN   rO   rY         r   rQ   rM   rZ   ra   rR   rb   rr   )rO   r   rc   )r8   r9   reshaper   r,   rf   )rg   rh   
a_rot90_01
a_rot90_12
a_rot90_20
a_rot90_10r_   s          r>   test_rotation_axeszTestRot90.test_rotation_axesW   s=   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qAF3zQqSv>@ r@   N)__name__
__module____qualname__rm   ru   r    r@   r>   rK   rK   0   s    L@C@r@   rK   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestFlipc                    t        t        j                  t        j                  t        j                  d      d       t        t        j                  t        j                  t        j                  d      d       t        t        j                  t        j                  t        j                  d      d       t        t        j                  t        j                  t        j                  d      d       y )NrM   rQ   axisrM   rM   rO   r]   r   rY   )r   r8   	AxisErrorflipre   rg   s    r>   ru   zTestFlip.test_axesv   sz    bllBGGRWWQZa@bllBGGRWWV_1EbllBGGRWWV_2FbllBGGRWWV_6Jr@   c                     t        d      }|d d d d df   }t        t        j                  |d      |       g dg dg}g dg dg}t        t        j                  |d      |       y )NrM   r`   rQ   rP   rX   r\   r[   r?   r   r8   r   rg   rh   bs      r>   test_basic_lrzTestFlip.test_basic_lr|   s^    AJa2gJRWWQ]A&RWWQ]A&r@   c                     t        d      }|d d dd d f   }t        t        j                  |d      |       g dg dg}g dg dg}t        t        j                  |d      |       y )NrM   r`   r   rP   rX   r   r   s      r>   test_basic_udzTestFlip.test_basic_ud   s^    AJddAgJRWWQ]A&RWWQ]A&r@   c                     t        j                  ddgddggddgddggg      }t        j                  ddgddggddgddggg      }t        t        j                  |d      |       y 	Nr   rQ   rO   rY   rM   rZ   rx   ry   r8   arrayr   r   r   s      r>   test_3d_swap_axis0zTestFlip.test_3d_swap_axis0       HH1v1v1v1v  !
 HH1v1v1v1v  !
 	RWWQ]A&r@   c                     t        j                  ddgddggddgddggg      }t        j                  ddgddggddgddggg      }t        t        j                  |d      |       y r   r   r   s      r>   test_3d_swap_axis1zTestFlip.test_3d_swap_axis1   r   r@   c                     t        j                  ddgddggddgddggg      }t        j                  ddgddggddgddggg      }t        t        j                  |d      |       y r   r   r   s      r>   test_3d_swap_axis2zTestFlip.test_3d_swap_axis2   r   r@   c           
      ,   t        j                  d      j                  dddd      }t        |j                        D ]U  }t        t        j                  ||      t        j                  |j                  d|            j                  |d             W y )Nx   rO   rY   rM   rZ   r   )	r8   r9   rz   rf   ndimr   r   r    swapaxes)rg   rh   is      r>   test_4dzTestFlip.test_4d   sl    IIm$,,Q1a8qvvAA1::a#34==aCE r@   c                     t        j                  g dg dg      }t        j                  g dg dg      }t        t        j                  |      |       y )NrQ   rO   rY   rM   rZ   rx   )rx   rZ   rM   rY   rO   rQ   r   r   s      r>   test_default_axiszTestFlip.test_default_axis   sD    HHi! "HHi! "RWWQZ#r@   c                    t        j                  ddgddggddgddggg      }t        t        j                  |d	
      |       t        j                  ddgddggddgddggg      }t        t        j                  |d
      |       t        j                  ddgddggddgddggg      }t        t        j                  |d
      |       y )Nr   rQ   rO   rY   rM   rZ   rx   ry   r   r   rU   rr   r   rg   rh   r   cs       r>   test_multiple_axesz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@   N)r   r   r   ru   r   r   r   r   r   r   r   r   r   r@   r>   r   r   t   s1    K'''''E$1r@   r   c                       e Zd Zd Zd Zy)TestAnyc                     g d}g d}g d}t        t        j                  |             t        t        j                  |             t        t        j                  |              y )Nr   r   rQ   r   r   r   r   r   )rQ   r   rQ   r   )r   r8   anyrg   y1y2y3s       r>   rm   zTestAny.test_basic   sC    r
r
BFF2Jr@   c                     g dg dg dg}t        t        j                  |             t        t        j                  |d      g d       t        t        j                  |d      g d       y )Nr   r   r   r   rQ   r   rQ   rQ   r   r   r   rQ   r   rQ   rQ   )r   r8   r   r	   rg   r   s     r>   test_ndzTestAny.test_nd   sH    I.r
266"1-y9266"1-y9r@   Nr   r   r   rm   r   r   r@   r>   r   r      s     :r@   r   c                       e Zd Zd Zd Zy)TestAllc                 8   g d}g d}g d}t        t        j                  |              t        t        j                  |             t        t        j                  |              t        t        j                  t        j                  |                    y )N)r   rQ   rQ   r   r   rQ   rQ   rQ   rQ   )r   r8   allr   r   s       r>   rm   zTestAll.test_basic   s`    BFF2Jr
BFF2J}%&r@   c                     g dg dg dg}t        t        j                  |              t        t        j                  |d      g d       t        t        j                  |d      g d       y )Nr   r   rQ   r   rQ   rQ   rQ   r   r   rQ   )r   r8   r   r	   r   s     r>   r   zTestAll.test_nd   sJ    I.BFF2J266"1-y9266"1-y9r@   Nr   r   r@   r>   r   r      s    ':r@   r   c                       e Zd Zd Zd Zd Zy)TestCopyc                     t        j                  ddgddgg      }t        j                  |      }t        ||       d|d<   t	        |d   d       t	        |d   d       y )NrQ   rO   rY   rM   
   )r   r   )r8   r   copyr	   r   )rg   rh   a_copys      r>   rm   zTestCopy.test_basic   sY    HHq!fq!f%&1f%tQtWa VD\2&r@   c                    t        j                  ddgddgg      }t        |j                  j                         t        |j                  j
                          t        j                  ddgddggd      }t        |j                  j                          t        |j                  j
                         t        j                  |      }t        |j                  j                         t        |j                  j
                          t        j                  |      }t        |j                  j                          t        |j                  j
                         y )NrQ   rO   rY   rM   Forder)r8   r   r   flagsc_contiguousf_contiguousr   )rg   rh   a_fortr   a_fort_copys        r>   
test_orderzTestCopy.test_order  s     HHq!fq!f%&$$%AGG((()Aq6Aq6*#6FLL---.))*))*FLL---.ggfoK%%2223!!../r@   c                 `   t        j                  d      }t        t        j                  t	        j
                  |d                    t        t        j                  t	        j
                  |d                   t        t        j                  t	        j
                  |                    y )NrZ   F)subokT)r   re   r   isMaskedArrayr8   r   )rg   mxs     r>   
test_subokzTestCopy.test_subok  sl    WWQZB$$RWWRu%=>>?  4!89:B$$RWWR[112r@   N)r   r   r   rm   r   r   r   r@   r>   r   r      s    '0"3r@   r   c                       e Zd Zd Zej
                  j                  dg dddgg ddgdgfg d	g d
gdg dgddgg dgg dgfg      d        Zd Zd Z	d Z
d Zd Zd Zy)TestAveragec                 |   t        j                  g d      }t        t        |d      dk(         t        j                  g d      }t        t        |d      dk(         g d}t        t        |d      dk(         t        j                  d      }d|d	<   d
|d<   t        |j                  d      t        |d             t        |j                  d      t        |d             t        dd      }t        |j                  d      t        |d             t        |j                  d      t        |d             y )Nr   r   r          @      ?r         @)        r   r   r   r   ra   rO   rb   rQ   rZ   )r8   r   r   r   re   r
   meanr   )rg   r   r   r   y4y5s         r>   rm   z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   )rY   rM   rQ         ?       @)rQ   rO   rZ   )rQ   rx      r   )r         @r   rQ   rY   )r         @      #@rM   rM   rM   c                     t        j                  ||d      }|j                  t        j                  |      k(  sJ t        ||       t        j                  |||d      }|j                  t        j                  |      k(  sJ t        ||       t        j                  |||dd      \  }}	|j                  t        j                  |      k(  sJ t        ||       |	j                  t        j                  |      k(  sJ t        |	|       y )NTr   keepdims)r   weightsr   )r   r   returnedr   )r8   r   rD   r	   )
rg   xr   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             r>   test_basic_keepdimszTestAverage.test_basic_keepdims5  s     jj5yyBHH\22223-zz!$$GzzRXXm44444/ZZg)-/
dzzRXXm44444/zzRXXm44444/r@   c                    t        j                  d      }t        j                  d      }t        ||      }t        j                  d      dz  j                         dz  t        j                  d      j                         z  }t	        ||       t        j
                  g dg dg      }ddg}t        ||d	      }t        j
                  g d
      }t	        ||       g d}t        ||d	      }t        j
                  ddg      }t	        ||       g dg dg}t        j
                  ddg      }t        t        ||d	      |       t        t        ||      d       t        d      j                  t         j                        }	t        d      j                  t         j                        }
t        t        j                  |	|
      j                  t        j                  |	|
      k(         t        j
                  g d      j                  dd      }t        j
                  g d      j                  dd      }t        j                  ||dd      }t        j
                  g d      }t        ||       t        j                  ||dd      }t        j
                  dgdgdgg      }t        ||       y )Nr   r   rO   r   r   r   rQ   r   )r   r   )r   r   r   r   r         @)r   r   rO   r   rZ   rO   rY   rM   rY   F)r   r   r   )r   r   r   Tr   r   )r8   r9   r   sumr
   r   r	   r   r   astypefloat32float64r   dtyperesult_typerz   )rg   ywactualdesiredr   w0w1w2r   w3r   s               r>   test_weightszTestAverage.test_weightsL  s   IIbMIIbMA&99R=A%**,r1BIIbM4E4E4GGFG,XXy),-VRa0((<(FG,Ra0((B8$FG, #((B8$72r:GDWR,b1!W^^BJJ'!W^^BJJ'

2r*00BNN2r4JJK HHY''1-HHY''1-Aqq5A((<(67+Aqq4@((RD2$-.67+r@   c                    t        j                  g dg dg      }t        |d      \  }}t        |d       t        |dd      \  }}t	        |t        j                  g d             t        |dd      \  }}t	        |t        j                  d	d	g             dd
g}t        ||dd      \  }}t	        |t        j                  g d             g d}t        ||dd      \  }}t	        |t        j                  ddg             g dg dg}t        ||dd      \  }}t	        |t        j                  ddg             y )Nr   r   T)r   r   r   )r   r   r   rQ   r   rO   )r   r   r   )r   r   r   r   r   )r8   r   r   r   r	   )rg   r  r   sclr
  r  r  s          r>   test_returnedzTestAverage.test_returnedx  s   HHi+, 1t,SS"1a$/S3 671a$/S3"b 23 V1bq4@S3 671bq4@S3"b 23#1bq4@S3"b 23r@   c                     G d dt         j                        }t        j                  ddgddgg      j                  |      }t        j                  ddgddgg      j                  |      }t	        t        t        j                  |            |       t	        t        t        j                  ||            |       y )Nc                       e Zd Zy)-TestAverage.test_subclasses.<locals>.subclassNr   r   r   r   r@   r>   subclassr        r@   r  rQ   rO   rY   rM   r   )r8   ndarrayr   viewr   typer   )rg   r  rh   r  s       r>   test_subclasseszTestAverage.test_subclasses  s    	rzz 	HHqeQqE]#((2HHqeQqE]#((2T"**Q-((3T"**Q23X>r@   c                    g d}|D ]~  \  }}}t        j                  ddgddgg|      }t        j                  ddgddgg|      }t        t        j                  ||      j                  t        j                  |              y )N))i4r  f8)r  f4r  )r  r  r  )r  r  r  )r  r  r  rQ   rO   rY   rM   r  r   )r8   r   r   r   r  )rg   typsatwtrtrh   r  s          r>   test_upcastingzTestAverage.test_upcasting  st    9JBB1Q%1b1A1Q%1b1AAq177"F r@   c                    t        j                  t        d      D cg c]  }t        j                  |       c}      }t        j                  t        d      D cg c]  }t        j                  d       c}      }||j                         z  }t        |j                  d      t        ||             y c c}w c c}w )Nr   rQ   r   r   )	r8   r   rf   decimalDecimalr   r
   r   r   )rg   r   rh   _r  s        r>   test_object_dtypezTestAverage.test_object_dtype  s    HH%)<)Qgooa()<=HH%)<)Qgooa()<=	QUUWAFF1Iwq!'<= =<s   B9B>c                     t        j                  t        dd      t        dd      g      }t        t        j                  |      t        dd             y )NrQ   rZ   rY   rO   )r8   r   r   r   r   rt   s     r>    test_average_class_without_dtypez,TestAverage.test_average_class_without_dtype  s9    HHhq!nhq!n56RZZ]HQN3r@   )r   r   r   rm   pytestmarkparametrizer   r  r  r  r%  r*  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                   $   e Zd Z ej                  g d       ej                  g d       ej                  g d      gZ ej                  g d       ej                  g d       ej                  g d      gZddZd Zd	 Z	d
 Z
d Zd Zd Zy)
TestSelectr   r   ry   rw   	   )FFFFTFFFTc                     g }t        t        |            D ]2  }|t        ||      D cg c]  \  }}||   s||    c}}xs |gz  }4 |S c c}}w r7   )rf   lenzip)rg   condvaluesdefaultoutputmVCs           r>   _selectzTestSelect._select  s\    s4y!AFD(9B(91QqTqt(9BOwiOF " Cs
   A
A
c                     | j                   }| j                  }t        t        ||d      | j	                  ||d             t        t        |      d       t        t        |      d       y )N   r;  rY   )choices
conditionsr	   r-   r@  r   r7  rg   rD  rE  s      r>   rm   zTestSelect.test_basic  sX    ,,__
6*grB<<
GR<H	J 	S\1%S_a(r@   c                 F   t        j                  d      t        j                  g d      g}dt        j                  d      j                  dd      g}t	        t        ||      t        j                  d             t        t        dgdgdg	      j                  d
       y )NTr4  rQ      rM   rY   rM   rY   r   rC  rQ   )	r8   r   r9   rz   r	   r-   re   r   rD   rg   rE  rD  s      r>   test_broadcastingzTestSelect.test_broadcasting  su    hhtnbhh/C&DE
biim++Aq126*g6HVTFQC!5;;TBr@   c           	      D   t        t        | j                  | j                  d      j                  t
        j                         | j                  D cg c]!  }|j                  t
        j                        # }}t        t        | j                  |      j                  t
        j                         t        j                  dddt
        j                  ddg      }t        j                  |      }t        t        |g|g      dddt
        j                  ddg       y c c}w )N              ?rQ   rO   rY   rZ   ry   r   )r   r-   rE  rD  r  r8   rE   r  int8r   nanisnan)rg   choicerD  dr=  s        r>   test_return_dtypezTestSelect.test_return_dtype  s    VDOOT\\2>DD[[	" 9=Ef6==)EVDOOW5;;RWWEHHaArvvq!,-HHQKVQC!%1aA'>? Fs   &Dc                 ^    t        t        t        g g d       t        t        t        g g        y )N              @)r   rd   r-   r   s    r>   test_deprecated_emptyz TestSelect.test_deprecated_empty  s     j&"b"5j&"b1r@   c                 R   | j                   }| j                  d d  }|d   j                  t        j                        |d<   t        t        t        ||       |d   j                  t        j                        |d<   t        t        t        ||       t        t        t        ||       y Nr   )	rD  rE  r  r8   int_r   	TypeErrorr-   uint8rF  s      r>   test_non_bool_deprecationz$TestSelect.test_non_bool_deprecation  s{    ,,__Q'
"1,,RWW5
1iW="1,,RXX6
1iW=iW=r@   c                     t        j                  dg      gdz  }t        j                  dg      gdz  }t        ||       y )NFd   rQ   )r8   r   r-   rK  s      r>   test_many_argumentszTestSelect.test_many_arguments  s:    hhw'(3.
88QC=/C'z7#r@   Nr   )r   r   r   r8   r   rD  rE  r@  rm   rL  rT  rW  r]  r`  r   r@   r>   r1  r1    s    rxx	"rxx	"rxx	"$G "((01"((/0"((/02J)C
@2>$r@   r1  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Zy)
TestInsertc           
      t   g d}t        t        |dd      g d       t        t        |dd      g d       t        t        |g dg d      g d       t        t        |dg d      g d       t        t        |g d	d
      g d       t        t        |t        dd d      d
      g d       t        t        |g dg d      g d       t        j                  ddgt        j
                        }t        t        |d|d         g d       t        t        |g g       |       t        j                  d      5 }t        j                  ddt               t        t        |t        j                  dgdz        d
      g d       t        |d   j                  t        u        d d d        y # 1 sw Y   y xY w)Nr   r   rQ   )rQ   rQ   rO   rY   rY   )rQ   rO   rY   rQ   r   )rQ   rQ   rO   rY   rO   rY   )rQ   r`   rY   r3  )rQ   r3  rO   r3  rY   r3  r`   )r3  rQ   r3  rO   r3  rY   r`   rQ   rY   r2  )rQ   rw   rO   ry   rY   r3  r   r   r   r   Trecordalways rM   )rQ   r3  r3  r3  r3  rO   rY   )r   r%   slicer8   r   r  warningscatch_warningsfilterwarningsFutureWarningr   category)rg   rh   r   r  s       r>   rm   z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   ;A*F..F7c                 X   g dg}g dg dg}t        t        |ddg      g d       t        t        |dg dd      |       t        t        |ddd      |       t        t        |ddd      g dg       t        j                  ddgddgd	d	gg      }t        j                  dd
      j                  d	      j                  d	d	      }t        j                  |d d ddf   t        j                  dd
      j                  d	      j                  d	d	      j                  |d d ddf   fd      }t        t        |dgdgdgd	ggd      |       t        t        |dgg dd      |       t        t        |dg dd      |       t        t        |ddgdgd	ggd      |       t        j                  d
      j                  dd      }t        t        |d d d df   d|d d df   d      |       t        t        |d dd d f   d|dd d f   d      |       t        j                  d      j                  d      }t        t        |d|d d d d d	f   d      t        |d|d d d d d	f   d             t        t        |d|d d dd d f   d      t        |d|d d dd d f   d             t        t        j                  t        |d|d d dd d f   d	       t        t        j                  t        |d|d d dd d f   d       t        j                  d      j                  d      }t        t        |d|d d d d d	f   d      t        |d|d d d d d	f   d             t        t        |d|d d dd d f   d      t        |d|d d dd d f   d             y )Nr   rN   r   rQ   r   r   rO   )rQ   rQ   rO   rQ   rY   rM   r      r   r`   rW   )r   r%   r8   r   r9   repeatrz   concatenateTr   r   )rg   rh   rr   r   s        r>   test_multidimz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                 6   t        j                  d      }t        j                  t         j                        5  t        |g dd       d d d        t        j                  t              5  t        |g dd       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)NrQ   rO   r   r   nonsense)r8   r   r-  raisesr   r%   r[  rt   s     r>   test_0dzTestInsert.test_0d,  sd    HHQK]]2<<(1b!!$ )]]9%1b!*- &% )(%%s   B*BBBc                     G d dt         j                        }t        j                  d      j                  |      }t	        t        t        j                  |ddg      |             t	        t        t        j                  |g g       |             t	        t        t        j                  |ddgddg      |             t	        t        t        j                  |t        dd      ddg      |             t	        t        t        j                  |t        ddd      g       |             t        j                  d      j                  |      }t	        t        t        j                  |ddg      |             y )	Nc                       e Zd Zy)*TestInsert.test_subclass.<locals>.SubClassNr  r   r@   r>   SubClassr  4  r  r@   r  r   r   rQ   rO   rW   r`   )	r8   r  r9   r  r   
isinstancer%   rk  r   rg   r  rh   s      r>   test_subclassz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                     t        j                  g d      }t        j                  g d|g d       t        |t        j                  g d             y )Nr   rP   rX   )r8   r   r%   r   rg   r   s     r>   test_index_array_copiedz"TestInsert.test_index_array_copied@  s3    HHY
		)Q	*Q+,r@   c                 f   t        j                  g dddg      }d}t        j                  |d|      }t        |d   t        j                  ||j                               dgdz  }t        j                  |ddg|      }t        |ddg   t        j                  ||j                               y )	N))rQ   rh   )rO   r   )rY   r   )foor   )bara1r   )rM   rS  r   rO   rY   )r8   r   r%   r	   r  )rg   rh   valr   s       r>   test_structured_arrayz TestInsert.test_structured_arrayE  s    HH3(-8:IIaC 1Q4#QWW!=>j1nIIa!Q%1aV9bhhs!''&BCr@   c                    t        j                  t              5  t        j                  g dt        j
                  ddg      ddg       d d d        t        j                  t              5  t        j                  g dt        j
                  g t              g        d d d        y # 1 sw Y   ^xY w# 1 sw Y   y xY w)NrP   r   r   r      r   )r-  r{  
IndexErrorr8   r%   r   floatr   s    r>   test_index_floatszTestInsert.test_index_floatsO  ss    ]]:&IIi3*!5Bx@ ']]:&IIi"E!:B? '& '&&&s   1B(,3B4(B14B=idxrM   rs  c                     t        j                  t        d      5  t        j                  g d|gddg       d d d        y # 1 sw Y   y xY w)Nzout of boundsmatchrP   rY   rM   )r-  r{  r  r8   r%   )rg   r  s     r>   test_index_out_of_boundsz#TestInsert.test_index_out_of_boundsU  s2    ]]:_=IIi#A/ >==s   AAN)r   r   r   rm   rx  r|  r  r  r  r  r-  r.  r/  r  r   r@   r>   rc  rc    sQ    4((7T.<-
D@ [[UQG,0 -0r@   rc  c                       e Zd Zd Zy)TestAmaxc                     g d}t        t        j                  |      d       g dg dg dg}t        t        j                  |d      g d       t        t        j                  |d	      g d
       y )NrY   rM   rZ   r   r]   r         $@rY   r         "@rM   r  r   rw   r   r   r   r   )r   r  r  rQ   )r  r  r   )r   r8   amaxr   s      r>   rm   zTestAmax.test_basic]  sW    &RWWQZ& 	RWWQQ')9:RWWQQ')9:r@   Nr   r   r   rm   r   r@   r>   r  r  [  s    ;r@   r  c                       e Zd Zd Zy)TestAminc                     g d}t        t        j                  |      d       g dg dg dg}t        t        j                  |d      g d       t        t        j                  |d	      g d
       y )Nr  g      r  r  r  r   r   )r   r   r   rQ   )r   r   r   )r   r8   aminr   s      r>   rm   zTestAmin.test_basici  sU    &RWWQZ& 	RWWQQ'9RWWQQ'9r@   Nr  r   r@   r>   r  r  g  s    :r@   r  c                       e Zd Zd Zy)TestPtpc                    t        j                  g d      }t        |j                  d      d       t        j                  g dg dg dg      }t        |j                  d      g d       t        |j                  d	      g d
       t        |j                  dd      g dg       t        |j                  dd      dgg       y )Nr  r   r         .@r  r  r  )r         @r  r`   )r   r   r   Tr   ra   r   )r8   r   r   ptpr   s      r>   rm   z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@   Nr  r   r@   r>   r  r  s  s    
@r@   r  c                       e Zd Zd Zy)
TestCumsumc           
      &   g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  f
D ]  }t        j                  ||      }t        j                  ||      }t        j                  g d|      }t        t        j                  |d      |       t        j                  g dg dg d	g|      }t        t        j                  |d      |       t        j                  g d
g dg dg|      }t        t        j                  |d      |        y )NrQ   rO   r   r   rx   rZ   rM   rQ   rO   rY   rM   rZ   rx   ry   r3  r   rY   rM   rZ   )rQ   rY   r^   rr     #   '   r   r   )rx   rw   r   r^   )   r         )rQ   rY   rx   r   )rZ   r   r     )r   r^         rQ   )r8   rO  r\  int16uint16int32uint32r  r  	complex64
complex128r   r	   cumsum)rg   baba2ctyperh   a2tgts          r>   rm   zTestCumsum.test_basic  s   $\=9ggrxx299bhhiiRZZmm%E U#A#u%B((5u=Cryy3S9((~/?@%ICryy!4c:((1ABEKCryy!4c:%r@   Nr  r   r@   r>   r  r    s    ;r@   r  c                       e Zd Zd Zy)TestProdc                     g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  fD ]  }t        j                  ||      }t        j                  ||      }|dv r@t        t        t         j                  |       t        t        t         j                  |d       st        |j                  d      d	       t        |j                  d      t        j                  g d
|             t        |j                  d      t        j                  g d|              y )Nr  r  r  r  1r   rQ   r   r    g  ro   $   T      r`   )rr  b  X  )r8   r  r  r  r  r  r  r  r  r   r   ArithmeticErrorprodr   r	   rg   r  r  r  rh   r  s         r>   rm   zTestProd.test_basic  s    $\=9hh		288RYYjj"**bllBMMKEU#A#u%B
"orww:orwwA>QVVV^U3"2777?#%88,=u#EG"2777#3#%88OU#CEKr@   Nr  r   r@   r>   r  r    s    Er@   r  c                       e Zd Zd Zy)TestCumprodc           
         g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  fD ]E  }t        j                  ||      }t        j                  ||      }|dv r_t        t        t         j                  |       t        t        t         j                  |d       t        t        t         j                  |       t        t        j                  |d      t        j                  g d	|             t        t        j                  |d
      t        j                  g dg dg dg|             t        t        j                  |d      t        j                  g dg dg dg|             H y )Nr  r  r  r  r  rQ   r`   r   )rQ   rO   r     i(  i  r  r   )rZ   rH     r  r  )rQ   rO   rx   rr  )rZ   r     r  )r   r  r   r  )r8   r  r  r  r  r  r  r  r  r   r   r  cumprodr	   r  s         r>   rm   zTestCumprod.test_basic  sE   $\=9hh		288RYYjj"**bllBMMKEU#A#u%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@   Nr  r   r@   r>   r  r    s    Jr@   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestDiffc                 8   g d}t        j                  g d      }t        j                  g d      }t        j                  ddg      }t        t        |      |       t        t        |d      |       t        t        |d      |       g d	}t        j                  g d
      }t	        t        |      |       g d}t        j                  g d      }t        j                  ddg      }t        t        |      |       t        t        |d      |       y )N)rQ   rM   rx   ry   rH  )rY   rO   rQ   rZ   )r`   r`   rM   r   rZ   rO   r<   rY   )皙?皙@r   gɿ皙)r  g?g	皙?)TTFFr4  T)r8   r   r	   r   r
   )rg   r   outout2out3s        r>   rm   z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                    t        j                  d      }d|d d dd dd d f<   t        j                  d      }d|d d dd dd d f<   t        t	        |      t        j                  d             t        t	        |d      t        j                  d             t        t	        |d      t        j                  d	             t        t	        |d      |       t        t	        |d
      |       t        t         j                  t        |d       t        t         j                  t        |d       t        j                  dt         j                        }t        t        t        |       y )N)r   r  r  rQ   rO   )r      r  r`   )r   r     r   r   )r3  r  r  rW   rY   rs  gq?)
r8   rB   re   r	   r   r   r   r   r  rd   )rg   r   exps      r>   	test_axisz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                    dt        ddd      z  }|d d d d dd f   |d d d d d df   z
  }|d d d d dd f   |d d d d d df   z
  }|dd d d d d f   |d dd d d d f   z
  }|dd d d d d f   |d dd d d d f   z
  }t        t        |      |       t        t        |d      |       t        t        |d	      |       t        t        |dd
      |       y )Nr  r   r  rQ   r`   rO   r  r   r   )r<   r   )r   r	   r   )rg   r   out1r  r  out4s         r>   r   z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           
      0   t        t        d            }t        t        t        |d       t        dd      D cg c]  }t	        ||       }}ddgdgg g g}t        t	        |d      |u        t        t        ||      d      D ]  \  }\  }}t        t        |      t        j                  u        t        ||       t        |j                  t        j                         t        t        |      t!        dt        |      |z
                y c c}w )NrY   r`   r  rQ   rZ   r   start)listrf   r   rd   r   r   	enumerater8  r  r8   r  r	   r   r  rZ  r7  max)rg   r   r<   r<  expectedr  s         r>   test_nzTestDiff.test_n  s    qNj$R0(-a41$qA,4FQCR(Q!!""+C&,A"KA#DI+,sH-BGG,S3q#a&1*#56	 #L 5s   Dc                    t        j                  ddt         j                        }t        j                  ddgd      t        j                  dgd      g}|j	                  t        j                  g d      gdz         t        |d      D ]>  \  }}t        ||	      }t        ||       t        |j                  |j                         @ y )
Nz
1066-10-13z
1066-10-16r   rQ   timedelta64[D]r   rY   r  r  )
r8   r9   
datetime64r   extendr  r   r	   r   r  )rg   r   r  r<   r  r  s         r>   
test_timeszTestDiff.test_times  s    IIlLFHHaV#34HHaS 01
 	",<=>BC2FAsqA,CsC(CII. 3r@   c           	         t        j                  ddgddgddgddgd	d
ggddgddgddgddgddgg      }t        |      }t        |j                  dgdgdgdgdgg       t        |j
                  dgdgdgdgdgg       t        t        |      t        |      u        t        |d      }t        |j                  g g g g g g       t        |j
                  g g g g g g       t        t        |      t        |      u        y )NrQ   rO   rY   rM   rZ   rx   ry   rw   r3  r   FTmaskr  )r   r   r   r	   r=   r  r   r  )rg   r   r  r  s       r>   r  z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                    t        j                  d      dz   }t        t        |d      t        j                  d             t        t        |dg      t        j                  d             t        t        j
                  t        j                  |d            |       t        t        |ddg      t        j                  d             t        j                  d      j                  dd      }t        j                  |dd	      }ddgddgg}t        ||       t        j                  |ddgdgg	      }t        ||       t        j                  |dd	      }ddgddgg}t        ||       t        j                  |dddgg	      }t        ||       t        t        t         j                  |t        j                  d
             t        t         j                  t        |dd       y )NrZ   rQ   r   )prependr`   rx   rM   rO   )r   r  rY   rY   rY   )r  r   )r8   r9   r	   r   re   r  rz   r   rd   rB   r   rg   r   resultr  s       r>   test_prependzTestDiff.test_prepend  sm   IIaL141-rwwqz:4A3/<299RWWQ%:;Q?4B73RWWQZ@IIaL  A&A.FQF#68,aS1#J768,A.FQF#68,aVH568,j"''1bhhuoFbllD!QQ?r@   c                 "   t        j                  d      }t        |d      }g d}t        ||       t        |dg      }t        ||       t        |ddg      }|dgz   }t        ||       t        j                  d      j	                  dd      }t        j                  |dd      }dd	gdd
gg}t        ||       t        j                  |ddgdgg      }t        ||       t        j                  |dd      }ddgdd
gg}t        ||       t        j                  |dddgg      }t        ||       t        t        t         j                  |t        j                  d             t        t         j                  t        |dd       y )NrZ   r   )append)rQ   rQ   rQ   rQ   rs  rO   rM   rQ   )r   r	  r`   r]   rW   r  rY   )r	  r   )	r8   r9   r   r	   rz   r   rd   rB   r   r  s       r>   test_appendzTestDiff.test_append7  sQ   IIaLa"#68,a$68,aA'qc>68,IIaL  A&1-GaW%68,QC!:668,1-FRH%68,QF8468,j"''1RXXe_EbllD!AA>r@   N)r   r   r   rm   r  r   r  r  r  r  r
  r   r@   r>   r  r    s+    /&+ 	7
7
/'@0?r@   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
 ej                   dg      dgg      d        Zd Zy)
TestDeletec                     t        j                  d      | _        t        j                  d      j                  d      j	                  ddd      | _        y )NrZ   rO   rQ   )r8   r9   rh   rt  rz   nd_ar   s    r>   setup_methodzTestDelete.setup_methodV  s:    1IIaL''*221a;	r@   c                 R   t        | j                  |      }t        | j                  |d      }d|z  }t        t	        || j                  |f         | j                  |       t	        |dd d df   | j                  d|df         }t        || j                  dd d df   |       y )NrQ   r   zDelete failed for obj: %r)err_msgr   )r   rh   r  r	   r.   )rg   indicesa_delnd_a_delmsgxors         r>   _check_inverse_of_slicingz$TestDelete._check_inverse_of_slicingZ  s    tvvw'$))W15)G38E466'(+<=tvv#&	(x!Q'1gq=)AB3		!Aq& 13?r@   c                 z    g d}g d}|D ].  }|D ]'  }|D ]   }t        |||      }| j                  |       " ) 0 y )N)rW   r   rQ   rO   rM   rZ   )r]   r`   rQ   rY   )rk  r  )rg   limsstepsr  stopstepss          r>   test_sliceszTestDelete.test_slicesc  sF    &E!DeT40A2215 "  r@   c                 Z   | j                  t        j                  ddgddgg             t        j                  t
              5  t        | j                  dg       d d d        t        j                  t
              5  t        | j                  dg       d d d        | j                  g d       | j                  g d       t        j                  t              5  t        | j                  d       d d d        t        j                  t              5  t        | j                  d	       d d d        t        j                  t              5  t        | j                  d	gd
z         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   y xY w)Nr   rQ   rO   r_  i)r   r`   rO   rO   )TFFTFTFrM   )	r  r8   r   r-  r{  r  r   rh   rd   r   s    r>   
test_fancyzTestDelete.test_fancyl  s   &&rxx!Q!Q0@'AB]]:&466C5! ']]:&466D6" ' 	&&}5&&'HI ]]:&4664  ']]:&4665! ' ]]:&466E719% '&! '&&& '&&& '&s<   E0=E=F	FF!0E:=F	FF!F*c                 H    | j                  d       | j                  d       y )Nr   rs  )r  r   s    r>   test_singlezTestDelete.test_single  s    &&q)&&r*r@   c                 2   t        j                  d      }t        j                  t         j                        5  t        |g d       d d d        t        j                  t              5  t        |g d       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)NrQ   r   r   rz  )r8   r   r-  r{  r   r   r[  rt   s     r>   r|  zTestDelete.test_0d  s`    HHQK]]2<<(1bq! )]]9%1bz* &% )(%%s   B)BB
Bc                     G d dt         j                        }| j                  j                  |      }t	        t        t        |d      |             t	        t        t        |g       |             t	        t        t        |ddg      |             t	        t        t        |t        dd            |             t	        t        t        |t        dd            |             y )Nc                       e Zd Zy)*TestDelete.test_subclass.<locals>.SubClassNr  r   r@   r>   r  r'    r  r@   r  r   rQ   rO   rW   )r8   r  rh   r  r   r  r   rk  r  s      r>   r  z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                 R   t        j                  d      j                  ddd      }t        |t	        dd       d      }t        |j                  j                  |j                  j                         t        |j                  j                  |j                  j                         y )	Nr   rO   rZ   r   r   <   rQ   r   )	r8   r9   rz   r   rk  r   r   r   r   )rg   r_   r=  s      r>   test_array_order_preservez$TestDelete.test_array_order_preserve  ss    IIbM!!!Qc!21eBoA. 	QWW))177+?+?@QWW))177+?+?@r@   c                 x   t        j                  t              5  t        j                  g dt        j
                  ddg             d d d        t        j                  t              5  t        j                  g dt        j
                  g t                     d d d        y # 1 sw Y   ]xY w# 1 sw Y   y xY w)NrP   r   r   r   )r-  r{  r  r8   r   r   r  r   s    r>   r  zTestDelete.test_index_floats  sk    ]]:&IIi3*!56 ']]:&IIi"E!:; '& '&&&s   .B$)2B0$B-0B9indexerrQ   c                    t        | j                  d      }t        | j                  |      }t        ||       t        | j                  dd      }t        | j                  t	        j
                  dg      d      }t        ||       y )NrQ   r   )r   rh   r   r  r8   r   )rg   r,  	a_del_intr  nd_a_del_intr  s         r>   test_single_item_arrayz!TestDelete.test_single_item_array  sd    4661%	tvvw'Y&dii3$))RXXqc];\8,r@   c                 P   t        t        j                  d      t        j                  dg            }t	        |t        j                  d             t        j                  d      }t        j                  dgt
              }t        j                  dgt
              }t        ||d      }t	        ||       t        ||d      }t	        ||d d d df          t        j                  t              5  t        t        j                  d	      t        j                  dgt                     d d d        t        j                  t              5  t        t        j                  d	      t        j                  dgd
             d d d        y # 1 sw Y   axY w# 1 sw Y   y xY w)NrQ   F)rY   rQ   r   Tr`   r   r   rO   zm8[ns])
r   r8   re   r   r	   boolr-  r{  r  object)rg   resr   
false_mask	true_masks        r>   test_single_item_array_non_intz)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   6:F6FFF%N)r   r   r   r  r  r  r!  r#  r|  r  r*  r  r-  r.  r/  r8   r   r0  r7  r   r@   r>   r  r  T  sn    <@6&*++?A< [[Y1#(<=- >->r@   r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  dej$                  ej&                  ej(                  ej*                  g      d        Zej                  j!                  dej.                  ej0                  ej2                  ej4                  g      d        Zej                  j!                  dej$                  ej&                  ej(                  ej*                  g      d        Zej                  j!                  dej.                  ej0                  ej2                  ej4                  g      d        Zd Zy)TestGradientc                     ddgddgg}t        j                  |      }t        j                  ddgddgg      t        j                  ddgddgg      g}t        t        |      |       t        t        |      |       y )NrQ   rY   rM   r   r   r   r   )r8   r   r	   r!   rg   vr   dxs       r>   rm   zTestGradient.test_basic  sv    VaVHHQKhhR2r(+,hhR2r(+,.8A;+8A;+r@   c           
         t        j                  t        j                  d            }g d}t        j                  d      j	                  dd      }t        t        j                  d      d       t        t        j                  d      t        j                  d             t        t        j                  d      |       t        |d       t        |t        j                  d             t        |||       t        ||d       t        ||d       t        t        d	t
        |t        j                  |gdz  d
      d       y )NrZ   )r   r   r   r        &@   r         ?rO   rQ   r   z.*scalars or 1dr`   )
r8   r  re   r9   rz   r!   r   r   rd   stack)rg   r=  	dx_unevenf_2ds       r>   	test_argszTestGradient.test_args  s    YYrwwqz")	yy}$$Q* 	1r"1rxx|,1r"srxx}%y), 	r1 	r" 	J(9dBHHbT!V"5q	:r@   c           	         t        j                  d      j                  dd      }t        j                  t        j                  d            }t        t        t        ||t        j                  d             t        t        t        |dt        j                  d             t        t        t        |t        j                  d      t        j                  d             t        t        t        ||       t        t        t        ||d       t        t        t        ||||       t        t        t        |ddd       t        t        t        |||d       t        t        t        |ddd       y )Nr@  rZ   rO   rQ   ra   r   )	r8   r9   rz   r  re   r   rd   r!   r[  )rg   rD  r   s      r>   test_badargszTestGradient.test_badargs  s    yy}$$Q*IIbggaj! 	j(D!RWWQZ@j(D!RWWQZ@j(D"''!*bggajIi43i4?i4Aq9i4Aq9i4AA>i4AA>r@   c                     t        j                  g dd      }t        j                  g dd      }t        t        |      |       t	        |j
                  t        j
                  d      k(         y )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  r  r8   r   r	   r!   r   r  rg   r   r=  s      r>   test_datetime64zTestGradient.test_datetime64  sY    HH7!# XX)"$ 	8A;+BHH%5667r@   c                    t         j                  j                  ddgddggddgddgg      }t        |      d   }t	        t        |      t        |             t        |j                  |j                  u       t         j                  j                  d      }t         j                  j                  |d<   t        j                  |d	       t        |j                  g d
       y )NrQ   rY   rM   Fr   r   rZ   rO   
edge_order)FFTFF)r8   r   r   r!   r   r  r   _maskr9   maskedr	   r  )rg   r   r  x2s       r>   test_maskedzTestGradient.test_masked  s    EEKK!Q!Q($enuen=  ?qk!nT#YQ( 	syy()UU\\!_1
B1%277$FGr@   c                    t        j                  ddd      }|d   |d   z
  }d|dz  z  d|dz  z  z   d|z  z   }d|dz  z  d|z  z   dz   }t        j                  t        j                  ||d	      |z  dz
        }t	        t        j
                  |d
k        dk(         t         j                  j                  d       t        j                  t         j                  j                  d            }d|dz  z  d|dz  z  z   d|z  z   }d|dz  z  d|z  z   dz   }t        j                  t        j                  ||d	      |z  dz
        }t	        t        j
                  |d
k        dk(         y )Nr   rQ   r   rO   rY   rM   rx   rw   rO  gQ?T)	r8   linspaceabsr!   r   r   randomseedsort)rg   r   r=  r  
analytical	num_errors         r>   test_second_order_accuratez'TestGradient.test_second_order_accurate  sR   
 KK1b!qTAaD[QJQ!V#a!e+aZ!a%'!+
FFBKK2!<zIQNO	y4'(D01 			qGGBII$$R()QJQ!V#a!e+aZ!a%'!+
FFBKK1;jHAMN	y4'(D01r@   c                    t        j                  g d      }t        j                  |d      |j                  dd      z   }t        j                  g d      }t        j                  d      }t        j                  g dd      }t        j                  g dd      }t        j                  g d	d      }t        j                  g d
d      }d|fd|ffD ]  \  }}	t        |dd|      }
t        |||d|      }t        |||d |      }t        |
|       t        ||       t        |
d   |	j                         t        |
d   |	       t        |dd|      }
t        ||d|      }t        |
j                  |j                  k(         t        ||	j                         t        |dd|      }
t        ||d|      }t        |
j                  |j                  k(         t        ||	        d|fd|ffD ]  \  }}	t        |||d|      }
t        |||d |      }t        |
|       t        |
d   |	j                         t        |
d   |	       t        ||d|      }
t        |
|	j                         t        ||d|      }
t        |
|	        t        |||dd      }
t        |||dd      }t        |
d   |d          t        |
d   |d          t        |
d   |j                         t        |
d   |       t        |||dd      }
t        |||dd      }t        |
d   |d          t        |
d   |d          t        |
d   |j                         t        |
d   |       y )N)r   r   r   r   r   r   )rx   rQ   r`   rQ   )r         ?r   r   r   r  r   )r   rA  r   r   r_  r   )      @rA  r   r   r_        )r   r   333333?r_        ?r   )r   r   rb  r_  rc  g      пrO   r   ra   )r   rP  r   rb   )r8   r   tilerz   r9   r!   r	   r
   rv  r   rD   )rg   fx_unevenx_evenfdx_even_ord1fdx_even_ord2fdx_uneven_ord1fdx_uneven_ord2rP  exp_resres1res2res3s                r>   test_spacingz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Avv!&:?DAvv!%*>DtT*tT*Q3Q1ArjADAvA*EDDJJ$**,-gii0ArjADAvA*EDDJJ$**,-tW-' $L, &'$81o:N#OJAx!&:?DAx!%*>DtT*Q3Q1AxaJGDgii0AxaJGDg. $P  68%AF8V%AF47DG,47DG,DG]__5DG_568%AF8V%AF47DG,47DG,DG]__5DG_5r@   c                    ddgddgg}t        j                  |      }t        j                  ddgddgg      t        j                  ddgddgg      g}t        t        |d	      |d          t        t        |d	      |d          t        t        |d
	      |d          t        t        |d	      |d   |d   g       t	        t        |d 	      |d   |d   g       t	        t        |d 	      t        |             t        t        |ddd	      |d   dz  |d   dz  g       t        t        t        |ddd	       t        t         j                  t        |d	       t        t         j                  t        |d	       y )NrQ   rY   rM   r   r   r   r   r   r   r`   rb   rO   r]   )r8   r   r	   r!   r
   r   r[  r   r;  s       r>   test_specific_axesz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                     t        j                  g dd      }t        j                  g dd      }t        t        |      |       t	        |j
                  t        j
                  d      k(         y )N)r  r]   r   rH  rJ  iA  ,  r  r   )rO   ry   ry   r@     w   irK  rL  s      r>   test_timedelta64zTestGradient.test_timedelta64  sW    HH*"$ XX("$ 	8A;+BHH%5667r@   c                    t         j                  t         j                  t         j                  fD ]W  }t        j                  g d|      }t        t        |      j                  t        j                  |      j                         Y y )Nr   r   )	r8   float16r  r  r   r   r!   r  r   )rg   dtr   s      r>   test_inexact_dtypesz TestGradient.test_inexact_dtypes  sQ    ::rzz2::6B"-A!**BGGAJ,<,<= 7r@   c                 (   t        t        j                  d      d       t        t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       y )NrO   rQ   rO  rY   r   )r!   r8   r9   r   rd   r   s    r>   test_valueszTestGradient.test_values  s    1!,1!,j(BIIaLQGj(BIIaLQGj(BIIaLQGj(BIIaLQGj(BIIaLQGr@   f_dtypec                 ~    t        j                  g d|      }t        |      }t        |dgt	        |      z         y )N)rZ   rM   rY   rO   rQ   r   r`   r8   r   r!   r	   r7  )rg   r~  re  gs       r>   test_f_decreasing_unsigned_intz+TestGradient.test_f_decreasing_unsigned_int  s1     HH_G4QK1rd3q6k*r@   c                     t        j                  |      j                  }t        j                  ddg      }t        j                  d|g|      }t	        ||      }t        ||dz   dz  gdz         y )NrQ   rY   r`   r   rO   )r8   iinfor  r   r!   r	   )rg   r~  maxintr   re  dfdxs         r>   test_f_signed_int_big_jumpz'TestGradient.test_f_signed_int_big_jump  sd     '"&&HHaVHHb&\11~46A:!"3!4Q!67r@   x_dtypec                     t        j                  g d|      }t        j                  g d      }t        ||      }t        |dgt	        |      z         y )Nr   r   r   rO   rM   rW   r  )rg   r  r   re  r  s        r>   test_x_decreasing_unsignedz'TestGradient.test_x_decreasing_unsigned  sA     HHYg.HHY1~4"c!f-r@   c                    t        j                  |      j                  }t        j                  |      j                  }t        j                  d|g|      }t        j                  |dz  dg      }t        ||      }t        |ddg       y )Nr`   r   rO   r   r_  )r8   r  minr  r   r!   r	   )rg   r  minintr  r   re  r  s          r>   test_x_signed_int_big_jumpz'TestGradient.test_x_signed_int_big_jump  sp     '"&&'"&&HHb&\1HHfk1%&1~4#s,r@   c                     t        j                  ddgddgf      }t        j                         rt        |      t        u sJ y t        |      t
        u sJ y )NrQ   rO   rY   )r8   r!   _using_numpy2_behaviorr  tupler  rg   r4  s     r>   test_return_typezTestGradient.test_return_type  sM    kkAq6Aq6*+$$&9%%%9$$$r@   N)r   r   r   rm   rE  rG  rM  rT  r]  rp  rr  rw  r{  r}  r-  r.  r/  r8   r\  r  r  uint64r  rO  r  r  int64r  r  r  r  r   r@   r>   r9  r9    sQ   ,:2? 
8H2(>6@:4	8>
H [[Y299)+BII)? @+@+
 [[Y"(()+288)= >8>8 [[Y299)+BII)? @.@. [[Y"(()+288)= >->-%r@   r9  c                       e Zd Zd Zd Zy)	TestAnglec                 d   dt        j                  d      dz  dt        j                  d      z  dz  z   dddddd	g}t        |      }t        j                  d
      t        j                  d      dt         j                  dz  t         j                  t         j                   dz  t        j                  d
       t         j                  t        j                  d
      z
  g}t        |d      }t        j
                  |      dz  t         j                  z  }t        ||d       t        ||d       y )N      ?      @rO   r   rN  rQ   r`                      ?      y            @r   r   r   T)degr  r   )r8   sqrtr   arctanpir   r   )rg   r   r  yozzos         r>   rm   zTestAngle.test_basic  s    RWWQZ#%RWWQZ!(;;BVW.!HIIi IIcNAruuqy"%%"%%#YYy!!255299Y+?#?A !XXb\C"%%'!!R,!!R,r@   c                 (   t         j                  j                  ddt        j                  d      dz  dz  g      }t         j                  j                  |d<   t         j                  j                  t        j
                  d      dt        j
                  d      g      }t         j                  j                  |d<   t        |      }t        t        |      t        |             t        |j                  |j                         t        ||       y )Nr  rQ   rO         ?      ?r   r   r   )
r8   r   r   r  rR  r  r   r   r  r  )rg   r   r  r  s       r>   r  zTestAngle.test_subclass  s    EEKKBGGAJqLF$;<=uu||!55;;		) 4a3HIeellqT&\4>2V[[(--0VX&r@   N)r   r   r   rm   r  r   r@   r>   r  r    s    -'r@   r  c            	          e Zd Z ej                  g d      Zej                  e      Zej                  e	      Z
ej                  e      Zd Zd Zd Zd Zd Zd Zej(                  j+                  d ej                  g d	       ej                  g d
       ej                  g d      g      d        Zd Zd Zy)TestTrimZeros)r   r   rQ   r   rO   rY   rM   r   c                      d} fd|D        S )N)rh   r   r   rS  c              3   6   K   | ]  }t        |        y wr7   )getattr).0namerg   s     r>   	<genexpr>z'TestTrimZeros.values.<locals>.<genexpr>  s     ;
d#
s   r   )rg   
attr_namess   ` r>   r:  zTestTrimZeros.values  s    )
;
;;r@   c                     t         j                  dd }| j                         D ]  }t        |      }t	        |||           y )NrO   r`   r8   s_r:  r1   r	   rg   slcarrr4  s       r>   rm   zTestTrimZeros.test_basic  s8    eeAbk;;=CS/CsCH- !r@   c                     t         j                  d d }| j                         D ]  }t        |d      }t	        |||            y )Nr`   r   trimr  r  s       r>   test_leading_skipzTestTrimZeros.test_leading_skip  s;    eeCRj;;=CSs+CsCH- !r@   c                     t         j                  dd  }| j                         D ]  }t        |d      }t	        |||            y )NrO   r   r  r  r  s       r>   test_trailing_skipz TestTrimZeros.test_trailing_skip  s;    eeABi;;=CSs+CsCH- !r@   c                     | j                         D ]]  }t        j                  ||j                        }t	        |d      }t        |      dk(  sJ t	        |d      }t        |      dk(  r]J  y )Nr   Br  r   re  )r:  r8   
zeros_liker  r1   r7  )rg   _arrr  rm  rn  s        r>   test_all_zerozTestTrimZeros.test_all_zero  s^    KKMD--DJJ7Cc,Dt9>!>c,Dt9>!> "r@   c                 \    t        j                  d      }t        |      }t        ||       y rY  )r8   rB   r1   r	   rg   r  r4  s      r>   test_size_zerozTestTrimZeros.test_size_zero  s"    hhqko3$r@   r  )r   l            r   )r   l            r   )r   l            r   c                 ^    t         j                  dd }t        |      }t        |||          y )NrQ   rO   )r8   r  r1   r	   )rg   r  r  r4  s       r>   test_overflowzTestTrimZeros.test_overflow  s*     eeAajo3C)r@   c                 `    t        j                  g d      }t        |      }t        ||       y )N)NrQ   N)r8   r   r1   r	   r  s      r>   test_no_trimzTestTrimZeros.test_no_trim  s#    hh'o3$r@   c                 n    t        | j                  j                               }t        |t              sJ y r7   )r1   rh   tolistr  r  r  s     r>   test_list_to_listzTestTrimZeros.test_list_to_list"  s&    )#t$$$r@   N)r   r   r   r8   r   rh   r  r  r   complexr   r3  rS  r:  rm   r  r  r  r  r-  r.  r/  r  r  r  r   r@   r>   r  r    s    )*A	A	A	A<..."%
 [[	-	 	-	 	-	 	"**
%
%r@   r  c                       e Zd Zd Zd Zd Zy)
TestExtinsc                 l    t        j                  g d      }t        |dkD  |      }t        |g d       y )N)rQ   rY   rO   rQ   rO   rY   rY   rQ   )rY   rO   rO   rY   rY   )r8   r   r   r	   r   s      r>   rm   zTestExtins.test_basic)  s+    HH*+AE11o.r@   c                    t        t        t        g dddgddg       t        j                  g d      t        g dg d       t        g d	       t        t        j                  d
      g        t        t        j                  dd             t        g dddg       t        g d       t        t        dfd       t        j                  ddg      t        ddgd       t        ddg       y )Nr   TFr   rQ   )rQ   rM   rY   rO   rZ   rw   ry   )r   rQ   r   rQ   r   rQ   r   rO   rM   rx   )rQ   rO   rY   rM   rZ   rx   ry   ry   rw   )rQ   r   rQ   r   rQ   r   rQ   r3  )rw   rO   r3  rM   rw   rx   r3  z!Cannot insert from an empty arrayc                  "    t         g dg       S )N)r   r   r   r   r   rQ   r   )r+   rh   s   r>   <lambda>z'TestExtins.test_place.<locals>.<lambda>=  s    E!-BB$Gr@   12349)
r   r[  r+   r8   r   r	   rB   r9   r   rd   rt   s    @r>   
test_placez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                     t        d      }|dkD  }|j                         }t        ||      }t        ||d       t        |||       t	        ||       y )Nr   r_  r   )r   r   r   r+   r	   )rg   rh   r  acr   s        r>   	test_bothzTestExtins.test_bothD  sM    H3wVVXD!aqaq1b!r@   N)r   r   r   rm   r  r  r   r@   r>   r  r  '  s    /
+,"r@   r  c                 2    |t        j                  |       z  S r7   mathfloorr   r  s     r>   _foo1r  P  s    TZZ]?r@   c                 8    |t        j                  |       z  |z   S r7   r  )r   r  r  s      r>   _foo2r  T  s    TZZ]?Qr@   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-y,)-TestVectorizec                 V    d }t        |      } |g dg d      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r7   r   rh   r   s     r>   addsubtractz.TestVectorize.test_simple.<locals>.addsubtract[      1u1u1ur@   r   rY   rx   r3  rQ   rY   rZ   ry   rQ   rx   rQ   rO   r4   r	   rg   r  re  rw  s       r>   test_simplezTestVectorize.test_simpleZ  s)    	 k"lL)1l+r@   c                 R    d }t        |      } |g dd      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r7   r   r  s     r>   r  z.TestVectorize.test_scalar.<locals>.addsubtractf  r  r@   r  rZ   )rZ   rw   rQ   rM   r  r  s       r>   test_scalarzTestVectorize.test_scalare  s)    	 k"lA1l+r@   c                 r    t        j                  ddd      }t        d       } ||      }t        ||       y )Nr]   rO   i'  c                     | S r7   r   r   s    r>   r  z*TestVectorize.test_large.<locals>.<lambda>r      r@   )r8   rV  r4   r	   )rg   r   re  r  s       r>   
test_largezTestVectorize.test_largep  s1    KKAu%k"aD1a r@   c                 >   t        t        j                        }t        j                  ddt        j
                  z  t        j
                  dt        j
                  z  dt        j
                  z  g      } ||      }t        j                  |      }t        ||       y )Nr   r_  rA  rO   )r4   r  cosr8   r   r  r   )rg   re  argsr1r2s        r>   
test_ufunczTestVectorize.test_ufuncv  se    dhhxxC"%%KbeeQYGHtWVVD\!"b)r@   c                     dd}t        |      }t        j                  g d      } ||      }t        j                  g d      }t        ||        ||d      }t        j                  g d      }t        ||       y )Nc                     | |z   S r7   r   r  s     r>   r  z(TestVectorize.test_keywords.<locals>.foo      q5Lr@   r   r   rO   rX   rJ  r4   r8   r   r	   rg   r  re  r  r  r  s         r>   test_keywordszTestVectorize.test_keywords}  sd    	 cNxx	"tWXXi 2r"tQZXXi 2r"r@   c                     t        t        t        g      } |t        j                  d      d      } |t        j                  d            }t        ||       y Notypesr   r   r4   r  r  r8   r9   r	   rg   re  r  r  s       r>    test_keywords_with_otypes_order1z.TestVectorize.test_keywords_with_otypes_order1  sD     eUG, ryy~s#ryy~2r"r@   c                     t        t        t        g      } |t        j                  d            } |t        j                  d      d      }t        ||       y r  r  r  s       r>    test_keywords_with_otypes_order2z.TestVectorize.test_keywords_with_otypes_order2  sD     eUG, ryy~ryy~s#2r"r@   c                    t        t        t        g      } |t        j                  d            } |t        j                  d      d      } |t        j                  d            }t        ||       t        ||       y )Nr  r   r   r  r  rg   re  r  r  r3s        r>    test_keywords_with_otypes_order3z.TestVectorize.test_keywords_with_otypes_order3  s`     eUG, ryy~ryy~%ryy~2r"2r"r@   c                     t        t        t        g      } |dd      } |dd      } |d      }t        |t        dd             t        |t        dd             t        |t        d             y )Nr  $@r_  )r  r`   r  r4   r  r  r   r  s        r>   +test_keywords_with_otypes_several_kwd_args1z9TestVectorize.test_keywords_with_otypes_several_kwd_args1  sc     eUG, ts^tr]tWRts+,Rtr*+Rt%r@   c                     t        t        t        g      } |ddd      } |ddd      }t        |t        ddd             t        |t        ddd             y )	Nr  r_  r  r`   )r  r   r  rQ   rO   rY   r  r  s       r>   +test_keywords_with_otypes_several_kwd_args2z9TestVectorize.test_keywords_with_otypes_several_kwd_args2  sT     eUG, #q!QZR34Rq!Q(r@   c                 f    dd l }	 t        |j                         y # t        $ r t	               w xY wrY  )rX  r4   	randrange	ExceptionAssertionError)rg   rX  s     r>   test_keywords_no_func_codez(TestVectorize.test_keywords_no_func_code  s2     		#f&&' 	# ""	#s    0c                 .   d
d}t        |      }t        j                  g d      } ||      }t        j                  g d      }t        ||        |d|      }t        ||        ||d      }t        j                  g d	      }t        ||       y )NrQ   c                     | |z   S r7   r   r  s     r>   r  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foo  r  r@   r   r  r   )r   rh   rO   r   rX   rJ  r   r  s         r>   test_keywords2_ticket_2100z(TestVectorize.test_keywords2_ticket_2100  sy    	 cNxx	"YXXi 2r"d^2r"tq\XXi 2r"r@   c                     d }t        j                  |ddg      }ddg}t        | |ddgg d	             t        | |ddgg d
             t        | |ddgg d             y )Nc                 v    t        |      }|j                  d      }|r|| z  |j                  d      z   }|r|S rY  )r  pop)r   p_pr4  s       r>   	mypolyvalz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyval  s;    aB&&)CAgq	) Jr@   r#  rQ   )excludedrY   rx   r   r   )r   r#  )r#  )r8   r4   r	   )rg   r%  vpolyvalanss       r>   test_keywords3_ticket_2100z(TestVectorize.test_keywords3_ticket_2100  se    	 <<	S!H=!f3Aq6Y ?@3!Q9 =>3!Q ;<r@   c                 P    t         d        }t         |ddgddg      ddg       y )Nc                  (    d}| D ]
  }|| |   z  } |S Nr   r   )kwr4  _ks      r>   re  z3TestVectorize.test_keywords4_ticket_2100.<locals>.f  s#    Cr"v Jr@   rQ   rO   rY   rM   r  rw   r  rg   re  s     r>   test_keywords4_ticket_2100z(TestVectorize.test_keywords4_ticket_2100  s3    		 
	 	11v!Q01a&9r@   c                 N    t         d        }t         |ddgddg      ddg       y )Nc                  ,    t        j                  |       S r7   )r8   r  )r<  s    r>   re  z3TestVectorize.test_keywords5_ticket_2100.<locals>.f  s    771:r@   rQ   rO   rY   rM   rw   r  r/  s     r>   test_keywords5_ticket_2100z(TestVectorize.test_keywords5_ticket_2100  s3    		 
	 	1aVaV,q!f5r@   c                 B    d }t        |      }t         |       d       y )Nc                       yNrQ   r   r   r@   r>   r  z5TestVectorize.test_coverage1_ticket_2100.<locals>.foo      r@   rQ   r  rg   r  re  s      r>   test_coverage1_ticket_2100z(TestVectorize.test_coverage1_ticket_2100  s    	 cN13"r@   c                     d }t        |      }t        |j                  |j                         d}t        ||      }t        |j                  |       y )Nc                     | S )zOriginal documentationr   r  s    r>   r  z3TestVectorize.test_assigning_docstring.<locals>.foo	      Hr@   zProvided documentation)doc)r4   r   __doc__)rg   r  re  r=  s       r>   test_assigning_docstringz&TestVectorize.test_assigning_docstring  sC    	 cNQYY,&cs#QYY$r@   c                 f    G d d      }t         t         |       j                        t        j                  d            t        j                  d      dz         t         t        |j                         |       t        j                  d            t        j                  d      dz         y )Nc                       e Zd ZdZd Zy)9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.FoorO   c                      || j                   z  S r7   r  rt   s     r>   r  z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.bar  s    DFF{"r@   N)r   r   r   r   r  r   r@   r>   FoorB    s    A#r@   rD  r3  rO   )r	   r4   r  r8   r9   )rg   rD  s     r>   test_UnboundMethod_ticket_1156z,TestVectorize.test_UnboundMethod_ticket_1156  sz    	# 	# 	/9SUYY/		!=99Q<1,	.-9SWW-ceRYYq\B99Q<1,	.r@   c                 @   t        d       } |t        j                  d            } |t        j                  dd            }t        d       } |t        j                  dd            } |t        j                  d            }t        ||       t        ||       y )Nc                     | S r7   r   r  s    r>   r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>#      r@   rY   r  c                     | S r7   r   r  s    r>   r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>&  rH  r@   )r4   r8   r9   r   )rg   f1res1ares1bf2res2bres2as          r>    test_execution_order_ticket_1487z.TestVectorize.test_execution_order_ticket_1487!  sx    {#299Q< 299S!$%{#299S!$%299Q< UE"UE"r@   c                 X    t        j                  d       }d}t        | ||             y )Nc                     | S r7   r   r  s    r>   r  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>.      1r@   d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r8   r4   r   )rg   re  r  s      r>   test_string_ticket_1892z%TestVectorize.test_string_ticket_1892,  s#    LL%Q!r@   c                     dgt         fd       }d|_        t        j                  d      }t	         ||      ||z         t        d   t        |             y )Nr   c                 (    dxx   dz  cc<   | dz  S )Nr   rQ   rO   r   )r   _callss    r>   re  z#TestVectorize.test_cache.<locals>.f6  s    1INI6Mr@   TrZ   )r4   cacher8   r9   r	   r   r7  )rg   re  r   rX  s      @r>   
test_cachezTestVectorize.test_cache2  sV    		 
	 IIaL1Q4Q'VAYA'r@   c                     t        j                  d       }d|_        t        j                  d      }t	         ||      |       y )Nc                     | S r7   r   r  s    r>   r  z+TestVectorize.test_otypes.<locals>.<lambda>A  rS  r@   r   rZ   )r8   r4   r  r9   r	   rg   re  r   s      r>   test_otypeszTestVectorize.test_otypes@  s2    LL%IIaL1Q4#r@   c                    t        t        j                  d      dgdgf       t        t        j                  d      dgdgf       t        t        j                  d      ddgdgf       t        t        j                  d      dgdgf       t        t        j                  d	      dgddgf       t        t        j                  d
      g ddgf       t        t        j                  d      dgdgf       t        t        j                  d      dgdgf       t        t        j                  d      ddgdgf       t        t        j                  d      dgdgf       t        t        j                  d      dgddgf       t        t        j                  d      g ddgf       t        t              5  t        j                  d       d d d        t        t              5  t        j                  d       d d d        t        t              5  t        j                  d       d d d        y # 1 sw Y   dxY w# 1 sw Y   CxY w# 1 sw Y   y xY w)Nz(x)->()r  r   z	(x,y)->()r  z(x),(y)->()r  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r   )rh   r   r   )rS  )rS  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   rd   r   s    r>   test_parse_gufunc_signaturez)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$   :H3'H?I3H<?IIc                 Z    d }t        |d      } |g dg d      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r7   r   r  s     r>   r  z8TestVectorize.test_signature_simple.<locals>.addsubtracti  r  r@   z	(),()->()	signaturer  r  r  r  r  s       r>   test_signature_simplez#TestVectorize.test_signature_simpleh  s+    	 k[9lL)1l+r@   c                 \    d }t        |d      } |ddgddgg      }t        |ddg       y )Nc                 "    | j                         S r7   r   r  s    r>   r   z4TestVectorize.test_signature_mean_last.<locals>.meant  s    668Or@   z(n)->()rf  rQ   rY   rO   rM   r  )rg   r   re  rw  s       r>   test_signature_mean_lastz&TestVectorize.test_signature_mean_lasts  s:    	 di01v1v1q!f%r@   c                 d    d }t        |d      } |ddgddgg      }t        |ddgddgg       y )	Nc                 (    | | j                         z
  S r7   rk  r  s    r>   centerz3TestVectorize.test_signature_center.<locals>.center|  s    qvvx<r@   (n)->(n)rf  rQ   rY   rO   rM   r`   r  )rg   ro  re  rw  s       r>   test_signature_centerz#TestVectorize.test_signature_center{  sC    	  f
31v1v1AwQ01r@   c                     t        d d      } |g d      }t        t        |t              xr t	        |      dk(         t        |d   g d       t        |d   g d       y )Nc                 
    | | fS r7   r   r  s    r>   r  z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>      Ar@   	()->(),()rf  r   rO   r   rQ   )r4   r   r  r  r7  r	   rg   re  rw  s      r>   test_signature_two_outputsz(TestVectorize.test_signature_two_outputs  sP    &+>iL
1e$4Q151Q4+1Q4+r@   c                 j   t        t        j                  d      } |ddgg d      }t        |g dg dg        |ddgggg d      }t        |g dg dggg        |ddgddggg d      }t        |g dg dgg dg dgg        |ddgg dg dg      }t        |g dg dgg dg dgg       y )	Nz(a),(b)->(a,b)rf  rQ   rO   r   r  r   r   )r4   r8   r;   r	   rv  s      r>   test_signature_outerz"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                     t        d d      } |g d      }t        |ddg        |g dg dg      }t        |ddgddgg       y )	Nc                     | d d S Nr`   r   r  s    r>   r  z<TestVectorize.test_signature_computed_size.<locals>.<lambda>  
    #2r@   z(n)->(m)rf  r   rQ   rO   r   rY   r  rv  s      r>   test_signature_computed_sizez*TestVectorize.test_signature_computed_size  sL    &*=iL1q!f%y)$%11v1v./r@   c                     d	d}t        |ddh      }t         |g d      g d       t         |g dd      g d       y )
Nc                     | |z   S r7   r   r  s     r>   r  z2TestVectorize.test_signature_excluded.<locals>.foo  r  r@   ()->()r   )rg  r&  r   r   r   r  rJ  r  r8  s      r>   test_signature_excludedz%TestVectorize.test_signature_excluded  s8    	 cX>1Y<31Y!,i8r@   c                     t        d ddg      } |g d      }t        |j                  t        j                  d             t	        |g d       y )Nc                     | S r7   r   r  s    r>   r  z5TestVectorize.test_signature_otypes.<locals>.<lambda>  r  r@   rp  r  rg  r  r   )r4   r   r  r8   r	   rv  s      r>   test_signature_otypesz#TestVectorize.test_signature_otypes  s<    kZLiLQWWbhhy121i(r@   c                    t        t        j                  d      }t        t        d      5   |ddg       d d d        t        t
        d      5   |dd       d d d        t        t
        d      5   |ddgg d       d d d        t        t        j                  d	      }t        t        d      5   |dd       d d d        y # 1 sw Y   xY w# 1 sw Y   yxY w# 1 sw Y   _xY w# 1 sw Y   y xY w)
Nz(n),(n)->(n)rf  zwrong number of positionalrQ   rO   zdoes not have enough dimensions$inconsistent size for core dimensionr   r  )r4   operatorr:   r   r[  rd   r/  s     r>   test_signature_invalid_inputsz+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/   C
C1C2
C)CCC&)C2c                 n   t        d d      }t        t        d      5   |g d       d d d        t        d d      }t        t        d      5   |d	       d d d        t        d
 d      }t        t        d      5   |d	dg       d d d        y # 1 sw Y   jxY w# 1 sw Y   GxY w# 1 sw Y   y xY w)Nc                     | d d S r|  r   r  s    r>   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r}  r@   rp  rf  r  r   c                     | S r7   r   r  s    r>   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r@   ru  zwrong number of outputsrQ   c                 
    | | fS r7   r   r  s    r>   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  rt  r@   r  rO   )r4   r   rd   r/  s     r>   test_signature_invalid_outputsz,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?B+BB(+B4c                 6   t        j                  d       }t        j                  ddgt              }t	        t
        d      5   ||       d d d        d|_        t         ||      |       t        j                  d d	      }t	        t
        d      5   ||       d d d        t        j                  d
 dd      }t         ||      |       t        j                  d dd      }t         ||      |       t        j                  d d	      }t         ||j                        |j                         t        j                  d dd      }t	        t
        d      5   ||       d d d        y # 1 sw Y   +xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  rS  r@   r   rZ   r   r  r   c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  rS  r@   r  rf  c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  rS  r@   r  c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  rS  r@   rp  c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  rS  r@   c                     | gS r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  s    A3r@   z()->(n)znew output dimensions)	r8   r4   rB   intr   rd   r  r	   rv  r]  s      r>   test_size_zero_outputz#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$   	E6	F$	F6F FFc                      G d dt         j                        }t        j                  g dg dg dg      j                  |      }t        j                  g dg dg dg      j                  |      }t        j                  t         j
                  d	
      } |||      }t        t        |      |       t        |g dg dg dg       t        j                  d       } |||      }t        t        |      |       t        |||z         y )Nc                       e Zd Zy)/TestVectorize.test_subclasses.<locals>.subclassNr  r   r@   r>   r  r    r  r@   r  )r   r   r   rf  )r   r   r   r   )r   r   r   )r  r   r  z(m,m),(m)->(m)rf  )r   r   r   )r   r   r   )r  r  r   c                     | |z  S r7   r   r  s     r>   r  z/TestVectorize.test_subclasses.<locals>.<lambda>  s    1r@   )r8   r  r   r  r4   matmulr   r  )rg   r  r=  r<  matvecrw  mults          r>   r  zTestVectorize.test_subclasses  s    	rzz 	 HHl""$ %%)T(^ 	
 HHlL,?@EEhObii3CD1aLT!Wh'Q|\BC ||,-AJT!Wh'QAr@   c                 R    t         j                  d        }|j                  dk(  sJ y )Nc                     | |z   S r7   r   r  s     r>   rM  z#TestVectorize.test_name.<locals>.f2   s    q5Lr@   rM  )r8   r4   r   )rg   rM  s     r>   	test_namezTestVectorize.test_name  s,    		 
	 {{d"""r@   c                 R    t         d        } |g dg d      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r7   r   r  s     r>   r  z1TestVectorize.test_decorator.<locals>.addsubtract  s    1u1u1ur@   r  r  r  r  )rg   r  rw  s      r>   test_decoratorzTestVectorize.test_decorator  s,    		 
	 l31l+r@   c                 z    t         d        }t        j                  j                  dk  r|j                  dk(  sJ y y )Nc                     | S )	Docstringr   r  s    r>   re  z'TestVectorize.test_docstring.<locals>.f  s	     Hr@   rO   r  )r4   sysr   optimizer>  r/  s     r>   test_docstringzTestVectorize.test_docstring  s?    		 
	 99!99+++ "r@   c                 f    d }t        |d      }t        j                  |      } |d      dk(  sJ y )Nc                     | |z   S r7   r   r  s     r>   r  z'TestVectorize.test_partial.<locals>.foo  r  r@   rY   rQ   rM   )r   r8   r4   )rg   r  r  vbars       r>   test_partialzTestVectorize.test_partial  s2    	 c1o||C Aw!||r@   c                     t        ddg      d        } |g d      }t        |j                  t        j                  d             t	        |g d       |j
                  dk(  sJ y )Nrp  r  r  c                     | S r7   r   r  s    r>   re  z8TestVectorize.test_signature_otypes_decorator.<locals>.f#  r<  r@   r   re  )r4   r   r  r8   r	   r   rv  s      r>   test_signature_otypes_decoratorz-TestVectorize.test_signature_otypes_decorator"  s[    	Z	<	 
=	 iLQWWbhhy121i(zzS   r@   c                 x    t        t              5  t        j                  d      }d d d        y # 1 sw Y   y xY w)NrY   )pyfuncr   r[  r8   r4   rg   As     r>   test_bad_inputzTestVectorize.test_bad_input,  s$    9%a(A &%%s   09c                     t        t              5  t        j                  d      d        }d d d        y # 1 sw Y   y xY w)Nstringc                       y)Nr  r   r   r@   r>   r  z+TestVectorize.test_no_keywords.<locals>.foo2  s    r@   r  )rg   r  s     r>   test_no_keywordszTestVectorize.test_no_keywords0  s1    9%\\(# $ &%%s   5>c                     t        d dg      } |dg      }t        |j                  t        j                  d             y )Nc                     | S r7   r   r  s    r>   r  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>:  rH  r@   r  rO   )r4   r   r  r8   rv  s      r>   test_positional_regression_9477z-TestVectorize.test_positional_regression_94776  s4     {i[1qcFQWWbhhy12r@   N).r   r   r   r  r  r  r  r  r	  r  r  r  r  r  r  r)  r0  r3  r9  r?  rE  rP  rU  rZ  r^  rc  rh  rl  rq  rw  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r@   r>   r  r  X  s    	,	,!*##	#
#&	)##"=	:6#
%.	#($ 6D	,&2,8 09)6(#	,,!)3r@   r  c                       e Zd Z G d d      Zej
                  j                  e d      ej
                  j                  ddej                  fdg      d               Z
y	)
	TestLeaksc                   &    e Zd ZdZd Zed        Zy)TestLeaks.Ar  c                      yrY  r   rg   r  s     r>   boundzTestLeaks.A.boundC  r7  r@   c                       yrY  r   )r  s    r>   unboundzTestLeaks.A.unboundF  s    r@   N)r   r   r   itersr  staticmethodr  r   r@   r>   r  r  @  s     	 
	 
	r@   r  Python lacks refcountsreasonz
name, incrr  )r  r   c                    dd l }t        | j                  |      }|j                          	 t	        j
                  |      }t        | j                  j                        D ]\  }| j                         }t        j                  t        ||      dd      |_
        |j                  t        j                  d            }^ d }t        t	        j
                  |      ||z          t        d      D ]  }|j                           t        t	        j
                  |      |       |j                          y # |j                          w xY w)Nr   rQ   r   rZ   )gcr  r  disabler  getrefcountrf   r  r8   
frompyfuncre  r9   r   collectenable)	rg   r  incrr  A_funcrefcountr   rh   r  s	            r>   test_frompyfunc_leakszTestLeaks.test_frompyfunc_leaksJ  s     	&


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

 0(;IIKBIIKs   C6D3 3EN)r   r   r   r  r-  r.  skipifr   r/  r  r  r   r@   r>   r  r  ?  sf      [[L(1IJ[[\agg, 	 K
r@   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  d      d        Zy)TestDigitizec                     t        j                  dd      }t        j                  dd      }t        t        ||      t        j                  d             y )Nr  rZ   r  r   r8   r9   r	   r   rg   r   binss      r>   test_forwardzTestDigitize.test_forwardj  s;    IIb!yyQ8At,biim<r@   c                     t        j                  ddd      }t        j                  ddd      }t        t        ||      t        j                  d             y )NrZ   r  r`   r  r   r  r  s      r>   test_reversezTestDigitize.test_reverseo  s?    IIaR yyB#8At,biim<r@   c                     t        d      }t        j                  |j                         |j	                         d      }t        t        j                  t        ||      dk7               y )Nr   r   r   r8   rV  r  r  r   r   r   )rg   r   bins      r>   test_randomzTestDigitize.test_randomt  sF    Hkk!%%'1557B/x3'1,-.r@   c                 ~    g d}g d}g d}t        t        ||      |       g d}t        t        ||d      |       y )N)rQ   rZ   rM   r   rw   r   r   )rQ   rZ   r   )rQ   rO   rQ   rY   rO   rY   r   )r   rQ   rQ   rO   rO   rY   r   T)r	   r   )rg   r   r  default_answerright_answers        r>   test_right_basiczTestDigitize.test_right_basicy  s:    #.8At,n=,8AtT2LAr@   c                     t        j                  dd      }t        j                  dd      }t        t        ||d      t        j                  d             y )Nr  rZ   rM   Tr   r  r  s      r>   test_right_openzTestDigitize.test_right_open  s=    IIb!yyQ8AtT2BIIbMBr@   c                     t        j                  ddd      }t        j                  ddd      }t        t        ||d      t        j                  d             y )NrZ   r  r`   rM   Tr   r  r  s      r>   test_right_open_reversez$TestDigitize.test_right_open_reverse  sA    IIaR yyB#8AtT2BIIbMBr@   c           	          t        d      }t        j                  |j                         |j	                         d      }t        t        j                  t        ||d      dk7               y )Nr   Tr  r  s      r>   test_right_open_randomz#TestDigitize.test_right_open_random  sH    H{{1557AEEGR0x4."456r@   c                    g d}g d}t        t        ||d      g d       t        t        ||d      g d       g d}t        t        ||d      g d       t        t        ||d      g d	       g d
}t        t        ||d      g d       t        t        ||d      g d       g d}t        t        t        ||       g d}t        t        t        ||       y )N)r`   r   rQ   rO   r   F)r   rO   rY   rY   T)r   r   rO   rY   r   )rY   rO   r   r   )rY   rY   rO   r   r   )r   r   rM   rM   )r   r   r   rM   r   )rQ   rQ   r   rQ   )r	   r   r   rd   r  s      r>   test_monotoniczTestDigitize.test_monotonic  s    8AtU3\B8AtT2LA8AtU3\B8AtT2LA8AtU3\B8AtT2LAj(At4j(At4r@   c                 t    g d}g d}t        t        t        ||       ||}}t        t        t        ||       y )N)rQ   rO   y      @      ?r   )r   r[  r   r  s      r>   test_casting_errorzTestDigitize.test_casting_error  s1    i1d34i1d3r@   c           	      L    G d dt         j                        }t        j                  d      j                  |      }t        j                  dd      j                  |      }t	        t        t        ||d      |              t	        t        t        ||d      |              y )Nc                       e Zd Zy)(TestDigitize.test_return_type.<locals>.ANr  r   r@   r>   r  r    r  r@   r  rZ   rQ   rY   FT)r8   r  r9   r  r   r  r   )rg   r  rh   r   s       r>   r  zTestDigitize.test_return_type  sz    	

 	IIaLa IIaO  #Jx1e4a889Jx1d3Q778r@   c                 X    d}t        t        j                  ||dz
  |dz   g      d       y Nl          rQ   r   r8   r   r  s     r>   test_large_integers_increasingz+TestDigitize.test_large_integers_increasing  s(    R[[QUAEN3Q7r@   z8gh-11022: np.core.multiarray._monoticity loses precisionr  c                 X    d}t        t        j                  ||dz   |dz
  g      d       y r  r  r  s     r>   test_large_integers_decreasingz+TestDigitize.test_large_integers_decreasing  s*     R[[QUAEN3Q7r@   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r-  r.  xfailr  r   r@   r>   r  r  h  si    =
=
/
BC
C
7
5 498
 [[I  K8K8r@   r  c                       e Zd Zd Zd Zy)
TestUnwrapc                     t        t        dddt        j                  z  z   g      ddg       t	        t        j
                  t        t        t        d      dz              t        j                  k               y )NrQ   rO   r   r_  )r	   r2   r8   r  r   r   r   r   r   s    r>   r  zTestUnwrap.test_simple  sR    61a!bee)m"451v>tF48c>23bee;<=r@   c                 B   t        t        ddgd      ddg       t        t        j                  t        t        t        d      dz  d            dk               t        j                  g d      }t        j                  |d      }t        t        |d      |       t        j                  g d	      }t        j                  |d
      }t        |d
      }t        |g d       t        |d
d      }t        |g d	       |j                  |j                  k(  sJ y )NrQ   i     periodrO   r     )r   K         rt  )r   r  r  r	  rt  i     )r   r  r  r	  rt  r     )r  discont)
r	   r2   r   r8   r   r   r   r   modr  )rg   
simple_seqwrap_seq
uneven_seqwrap_uneven
no_discont
sm_disconts          r>   test_periodz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@   N)r   r   r   r  r  r   r@   r>   r   r     s    >5r@   r   r  O
AllIntegerFloatM)r   rQ   r   c                   p    e Zd ZdededdfdZdededdfdZdededdfdZdededdfdZdededdfd	Z	y)
TestFilterwindowsr  r  returnNc                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r  rQ   r   r         @rM   )r8   r   r#   r  r  r  r   r    r	   re   r
   r   rg   r  r  scalarr  	ref_dtypes         r>   test_hanningzTestFilterwindows.test_hanning  s    !5)"-FOC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 15!<r@   c                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r  rQ   r   r   g(\@rM   )r8   r   r"   r  r  r  r   r    r	   re   r
   r   r  s         r>   test_hammingzTestFilterwindows.test_hamming  s    !5)"-FOC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 161=r@   c                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r  rQ   r   r   g^)@rM   )r8   r   r   r  r  r  r   r    r	   re   r
   r   r  s         r>   test_bartlettzTestFilterwindows.test_bartlett      !5)"-VC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 161=r@   c                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r  rQ   r   r   g=
ףp=@rM   )r8   r   r   r  r  r  r   r    r	   re   r
   r   r  s         r>   test_blackmanzTestFilterwindows.test_blackman  r&  r@   c                    t        j                  ||      d   }t        |d      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r   r  rQ   r   r   rB  )r8   r   r'   r  r  r  r   r    r	   re   r
   r   r  s         r>   test_kaiserzTestFilterwindows.test_kaiser2  s    !5)"-61C<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 12r:r@   )
r   r   r   strr  r!  r#  r%  r(  r*  r   r@   r>   r  r    s    =# =# =$ =*># ># >$ >*>3 >3 >4 >*>3 >3 >4 >*; ; ; ;r@   r  c                       e Zd Zd Zd Zd Zy)	TestTrapzc                     t        j                  ddd      }t        t        j                  d|dz  z        t        j                  dt         j
                  z        z  d      }t        |dd       y )	Nr   r  ra  rO   )r=  rQ   ry   )r8   r9   r0   r  r  r  r
   )rg   r   rw  s      r>   r  zTestTrapz.test_simpleJ  sS    IIc2r""&&qAv&RUU);;DAq!$r@   c                 F   t        j                  ddd      }t        j                  ddd      }t        j                  ddd      }t        j                  |      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   t        j                  |      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   t        j                  |      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   |d d d d f   |d d d d f   z   |d d d d f   z   }||d d d d f   z  j                  d      }||d d d d f   z  j                  d      }	||d d d d f   z  j                  d      }
t	        ||d d d d f   d	      }t        ||       t	        ||d d d d f   d	      }t        ||	       t	        ||d d d d f   d	      }t        ||
       t	        ||d	      }t        ||       t	        ||d	      }t        ||	       t	        ||d	      }t        ||
       y )
Nr   rQ   rY   rO   rw   r^   r`   r   )r   r   )r8   rV  	ones_liker   r0   r
   )rg   r   r  r  wxwywzqqxqyqzrw  s               r>   	test_ndimz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 !qD$'a0Ar"!qaQ/Ar"!qtAQ/Ar" !qq!Ar"!qq!Ar"!qq!Ar"r@   c                    t        j                  d      }||z  }|dk(  }t         j                  j                  ||      }d}t	        t        ||      |       t         j                  j                  ||      }t	        t        ||      |       t         j                  j                  ||      }t	        t        ||      |       y )NrZ   rO   r   g      *@)r8   r9   r   r   r
   r0   )rg   r   r  r  ymrw  xms          r>   rT  zTestTrapz.test_maskedu  s     IIaLEAvUU[[[&E"aL!,UU[[[&E"bM1-UU[[[&E!RL!,r@   N)r   r   r   r  r9  rT  r   r@   r>   r-  r-  H  s    %##J-r@   r-  c                       e Zd Zd Zd Zy)TestSincc                     t        t        d      dk(         t        t        j                  ddd            }t	        |t        |      d       y )Nr   rQ   r`   r_  ry   )r   r/   r8   rV  r   r    rg   r  s     r>   r  zTestSinc.test_simple  s9    Q1RC()!!VAY2r@   c                     ddg}t        t        j                  |            }t        t        |            }t        t	        |            }t        ||       t        ||       y )Nr   r_  )r/   r8   r   r  r  r	   )rg   r   r   r   r   s        r>   test_array_likezTestSinc.test_array_like  sK    H"((1+$q']%(^2r"2r"r@   N)r   r   r   r  rB  r   r@   r>   r>  r>    s    3#r@   r>  c                       e Zd Zd Zy)
TestUniquec                    t        j                  g d      }t        t        j                  t	        |      g dk(               t        t	        t        j                  g d            t        j                  dg      k(         g d}t        t        j                  t	        |      g dk(               t        j                  g d      }t        t        j                  t	        |      g dk(               y )	N)	rM   rY   rO   rQ   rQ   rO   rY   rM   r   )r   rQ   rO   rY   rM   )rQ   rQ   rQ   rQ   rQ   rQ   )widgethamr  r  r  rG  )r  r  rG  rF  )      @      @r        ?      $@r   rH  )r  rI  rH  r   )r8   r   r   r   r3   r  s     r>   r  z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@   Nr   r   r   r  r   r@   r>   rD  rD    s    Dr@   rD  c                       e Zd Zd Zd Zy)TestCheckFinitec                 :   g d}ddt         j                  g}ddt         j                  g}t         j                  j	                  |       t        t        t         j                  j                  |       t        t        t         j                  j                  |       y )Nr   rQ   rO   )r8   infrP  libasarray_chkfiniter   rd   r   s       r>   r  zTestCheckFinite.test_simple  sc    266N266N
  #j"&&":":A>j"&&":":A>r@   c                     g d}t         j                  j                  |dt         j                        }t	        |j
                  t         j                  k(         y )Nr   r   )r   r  )r8   rO  rP  r  r   r  rt   s     r>   test_dtype_orderz TestCheckFinite.test_dtype_order  s;    FF$$Qc$D2::%&r@   N)r   r   r   r  rR  r   r@   r>   rL  rL    s    ?'r@   rL  c            	          e Zd Z ej                  g dg dg dg      Z ej                  g dg dg dg      Z ej                  g dg dg d	g      Z ej                  g d
g dg dg dg dg dg      Zd Z	d Z
d Zd Zd Zd Zd Zd Zej$                  j'                  dej(                  ej*                  ej,                  ej.                  g      d        Zy)TestCorrCoef)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@)rU  r   p]4?)rV  rW  r   )r   rU  rV  ?'L?(8?4V}?)rU  r   rW  w{,H5?jS,?)rV  rW  r   )h?5#A?)rX  r[  r^  r   toBC,)rY  r\  r_  ra  r   @02v?)rZ  r]  r`  rb  rc  r   c                 X    t        t        j                  g dg d      ddgddgg       y )Nr   )rQ   r   rQ   r         )r
   r8   r   r   s    r>   test_non_arrayzTestCorrCoef.test_non_array  s'    BKK	9= #Yr
3	5r@   c                    t        | j                        }t        || j                         t	        t        j                  t        j                  |      dk               t        | j                  | j                        }t        || j                         t	        t        j                  t        j                  |      dk               y r,  )
r   r  r
   rm  r   r8   r   rW  r  rn  )rg   tgt1tgt2s      r>   r  zTestCorrCoef.test_simple  s|    D$)),rvvd|s*+,'D$)),rvvd|s*+,r@   c                 \   t               5 }t        j                  d       t        t        t
        | j                  d       |j                  t               t        t        | j                  d      | j                         t        t        | j                  | j                  d      | j                         t        t        | j                  d      | j                         t        t        | j                  | j                  d      | j                         d d d        y # 1 sw Y   y xY w)Nri  r`   ddofrY   )r   rl  simplefilterr   DeprecationWarningr   r  filterr
   rm  r  rn  rg   sups     r>   	test_ddofzTestCorrCoef.test_ddof  s     C!!(++XtvvBGJJ)*b 9499Eb A499Ma 8$))Da @$))L !  s   DD""D+c           	         t               5 }t        j                  d       t        t        t
        | j                  | j                  dd       t        t        t
        | j                  d       |j                  t               t        t        | j                  d      | j                         d d d        y # 1 sw Y   y xY w)Nri  rQ   r   )bias)r   rl  rm  r   rn  r   r  r  ro  r
   rm  rp  s     r>   	test_biaszTestCorrCoef.test_bias  sx     C!!(++Xtvvtvvq!L+XtvvAFJJ)*a 8$))D !  s   B#B77C c                    t        j                  g dg dg      }t        |      }t        j                  ddgddgg      }t        ||       t	        t        j
                  t        j                  |      dk               y Nr   rN  y               @rV  r   r  rN  )r8   r   r   r   r   r   rW  )rg   r   r4  r  s       r>   test_complexzTestCorrCoef.test_complex  sa    HHi./qkhhT
S"I./S!rvvc{c)*+r@   c                     t        j                  g dg      }t        j                  g dg      }t        t        j                  ||      t        j                  ddgddgg             y rw  )r8   r   r   r   rg   r   r  s      r>   test_xyzTestCorrCoef.test_xy  sM    HHi[!HHl^$Aq)288b$Z#r4K+LMr@   c           	         t        j                  d      5  t        j                  dt               t	        t        t        j                  g             t        j                         t	        t        t        j                  g       j                  dd            t        j                  g       j                  dd             t	        t        t        j                  g       j                  dd            t        j                  t        j                  t        j                  gt        j                  t        j                  gg             d d d        y # 1 sw Y   y xY wNTrg  ri  r   rO   )
rl  rm  rm  RuntimeWarningr	   r   r8   r   rP  rz   r   s    r>   
test_emptyz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   D5EEc                 2   ddgddgg}t        j                  d      5  t        |      }d d d        t        t        j                  ddgddgg             t        t        j                  t        j                  |      dk               y # 1 sw Y   cxY w)Ng0.++g}Ô%ITraise)r   r   re  )r8   errstater   r   r   r   r   rW  )rg   r   r   s      r>   test_extremezTestCorrCoef.test_extreme	  su    e_ufo.[[W%A &!!RXXCy3).D%EFrvvayC'() &%s   BB	test_typec                 v    | j                   j                  |      }t        ||      }||j                  k(  sJ y Nr   )r  r  r   r  )rg   r  cast_Ar4  s       r>   test_corrcoef_dtypez TestCorrCoef.test_corrcoef_dtype	  s2    y)vY/CII%%%r@   N)r   r   r   r8   r   r  r  rm  rn  rf  r  rr  ru  ry  r|  r  r  r-  r.  r/  halfsingledouble
longdoubler  r   r@   r>   rT  rT    s    	-	-	,	.	/A 		,	-	,	.	/A 288	%	$	&	()D 288	I	I	K	M	J	J	LMD5-
ME,N
O* [[[277BIIryy"--*XY& Z&r@   rT  c                      e Zd Z ej                  ddgddgddgg      j
                  Z ej                  ddgddgg      Z ej                  g dd      Z ej                  g d      Z	 ej                  d	gdgdgdgdgd
gg      j
                  Z
 ej                  ddgddgg      Z ej                  dej                        Z ej                  g d      Z ej                  ddgddgg      Z ej                  d      Z ej                  g d      Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej<                  j?                  dej@                  ejB                  ejD                  ejF                  g      d        Z$y) TestCovr   rO   rQ   r   re  )r   r   r   )ndmin)rQ   rM   rQ   r   r   皙?gٿrY   r   )r   r   r   gUUUUUU?gUUUUUU)g&S:?go_?g#~j?gZӼ?gQ|?c                 V    t        t        | j                        | j                         y r7   )r   r   x1rm  r   s    r>   rm   zTestCov.test_basic	  s    DGGdii0r@   c                     t        j                  g dg dg      }t        j                  ddgddgg      }t        t        |      |       t        t        |t        j                  d            |       y )Nr   rx  r   r  rN  rY   aweights)r8   r   r   r   re   )rg   r   r4  s      r>   ry  zTestCov.test_complex	  sW    HHi./hhT
S"I./A$A
3S9r@   c                     t        j                  g dg      }t        j                  g dg      }t        t        ||      t        j                  ddgddgg             y rw  )r8   r   r   r   r{  s      r>   r|  zTestCov.test_xy%	  sH    HHi[!HHl^$Aq	288b$Z#r,C#DEr@   c           	         t        j                  d      5  t        j                  dt               t	        t        t        j                  g             t        j                         t	        t        t        j                  g       j                  dd            t        j                  g       j                  dd             t	        t        t        j                  g       j                  dd            t        j                  t        j                  t        j                  gt        j                  t        j                  gg             d d d        y # 1 sw Y   y xY wr~  )
rl  rm  rm  r  r	   r   r8   r   rP  rz   r   s    r>   r  z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           	      v   t        j                  d      5  t        j                  dt               t	        t        | j                  d      t        j                  t        j                  t        j                   gt        j                   t        j                  gg             d d d        y # 1 sw Y   y xY w)NTrg  ri  rZ   rk  )
rl  rm  rm  r  r	   r   r  r8   r   rN  r   s    r>   test_wrong_ddofzTestCov.test_wrong_ddof3	  su    $$D1!!(N;s4773!xx"&&266'):+-66'266):)<  => 211s   BB//B8c                    t        t        | j                        t        | j                  d             t        j                  g d      }t        t        | j                  |      t        | j                  |d             y )NF)rowvar)g+?g4@?g&S?go_?gJ4?)r   r   x3r8   r   rg   r  s     r>   test_1D_rowvarzTestCov.test_1D_rowvar:	  sO    DGGc$''%&@AHH=>DGGQTWWa)FGr@   c                     t        t        | j                  d      t        j                  | j                  d             y )NrQ   rk  )r   r   r  r8   varr   s    r>   test_1D_variancezTestCov.test_1D_variance?	  s&    DGG!,bffTWW1.EFr@   c                 ^   t        t        | j                  | j                        t        | j                               t        t        | j
                  | j                        | j                         t        t        | j
                  | j                        | j                         | j                  dz   }t        t        t        | j
                  |       t        j                  dt        j                        }t        t        t        | j
                  |       t        j                  dt        j                        }t        t        t        | j
                  |       dt        j                  dt        j                        z  }t        t        t        | j
                  |       y )N)fweightsr_  rO   rY   r   rO   r`   rY   )r   r   rS  frequencies
x2_repeatsr  rn  unit_frequenciesrm  r   r[  r8   re   rZ  RuntimeErrorrd   )rg   nonintre  s      r>   test_fweightszTestCov.test_fweightsB	  s   DGGd.>.>?DOO,	.DGGd.>.>?			#DGGd.C.CD			#!!C'idgg?GGF"''*lC1=GGARWW%lC1="''**j#tww;r@   c                    t        t        | j                  | j                        | j                         t        t        | j                  d| j                  z        t        | j                  | j                               t        t        | j                  | j
                        | j                         t        j                  d      }t        t        t        | j                  |       t        j                  d      }t        t        t        | j                  |       dt        j                  d      z  }t        t        t        | j                  |       y )Nr  r   r  rO   re  rY   )r   r   r  r   ro  unit_weightsrm  r8   re   r   r  rd   r@  s     r>   test_aweightszTestCov.test_aweightsR	  s    DGGdll;TYYGDGGcDLL.@ADGGdll;	=DGGd.?.?@$))LGGFOlC1=GGAJlC1=2771:j#tww;r@   c                 F   t        t        | j                  | j                  | j                        t        | j
                               t        t        | j                  | j                  | j                        | j                         t        t        | j                  | j                  | j                        | j                         t        t        | j                  | j                  | j                        | j                         t        t        | j                  | j                  d| j                  z        t        | j                  | j                               t        t        | j                  | j                  | j                        | j                         y )N)r  r  r   r  )r   r   rS  r  r  r  r  rn  r  rm  r   ro  r   s    r>   test_unit_fweights_and_aweightsz'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@   r  c                 v    | j                   j                  |      }t        ||      }||j                  k(  sJ y r  )r  r  r   r  )rg   r  cast_x1r4  s       r>   test_cov_dtypezTestCov.test_cov_dtyper	  s2    ''..+'+CII%%%r@   N)%r   r   r   r8   r   rv  r  rm  rS  r  r  rn  re   rZ  r  r   ro  r  r  rm   ry  r|  r  r  r  r  r  r  r  r-  r.  r/  r  r  r  r  r  r   r@   r>   r  r  	  s   	Aq6Aq6Aq6*	+	-	-B288b#Yb	*+D	/	+B"((9%KC53%#useDEGGJ288c4[4+./Drwwq0bhh'G288gx(8W*=>?D2771:L	:	;B1:F
O>H
G< 
<#( [[[277BIIryy"--*XY& Z&r@   r  c                       e Zd Zd Zd Zd Zy)Test_I0c                 |   t        t        d      t        j                  d             t        j                  g d      }t        j                  g d      }t        t        |      |       t        t        |       |       t        j                  ddgddgd	d
gddgddgg      }t        t        |      t        j                  ddgddgddgddgddgg             t        j                  dg      }t	        |j
                  d       t        t        j                  dg      t        j                  dg             y )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   rJ  r   )r
   r$   r8   r   r   rD   r	   )rg   r  r  r  i0_0s        r>   r  z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                 
   t        j                  d       G fdd      }t        t        j                   |             |      sJ t        j                        }t        j                   |             }t        ||       y )NrM   c                   .    e Zd ZW  j                  Zd Zy)*Test_I0.test_non_array.<locals>.array_likec                     | S r7   r   )rg   r  s     r>   __array_wrap__z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__	  s    r@   N)r   r   r   __array_interface__r  r  s   r>   
array_liker  	  s    "#"7"7r@   r  )r8   r9   r  rW  r$   r	   )rg   r  r  r4  rh   s       @r>   rf  zTest_I0.test_non_array	  s^    IIaL	 	 "&&.
;;;eeAheeJL!3$r@   c                     t        j                  ddg      }t        j                  t        d      5  t        |      }d d d        y # 1 sw Y   y xY w)Nr   y      ?       @z#i0 not supported for complex valuesr  )r8   r   r-  r{  r[  r$   )rg   rh   r4  s      r>   ry  zTest_I0.test_complex	  s9    HHa[!]]9,QRQ%C SRRs   AAN)r   r   r   r  rf  ry  r   r@   r>   r  r  y	  s    88% r@   r  c                       e Zd Zd Zd Zy)
TestKaiserc                    t        t        j                  t        dd                   t	        t        dd      t        j
                  g              t	        t        dd      t        j
                  ddg             t	        t        dd      t        j
                  g d             t	        t        dd      t        j
                  g d	             y )
NrQ   r   r   rO    oF?rZ   )r  vT=?r   r  r  gg?)?YJ?r   r  r  )r   r8   isfiniter'   r
   r   r   s    r>   r  zTestKaiser.test_simple	  s    F1cN+,F1cNHHRL	*F1cNHHj*%=>	@F1cNHH &> ?	@ 	F1g.HH &> ?	@r@   c                     t        dd       y )NrY   rM   )r'   r   s    r>   test_int_betazTestKaiser.test_int_beta	  s    q!r@   N)r   r   r   r  r  r   r@   r>   r  r  	  s    @r@   r  c                       e Zd Zd Zy)	TestMsortc           
         t        j                  g dg dg dg      }t        j                  t        d      5  t        t        |      t        j                  g dg dg dg             d d d        y # 1 sw Y   y xY w)	N)\?bCQ?הs?)w?kl?*dta?)ӯ?6H?ܘC?zmsort is deprecatedr  )r  r  r  )r  r  r  )r  r  r  )r8   r   r-  warnsrn  r
   r)   r  s     r>   r  zTestMsort.test_simple	  si    HH:::< = \\,4IJa>>>@ AB KJJs   2A55A>NrJ  r   r@   r>   r  r  	  s    	Br@   r  c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestMeshgridc           
          t        g dg d      \  }}t        |t        j                  g dg dg dg dg             t        |t        j                  g dg dg dg dg             y )Nr   rM   rZ   rx   ry   r   )rZ   rZ   rZ   )rx   rx   rx   )ry   ry   ry   r(   r	   r8   r   rg   XYs      r>   r  zTestMeshgrid.test_simple	  s^    )\2A1bhh	(1(1(1(3 4 	5 	1bhh	(1(1(1(3 4 	5r@   c                 d    t        g d      \  }t        |t        j                  g d             y )Nr  r  )rg   r  s     r>   test_single_inputzTestMeshgrid.test_single_input	  s!    |$1bhh|45r@   c                 V    g }t        g t        |        t        g t        |ddi       y )Nr   F)r	   r(   r  s     r>   test_no_inputzTestMeshgrid.test_no_input	  s)    2x/2x:E:;r@   c           	      B   g d}g d}t        ||d      \  }}t        |t        j                  g dg dg dg             t        |t        j                  g dg dg dg             dd	g}t	        t        ||      d
   j
                  dk(         t	        t        ||d      d
   j
                  dk(         t	        t        |||      d
   j
                  dk(         t	        t        |||d      d
   j
                  dk(         t        t        t         ||d       y )Nr   r  ijindexingr   )rO   rO   rO   rO   )rY   rY   rY   rY   rw   r3  r   rI  rY   rM   )rM   rY   rO   )rY   rM   rO   notvalid)r(   r	   r8   r   r   rD   r   rd   )rg   r   r  r  r  r  s         r>   test_indexingzTestMeshgrid.test_indexing	  s   !Q.A1bhh(4(4(6 7 	8 	1bhh(4(4(6 7 	8
 FAq!''612A-a066&@AAq!!$**i78Aq40399YFGj(Aq:Fr@   c           	          t        g dg dd      \  }}t        |t        j                  g dg             t        |t        j                  dgdgdgdgg             y )	Nr   r  TsparserM   rZ   rx   ry   r  r  s      r>   test_sparsezTestMeshgrid.test_sparse	  sM    )\$?A1bhh	{341bhhaS1#s';<=r@   c                 <    t        t        t        g dg dd       y )Nr   r  r  )r  )r   r[  r(   r   s    r>   test_invalid_argumentsz#TestMeshgrid.test_invalid_arguments	  s     	it	=r@   c                    t        j                  ddt         j                        }t        j                  ddt         j                        }t        j                  ||      \  }}t        |j                  |j                  k(         t        |j                  |j                  k(         t        j                  ||d      \  }}t        |j                  |j                  k(         t        |j                  |j                  k(         t        j                  ||d      \  }}t        |j                  |j                  k(         t        |j                  |j                  k(         y )Nr   r   r   r  T)r   r  )r8   r9   r  r  r(   r   r  )rg   r   r  r  r  s        r>   r  zTestMeshgrid.test_return_type
  s     IIa2::.IIb"BJJ/{{1Q1177"#177"# {{1QT*1177"#177"# {{1Qt,1177"#177"#r@   c                     t        j                  ddg      }t        j                  ddg      }t        j                  ||dd      \  }}d|dd d f<   t        |dd d f   d       t        |d	d d f   |       y )
Nr  r  gffffff
@g@FT)r  r   r   rQ   )r8   r   r(   r   )rg   r  r  r   r  s        r>   test_writebackzTestMeshgrid.test_writeback
  so    HHc3Z HHc3Z {{1aD91!Q$Qq!tWa Qq!tWa r@   c                 6   t        j                  d t        dd      D         \  }}}}}d}t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       y )Nc              3   (   K   | ]
  }d g|z    yw)r   Nr   )r  r   s     r>   r  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>'
  s     %C{!qcAg{s   rQ   rx   )rO   rQ   rY   rM   rZ   )r8   r(   rf   r   rD   )rg   rh   r   r   rS  r`  expected_shapes          r>   test_nd_shapezTestMeshgrid.test_nd_shape&
  sq    %CuQ{%CD1aA(QWWn-QWWn-QWWn-QWWn-QWWn-r@   c                     t        j                  dgddgg d      \  }}}t        |g dgg dgg       t        |g dgg dgg       t        |g dgg dgg       y )Nr   rQ   rO   rX   r   r   rN   r8   r(   r   r   s       r>   test_nd_valueszTestMeshgrid.test_nd_values/
  sY    ++qcAq6951aQ)yk23Q)yk23Q)yk23r@   c                     t        j                  dgddgg dd      \  }}}t        |g dg dgg       t        |g dg d	gg       t        |g dg dgg       y )
Nr   rQ   rO   rX   r  r  r   r   rN   r  r   s       r>   test_nd_indexingzTestMeshgrid.test_nd_indexing5
  sX    ++qcAq69tD1aQ)Y/01Q)Y/01Q)Y/01r@   N)r   r   r   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                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestPiecewisec           	      v   t        ddgddgdg      }t        |ddg       t        ddgddggdg      }t        |ddg       t        ddgt        j                  ddg      dg      }t        |ddg       t        ddgt        j                  ddg      dg      }t        |ddg       t        ddgt        j                  ddg      gdg      }t        |ddg       t        ddgddggd g      }t        |ddg       t	        t
        dt         ddgddggg        t	        t
        dt         ddgddggg d       y )	Nr   TFrQ   c                      yr|  r   r  s    r>   r  z+TestPiecewise.test_simple.<locals>.<lambda>S
  s    r@   r`   z1 or 2 functions are expectedr   )r*   r	   r8   r   r   rd   r  s     r>   r  z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    t        ddgddgddggddg      }t        |ddg       y )NrQ   rO   TFrY   rM   r*   r	   r  s     r>   test_two_conditionsz!TestPiecewise.test_two_conditions[
  s3    q!fe}udm<q!fE1q!f%r@   c                 >    t        dg dg d      }t        |d       y )NrY   )TFF)rM   rO   r   rM   )r*   r   r  s     r>   $test_scalar_domains_three_conditionsz2TestPiecewise.test_scalar_domains_three_conditions_
  s    a-y9Qr@   c                     t        ddgddgdg      }t        |ddg       t        ddgddgddg      }t        |ddg       y )NrQ   rO   TFr   rY   r  r  s     r>   test_defaultzTestPiecewise.test_defaultc
  sR    q!ftUmaS11q!f% q!ftUmaV41q!f%r@   c                 J   t        j                  d      }t        ||dkD  ddg      }t        |j                  dk(         t        |dk(         d}t        |ddgddg      }t        |j                  dk(         t        |dk(         t        |g dg d	      }t        |d       y )
NrY   rM   r   rZ   TFrQ   r5  r   )r8   r   r*   r   r   r	   r{  s      r>   r|  zTestPiecewise.test_0dl
  s    HHQKaQA'!Qa$A/!Q a-y91a r@   c           	      2   d}t        ||dk  |dkD  gddg      }t        |d       d}t        ||dk  |dkD  |dk  z  |dkD  gg d      }t        |d       t        t        dt         ||dk  |dkD  gdg       t        t        dt         ||dk  |dkD  gg d	       y )
NrY   rM   r   rZ   r   rO   z2 or 3 functions are expectedrQ   r   )r*   r   r	   r   rd   r{  s      r>   test_0d_comparisonz TestPiecewise.test_0d_comparison{
  s    a!q&!a%1a&1Q a!q&1q5Q!V"4a!e<iH1a J(Gq161q5/A3	0J(Gq161q5/<	9r@   c                     t        j                  d      }t        j                  |dkD        }t        ||gddg      }t        |d       y )NrY   rQ   rO   )r8   r   r*   r   )rg   r   r   r  s       r>   test_0d_0d_conditionz"TestPiecewise.test_0d_0d_condition
  s>    HHQKHHQUOa!q!f%Qr@   c                     t        j                  g dg dg      }t        ||dk  |dk\  gg d      }t        |t        j                  g dg dg             y )N)g      g      ra  )r_  rA  r`  r   rO   re  )re  re  re  )r   r   r   )r8   r   r*   r	   r{  s      r>   test_multidimensional_extrafuncz-TestPiecewise.test_multidimensional_extrafunc
  sT    HH(%' (a!a%a*51bhh(4(6 7 	8r@   c                      G d dt         j                        }t        j                  d      j                  |      }t	        ||dk  |dk\  gg d      }t        t        |      |       t        |g d       y )Nc                       e Zd Zy)/TestPiecewise.test_subclasses.<locals>.subclassNr  r   r@   r>   r  r  
  r  r@   r  r   r   rM   )re  r   r   )re  re  r   r   r   )r8   r  r9   r  r*   r   r  )rg   r  r   rw  s       r>   r  zTestPiecewise.test_subclasses
  s]    	rzz 	IIbMx(a!B$1}5T!Wh'Q./r@   N)r   r   r   r  r  r  r  r|  r
  r  r  r  r   r@   r>   r  r  <
  s/    ;:&&!980r@   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  e d      d        Zej                  j%                  dddggdg      d        Zy)TestBincountc                     t        j                  t        j                  d            }t        |t        j                  d             y )NrM   )r8   bincountr9   r	   re   r  s     r>   r  zTestBincount.test_simple
  s*    KK		!%1bggaj)r@   c                     t        j                  t        j                  g d            }t        |t        j                  g d             y )N)rQ   rZ   rO   rM   rQ   )r   rO   rQ   r   rQ   rQ   )r8   r  r   r	   r  s     r>   test_simple2zTestBincount.test_simple2
  s-    KK121bhh'9:;r@   c                     t        j                  d      }t        j                  g d      }t        j                  ||      }t	        ||       y )NrM   )皙?333333?r_  r  )r8   r9   r   r  r	   rg   r   r  r  s       r>   test_simple_weightzTestBincount.test_simple_weight
  s8    IIaLHH)*KK11a r@   c                     t        j                  g d      }t        j                  g d      }t        j                  ||      }t        |t        j                  g d             y )NrQ   rO   rM   rZ   rO   r  r  r_  r  r  )r   r  r_  r   r_  r  r8   r   r  r	   r  s       r>   test_simple_weight2z TestBincount.test_simple_weight2
  sC    HH_%HH./KK11bhh'ABCr@   c                    t        j                  g d      }t        j                  |d      }t        |t        j                  g d             g }t        j                  |d      }t        |t        j                  g              y )N)r   rQ   r   rQ   rQ   rY   	minlength)rO   rY   r   r   r   r{  s      r>   test_with_minlengthz TestBincount.test_with_minlength
  sZ    HH_%KKQ'1bhhy12KKQ'1bhhrl+r@   c                    t        j                  g d      }t        j                  |d      }t        |t        j                  g d             t        j                  |d      }t        |t        j                  g d             y )N)r   rQ   rQ   rO   rO   rY   rY   rO   r#  )rQ   rO   rO   rO   r   r   r{  s      r>   )test_with_minlength_smaller_than_maxvaluez6TestBincount.test_with_minlength_smaller_than_maxvalue
  sW    HH*+KKQ'1bhh|45KKQ'1bhh|45r@   c                     t        j                  g d      }t        j                  g d      }t        j                  ||d      }t        |t        j                  g d             y )Nr  r  rw   )r   r  r_  r   r_  r  r   r   r   r  s       r>   test_with_minlength_and_weightsz,TestBincount.test_with_minlength_and_weights
  sE    HH_%HH./KK1a 1bhh'GHIr@   c                 |    t        j                  g t              }t        j                  |      }t	        ||       y r  )r8   r   r  r  r	   r{  s      r>   r  zTestBincount.test_empty
  s)    HHRs#KKN1a r@   c                     t        j                  g t              }t        j                  |d      }t	        |t        j
                  dt                     y )Nr   rZ   r#  )r8   r   r  r  r	   rB   r{  s      r>   test_empty_with_minlengthz&TestBincount.test_empty_with_minlength
  s7    HHRs#KKQ'1bhhq45r@   c                    t        j                  g t              t        t        dfd       t        t
        dfd       t        j                  d      t        t        dfd       t        t
        dfd       y )	Nr   z"'str' object cannot be interpretedc                  2    t        j                   d      S Nfoobarr#  r8   r  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
      BKKX$Fr@   zmust not be negativec                  2    t        j                   d      S Nr`   r#  r1  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
      BKKR$@r@   rZ   c                  2    t        j                   d      S r/  r1  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
  r2  r@   c                  2    t        j                   d      S r4  r1  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
  r5  r@   )r8   r   r  r   r[  rd   r9   r  s    @r>   test_with_incorrect_minlengthz*TestBincount.test_with_incorrect_minlength
  sj    HHRs#I@F	H 	J2@	B IIaLI@F	H 	J2@	Br@   r  r  c                 ~   t        j                  t        j                  t        j                              }t        j                  t        j                  t        j
                              }t        d      D ]  }t        j                  g d        t        t        j                  t        j                  t        j                              |       t        t        j                  t        j                  t        j
                              |       t        d      D ]  }t        j                  g dg d        t        t        j                  t        j                  t        j                              |       t        t        j                  t        j                  t        j
                              |       y )Nr   r   r   )	r  r  r8   r  intpr  rf   r  r   )rg   intp_refcountdouble_refcountjs       r>   test_dtype_reference_leaksz'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@   valsrO   c                    t        j                  |      }t        t              5  t        j                  |       d d d        t        t              5  t        j                  |       d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY wr7   )r8   asarrayr   rd   r  )rg   r?  vals_arrs      r>   test_error_not_1dzTestBincount.test_error_not_1d
  sW     ::d#:&KK! ':&KK '& '&&&s   A1A=1A:=BN)r   r   r   r  r  r  r!  r%  r'  r)  r  r,  r8  r-  r.  r  r   r>  r/  rC  r   r@   r>   r  r  
  s    *<!D,6J!
6
B" [[L(1IJL KL [[V1vh]3 4r@   r  c                       e Zd Zd Zd Zd Zd Zd Z ej                  d d d d	 gg d
      d        Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestInterpc                 
   t        t        t        dg g        t        t        t        ddgddg       t        t        t        dddgddgd       t        t        t        dg g d       t        t        t        ddgddgd       y )Nr   rQ   rO   r  h  )r   rd   r&   r   s    r>   test_exceptionszTestInterp.test_exceptions  sl    j&!R4j&!aS1a&9j&!aVaVAFj&!RC@j&!aS1a&Er@   c                     t        j                  ddd      }t        j                  ddd      }t        j                  ddd      }t        t        j                  |||      |       y )Nr   rQ   rZ   ro   )r8   rV  r
   r&   rg   r   r  x0s       r>   rm   zTestInterp.test_basic	  sO    KK1a KK1a [[Ar"BIIb!Q/4r@   c                    t        dd      D ]  }t        j                  |t        j                        }t        j                  |t        j                        }t        j
                  dd|dz
  |gt        j                        }|d d d   }t        |||      }t        |||      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	       t        |||d      }t        |||d      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	       t        |||d	
      }t        |||d	
      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	       t        |||dd	      }t        |||dd	      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	        y )NrQ   r   r   r`   r   r   left)r   rQ   rQ   rQ   rO   right)rQ   rQ   rQ   rO   )rN  rP  )r   rQ   rQ   rO   )	rf   r8   r9   r  re   r   r&   r  r   )
rg   sizexpypincptsdecptsincresdecresinctgtdectgts
             r>   test_right_left_behaviorz#TestInterp.test_right_left_behavior  s    !RLD4ryy1BRYY/BXXr1dQh5RYYGFDbD\FFB+FFB+FXXl%8FDbD\F((FB3FFB3FXXl%8FDbD\F((FB!4FFB!4FXXl%8FDbD\F((FB!<FFB!<FXXl%8FDbD\F((A !r@   c                 &   t        j                  ddd      }t        j                  ddd      }d}t        t        j                  |||      |       d}t        t        j                  |||      |       t        j                  d      }t        t        j                  |||      |       t        j
                  d      }t        t        j                  |||      |       t         j                  }t        t        j                  |||      |       y )Nr   rQ   rZ   r  )r8   rV  r
   r&   r  r  rP  rJ  s       r>   test_scalar_interpolation_pointz*TestInterp.test_scalar_interpolation_point5  s    KK1a KK1a BIIb!Q/4BIIb!Q/4ZZ^BIIb!Q/4ZZ^BIIb!Q/4VVBIIb!Q/4r@   c                 l   g d}g d}ddt         j                  dg}t        t        j                  |||      ddt         j                  t         j                  dg       ddt         j                  dg}t        t        j                  |||      ddt         j                  t         j                  dg       y )NrQ   rO   r`  rY   rM   r  rQ   rO   rM   )r8   rN  r
   r&   rP  )rg   r   rR  fps       r>    test_non_finite_behavior_exact_xz+TestInterp.test_non_finite_behavior_exact_xC  s    BFFABIIaR01a2KLBFFABIIaR01a2KLr@   c                 ,    t        j                  |       S r7   )r8   float_r  s    r>   r  zTestInterp.<lambda>L  s    "))A,r@   c                     t        | d      S rY  rI   r  s    r>   r  zTestInterp.<lambda>M      -1%r@   c                     t        d|       S rY  rd  r  s    r>   r  zTestInterp.<lambda>N  re  r@   c                 B    t        | t        j                  | d            S )NrW   )rI   r8   multiplyr  s    r>   r  zTestInterp.<lambda>O  s    -2;;q"#56r@   )rF   zcomplex-realzcomplex-imagzcomplex-both)paramsidsc                     |j                   S )z( scale function used by the below tests )param)rg   requests     r>   sczTestInterp.scK  s     }}r@   c           
      l   t        t        j                  dt        j                  dg |ddg             |t        j                               t        t        j                  ddt        j                  g |ddg             |t        j                               t        t        j                  dddg |t        j                  dg             |t        j                               t        t        j                  dddg |dt        j                  g             |t        j                               y)z test that nans are propagated r_  rQ   r   r   N)r   r8   r&   rP  rg   rn  s     r>   test_non_finite_any_nanz"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           
         t        t        j                  dt        j                   t        j                  g |ddg             |t        j                               t        t        j                  dddg |t        j                   t        j                  g             |t        j                               t        t        j                  dddg |t        j                  t        j                   g             |t        j                               t        t        j                  dt        j                   t        j                  g |ddg             |d             y)z2 Test that interp between opposite infs gives nan r_  r   r   rQ   Nr   r8   r&   rN  rP  rp  s     r>   test_non_finite_infz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           
         t        t        j                  dt        j                   dg |t        j                   dg             |t        j                               t        t        j                  dt        j                   dg |t        j                  dg             |t        j                               t        t        j                  dt        j                   dg |dt        j                   g             |t        j                               t        t        j                  dt        j                   dg |dt        j                  g             |t        j                               t        t        j                  ddt        j                  g |t        j                   dg             |t        j                               t        t        j                  ddt        j                  g |t        j                  dg             |t        j                               t        t        j                  ddt        j                  g |dt        j                   g             |t        j                               t        t        j                  ddt        j                  g |dt        j                  g             |t        j                               y)z@ Test that interp where both axes have a bound at inf gives nan r_  rQ   r   r   Nrs  rp  s     r>   test_non_finite_half_inf_xfz&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           
      @   t        t        j                  dt        j                   t        j                   g |ddg             |d             t        t        j                  dt        j                   dg |ddg             |d             t        t        j                  ddt        j                  g |ddg             |d             t        t        j                  dt        j                  t        j                  g |ddg             |d             y)z1 Test interp where the x axis has a bound at inf r_  r   r   rQ   Nr   r8   r&   rN  rp  s     r>   test_non_finite_half_inf_xz%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           
         t        t        j                  dddg |dt        j                   g             |t        j                                t        t        j                  dddg |dt        j                  g             |t        j                               t        t        j                  dddg |t        j                   dg             |t        j                                t        t        j                  dddg |t        j                  dg             |t        j                               t        t        j                  dddg |t        j                   t        j                   g             |t        j                                t        t        j                  dddg |t        j                  t        j                  g             |t        j                               y)z1 Test interp where the f axis has a bound at inf r_  r   rQ   r   Nrx  rp  s     r>   test_non_finite_half_inf_fz%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                    t        j                  ddd      }t        j                  ddd      dt        j                  ddd      z   dz  z   }d}|d|z   dz  z   }t        t        j                  |||      |       d}d}t        t        j                  ||||      |       d	}d}t        t        j                  ||||
      |       g d}g d}ddt         j                  dg}ddt         j                  dz   t         j                  dg}t        t        j                  |||      |       g d}g d}g d}g d}t        t        j                  |||d      |       y )Nr   rQ   rZ   rN  r  r`          @      @rM  r   rO  r^  r         @      ?rM   y              ?iLiViG   r/  r  r   im     iBi^  i)      @      ?y      $@       @      @      @y      @      @)y      @      ?r  y     !@      ?y      @      ?r  y      
@      
@y      @      @y      @      @rG  r  )r8   rV  r
   r&   rN  )	rg   r   r  rK  y0rN  rP  rR  r_  s	            r>   test_complex_interpzTestInterp.test_complex_interp  s4   KK1a KK1a AAq!(<$<d#BB1R4+BIIb!Q/4BIIb!QT:DABIIb!Qe<eDrvvq!bffTk2661-BIIaR0!44#(#BIIaR<a@r@   c                    t        j                  ddd      }t        j                  ddd      }t        j                  d      }t        t        j                  |||      |       t        j                  g d      }t        j                  g d      }t        j                  t        j                  d      ||      }t        |d       t        t        |t         j                               t        j                  t        j                  d      ||d	      }t        |d
       t        t        |t         j                               y )Nr   rQ   rZ   r  r  )rQ   r`   rQ   r  rM   r  r_  )	r8   rV  r   r
   r&   r   r   r  r  )rg   r   r  rK  rR  r_  r  s          r>   )test_zero_dimensional_interpolation_pointz4TestInterp.test_zero_dimensional_interpolation_point  s    KK1a KK1a XXb\BIIb!Q/4XXi XXj!288A;B/VQ
62::./288C="b;VS!
62::./r@   c                     t        j                  ddd      }t        j                  |      }t        t        j                  t         j
                  ||      d       y )Nr   r   g-C6?r   )r8   r9   sinr
   r&   r  )rg   rR  r_  s      r>   test_if_len_x_is_smallz!TestInterp.test_if_len_x_is_small  s<    YYq"f%VVBZBIIbeeR4c:r@   c                 L   g d}g d}g d}g d}t        t        j                  |||d      |       t        j                  |d      j	                  d	d
      }t        j                  |d      j	                  d	d
      }t        t        j                  |||d      |       y )Nr  r  )rZ   r   rY   rM   )g      @r        !@g      @r   g      
@      @g      @rG  r  r   r   rO   r`   r?  )r
   r8   r&   r   rz   )rg   r   rR  r_  r  s        r>   r  zTestInterp.test_period  s    4#6BIIaR<a@HHQc"**1b1HHQc"**1b1BIIaR<a@r@   N)r   r   r   rH  rm   rZ  r\  r`  r-  fixturern  rq  rt  rv  ry  r{  r  r  r  r  r   r@   r>   rE  rE     s    F5$)L5M V^^%%6	


YY	]MRA80";
Ar@   rE  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dej                  d         d        Zej                  d	   D  cg c]  }|t        j                  f c}}} ej                  ej                  fej                   ej                   fej                  ej                  fej"                  ej"                  f ej$                  d
      ej                  fgz   Zej                  j                  ddge      ej                  j                  ddgg d      d               Zej                  d	   ej                  d   z   d
z   Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&ej                  j                  d"d#d$d#gg      ej                  j                  d%g d&'      d(               Z'd) Z(d* Z)d+ Z*d, Z+ej                  j                  dd-d.g      ej                  j                  d/g d0      d1               Z,y2c c}}} w )3TestPercentilec                    t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t         j                  |d	<   t        t        j                  |d      t         j                         t        t        j                  |dd
      t         j                         y )Nrw   r_  r   r   r_  r  ro   r   rQ   nearestmethod)r8   r9   r   
percentilerP  r  s     r>   rm   zTestPercentile.test_basic  s    IIaL3R]]1a("-R]]1c*C0R]]1b)40vv!R]]1a("&&1R]]1a	:BFFCr@   c           	         t        d      D cg c]  }t        |d       }}t        j                  |t        d            }t	        |t        d             t	        t        |      t               t        j                  |t        d            }t	        |t        dd             t	        t        |      t               t        j                  |t        d            }t	        |t        dd             t	        t        |      t               t        j                  |t        d      g      }t	        |t        j                  t        dd      g             t	        t        |      t        j                         y c c}w )Nrw   rO   r   r_  ry   ro   rM   )rf   r   r8   r  r   r  r   r  )rg   r   r   r#  s       r>   test_fractionz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   E:c                     t        j                  d      }t        j                  |dd d d       t        j                  |dd d dd       t        j                  d      }t        j                  |dd |dd       y )NrZ   FlinearrJ  )r8   re   r  )rg   rS  os      r>   test_apizTestPercentile.test_api  s\    GGAJ
aD$.
aD$x8GGDM
aD!UH5r@   c                 Z   t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       y N)y      ?      @y @      ?y?ffffff@Gr   r_  Dr   )r8   r   r   r[  r  rg   arr_cs     r>   ry  zTestPercentile.test_complex  sk    7sCis;7sCis;7sCis;r@   c                     t        j                  g dg dg dg dg dg      }t        t        j                  |dd      g d       y )Nr   )rM   rM   rY   ro   r   r   )r8   r   r	   r  r  s     r>   test_2DzTestPercentile.test_2D  s<    HHi	! "
 	2==BQ7Cr@   r  r  c                 L   t        j                  dt         j                  dddg|      }t        j                  |dd      }t         j                  j                  |t         j                         t         j                  j                  |j                  |j                         y )Nr       A@      D@      I@r   r  r  )r8   rA  NANr  testingr   r  )rg   r  r  r4  s       r>   test_linear_nan_1Dz!TestPercentile.test_linear_nan_1D  sp     jj$dD9Gmm 	

RVV,


		3995r@   r  r  input_dtypeexpected_dtyper  r  )	)inverted_cdfr  )averaged_inverted_cdf     ;@)closest_observationr  )interpolated_inverted_cdfr  )hazenr  )weibull   )r  r  )median_unbiasedr  )normal_unbiasedg      ;@c                 R   t        j                  |      }t        j                         dk(  r$t        j                  |t         j                        }t        j
                  g d|      }t        j                  |d|      }t         j                  j                  ||j                  |      d       |dv r|dk(  rLt         j                  j                  t        j
                  |      j                  t         j                         y t         j                  j                  t        j
                  |      j                  t        j                  |             y t         j                  j                  t        j
                  |      j                  t        j                  |             y )	Nlegacy)r  g      4@r  r  r  r   r  r  r  )r  r  r  )r8   r  _get_promotion_statepromote_typesr  rA  r  r  r
   r  r   )rg   r  r  r  r  r  r  s          r>   test_linear_interpolationz(TestPercentile.test_linear_interpolation
  s   " .1""$0--nbjjINjj7{KsD8


&&N''12	7 <<c!

''

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

''

6(:(@(@(*(=? JJ##BJJv$6$<$<$&HH^$<>r@   c                     t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      dd      d       y )	Nr   r   ro   lowerr  rM   higherrZ   r   r8   r  r9   rg   r  s     r>   test_lower_higherz TestPercentile.test_lower_higher1  sR    R]]299Ru#=r*1345	7R]]299Ru#=r*2456	8r@   c                    t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      dz   d	d      d
       t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      d	d      d
       y )Nr   r   3   midpointr  r  r3  rQ   ro   rZ   r         @r  r  s     r>   test_midpointz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                     t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      dd      d       y )	Nr   r   r  r  r  rZ   1   rM   r  r  s     r>   test_nearestzTestPercentile.test_nearestC  sR    R]]299Ru#=r*3567	9R]]299Ru#=r*3567	9r@   c                 R   t         j                  j                  d      }t        j                  |d      }t         j                  j                  ||j                                t        j                  |d      }t         j                  j                  ||j                                y )NrZ   r_  r   )r8   rX  r   r  r  r   r  r  )rg   r  r  s      r>   'test_linear_interpolation_extrapolationz6TestPercentile.test_linear_interpolation_extrapolationJ  sh    iinnQsC(


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


	2r@   c                 |    t        j                  d      dz  }t        t        j                  |g d      g d       y )Nrw   r_  )r   r_  ro   )r   r  r   )r8   r9   r   r  r  s     r>   test_sequencezTestPercentile.test_sequenceS  s)    IIaL3R]]1l3^Dr@   c                    t        j                  d      j                  dd      }t        t        j                  |d      g d       g dg dg dg}t        t        j                  |dd	
      |       g dg dg dg}t        t        j                  |dd
      t        j
                  |      j                         t        j                  d      j                  dddd      }t        t        j                  |d      j                  d       t        t        j                  |d      j                  d       t        t        j                  |dd	
      j                  d       t        t        j                  |dd
      j                  d       t        t        j                  |dd
      j                  d       t        t        j                  |dd
      j                  d       t        t        j                  |dd
      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd	d      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       y )NrH  rY   rM   )r@  ro   r_  )g      @r  r?  )rO   rY   rM   rZ   r  )rw   r3  r   r   r   r   )      ?rA  rY   )      @r  ry   )r  r   r   rQ   rG  rZ   rx   r@  ro   )rO   )r@  ro   r  rY   )rO   rM   rZ   rx   )rO   rY   rZ   rx   rO   )rO   rY   rM   rx   )rY   rY   rZ   rx   r  r  r   r  )r8   r9   rz   r   r  r   rv  rD   )rg   r   r0r  s       r>   r  z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                    t        j                  d      j                  dd      }t        t        j                  |d      d       t        t        j                  t        j                  |d                   t        j                  g d      }t        t        j                  |dd      |       t        t        j                  |dd      j                  |j                         t        j                  g d	      }t        t        j                  |dd
      |       t        t        j                  |dd
      j                  |j                         t        j                  d
      }t        t        j                  |d|      d       t        |d       t        j                  d      }t        t        j                  |dd|      |       t        ||       t        j                  d      }t        t        j                  |dd
|      |       t        ||       t        j                  d      j                  dd      }t        t        j                  |dd      d       t        t        j                  t        j                  |d                   t        j                  g d      }t        j                  |ddd      }t        ||       t        |j                  |j                         t        j                  g d      }t        j                  |ddd
      }t        ||       t        |j                  |j                         t        j                  d|j                        }t        j                  |dd|      }t        |d       t        |d       t        j                  d|j                        }t        j                  |ddd|      }t        ||       t        ||       t        j                  d|j                        }t        j                  |ddd
|      }t        ||       t        ||       y )NrH  rY   rM   ro   r  r   r   r   r  r   r   rA  r  r   rQ   r  r   r  r  r  r   )r  r   )r   r   r  r   r   r  r  rZ   r  r   r  )r8   r9   rz   r   r  r   isscalarr   rD   r
   emptyr  )rg   r   r  r  r  c0c1r   s           r>   test_scalar_qz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           
         t        t        t        j                  ddgdd       t        t        t        j                  dgd       t        t        t        j                  dgd       t        t        t        j                  dgt	        t        d            dgz          t        t        t        j                  dgt	        t        d            d	gz          y )
NrQ   rO   8   r0  r  e   r`   ro   r  )r   rd   r8   r  r  rf   r   s    r>   test_exceptionzTestPercentile.test_exception  s    j"--!Q%	'j"--!c:j"--!b9j"--!d59o6MNj"--!d59o6NOr@   c                 H    t        t        j                  g dd      d       y )Nr   r   rQ   )r   r8   r  r   s    r>   test_percentile_listz#TestPercentile.test_percentile_list  s    R]]9a0!4r@   c                    t        j                  g d      }t        j                  d      }d}t        j                  |||       t	        t        j                  ||      |       t        j                  g dg dg      }t        j                  d      }t        j                  ||d|       t	        t        j                  ||d      |       t        j                  d	      }t        j                  ||d
|       t	        t        j                  ||d
      |       t        j
                  d      j                  dd      }t        j                  g dg dg      }t        j                  d      }t	        t        j                  |dd|      |       t	        ||       t        j                  g dg dg      }t        j                  d      }t	        t        j                  |dd
|      |       t	        ||       t        j                  g dg dg      }t        j                  d|j                        }t        j                  |ddd|      }t	        ||       t	        ||       t        j                  g dg dg      }t        j                  d|j                        }t        j                  |ddd
|      }t	        ||       t	        ||       y )Nr   r  r  r   r  r   r  r   rY   rO   rQ   rH  rY   rM   )r   r   r   r   r  )rO   rM   r  )r  r  r  r  r  r   rQ   rO   rY   r  r   r  r  )r   rM   rw   )rQ   rZ   r3  )	r8   r   rB   r  r   r9   rz   r  r  )rg   r   r  r#  r  r  r  r   s           r>   test_percentile_outz"TestPercentile.test_percentile_out  s   HHYHHTN
a"R]]1a(!,HHi! " HHV
a*R]]1aa0!4HHV
a*R]]1aa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           	         t        j                  d      j                  dddd      }t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d	       t        t        j                  |dd      j
                  d
       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d
       t        t        j                  |dd      j
                  d	       t        t        j                  |dd      j
                  d       t        t        j                  |ddd      j
                  d
       t        t        j                  |ddd      j
                  d
       t        t        j                  t        j                  |ddgd            j
                  d       t        t        j                  t        j                  |ddgd            j
                  d       t        t        j                  t        j                  |ddgd            j
                  d       t        t        j                  t        j                  |ddgd            j
                  d       y )Nr  r   rQ   rO   ro   r   r   )rQ   rO   rQ   )r   rO   rQ   )r   rQ   rQ   rY   )r   rQ   rO   r`   rW   r]   rs  r  r  r   )rO   rQ   rO   rQ   )rO   r   rO   rQ   )rO   r   rQ   rQ   )rO   r   rQ   rO   )r8   r9   rz   r	   r  rD   r   rg   rS  s     r>   test_percentile_empty_dimz(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                 D   t        j                  g d      }t        j                  |dgd       t        |t        j                  g d             t        j                  g d      }t        j                  |dg       t        |t        j                  g d             y )NrO   rY   rM   rQ   ro   Foverwrite_inputr8   r   r  r   rt   s     r>   test_percentile_no_overwritez+TestPercentile.test_percentile_no_overwrite  sf    HH\"
a"u5Q./HH\"
a"Q./r@   c                    t        j                  ddd      }t        j                  t        j                  d      |d       t	        |t        j                  ddd             t        j                  ddd      j                         }t        j                  t        j                  d      |d       t	        |t        j                  ddd      j                                y )Nr         Y@rZ   )numr  r  )r8   rV  r  r9   r	   r  )rg   r#  s     r>   test_no_p_overwritez"TestPercentile.test_no_p_overwrite  s    KKDa(
biioq<1bkk"d:;KKDa(//1
biioq<1bkk"d:AACDr@   c                    t        j                  g d      }t        j                  |dgd      }t        |t        j                  dg             t        j                  g ddgd      }t        |t        j                  dg             y )Nr  ro   Tr  r`  r  r   s      r>   test_percentile_overwritez(TestPercentile.test_percentile_overwrite  s`    HH\"MM!bT48Q#(MM,dCQ#(r@   c                    t         j                  j                  d      }t        j                  |gdz        }t	        t        j
                  |dd      t        j
                  |d             t        j                  |dd      }t	        t        j
                  |dd	      t        j
                  |d             |j                  dd
      j                         }t	        t        j
                  |dd      t        j
                  |d             |j                  dd
      j                         }t	        t        j
                  |ddgd      t        j
                  |ddgd              t	        t        j
                  |ddgd      t        j
                  |ddgd             t        j                  d      j                  d      }t         j                  j                  |j                                t	        t        j
                  |dd      d   t        j
                  |d d d d d d df   j                         d             t	        t        j
                  |ddgd      d d d
f   t        j
                  |d d d d d
d d f   j                         ddg             t	        t        j
                  |dd      d   t        j
                  |d d d d dd d f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd d d d d d f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd
d d d d f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd d d d d
f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd d dd d f   j                         d             y )NG      rQ  r   r  ra   r   r`   r   rs   rQ   rq   r@  r)  rP   ra    rY   rZ   ry   r   Z   r   rQ   rY   rY   rQ   rs  rO   rY   rQ   rO   r  rO   rQ   rQ   rW   rQ   rY   rT   )r8   rX  normaldstackr   r  moveaxisr   r   r9   rz   shuffleravelflattenrg   r  r   rS  s       r>   test_extended_axisz!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                 Z   t        j                  d      }t        t         j                  t         j                  |dd       t        t         j                  t         j                  |dd       t        t         j                  t         j                  |dd       t        t         j                  t         j                  |dd       t        t
        t         j                  |dd       t        t
        t         j                  |d	d       t        t
        t         j                  |d
d       y )Nr  r  r@  )r   r5  r   r  rM   r   rM   rV   )r`   r`   )rY   r`   )r8   re   r   r   r  rd   r  s     r>   test_extended_axis_invalidz)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                    t        j                  d      }t        t        j                  |dd d      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d	       t        t        j                  |dd
d      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddgdd      j                  d       t        t        j                  |ddgdd      j                  d       y )Nr  ry   Tr   r   ra   rQ   rQ   ry   r   r   rQ   rZ   ry   rQ   rJ  rY   rQ   ry   r   r  )r   r  rQ   rQ   ry   rQ   rQ   )rO   rQ   rQ   ry   rQ   )rO   rQ   rZ   ry   rQ   )r8   re   r   r  rD   r  s     r>   test_keepdimsz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@   r5  ry   rQ   r   NrQ   rJ  ra   )r]   r`   argnames	argvaluesc                    t        j                  d      |dj                  z  }n>t        |j                        t	        fdt        j                        D              }t        j                  |      |z   }t        j                  |      }t        j                  ||d|      }||u sJ t        |j                  |       y )Nr  rJ  c              3   H   K   | ]  }|v rd nj                   |     ywrQ   NrD   r  r   	axis_normrS  s     r>   r  z3TestPercentile.test_keepdims_out.<locals>.<genexpr>d  )      L=JQ)^3]   "Tr   r   r  )
r8   re   r   r5   r  rf   rD   r  r  r   )rg   r5  r   	shape_outr  r  r$  rS  s         @@r>   test_keepdims_outz TestPercentile.test_keepdims_outS  s     GGM"<qvvI,T166:I L=B166]L LIHHQK)+	hhy!q!$3G}}V\\9-r@   c           	      R   t        j                  d      }t        j                  d      }t        t        j                  |dd|      |       t        t        j                  |ddd|      |       t        j                  d      }t        t        j                  |dd|      |       t        t        j                  |ddd|      |       t        j                  d	      }t        t        j                  |d
|      |       t        t        j                  |d
d|      |       y )NrM   r  r   r  r  r  r  rQ   r   rO   )r8   rB   re   r   r  rg   r  rS  s      r>   test_outz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           
         t        j                  d      5  t        j                  ddt               t	        j
                  d      }t	        j                  d      }t        j                  |d<   t        t	        j                  |dd|	      |       t        t	        j                  |ddd
|      |       t	        j
                  d      }t        t	        j                  |dd|	      |       t        t	        j                  |ddd
|      |       t	        j
                  d      }t        t	        j                  |d|	      |       t        t	        j                  |dd
|      |       d d d        y # 1 sw Y   y xY w)NTrg  ri  rj  r+  r  r  r   r  r  r  r  rQ   r   )
rl  rm  rn  r  r8   rB   re   rP  r   r  r,  s      r>   test_out_nanz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E66E?c                 
   t        j                  dt              }t         j                  |d<   t	        t        j
                  |d      t         j                         t	        t        j
                  |dd      t         j                         t	        t        j
                  |ddgd      t        j                  t         j                  gdz               t        j                  dt              j                  ddd	      }t         j                  |d
<   t         j                  |d<   t	        t        j
                  |d      t         j                         t	        t        j
                  |d      j                  d       t        j
                  t        j                  dt              j                  ddd	      dd      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |dd      |       t        j
                  t        j                  dt              j                  ddd	      ddgd      }t         j                  |d d ddf<   t         j                  |d d ddf<   t	        t        j
                  |ddgd      |       t        j
                  t        j                  dt              j                  ddd	      dd      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |dd      |       t        j
                  t        j                  dt              j                  ddd	      ddgd      }t         j                  |d d ddf<   t         j                  |d d ddf<   t	        t        j
                  |ddgd      |       t        j
                  t        j                  dt              j                  ddd	      dd      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |dd      |       t        j
                  t        j                  dt              j                  ddd	      ddgd      }t         j                  |d d df<   t         j                  |d d df<   t	        t        j
                  |ddgd      |       t        j
                  t        j                  dt              j                  ddd	      ddgdd      }t         j                  |d d df<   t         j                  |d d df<   t	        t        j
                  |ddgdd      |       y )Nrr  r   rO   r  r   r   g333333?rY   rM   r   rQ   rQ   rO   r  rr   rQ   r  rU   r  r  )	r8   r9   r  rP  r   r  r   rz   r   r   s      r>   test_nan_behaviorz 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                 B   t        j                  t        d      5  t        j                  g dt        j
                         d d d        t        j                  t        d      5  t        j                  g dt        j
                  g       d d d        t        j                  ddd      }t        j
                  |d<   t        j                  t        d      5  t        j                  g d|       d d d        y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   y xY w)NzPercentiles must be inr  )rQ   rO   rY   r   r   g     X@r  r   )r-  r{  rd   r8   r  rP  rV  )rg   r5  s     r>   
test_nan_qz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   r  r   c                 &   t        j                  dd|      }d||<   t        j                  |d      }|j                  |k(  sJ t        j                  |      sJ t        j                  |ddg      }|j                  |k(  sJ t        j                  |      j                         sJ t        j                  dd|      j                  dd	      }d||d
f<   t        j                  |dd      }t        t        j                  |      g d       y Nr   rr  r   NaTr  r)  H   r`   rY   rQ   r   r4  )r8   r9   r  r  isnatr   rz   r	   rg   r  r5  rh   r4  s        r>   test_nat_basiczTestPercentile.test_nat_basic  s    
 IIa5)#mmAr"yyE!!!xx}}mmABx(yyE!!!xx}  """IIaU+33B:#q&	mmAr*288C=*>?r@   N)-r   r   r   rm   r  r  ry  r  r-  r.  r/  r8   	typecodesr  r  ry  r  r  r  H_F_TYPE_CODESr  
TYPE_CODESr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)  r-  r/  r2  r4  r=  )r  int_typer8   s   000r>   r  r    s   D*&6<D [[Wbll7&;<6 =6 ')ll<&@&@(  ,&@JJ

3JJ

3JJ

3MM2==9$BHHSM2::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                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dej                  d	         d
        Ze
j                  j                  de      d        Z ej&                   eej*                   ej.                  dd       ej0                  dddd                  d        Zd Ze
j                  j                  de      e
j                  j                  dg d      d               Ze
j                  j                  de      e
j                  j                  dg d      d               Zy)TestQuantilec                     ||k\  |z
  S r7   r   )rg   r   r  alphas       r>   r>  zTestQuantile.V  s    Q%r@   c                 |    g d}t        j                  |d      }t         j                  j                  |dd       y )N)r   r  r  g?g
ףp=
?rQ   )maxulp)r8   quantiler  assert_array_max_ulp)rg   r   rh   s      r>   test_max_ulpzTestQuantile.test_max_ulp  s2    KK4  	

''4':r@   c                     t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )Nrw   r_  r   r   rQ   r  r   )r8   r9   r   rH  r  s     r>   rm   zTestQuantile.test_basic  sS    IIaL3R[[A&+R[[A&,R[[C($/r@   c                 j   t        j                  dg      }t        j                  dd      }t        ||d          t        t	        |      |j
                         t        j                  g d      }t        j                  ||      }t        ||       t        |j
                  |j
                         y )NTFr   )FTT)r8   r   rH  r   r  r  r	   )rg   rh   tf_quant	quant_ress       r>   test_correct_quantile_valuez(TestQuantile.test_correct_quantile_value  s}    HHdV;;tU+Xqt$T(^QWW-HH()KK1%	9a(Y__agg.r@   c           	         t        d      D cg c]  }t        |d       }}t        j                  |d      }t	        |d       t	        t        |      t               t        j                  |d      }t	        |t        dd             t	        t        |      t               t        j                  |d      }t	        |d       t	        t        |      t        j                         t        j                  |t        dd            }t	        |t        dd             t	        t        |      t               t        j                  |t        dd      g      }t	        |t        j                  t        dd      g             t	        t        |      t        j                         t        j                  |t        dd      gg      }t	        |t        j                  t        dd      gg             t	        t        |      t        j                         t        j                  d      }t	        t        j                  |t        dd            t        dd             y c c}w )	Nrw   rO   r   rQ   ry   r_  r   rM   )
rf   r   r8   rH  r   r  r  r   r  r9   )rg   r   r   r5  s       r>   r  z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                 Z   t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       y r  )r8   r   r   r[  rH  r  s     r>   ry  zTestQuantile.test_complex-  sk    7sCieS97sCieS97sCieS9r@   c                 n   t        j                  g d      }|j                         }t        j                  t        j                  d      |d       t        ||       |j                         }|j                         }t        j                  t        j                  d      |d       t        ||       y )N)r   r  rc  r_  r   r  r  r  )r8   r   r   rH  r9   r	   r  )rg   p0r#  s      r>   r  z TestQuantile.test_no_p_overwrite6  sv    XX/0GGI
BIIdOQz:1b!YY[HHJ
BIIdOQz:1b!r@   r  r  c                     t        j                  t        j                  ddg|      dgd      }|j                  |k(  sJ y )NrQ   rO   r   r_  r  r  )r8   rH  r   r  )rg   r  r4  s      r>   test_quantile_preserve_int_typez,TestQuantile.test_quantile_preserve_int_typeB  s:    kk"((Aq67#!*,yyE!!!r@   r  c                 B   t        j                  ddd      }t        j                  t        j                  g d      dz  ||      }t	        t        j
                  |      |       t        j                  g d||      }t	        t        j
                  |      |       y )Nr   rQ   r  )r   rQ   rQ   rO   rO   rY   rY   rM   rZ   rZ   rQ   rQ   r3  r3  r3  rw   rw   ry   r  r  )r   r   r   r   )r8   rV  rH  r   r   rZ  )rg   r  rS  rH  s       r>   test_quantile_monotonicz$TestQuantile.test_quantile_monotonicH  s}    
 [[As#;;rxx )2  358 9:<VMRWWX&1 ;;/FCRWWX&1r@   rY   r  )	min_value	max_valueFu <7u <7~)allow_infinity	allow_nanrX  rY  )r  rD   elements)r  c                     t        j                  ddd      }t        j                  ||      }t        t        j                  |      |       y )Nr   rQ   g{Gz?)r8   r9   rH  r   rZ  )rg   r  rS  rH  s       r>   test_quantile_monotonic_hypoz)TestQuantile.test_quantile_monotonic_hypoV  s9     YYq!T";;sB'RWWX&1r@   c                    t        j                  g dg dg      }t         j                  |d   d<   t        j                  |d      }t        j                  |      sJ t        t        j                  |d      t         j                         y )N)r  r  r   )r   r   r   r   rQ   r_  )r8   r   rP  rH  r  r   )rg   rh   r  s      r>   test_quantile_scalar_nanz%TestQuantile.test_quantile_scalar_nan`  sa    HHm\23&&!QQ${{6"""R[[C("&&1r@   rE  )r  r_  g?c           
      R   t         j                  j                  d      }d}|j                  |      }t        j                  |||      }|dv rBt        j                  t        j
                  | j                  |||                  d|z  kD  sJ y t        ||z        ||z  k(  r3t        t        j
                  | j                  |||            dd       y t        t        j
                  | j                  |||            dd	|z  t        j                  |d	|z
  g      z         y )
N  f   r  )r  r  r   g+=)atolrQ   )
r8   rX  default_rngrH  rW  r   r>  r  r   r  )rg   r  rE  rngr<   r  r   s          r>   %test_quantile_identification_equationz2TestQuantile.test_quantile_identification_equationg  s     ii##D)
 JJqMKK50[ 66"''$&&Au"567#'AAAU^q5y(BGGDFF1a$78!%H BGGDFF1a$78!URWWeQY%788:r@   c           	         t         j                  j                  d      }d}|j                  |      }t        j                  |||      }d}t	        t        j                  ||z   ||      ||z          t	        t        j                  ||z  ||      ||z         t        j                  | d|z
  |       }|dk(  r||z  t        ||z        k(  s*t        j                  ||z        t        ||z        dz   k(  r#t	        |t        j                  ||d             y t	        |t        j                  ||d             y |d	k(  r||z  t        ||z        k(  r#t	        |t        j                  ||d             y t        j                  ||z        t        ||z        dz   k(  r)t	        |t        j                  ||d|z  z   d             y t	        |t        j                  ||d             y |d
k(  r)t	        |t        j                  ||d|z  z   |             y |dk(  r`||z  t        ||z        k(  r)t	        |t        j                  ||d|z  z   |             y t	        |t        j                  |||             y |dk(  r#t	        |t        j                  ||d             y |dk(  r#t	        |t        j                  ||d             y t	        |t        j                  |||             y )Nrd  re  r  g      +@rQ   r  r  r  r  r  r  )r8   rX  rg  rH  r   r  round)rg   r  rE  rh  r<   r  r5  r   s           r>   'test_quantile_add_and_multiply_constantz4TestQuantile.test_quantile_add_and_multiply_constant  sm    ii##D)
 JJqMKK50 	AE5@!a%HAE5@!a%H[[!QYv66^#E	SU^+88AI&#a%i.1*<<2;;q%#IJ2;;q%#HI,,5yCE	N*2;;q%#IJ!e)$AI(::r{{1eack(CE  2;;q%#HI22Ar{{1eack&IJy 5yCE	N*2;;q%!A#+f#MN2;;q%#GHwAr{{1eHEFxAr{{1eGDE Ar{{1eFCDr@   N)r   r   r   r>  rJ  rm   rO  r  ry  r  r-  r.  r/  r8   r>  rU  quantile_methodsrW  
hypothesisgivenr   r  stintegersfloatsr`  rb  ri  rl  r   r@   r>   rC  rC    sZ    ;0/E>:
" [[Wbll<&@A" B"
 [[X'782 92 ZRZZ(R[[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@   rC  c                   F   e Zd Z ej                   ej                  dddd       ej                  dddd       ej                  dddd       ej                  dddd            d        Z ej                   ej                  dddd       ej                  dddd       ej                  dddd      	      d
        Z ej                   ej                  dddd       ej                  dddd       ej                  dddd      	      d        Z	d Z
y)TestLerpFr   rQ   )r]  r\  rX  rY  rZ  r[  )t0t1rh   r   c                     t        j                  |||      }t        j                  |||      }||k(  s||k(  r||k(  sJ y ||k  ||k  k(  r||k  sJ y ||k\  sJ y r7   ra  _lerp)rg   ru  rv  rh   r   l0l1s          r>   +test_linear_interpolation_formula_monotonicz4TestLerp.test_linear_interpolation_formula_monotonic  sf     YYq!R YYq!R 8qAv8O82g1q5!8O88O8r@   )trh   r   c                     ||k  r&|t        j                  |||      cxk  r|k  sJ  J y |t        j                  |||      cxk  r|k  sJ  J y r7   rx  )rg   r}  rh   r   s       r>   )test_linear_interpolation_formula_boundedz2TestLerp.test_linear_interpolation_formula_bounded  sW     6		!Q*/a/////		!Q*/a/////r@   c                     t        j                  ||dd|z
  z
        }t        j                  ||d|z
        }t        ||       y r6  )ra  ry  r   )rg   r}  rh   r   rN  rP  s         r>   +test_linear_interpolation_formula_symmetricz4TestLerp.test_linear_interpolation_formula_symmetric  s>     yyAqAE{+		!QA&e$r@   c                     t        j                  d      }t        j                  d      }t        j                  d      }t        j                  |||      dk(  sJ y )NrO   rZ   r  g@)r8   r   ra  ry  )rg   rh   r   r}  s       r>   +test_linear_interpolation_formula_0d_inputsz4TestLerp.test_linear_interpolation_formula_0d_inputs  sD    HHQKHHQKHHSMyyAq!S(((r@   N)r   r   r   rn  ro  rp  rr  r|  r  r  r  r   r@   r>   rt  rt    sW   ZU5-.!="U5-.!=#"))eE.4G#"))eE.4GHH Z			E%,-<!		E%,2eE!		E%,2eE	F0F0 Z			E%,-<!		E%,2eE!		E%,2eE	F%F%)r@   rt  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dg ddej                  d	gej                  d
f      d        Zd Zd Zd Zej                  j#                  ed      d        Zd Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  ddg      ej                  j                  dg d      d               Zy) 
TestMedianc                 \   t        j                  d      }t        j                  d      }t        j                  d      j                  dd      }t	        t        j
                  |      d       t        t        j
                  |      d       t        t        j
                  |      d       t        t        j
                  |d      g d	       t	        t        j
                  |d      dd
g       t        t        j
                  |d       d       t        j                  g d      }t        |d   |d   z   dz  t        j
                  |             t        j                  g d      }t	        |d   t        j
                  |             t        j                  g d      }t	        |d   t        j
                  |             t	        t        j
                  |      j                  d       t         j                  |d<   t	        t        j
                  |      j                  d       y )NrQ   rO   rx   rY   r_  r`  r   r   rA  r`  r  rM   )6-¦?0?}r?g4?r   )r  r  r  )r  r  r  r`   )
r8   r   r9   rz   r   medianr   r
   r   rP  )rg   a0r  r  rh   s        r>   rm   z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                    t        j                  ddgddgddgddgg      }|t         j                  j                  dd	d
      fD ]f  }|j	                         }t        j
                  |d        t        |j                        D ]  }t        j
                  ||        t        ||       h t        t        j
                  |d      ddg       t        t        j
                  |j                  d      ddg       t        t        j
                  |      d       t        t        j
                  |d       d       t        t        j
                  |j                        d       y )NrO   rY   r   rQ   rx   ry   rM   rZ   r_  r   r  r   r  )r8   r   rX  randintr   r  rf   r   r	   r   rv  )rg   a3rh   origaxs        r>   test_axis_keywordz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                    t        j                  ddgddgddgddgg      }t        j                  d      }t        j                  d      }t        j                  d      j                  dd      }t	        t        j
                  |j                         d	
      d       t	        t        j
                  |j                         d	
      d       t	        t        j
                  |j                         d	
      d       t	        t        j
                  |j                         d	d      g d       t	        t        j
                  |j                         d	d      ddg       t	        t        j
                  |j                         d	d       d       t	        t        j
                  |j                         d	d      ddg       t	        t        j
                  |j                  j                         d	d      ddg       t        j                  dt         j                        j                  d      }t         j                  j                  |j                                t	        t        j
                  |d       t        j
                  |j                         d d	             t	        t        j
                  |d      t        j
                  |j                         dd	             t	        t        j
                  |d      t        j
                  |j                         dd	             t	        t        j
                  |d      t        j
                  |j                         dd	             y )NrO   rY   r   rQ   rx   ry   rM   rZ   Tr  r_  r`  )r  r   r  r)  r   rX   r   )r   r  )r8   r   r9   rz   r   r  r   rv  r  rX  r  r  )rg   r  r  r  r  a4s         r>   test_overwrite_keywordz!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                     g d}t        t        j                  |      d       |g}t        t        j                  |      d       t        t        j                  |d      |       y )Nr   rO   r   r   )r
   r8   r  r   )rg   r   rS  s      r>   rB  zTestMedian.test_array_like=  sG    BIIaL!,SBIIbM1-		"1-q1r@   c                      G d dt         j                        } |g d      }t        t        j                  |      d       y )Nc                       e Zd ZddZddZy),TestMedian.test_subclass.<locals>.MySubClassNc                 \    t        j                  |      j                  |       }||_        |S r7   )r8   rA  r  info)clsinput_arrayr  objs       r>   __new__z4TestMedian.test_subclass.<locals>.MySubClass.__new__H  s'    jj-2237
r@   c                      y)Nr   )rg   r   r  r  s       r>   r   z1TestMedian.test_subclass.<locals>.MySubClass.meanM  s    r@   r7   )NNN)r   r   r   r  r   r   r@   r>   
MySubClassr  F  s    
r@   r  r   r  )r8   r  r   r  )rg   r  rh   s      r>   r  zTestMedian.test_subclassD  s0    	 	 y!RYYq\2&r@   r  r   r   r   r   c                      G d dt         j                        }t        j                  t        j                  |      j	                  |            }t        ||      sJ y)z6Check that we return subclasses, even if a NaN scalar.c                       e Zd Zy)-TestMedian.test_subclass2.<locals>.MySubclassNr  r   r@   r>   
MySubclassr  W  r  r@   r  N)r8   r  r  r   r  r  )rg   r  r  r=  s       r>   test_subclass2zTestMedian.test_subclass2S  sE    	 	 IIbhhsm((45!Z(((r@   c                 v   t        j                  d      }t        j                  d      }t        t        j                  |d|      |       t        j                  d      }t        t        j                  |d|      |       t        j                  d      }t        t        j                  ||      |       y )Nr+  r  r   r  r  rQ   r   )r8   rB   re   r   r  r,  s      r>   r-  zTestMedian.test_out]  sy    HHTNGGFORYYq!+Q/HHTNRYYq!+Q/HHRLRYYqa(!,r@   c                 (   t        j                  d      5  t        j                  ddt               t	        j
                  d      }t	        j                  d      }t        j                  |d<   t        t	        j                  |d|	      |       t	        j
                  d
      }t        t	        j                  |d|	      |       t	        j
                  d      }t        t	        j                  ||	      |       d d d        y # 1 sw Y   y xY w)NTrg  ri  rj  r+  r  r  r   r  r  rQ   r   )
rl  rm  rn  r  r8   rB   re   rP  r   r  r,  s      r>   r/  z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                    t        j                  dt              }t         j                  |d<   t	        t        j
                  |      t         j                         t	        t        j
                  |d      t         j                         t        j                  dt              j                  ddd      }t         j                  |d<   t         j                  |d	<   t	        t        j
                  |      t         j                         t	        t        j
                  |      j                  d       t        j
                  t        j                  dt              j                  ddd      d      }t         j                  |d
<   t         j                  |d<   t	        t        j
                  |d      |       t        j
                  t        j                  dt              j                  ddd      d      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |d      |       t        j
                  t        j                  dt              j                  ddd      d      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |d      |       y )Nrr  r   rO   r   r   rY   rM   r   r1  r  rr   rQ   r  rU   )r8   r9   r  rP  r   r  rz   r   r   s      r>   r2  z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                    t        j                  g t              }t        j                  d      5 }t        j
                  ddt               t        t        j                  |      t         j                         t        |d   j                  t        u        t        t        |      d       d d d        t        j                  g t        d	      }t        j                  d      5 }t        j
                  ddt               t        t        j                  |      t         j                         t        |d   j                  t        u        d d d        t        j                  g t        d	      }t        t        j                  |d
      |       t        t        j                  |d
      |       t        j                  t         j                  t        d	      }t        j                  d      5 }t        j
                  ddt               t        t        j                  |d
      |       t        |d   j                  t        u        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   Trg  ri  rj  r   rO   rY   )r  r  r   rQ   )r8   r   r  rl  rm  rn  r  r   r  rP  r   rp  r7  )rg   rh   r  r   s       r>   r  z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&5AI3I#&I03I<c           	      P   t        j                  d      }t        t        t        j                  |j                  t                          t               t         j                  |d<   t        t        t        j                  |j                  t                          t               y )Nr  rO   )	r8   r9   r   r  r  r  r3  r  rP  )rg   r  s     r>   test_objectzTestMedian.test_object  s^    IIbMRYYqxx/0159vv!RYYqxx/0159r@   c                 r   t         j                  j                  d      }t        j                  |gdz        }t	        t        j
                  |d      t        j
                  |             t        j                  |dd      }t	        t        j
                  |d      t        j
                  |             |j                  dd	      j                         }t	        t        j
                  |d
      t        j
                  |             t	        t        j
                  |d      t        j
                  |d              t	        t        j
                  |d      t        j
                  |d             t	        t        j
                  |d      t        j
                  |d             t        j                  d      j                  d      }t         j                  j                  |j                                t	        t        j
                  |d      d   t        j
                  |d d d d d d df   j                                      t	        t        j
                  |d      d	   t        j
                  |d d d d d	d d f   j                                      t	        t        j
                  |d      d   t        j
                  |d d d d dd d f   j                                      t	        t        j
                  |d      d   t        j
                  |dd d d d d d f   j                                      t	        t        j
                  |d      d   t        j
                  |dd	d d d d f   j                                      t	        t        j
                  |d      d   t        j
                  |dd d d d d	f   j                                      t	        t        j
                  |d      d   t        j
                  |dd d dd d f   j                                      y )Nr  r  r   ra   r   r`   r   rs   rQ   rq   rP   ra  )r`   r   r  r  r  rO   r  r  r  r  r  rT   )r8   rX  r	  r
  r   r  r  r   r   r9   rz   r  r  r  r  s       r>   r  z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                    t        j                  d      }t        t         j                  t         j                  |d       t        t         j                  t         j                  |d       t        t         j                  t         j                  |d       t        t         j                  t         j                  |d       t        t
        t         j                  |d       y )Nr  r  r   r  rM   r  rV   )r8   re   r   r   r  rd   r  s     r>   r  z%TestMedian.test_extended_axis_invalid  sz    GGM"bllBIIqr:bllBIIqw?bllBIIqq9bllBIIqv>j"))QV<r@   c                 >   t        j                  d      }t        t        j                  |d d      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       t        t        j                  |d	d      j                  d
       t        t        j                  |dd      j                  d       t        t        j                  |dd      j                  d       y )Nr  Tr   r   ra   r  r   r  rJ  r  r  r  r  )r8   re   r   r  rD   r  s     r>   r  z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   r  r  c                 f   t        j                  d      |dj                  z  }n>t        |j                        t	        fdt        j                        D              }t        j                  |      }t        j                  |d|      }||u sJ t        |j                  |       y )Nr  rJ  c              3   H   K   | ]  }|v rd nj                   |     ywr!  r"  r#  s     r>   r  z/TestMedian.test_keepdims_out.<locals>.<genexpr>  r%  r&  Tr'  )
r8   re   r   r5   r  rf   r  r  r   rD   )rg   r   r(  r  r  r$  rS  s        @@r>   r)  z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]r5  r6  c                 "   t        j                  dd|      }d||<   t        j                  |      }|j                  |k(  sJ t        j                  |      sJ t        j
                  |ddg      }|j                  |k(  sJ t        j                  |      j                         sJ t        j                  dd|      j                  dd	      }d||d
f<   t        j                  |d      }t        t        j                  |      g d       y r8  )	r8   r9   r  r  r;  r  r   rz   r	   r<  s        r>   test_nat_behaviorzTestMedian.test_nat_behavior  s    
 IIa5)#iilyyE!!!xx}}mmABx(yyE!!!xx}  """IIaU+33B:#q&	ii"288C=*>?r@   N)r   r   r   rm   r  r  rB  r  r-  r.  r/  r8   rP  r  r-  r/  r2  r  r   r  r  r  r  r  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                       e Zd Zd Zd Zy)TestAdd_newdoc_ufuncc                 x    t        t        t        dd       t        t        t        t        j
                  d       y )NrO   blah)r   r[  r   rd   r8   r:   r   s    r>   test_ufunc_argz#TestAdd_newdoc_ufunc.test_ufunc_arg  s$    i!11f=j"2BFFFCr@   c                 L    t        t        t        t        j                  d       y )NrY   )r   r[  r   r8   r:   r   s    r>   test_string_argz$TestAdd_newdoc_ufunc.test_string_arg  s    i!12661=r@   N)r   r   r   r  r  r   r@   r>   r  r    s    D>r@   r  c                   4   e Zd Zej                  j                  ej                  j                  dk(  d      ej                  j                  e
d      d               Zej                  j                  ej                  j                  dk(  d      d        Zy)TestAdd_newdocrO   Python running -OOr  PyPy does not modify tp_docc                    d}t        t        j                  j                  j                  j
                  d t        |       |       t        t        t        j                  j                  j                  j
                        dkD         t        t        t        j                  j                  j                  j
                        dkD         y )Nz"Current flat index into the array.rt  )r   r8   coreflatiterindexr>  r7  r   ufuncidentityrO  index_tricksmgrid)rg   r  s     r>   test_add_doczTestAdd_newdoc.test_add_doc"  s     3RWW%%++33ISX>DBGGMM**223c9:BFF''--556<=r@   c                     t         j                  j                  j                  j                  }t        j
                  ddd       |t         j                  j                  j                  j                  k(  sJ y )Nz
numpy.corer  )r  zbad docstring)r8   r  r  r  r>  
add_newdoc)rg   prev_docs     r>   test_errors_are_ignoredz&TestAdd_newdoc.test_errors_are_ignored+  sT    77##))11 	lJ0JK277++1199999r@   N)r   r   r   r-  r.  r  r  r   r  r  r   r  r  r   r@   r>   r  r     s    [[		**a/8LM[[w'DE> F N> [[		**a/8LM: N:r@   r  c                   4   e Zd Zej                  j                  ej                  j                  dk(  d      ej                  j                  e	d      d               Z
ej                  j                  ej                  j                  dk(  d      d        Zy)TestAddDocstringrO   r  r  r  c                     t        j                  t         j                  j                  t         j                  j                  j                         d }t        j                  ||j                         y )Nc                       y	docstringNr   r   r@   r>   funcz6TestAddDocstring.test_add_same_docstring.<locals>.func=      r@   )r8   add_docstringr  flatr>  rg   r  s     r>   test_add_same_docstringz(TestAddDocstring.test_add_same_docstring7  sE     	"**//*A*AB	 	t||,r@   c                 "   t        t              5  t        j                  t        j                  j
                  d       d d d        d }t        t              5  t        j                  |d       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nzdifferent docstringc                       yr  r   r   r@   r>   r  z=TestAddDocstring.test_different_docstring_fails.<locals>.funcI  r  r@   )r   r  r8   r  r  r  r  s     r>   test_different_docstring_failsz/TestAddDocstring.test_different_docstring_failsC  sd     <(RZZ__.CD )	 <(T#89 )( )( )(s   /A9B9BBN)r   r   r   r-  r.  r  r  r   r  r   r  r  r   r@   r>   r  r  4  s     [[		**a/8LM[[(EF- G N- [[		**a/8LM
: N
:r@   r  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)TestSortComplexztype_in, type_out))lr  )hr   )Hr   )r   r   )r  r   )r  r  c                     t        j                  g d|      }t        j                  |      }t        j                  |      j	                  |      }t        ||       t        |j                  |j                         y )N)rZ   rY   rx   rO   rQ   r   )r8   r   sort_complexrZ  r  r   r  )rg   type_intype_outrh   r  r  s         r>   test_sort_realzTestSortComplex.test_sort_realS  sV     HH_G4#771:$$X.VX&V\\8>>2r@   c                     t        j                  g dd      }t        j                  g dd      }t        j                  |      }t        ||       t        |j                  |j                         y )N)r}        ?       r  r~  r  r   )r  r  r~  r}  )r8   r   r  r   r  )rg   rh   r  r  s       r>   test_sort_complexz!TestSortComplex.test_sort_complexc  sN    HH5SA88<CH#VX&V\\8>>2r@   N)r   r   r   r-  r.  r/  r  r  r   r@   r>   r  r  Q  s0    [[0 3
 333r@   r  )r   )r   r   )r  rl  r  r'  	fractionsr   r  r-  rn  hypothesis.extra.numpyr   hypothesis.strategies
strategiesrp  	functoolsr   numpyr8   r   numpy.testingr   r   r	   r
   r   r   r   r   r   r   r   r   r   numpy.lib.function_baserO  function_basera  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   r1  rc  r  r  r  r  r  r  r  r  r9  r  r  r  r  r  r  r  r  r   r.  r/  r>  r  r-  r>  rD  rL  rT  r  r  r  r  r  r  r  rE  r  rm  rC  rt  r  r  r  r  r  r   r@   r>   <module>r     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@   