
    G/Ph                       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mZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmBc mCZD d dlEmFZF d d	lGmHZH d
 ZId ZJ G d d          ZK G d d          ZL G d d          ZM G d d          ZNejO        P                    d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[d+ Z\ G d, d-          Z] G d. d/          Z^ G d0 d1          Z_ G d2 d3          Z` G d4 d5          Za G d6 d7          Zbdod9Zcdpd;Zd G d< d=          Ze G d> d?          Zf G d@ dA          Zg G dB dC          ZhejO        P                    ddDeji        dE         z   eji        dF         z             ejO        P                    dGg dH           G dI dJ                                  Zj G dK dL          Zk G dM dN          Zl G dO dP          Zm G dQ dR          Zn G dS dT          Zo G dU dV          Zp G dW dX          Zq G dY dZ          Zr G d[ d\          Zs G d] d^          Zt G d_ d`          Zu G da db          Zv G dc dd          Zwg deZxdfgZy G dg dh          Zz G di dj          Z{ G dk dl          Z| G dm dn          Z}dS )q    NFraction)arrays)partial)maangleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanningi0insertinterpkaisermeshgrid	piecewiseplacerot90selectsetxor1dsinc	trapezoid
trim_zerosunwrapunique	vectorize)	AxisError)assert_assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_raisesassert_allcloseassert_warnsassert_raises_regexsuppress_warningsHAS_REFCOUNTIS_WASMNOGIL_BUILD)rand)normalize_axis_tuplec                 n    t          j        |           }t           j                            ||          }|S N)nparangeaddouter)ndatas     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test_function_base.pyget_matr?       s)    9Q<<D6<<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
complex128realimag)rF   rG   rets      r>   _make_complexrI   &   s9    
 (2<d++12=
A
ACCHCHJr@   c                        e Zd Zd Zd Zd ZdS )	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                     d S )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_basic2   sU   j%444j%)9)9HHHHj%eDDDDj%eDDDDj%)9)9GGGGYYYY!f!f!f iiii!f!f!f iiii r2q!! 	, 	,AqA++++r2q!! 	, 	,AqA++++r2q!! 	, 	,AqA++++q"a 	, 	,AqA++++U5///e<<<a@@@U1...a2E0J0J0JKKKKKr@   c                 *   t          j        d          }t          t          |          j        d           t          t          |d          t          |d                     t          t          |d          t          |d                     d S )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_axesR   s    GK  U1XX^[111U15)))5+@+@+@AAAU15)))5+A+A+ABBBBBr@   c           	         t          j        d                              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 ]5}t          t	          ||d          t	          ||dz
  d                     6d S )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_axesX   s   IaLL  ))1v1v1v1v 
 1v1v1v1v 
 1v1v1v1v 
 1v1v1v1v 

 	U16***J777U16***J777U16***J777q 	@ 	@AqAF333zQqSv>>>@ @ @ @	@ 	@r@   N)__name__
__module____qualname__rm   ru   r    r@   r>   rK   rK   1   sM        L L L@C C C@ @ @ @ @r@   rK   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestFlipc                    t          t          t          j        t          j        d          d           t          t          t          j        t          j        d          d           t          t          t          j        t          j        d          d           t          t          t          j        t          j        d          d           d S )NrM   rQ   axisrM   rM   rO   r]   r   rY   )r,   r&   r8   flipre   rg   s    r>   ru   zTestFlip.test_axesw   s    i"'!**1====i"'&//BBBBi"'&//CCCCi"'&//GGGGGGr@   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          |           d S )NrM   r`   rQ   rP   rX   r\   r[   r?   r(   r8   r   rg   rh   bs      r>   test_basic_lrzTestFlip.test_basic_lr}   s    AJJaaa2gJRWQ]]A&&&YYYYYYYYRWQ]]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          |           d S )NrM   r`   r   rP   rX   r   r   s      r>   test_basic_udzTestFlip.test_basic_ud   s    AJJdddAAAgJRWQ]]A&&&YYYYYYYYRWQ]]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          |           d S 	Nr   rQ   rO   rY   rM   rZ   rx   ry   r8   arrayr(   r   r   s      r>   test_3d_swap_axis0zTestFlip.test_3d_swap_axis0       H1v1v1v1v  ! !
 H1v1v1v1v  ! !
 	RWQ]]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          |           d S 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          |           d S r   r   r   s      r>   test_3d_swap_axis2zTestFlip.test_3d_swap_axis2   r   r@   c           
      B   t          j        d                              dddd          }t          |j                  D ]_}t          t          j        ||          t          j        |                    d|                                        |d                     `d S )Nx   rO   rY   rM   rZ   r   )	r8   r9   rz   rf   ndimr(   r   r   swapaxes)rg   rh   is      r>   test_4dzTestFlip.test_4d   s    Im$$,,Q1a88qv 	E 	EAA1::a#3#344==aCCE E E E	E 	Er@   c                     t          j        g dg dg          }t          j        g dg dg          }t          t          j        |          |           d S )NrQ   rO   rY   rM   rZ   rx   )rx   rZ   rM   rY   rO   rQ   r   r   s      r>   test_default_axiszTestFlip.test_default_axis   sf    Hiiiii! " "Hiiiii! " "RWQZZ#####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
          |           d S )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   H1v1v1v1v  ! !
 	RWQR(((!,,,H1v1v1v1v  ! !
 	RWQV,,,a000H1v1v1v1v  ! !
 	RWQV,,,a00000r@   N)r   r   r   ru   r   r   r   r   r   r   r   r   r   r@   r>   r   r   u   s        H H H' ' '' ' '' ' '' ' '' ' 'E E E$ $ $1 1 1 1 1r@   r   c                       e Zd Zd Zd ZdS )TestAnyc                     g d}g d}g d}t          t          j        |                     t          t          j        |                     t          t          j        |                      d S )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   sg    \\\\\\r

r

BF2JJr@   c                     g dg dg dg}t          t          j        |                     t          t          j        |d          g d           t          t          j        |d          g d           d S )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   s|    iiIII.r

26"1---yyy99926"1---yyy99999r@   Nr   r   r   rm   r   r   r@   r>   r   r      s2             : : : : :r@   r   c                       e Zd Zd Zd ZdS )TestAllc                 P   g d}g d}g d}t          t          j        |                      t          t          j        |                     t          t          j        |                      t          t          j        t          j        |                                d S )N)r   rQ   rQ   r   r   rQ   rQ   rQ   rQ   )r'   r8   allr   r   s       r>   rm   zTestAll.test_basic   s    \\\\\\BF2JJr

BF2JJ}%%&&&&&r@   c                     g dg dg dg}t          t          j        |                      t          t          j        |d          g d           t          t          j        |d          g d           d S )Nr   r   rQ   r   rQ   rQ   rQ   r   r   rQ   )r'   r8   r   r)   r   s     r>   r   zTestAll.test_nd   s~    iiIII.BF2JJ26"1---yyy99926"1---yyy99999r@   Nr   r   r@   r>   r   r      s2        ' ' ': : : : :r@   r   dtype)i8U10objectzdatetime64[ms]c                     t          j        d|           }t          j        |          j        t           j        k    sJ t          j        |          j        t           j        k    sJ d S )NrY   r   )r8   re   r   r   boolr   )r   arrs     r>   test_any_and_all_result_dtyper      sX    
'!5
!
!
!C6#;;''''6#;;''''''r@   c                        e Zd Zd Zd Zd ZdS )TestCopyc                     t          j        ddgddgg          }t          j        |          }t          ||           d|d<   t	          |d         d           t	          |d         d           d S )NrQ   rO   rY   rM   
   )r   r   )r8   r   copyr)   r(   )rg   rh   a_copys      r>   rm   zTestCopy.test_basic  sr    Hq!fq!f%&&1f%%%tQtWa   VD\2&&&&&r@   c                 Z   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                   d S )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    Hq!fq!f%&&$%%%AG(()))Aq6Aq6*#666FL--...)***)***FL--...gfooK%22333!./////r@   c                 l   t          j        d          }t          t          j        t	          j        |d                                t          t          j        t	          j        |d                               t          t          j        t	          j        |                                d S )NrZ   F)subokT)r   re   r'   isMaskedArrayr8   r   )rg   mxs     r>   
test_subokzTestCopy.test_subok!  s    WQZZB$RWRu%=%=%=>>>??? 4!8!8!899:::B$RWR[[11122222r@   N)r   r   r   rm   r   r   r   r@   r>   r   r     sA        ' ' '0 0 0"3 3 3 3 3r@   r   c                       e Zd Zd Ze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d ZdS )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          |                    d          t          |d                     t          |                    d          t          |d                     t          dd          }t          |                    d          t          |d                     t          |                    d          t          |d                     d S )Nr   r   r          @      ?r         @)        r   r   r   r   ra   rO   rb   rQ   rZ   )r8   r   r'   r	   re   r*   meanr4   )rg   r   r   r   y4y5s         r>   rm   zTestAverage.test_basic+  sK   Xiii  ###r)***Xlll#####r)***\\###r)***WV__44BGGAJJA777BGGAJJA777!QZZBGGAJJA777BGGAJJA7777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          |	|           d S )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_keepdims=  s    j555yBH\2222223---z!$$GGGzRXm4444444///Zg)-/ / /
dzRXm4444444///zRXm4444444/////r@   c                 z   t          j        d          }t          j        d          }t          ||          }t          j        d          dz                                  dz  t          j        d                                          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	          ||           t          j        t          d          5  t          ||           d d d            n# 1 swxY w Y   g dg dg}t          j        ddg          }t          t          ||d	          |           t          t          ||          d           t          d                              t           j                  }	t          d                              t           j                  }
t          t          j        |	|
          j        t          j        |	|
          k               t          j        g d                              dd          }t          j        g d                              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          ||           d S )Nr   r   rO   r   r   r   rQ   r   r   r   )r   r   r   r   r         @z:Axis must be specified when shapes of a and weights differmatch)r   r   rO   r   rZ   rO   rY   rM   rY   F)r   r   r   )r   r   r   Tr   r   )r8   r9   r	   sumr*   r   pytestraises	TypeErrorr)   r(   r4   astypefloat32float64r'   r   result_typerz   )rg   ywactualdesiredr   w0w1w2r   w3r   s               r>   test_weightszTestAverage.test_weightsT  s4   IbMMIbMMA&&&9R==A%**,,r1BIbMM4E4E4G4GGFG,,,Xyyy))),--VRa000(<<<((FG,,,YYRa000(B8$$FG,,, ]+, , , 	$ 	$ B####		$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ ii#(B8$$72r:::GDDDWR,,,b111!WW^^BJ''!WW^^BJ''
2r***0BN2r4J4JJKKK HYYY''1--HYYY''1--Aqq5AAA(<<<((67+++Aqq4@@@(RD2$-..67+++++s   
E((E,/E,c                 2   t          j        d                              ddd          }t          j        g d                              ddd          }|d d d d df         }t	          |d|          }t          j        g d          }t          ||           |d	d d d d f         }t	          |d
|          }t          j        ddg          }t          ||           |d d dd d f         }t	          |d|          }t          j        ddg          }t          ||           t          j        t          d          5  t	          |d|           d d d            n# 1 swxY w Y   t          j        t          d          5  t	          |d|           d d d            n# 1 swxY w Y   t	          |d|          }t	          |d|j	                  }t          ||           t	          |d|          }t          |j        dk               d S )N   rO   rY   )r   r   r         ?r  r   r   r  r  r   r   r   r   ra   )r   r         @r         "@rQ   rr   g      @g      @rU         @g      @zHShape of weights must be consistent with shape of a along specified axisr  rP   rb   )r8   r9   rz   r   r	   r*   r  r  rd   Tr'   r   )rg   r  r  subw0r  r  subw1subw2s           r>   $test_weight_and_input_dims_differentz0TestAverage.test_weight_and_input_dims_different  s   IbMM!!!Q**HEEEFFWQ1 	
 !!!QQQ'
777(<<<((FG,,,!QQQ'
777(D$<((FG,,,!!!Q'
777(D$<((FG,,, ]89 9 9 	6 	6 AIu5555		6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ]89 9 9 	3 	3 AFE2222		3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 777!&%':::FG,,, A666q !!!!!s$   E$$E(+E(
F))F-0F-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                     d S )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_returned  s   Hiii+,, 1t,,,SS"1a$///S3 6 67771a$///S3"b 2 2333 V1bq4@@@S3 6 6777YY1bq4@@@S3"b 2 2333ii#1bq4@@@S3"b 2 233333r@   c                     G d dt           j                  }t          j        ddgddgg                              |          }t          j        ddgddgg                              |          }t	          t          t          j        |                    |           t	          t          t          j        ||                    |           d S )Nc                       e Zd ZdS )-TestAverage.test_subclasses.<locals>.subclassNr   r   r   r   r@   r>   subclassr-            Dr@   r/  rQ   rO   rY   rM   r  )r8   ndarrayr   viewr(   typer	   )rg   r/  rh   r  s       r>   test_subclasseszTestAverage.test_subclasses  s    	 	 	 	 	rz 	 	 	HqeQqE]##((22HqeQqE]##((22T"*Q--(((333T"*Q22233X>>>>>r@   c                    g d}|D ]y\  }}}t          j        ddgddgg|          }t          j        ddgddgg|          }t          t          j        ||          j        t          j        |                     zd S )N))i4r6  f8)r6  f4r7  )r8  r6  r7  )r8  r8  r8  )r8  r7  r7  rQ   rO   rY   rM   r   r  )r8   r   r(   r	   r   )rg   typsatwtrtrh   r  s          r>   test_upcastingzTestAverage.test_upcasting  s    9 9 9 	G 	GJBB1Q%1b111A1Q%1b111AAq1117"FFFF	G 	Gr@   c                 D   t          j        d t          d          D                       }t          j        d t          d          D                       }||                                z  }t	          |                    d          t          ||                     d S )Nc                 6    g | ]}t          j        |          S r   decimalDecimal).0r   s     r>   
<listcomp>z1TestAverage.test_object_dtype.<locals>.<listcomp>  "    <<<Qgoa((<<<r@   r   c                 6    g | ]}t          j        d           S rQ   r@  )rC  _s     r>   rD  z1TestAverage.test_object_dtype.<locals>.<listcomp>  rE  r@   r   r  )r8   r   rf   r  r*   r   r	   )rg   rh   r  s      r>   test_object_dtypezTestAverage.test_object_dtype  s    H<<%))<<<==H<<%))<<<==	QUUWWAFF1IIwq!'<'<'<=====r@   c                     t          j        t          dd          t          dd          g          }t          t          j        |          t          dd                     d S )NrQ   rZ   rY   rO   )r8   r   r   r(   r	   rt   s     r>    test_average_class_without_dtypez,TestAverage.test_average_class_without_dtype  sL    Hhq!nnhq!nn566RZ]]HQNN33333r@   )r   r   r   rm   r  markparametrizer  r  r'  r*  r4  r=  rI  rK  r   r@   r>   r   r   )  s       8 8 8$ [F
))TC5)))dVcU	;99jjj
!1&7a&???#iii[
2	3 0 0 0"., ., .,`(" (" ("T4 4 44? ? ?G G G> > >4 4 4 4 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dS )
TestSelectr   r   ry   rw   	   )FFFFTFFFTr   c                     g }t          t          |                    D ]$|fdt          ||          D             p|gz  }%|S )Nc                 6    g | ]\  }}|         |         S r   r   )rC  VCms      r>   rD  z&TestSelect._select.<locals>.<listcomp>  s*    BBB1QqTBqtBBBr@   )rf   lenzip)rg   condvaluesdefaultoutputrX  s        @r>   _selectzTestSelect._select  s^    s4yy!! 	P 	PABBBBFD(9(9BBBOwiOFFr@   c                    | j         }| j        }t          t          ||d          |                     ||d                     t          t          |          d           t          t          |          d           d S )N   r]  rY   )choices
conditionsr)   r   r_  r(   rY  rg   rc  rd  s      r>   rm   zTestSelect.test_basic  s    ,_
6*grBBB<<
GR<HH	J 	J 	J 	S\\1%%%S__a(((((r@   c                 ^   t          j        d          t          j        g d          g}dt          j        d                              dd          g}t	          t          ||          t          j        d                     t          t          dgdgdg	          j        d
           d S )NTrR  rQ   r  rM   rY   rM   rY   r   rb  rG  )	r8   r   r9   rz   r)   r   re   r(   rD   rg   rd  rc  s      r>   test_broadcastingzTestSelect.test_broadcasting  s    htnnbh/C/C/C&D&DE
bimm++Aq1126*g66HHHVTFQC!555;TBBBBBr@   c           	         t          t          | j        | j        d          j        t
          j                   d | j        D             }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           d S )	N              ?c                 L    g | ]!}|                     t          j                  "S r   )r  r8   int8)rC  choices     r>   rD  z0TestSelect.test_return_dtype.<locals>.<listcomp>  s&    EEEf6==))EEEr@   rQ   rO   rY   rZ   ry   r   )r(   r   rd  rc  r   r8   rE   rm  r   nanisnan)rg   rc  drX  s       r>   test_return_dtypezTestSelect.test_return_dtype  s    VDOT\2>>D]	$ 	$ 	$ FEEEEVDOW55;RWEEEHaArvq!,--HQKKVQC!%%1aA'>?????r@   c                 x    t          t          t          g g d           t          t          t          g g            d S )N              @)r,   rd   r   r   s    r>   test_deprecated_emptyz TestSelect.test_deprecated_empty  s2    j&"b"555j&"b11111r@   c                 z   | j         }| j        d d          }|d                             t          j                  |d<   t          t          t          ||           |d                             t          j                  |d<   t          t          t          ||           t          t          t          ||           d S Nr   )	rc  rd  r  r8   int_r,   r  r   uint8re  s      r>   test_non_bool_deprecationz$TestSelect.test_non_bool_deprecation  s    ,_QQQ'
"1,,RW55
1iW==="1,,RX66
1iW===iW=====r@   c                     t          j        dg          gdz  }t          j        dg          gdz  }t          ||           d S )NFd   rQ   )r8   r   r   rh  s      r>   test_many_argumentszTestSelect.test_many_arguments  sG    hw''(3.
8QC==/C'z7#####r@   Nr   )r   r   r   r8   r   rc  rd  r_  rm   ri  rr  ru  rz  r}  r   r@   r>   rO  rO    s       rx			""rx			""rx			""$G "(00011"(///00"(///002J   ) ) )C C C
@ 
@ 
@2 2 2> > >$ $ $ $ $r@   rO  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
g          d             ZdS )
TestInsertc           
      $   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            d S # 1 swxY w Y   d S )Nr   r   rQ   )rQ   rQ   rO   rY   rY   )rQ   rO   rY   rQ   r   )rQ   rQ   rO   rY   rO   rY   )rQ   r`   rY   rQ  )rQ   rQ  rO   rQ  rY   rQ  r`   )rQ  rQ   rQ  rO   rQ  rY   r`   rQ   rY   rP  )rQ   rw   rO   ry   rY   rQ  r   r   r   r   Trecordalways rM   )rQ   rQ  rQ  rQ  rQ  rO   rY   )r(   r   slicer8   r   r  warningscatch_warningsfilterwarningsFutureWarningr'   category)rg   rh   r   r  s       r>   rm   zTestInsert.test_basic$  sV   IIVAq!__lll333VAq!__lll333VAyyy)))446H6H6HIIIVAq))),,.@.@.@AAAVAzzz1--/A/A/ABBBVAuRr22A668J8J8JKKKVAzzz999557I7I7IJJJHaV2:...VAq!A$''666VAr2&&*** $D111 	4Q#Hb-@@@q"(D6A:..224I4I4IK K KAaDM]2333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A4HH	H	c                    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
                              d	                              d	d	          }t          j        |d d ddf         t          j        dd
                              d	                              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
                              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                              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          t          |d|d d dd d f         d	           t          t          t          |d|d d dd d f         d           t          j        d                              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                     d S )Nr   rN   r   rQ   r   r   rO   )rQ   rQ   rO   rQ   rY   rM   r      r
  r`   rW   )r(   r   r8   r   r9   repeatrz   concatenater#  r,   r&   )rg   rh   rr   r   s        r>   test_multidimzTestInsert.test_multidim8  s   YYKYYYYVAq1#&&555VAq)))!444a888VAq!!,,,a000VAq!!,,,|||n===Hq!fq!fq!f-..IaOO""1%%--a33Nqqq!A#vY	!Q..q1199!Q??Aqqq!A#vY! ! ! 	VAsaS1#sO!<<<a@@@VAsIIIA666:::VAq)))!444a888VAqA3aS/:::A>>>IaLL  A&&VAaaa!eHa111a4q9991===VAbqbdGQ!AAA#Q777;;; IbMM!!),,VAq!AAAaaaF)"555Aq!AAAaaaF)!444	6 	6 	6VAq!AAAqF)"555Aq!AAAqF)!444	6 	6 	6 	iAqAqqqzBBBBiAqAqqqzCCCC IbMM!!),,VAq!AAAqqq!G*2666Aq!AAAqqq!G*1555	7 	7 	7VAq!AAAq!!!G*2666Aq!AAAq!!!G*1555	7 	7 	7 	7 	7r@   c                 @   t          j        d          }t          j        t                    5  t          |g dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          |g dd           d d d            d S # 1 swxY w Y   d S )NrQ   rO   r   r   nonsense)r8   r   r  r  r&   r   r  rt   s     r>   test_0dzTestInsert.test_0db  s   HQKK]9%% 	% 	%1b!!$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]9%% 	. 	.1b!*----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s#   AAA2BBBc                 h    G d dt           j                  }t          j        d                              |          }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                              |          }t	          t          t          j        |ddg          |                     d S )	Nc                       e Zd ZdS )*TestInsert.test_subclass.<locals>.SubClassNr.  r   r@   r>   SubClassr  j  r0  r@   r  r   r   rQ   rO   rW   r`   )	r8   r1  r9   r2  r'   
isinstancer   r  r   rg   r  rh   s      r>   test_subclasszTestInsert.test_subclassi  sr   	 	 	 	 	rz 	 	 	IbMMx((
29QA3//::;;;
29QB//::;;;
29QAA77BBCCC
29QaaV<<hGGHHH
29QaR(8(8"==xHHIIIHQKKX&&
29QA3//::;;;;;r@   c                     t          j        g d          }t          j        g d|g d           t          |t          j        g d                     d S )Nr   rP   rX   )r8   r   r   r(   rg   r   s     r>   test_index_array_copiedz"TestInsert.test_index_array_copiedv  sU    HYYY
	)))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                             d S )	N))rQ   rh   )rO   r   )rY   r   )foor   )barS1r   )rM   rq  r   rO   rY   )r8   r   r   r)   r   )rg   rh   valr   s       r>   test_structured_arrayz TestInsert.test_structured_array{  s    H333(-8: : :IaC  1Q4#QW!=!=!=>>>j1nIa!Q%%1aV9bhs!'&B&B&BCCCCCr@   c                    t          j        t                    5  t          j        g dt          j        ddg          ddg           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        g dt          j        g t                    g            d d d            d S # 1 swxY w Y   d S )NrP   r   r   r      r   )r  r  
IndexErrorr8   r   r   floatr   s    r>   test_index_floatszTestInsert.test_index_floats  sQ   ]:&& 	A 	AIiii3*!5!5Bx@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A]:&& 	@ 	@Iiii"E!:!:!:B???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s#   /AAA92B88B<?B<idxrM   r  c                     t          j        t          d          5  t          j        g d|gddg           d d d            d S # 1 swxY w Y   d S )Nzout of boundsr  rP   rY   rM   )r  r  r  r8   r   )rg   r  s     r>   test_index_out_of_boundsz#TestInsert.test_index_out_of_bounds  s    ]:_=== 	0 	0Iiii#A///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   AA	A	N)r   r   r   rm   r  r  r  r  r  r  r  rL  rM  r  r   r@   r>   r  r  "  s        4 4 4((7 (7 (7T. . .< < <- - -
D D D@ @ @ [UQG,,0 0 -,0 0 0r@   r  c                       e Zd Zd ZdS )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
           d S )NrY   rM   rZ   r   r]   r        $@rY   r  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  s    &&&RWQZZ&&&]]^^]] 	RWQQ''')9)9)9:::RWQQ''')9)9)9:::::r@   Nr   r   r   rm   r   r@   r>   r  r    s#        ; ; ; ; ;r@   r  c                       e Zd Zd ZdS )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
           d S )Nr  g      r  r  r  r   r   )r   r   r   rQ   )r   r   r   )r(   r8   aminr   s      r>   rm   zTestAmin.test_basic  s    &&&RWQZZ&&&]]^^]] 	RWQQ'''999RWQQ'''99999r@   Nr  r   r@   r>   r  r    s#        : : : : :r@   r  c                       e Zd Zd ZdS )TestPtpc                    t          j        g d          }t          t          j        |d          d           t          j        g dg dg dg          }t          t          j        |d          g d           t          t          j        |d	          g d
           t          t          j        |dd          g dg           t          t          j        |dd          dgg           d S )Nr  r   r         .@r  r  r  )r   r   r   r`   )r  r  r  Tr   ra   r   )r8   r   r(   ptpr   s      r>   rm   zTestPtp.test_basic  s    H///00RVAA&&&---Hmmm$nn#mm% & & 	RVAA&&&888RVAB'''999RVAA5557HIIIRVAFT:::cUGDDDDDr@   Nr  r   r@   r>   r  r    s(        
E 
E 
E 
E 
Er@   r  c                   n    e Zd Zej                            dej        ej        g          d             Z	dS )
TestCumsumcumsumc           
         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           ||d          |           t          j        g dg dg d	g|          }t           ||d          |           t          j        g d
g dg dg|          }t           ||d          |           d S )NrQ   rO   r   r   rx   rZ   rM   rQ   rO   rY   rM   rZ   rx   ry   rQ  r   rY   rM   rZ   )rQ   rY   r^   r     #   '   r   r   )rx   rw   r   r^   )   r         )rQ   rY   rx   r   )rZ   r   r     )r   r^         rQ   )r8   rm  ry  int16uint16int32uint32r  r  	complex64rE   r   r)   )rg   r  baba2ctyperh   a2tgts           r>   rm   zTestCumsum.test_basic  sc   $$$||\\\===9grx29bhiRZm% 	8 	8E U##A#u%%B(555u==Cvvaa000#666(~~~/?/?/?@%I ICvvbq1113777(1A1A1ABEK KCvvbq11137777	8 	8r@   N)
r   r   r   r  rL  rM  r8   r  cumulative_sumrm   r   r@   r>   r  r    sK        [X	23D'EFF8 8 GF8 8 8r@   r  c                       e Zd Zd ZdS )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 rBt          t          t           j        |           t          t          t           j        |d           st          |                    d          d	           t          |                    d          t          j	        g d
|                     t          |                    d          t          j	        g d|                     d S )Nr  r  r  r  1r   rQ   r   r    g  ro   $   T      r`   )r  b  X  )r8   r  r  r  r  r  r  r  rE   r   r,   ArithmeticErrorprodr(   r)   )rg   r  r  r  rh   r  s         r>   rm   zTestProd.test_basic  sT   $$$||\\\===9h	28RYj"*blBMK 	E 	EEU##A#u%%B
""orw:::orwA>>>>QVVV^^U333"2777??#%8,=,=,=u#E#EG G G"2777#3#3#%8OOOU#C#CE E E E	E 	Er@   Nr  r   r@   r>   r  r    s(        E E E E Er@   r  c                   n    e Zd Zej                            dej        ej        g          d             Z	dS )TestCumprodcumprodc           
         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 rDt          t          ||           t          t          ||d           t          t          ||           ut           ||d          t          j	        g d	|                     t           ||d
          t          j	        g dg dg dg|                     t           ||d          t          j	        g dg dg dg|                     d S )Nr  r  r  r  r  rQ   r`   r   )rQ   rO   r     i(  i  r  r   )rZ   r     r  r  )rQ   rO   rx   r  )rZ   r     r  )r   r  r   r  )r8   r  r  r  r  r  r  r  rE   r   r,   r  r)   )rg   r  r  r  r  rh   r  s          r>   rm   zTestCumprod.test_basic  s   $$$||\\\===9h	28RYj"*blBMK 	J 	JEU##A#u%%B
""ow:::owA>>>ow::::"7712#6#6#6#%8 -@ -@ -@AF$H $HI I I #772A#6#6#6#%8\\\-<__->->->-@AF$H $HI I I #772B#7#7#7#%8]]]-?-?-?-?-?-?-ABG$I $IJ J J J!	J 	Jr@   N)
r   r   r   r  rL  rM  r8   r  cumulative_prodrm   r   r@   r>   r  r    sP        [YR5G(HIIJ J JIJ J Jr@   r  c                  J   t          j        d                              d          } t          j        ddgddgddggddgddgdd	ggg          }t	          t          j        | dd
          |           t          j        g dg dgg dg dgg          }t	          t          j        | dd
          |           t          j        dt           j                  }t          j        ddgddgddggt           j                  }t          j        dd                              d          } t          j        | d|d
           t	          ||           t          j        g d          }t	          t          j        t          j        ddg          d
          |           d S )Nrw   rN   r   rQ   rO   rM   rZ   r   r  T)r   include_initial)rQ   r   r   )rQ   rO   rx   )rQ   rM   r  )rQ   rx   *   rY   rO   r   rx   rT   )r   outr  )rQ   rO   rM   )r  )	r8   r9   rz   r   r)   r  r  rB   r  )r   expectedr  s      r>   test_cumulative_include_initialr     s   
)A,,

y
)
)Cx
Q!Q!Q Aq6Aq6B8"<  H 
#At<<<h   x	IIIZZZ 8  H 
3Q===x   (6
,
,
,Cx!Q!Q!Q0
CCCH
)Aq//
!
!&
)
)CcsDAAAAsH%%%x			""H
28QF++TBBBH    r@   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestDiffc                    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          |           d S )N)rQ   rM   rx   ry   r  )rY   rO   rQ   rZ   )r`   r`   rM   r   rZ   rO   r<   rY   )皙?皙@r   gɿ皙)r  皙?g	皙?)TTFFrR  T)r8   r   r)   r   r*   )rg   r   r  out2out3s        r>   rm   zTestDiff.test_basic  s1   h|||$$x$$xA477C(((4Q<<<...4Q<<<...'''h,,,--DGGS)))&&&h+++,,xt%%477C(((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          t          |d           t          t          t          |d           t          j        dt           j                  }t          t          t          |           d S )N)r   r  r  rQ   rO   )r      r  r`   )r   r     r   r   )rQ  r  r  rW   rY   r  gq?)
r8   rB   re   r)   r   r,   r&   r   r  rd   )rg   r   exps      r>   	test_axiszTestDiff.test_axis2  sU   H\""!!!QTT111*gl##AAAqt!tQQQJ477BH\$:$:;;;4+++RXl-C-CDDD4???BH[,A,ABBB4???C0004+++S111iqq1111iqr2222H]BJ//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
          |           d S )Nr  r   r  rQ   r`   rO   r   r   r   )r<   r   )r4   r)   r   )rg   r   out1r  r  out4s         r>   r   zTestDiff.test_ndB  s_   b"b!!!AAAqrr{Qqqq!!!SbSy\)AAAqqq!""H~QQQ3B3Y/QQQ{QssAAAqqqy\)ABB111H~SbS!!!QQQY/477D)))4Q<<<...4???D1114QQ///66666r@   c           
      x   t          t          d                    t          t          t          d           fdt          dd          D             }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
                       d S )	NrY   r`   r   c                 2    g | ]}t          |           S )r   )r   )rC  r<   r   s     r>   rD  z#TestDiff.test_n.<locals>.<listcomp>P  s#    4441$qA,,,444r@   rQ   rZ   r   start)listrf   r,   rd   r   r'   	enumeraterZ  r3  r8   r1  r)   r(   r   rx  rY  max)rg   r^  r  r<   r  r   s        @r>   test_nzTestDiff.test_nM  s"   qNNj$R00004444a444FQCR(Q!!""""+C&,A,A"K"K"K 	7 	7A#DII+,,,sH---BG,,,S3q#a&&1*#5#56666		7 	7r@   c                    t          j        ddt           j                  }t          j        ddgd          t          j        dgd          g}|                    t          j        g d          gdz             t          |d          D ]@\  }}t          ||	          }t          ||           t          |j	        |j	                   Ad S )
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_timesY  s    IlLFFFHaV#3444HaS 0111
 	",<===>BCCC222 	/ 	/FAsqA,,,CsC(((CI....	/ 	/r@   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            d S )NrQ   rO   rY   rM   rZ   rx   ry   rw   rQ  r   FTmaskr   )r   r   r   r)   r=   r  r'   r3  )rg   r   r  r  s       r>   r  zTestDiff.test_subclasse  sV   Hq!fq!fq!fq!fq"g>!5>D%=!4=4,HI I I 1gg38qcA3aS1#%>???38ugv'+ftfug&? 	@ 	@ 	@S		T!WW$%%%A|||49r2r2r&:;;;49r2r2r&:;;;T

d1gg%&&&&&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                              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          t          |dd           d S )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_prependt  s   IaLL141---rwqzz:::4A3///<<<29RWQ%:%:%:;;Q???4B7333RWQZZ@@@IaLL  A&&A...FQF#68,,,aS1#J77768,,,A...FQF#68,,,aVH55568,,,j"'1bhuooFFFFiq!!<<<<<<r@   c                 h   t          j        d          }t          |d          }g d}t          ||           t          |dg          }t          ||           t          |ddg          }|dgz   }t          ||           t          j        d                              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          t          |dd           d S )NrZ   r   )append)rQ   rQ   rQ   rQ   r  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_append  s   IaLLa"""###68,,,a$$$68,,,aA'''qc>68,,,IaLL  A&&1---GaW%68,,,QC!:66668,,,1---FRH%68,,,QF844468,,,j"'1RXe__EEEEiq;;;;;;r@   N)r   r   r   rm   r  r   r  r  r  r%  r(  r   r@   r>   r  r    s        / / /&+ + + 	7 	7 	7
7 
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                            d
 ej        dg          dgg          d             Zd ZdS )
TestDeletec                     t          j        d          | _        t          j        d                              d                              ddd          | _        d S )NrZ   rO   rQ   )r8   r9   rh   r  rz   nd_ar   s    r>   setup_methodzTestDelete.setup_method  sD    1IaLL''**221a;;			r@   c                 `   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         |           d S )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_slicing  s    tvw''$)W1555)G38E46'(+<==tv#&	( 	( 	( 	(x!!!Q'1gq=)ABB3	!AAAq& 13??????r@   c                     g d}g d}|D ]2}|D ]-}|D ](}t          |||          }|                     |           ).3d S )N)rW   r   rQ   rO   rM   rZ   )r]   r`   rQ   rY   )r  r5  )rg   limsstepsr  stopstepss          r>   test_sliceszTestDelete.test_slices  s    &&& 	6 	6E 6 6! 6 6DeT400A221555566	6 	6r@   c                    |                      t          j        ddgddgg                     t          j        t
                    5  t          | j        dg           d d d            n# 1 swxY w Y   t          j        t
                    5  t          | j        dg           d d d            n# 1 swxY w Y   |                      g d           |                      g d           t          j        t                    5  t          | j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          | j        d	           d d d            n# 1 swxY w Y   t          j        t                    5  t          | j        d	gd
z             d d d            d S # 1 swxY w Y   d S )Nr   rQ   rO   r|  i)r   r`   rO   rO   )TFFTFTFrM   )	r5  r8   r   r  r  r  r   rh   rd   r   s    r>   
test_fancyzTestDelete.test_fancy  s   &&rx!Q!Q0@'A'ABBB]:&& 	" 	"46C5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"]:&& 	# 	#46D6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	&&}}}555&&'H'H'HIII ]:&& 	! 	!464   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]:&& 	" 	"465!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ]:&& 	& 	&46E719%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&sZ   A**A.1A.B11B58B5D%%D),D)	E++E/2E/F66F:=F:c                 Z    |                      d           |                      d           d S )Nr   r  )r5  r   s    r>   test_singlezTestDelete.test_single  s0    &&q)))&&r*****r@   c                 <   t          j        d          }t          j        t                    5  t          |g d           d d d            n# 1 swxY w Y   t          j        t                    5  t          |g d           d d d            d S # 1 swxY w Y   d S )NrQ   r   r   r  )r8   r   r  r  r&   r   r  rt   s     r>   r  zTestDelete.test_0d  s   HQKK]9%% 	" 	"1bq!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"]9%% 	+ 	+1bz****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s#   AAA1BBBc                 T    G d dt           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                    |                     d S )Nc                       e Zd ZdS )*TestDelete.test_subclass.<locals>.SubClassNr.  r   r@   r>   r  rE    r0  r@   r  r   rQ   rO   rW   )r8   r1  rh   r2  r'   r  r   r  r  s      r>   r  zTestDelete.test_subclass  s   	 	 	 	 	rz 	 	 	FKK!!
6!Q<<22333
6!R==(33444
6!aV,,h77888
6!U1a[[118<<===
6!U1b\\22H==>>>>>r@   c                 *   t          j        d                              ddd          }t          |t	          dd           d          }t          |j        j        |j        j                   t          |j        j        |j        j                   d S )	Nr   rO   rZ   r   r   <   rQ   r   )	r8   r9   rz   r   r  r(   r   r   r   )rg   r_   rX  s      r>   test_array_order_preservez$TestDelete.test_array_order_preserve  s|    IbMM!!!Qc!221eBooA... 	QW)17+?@@@QW)17+?@@@@@r@   c                    t          j        t                    5  t          j        g dt          j        ddg                     d d d            n# 1 swxY w Y   t          j        t                    5  t          j        g dt          j        g t                               d d d            d S # 1 swxY w Y   d S )NrP   r   r   r   )r  r  r  r8   r   r   r  r   s    r>   r  zTestDelete.test_index_floats  s$   ]:&& 	7 	7Iiii3*!5!5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7]:&& 	< 	<Iiii"E!:!:!:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s#   ,AAA61B44B8;B8indexerrQ   c                    t          | j        d          }t          | j        |          }t          ||           t          | j        dd          }t          | j        t	          j        dg          d          }t          ||           d S )NrQ   r   )r   rh   r(   r,  r8   r   )rg   rJ  	a_del_intr1  nd_a_del_intr2  s         r>   test_single_item_arrayz!TestDelete.test_single_item_array  s    461%%	tvw''Y&&&di333$)RXqc]];;;\8,,,,,r@   c                    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            n# 1 swxY w Y   t          j        t                    5  t          t          j        d	          t          j        dgd
                     d d d            d S # 1 swxY w Y   d S )NrQ   F)rY   rQ   r   Tr`   r   r   rO   zm8[ns])
r   r8   re   r   r)   r   r  r  r  r   )rg   resr   
false_mask	true_masks        r>   test_single_item_array_non_intz)TestDelete.test_single_item_array_non_int  s    RWQZZ5'!2!2333

+++ GFOOXugT222
HdV4000	Q
,,,3"""Q	+++3!!!RaR%))) ]:&& 	< 	<271::rx6:::;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ]:&& 	> 	>271::rx8<<<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s$   =EEE:8F??GGN)r   r   r   r-  r5  r=  r?  rA  r  r  rH  r  r  rL  rM  r8   r   rN  rS  r   r@   r>   r*  r*    s        < < <@ @ @6 6 6& & &*+ + ++ + +? ? ?A A A< < < [Y1#(<==- - >=-> > > > >r@   r*  c                   6   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                            dej        ej        ej        ej        g          d             Zej                            dej        ej        ej        ej        g          d             Zej                            dej        ej        ej        ej        g          d             Zej                            dej        ej        ej        ej        g          d             Zd ZdS )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          |          |           d S )NrQ   rY   rM   r   r   r   r   )r8   r   r)   r   rg   vr   dxs       r>   rm   zTestGradient.test_basic   s    VaVHQKKhR2r(+,,hR2r(+,,.8A;;+++8A;;+++++r@   c           
         t          j        t          j        d                    }g d}t          j        d                              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           d S )NrZ   )r   r   r   r!        &@   r         ?rO   rQ   r   z.*scalars or 1dr`   )
r8   r  re   r9   rz   r   r   r/   rd   stack)rg   rY  	dx_unevenf_2ds       r>   	test_argszTestGradient.test_args(  s9   Yrwqzz"")))	y}}$$Q** 	1r"""1rx||,,,1r"""srx}}%%%y),,, 	r1 	r"""" 	J(9dBHbT!V"555q	: 	: 	: 	: 	:r@   c           	      H   t          j        d                              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           d S )Nr\  rZ   rO   rQ   ra   r   )	r8   r9   rz   r  re   r,   rd   r   r  )rg   r`  r   s      r>   test_badargszTestGradient.test_badargsA  s3   y}}$$Q**Ibgajj!! 	j(D!RWQZZ@@@j(D!RWQZZ@@@j(D"'!**bgajjIIIi4333i4????i4Aq999i4Aq99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               d S )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   rY  s      r>   test_datetime64zTestGradient.test_datetime64Q  s    H7 7 7!# # # X)))"$ $ $ 	8A;;+++BH%566677777r@   c                    t           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                            d          }t           j        j	        |d<   t          j        |d	           t          |j        g d
           d S )NrQ   rY   rM   Fr  r   rZ   rO   
edge_order)FFTFF)r8   r   r   r   r(   r3  r'   _maskr9   maskedr)   r  )rg   r   r  x2s       r>   test_maskedzTestGradient.test_masked]  s    EKK!Q!Q($enuen=  ? ?qkk!nT#YYQ((( 	sy()))U\\!__1
B1%%%%27$F$F$FGGGG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                            d           t          j        t           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               d S )Nr   rQ   r   rO   rY   rM   rx   rw   rk  gQ?T)	r8   linspaceabsr   r'   r   randomseedsort)rg   r   rY  r  
analytical	num_errors         r>   test_second_order_accuratez'TestGradient.test_second_order_accuratel  sw   
 K1b!!qTAaD[QJQ!V#a!e+aZ!a%'!+
FBK2!<<<zIQNOO	y4'((D0111 		qGBI$$R(())QJQ!V#a!e+aZ!a%'!+
FBK1;;;jHAMNN	y4'((D011111r@   c                    t          j        g d          }t          j        |d          |                    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         |           d S )N)r   r   r   r   r   r   )rx   rQ   r`   rQ   )r   r  r   r   r   r   r  )r   r]  r   r   r  r   )      @r]  r   r   r        )r   r   333333?r        ?r   )r   r   r}  r  r~  g      пrO   r   ra   )r   rl  r   rb   )r8   r   tilerz   r9   r   r)   r*   r#  r'   rD   )rg   fx_unevenx_evenfdx_even_ord1fdx_even_ord2fdx_uneven_ord1fdx_uneven_ord2rl  exp_resres1res2res3s                r>   test_spacingzTestGradient.test_spacing  s7   H,,,--GAu		"a 0 008555662 : : :EBB = = =uEE'">">">FF'"A"A"A5II &'$6M8J#K 	. 	.JAr*EEEDAvv!&:? ? ?DAvv!%*> > >DtT***tT***Q333Q111ArjAAADAvA*EEEDDJ$*,---gi000ArjAAADAvA*EEEDDJ$*,---tW---- &'$81o:N#O 	/ 	/JAx!&:? ? ?DAx!%*> > >DtT***Q333Q111AxaJGGGDgi000AxaJGGGDg.... 68%AFFF8V%AFFF47DG,,,47DG,,,DG]_555DG_55568%AFFF8V%AFFF47DG,,,47DG,,,DG]_555DG_5555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          t          |d	           t          t          t          |d	           d S )NrQ   rY   rM   r   r   r   r   r   r   r`   rb   rO   r]   )r8   r   r)   r   r*   r,   r  r&   rW  s       r>   test_specific_axeszTestGradient.test_specific_axes  s   VaVHQKKhR2r(+,,hR2r(+,,.8AA...16668AA...16668AB///A7778AF333beRU^DDD 	HQT222RUBqENCCCHQT222HQKK@@@ 	8Aq!&999qE#Ir!uSy1	3 	3 	3 	i1a;;;;i115555i12666666r@   c                     t          j        g dd          }t          j        g dd          }t          t          |          |           t	          |j        t          j        d          k               d S )N)r  r]   r   r  rf  iA  ,  r  r   )rO   ry   ry   r\     w   irg  rh  s      r>   test_timedelta64zTestGradient.test_timedelta64  s    H***"$ $ $ X((("$ $ $ 	8A;;+++BH%566677777r@   c                     t           j        t           j        t           j        fD ]S}t          j        g d|          }t          t          |          j        t          j        |          j                   Td S )Nr   r   )	r8   float16r  r  r   r(   r   r   r   )rg   dtr   s      r>   test_inexact_dtypesz TestGradient.test_inexact_dtypes  sg    :rz2:6 	> 	>B"---A!*BGAJJ,<====	> 	>r@   c                 h   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           d S )NrO   rQ   rk  rY   r   )r   r8   r9   r,   rd   r   s    r>   test_valueszTestGradient.test_values  s    1!,,,,1!,,,,j(BIaLLQGGGGj(BIaLLQGGGGj(BIaLLQGGGGj(BIaLLQGGGGj(BIaLLQGGGGGGr@   f_dtypec                     t          j        g d|          }t          |          }t          |dgt	          |          z             d S )N)rZ   rM   rY   rO   rQ   r   r`   r8   r   r   r)   rY  )rg   r  r  gs       r>   test_f_decreasing_unsigned_intz+TestGradient.test_f_decreasing_unsigned_int  sI     H___G444QKK1rd3q66k*****r@   c                     t          j        |          j        }t          j        ddg          }t          j        d|g|          }t	          ||          }t          ||dz   dz  gdz             d S )NrQ   rY   r`   r   rO   )r8   iinfor  r   r   r)   )rg   r  maxintr   r  dfdxs         r>   test_f_signed_int_big_jumpz'TestGradient.test_f_signed_int_big_jump  su     '""&HaVHb&\1111~~46A:!"3!4Q!677777r@   x_dtypec                     t          j        g d|          }t          j        g d          }t          ||          }t          |dgt	          |          z             d S )Nr   r   r   rO   rM   rW   r  )rg   r  r   r  r  s        r>   test_x_decreasing_unsignedz'TestGradient.test_x_decreasing_unsigned  s^     HYYYg...HYYY1~~4"c!ff-----r@   c                    t          j        |          j        }t          j        |          j        }t          j        d|g|          }t          j        |dz  dg          }t          ||          }t          |ddg           d S )Nr`   r   rO   r   r  )r8   r  minr  r   r   r)   )rg   r  minintr  r   r  r  s          r>   test_x_signed_int_big_jumpz'TestGradient.test_x_signed_int_big_jump  s     '""&'""&Hb&\111Hfk1%&&1~~4#s,,,,,r@   c                 j    t          j        ddgddgf          }t          |          t          u sJ d S )NrQ   rO   rY   )r8   r   r3  tuplerg   rP  s     r>   test_return_typezTestGradient.test_return_type  s;    kAq6Aq6*++CyyE!!!!!!r@   N)r   r   r   rm   ra  rc  ri  rp  ry  r  r  r  r  r  r  rL  rM  r8   ry  r  r  uint64r  rm  r  r  int64r  r  r  r  r   r@   r>   rU  rU    s       , , ,: : :2? ? ? 
8 
8 
8H H H2 2 2(>6 >6 >6@7 7 74	8 	8 	8> > >
H 
H 
H [Y29)+BI)? @ @+ +@ @+
 [Y"()+28)= > >8 8> >8 [Y29)+BI)? @ @. .@ @. [Y"()+28)= > >- -> >-" " " " "r@   rU  c                       e Zd Zd Zd ZdS )	TestAnglec                 P   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           d S )N      ?      @rO   r   rk  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    RWQZZ#%RWQZZ!(;;BVW.!HHIi  IcNNAruqy"%"%#Yy!!!2529Y+?+?#?A !Xb\\C"%'!!R,,,!!R,,,,,r@   c                    t           j                            ddt          j        d          dz  dz  g          }t           j        j        |d<   t           j                            t          j        d          dt          j        d          g          }t           j        j        |d<   t          |          }t          t          |          t          |                     t          |j	        |j	                   t          ||           d S )Nr  rQ   rO         ?      ?r   r   r   )
r8   r   r   r  rn  r  r   r(   r3  r  )rg   r   r  r  s       r>   r  zTestAngle.test_subclass-  s    EKKBGAJJqLF$;<==u|!5;;	) 4 4a3HIIelqT&\\4>>222V[(-000VX&&&&&r@   N)r   r   r   rm   r  r   r@   r>   r  r    s2        - - -' ' ' ' 'r@   r  c            	          e Zd Z ej        g d          Ze                    e          Ze                    e	          Z
e                    e          Zd Zd Zd Zd Zd Zd Zej                            d ej        g d	           ej        g d
           ej        g d          g          d             Zd Zd ZdS )TestTrimZeros)r   r   rQ   r   rO   rY   rM   r   c                 $     d} fd|D             S )N)rh   r   r   rq  c              3   8   K   | ]}t          |          V  d S r7   )getattr)rC  namerg   s     r>   	<genexpr>z'TestTrimZeros.values.<locals>.<genexpr>A  s-      ;;d##;;;;;;r@   r   )rg   
attr_namess   ` r>   r\  zTestTrimZeros.values?  s"    )
;;;;
;;;;r@   c                     t           j        dd         }|                                 D ]'}t          |          }t	          |||                    (d S )NrO   r`   r8   s_r\  r"   r)   rg   slcr   rP  s       r>   rm   zTestTrimZeros.test_basicC  sT    eAbDk;;== 	. 	.CS//CsCH----	. 	.r@   c                     t           j        d d         }|                                 D ])}t          |d          }t	          |||                    *d S )Nr`   r   trimr  r  s       r>   test_leading_skipzTestTrimZeros.test_leading_skipI  s[    eCRCj;;== 	. 	.CSs+++CsCH----	. 	.r@   c                     t           j        dd          }|                                 D ])}t          |d          }t	          |||                    *d S )NrO   r   r  r  r  s       r>   test_trailing_skipz TestTrimZeros.test_trailing_skipO  s[    eABBi;;== 	. 	.CSs+++CsCH----	. 	.r@   c                    |                                  D ]i}t          j        ||j                  }t	          |d          }t          |          dk    sJ t	          |d          }t          |          dk    sJ jd S )Nr   Br  r   r  )r\  r8   
zeros_liker   r"   rY  )rg   _arrr   r  r  s        r>   test_all_zerozTestTrimZeros.test_all_zeroU  s    KKMM 	" 	"D-DJ777Cc,,,Dt99>>>>c,,,Dt99>>>>>	" 	"r@   c                 l    t          j        d          }t          |          }t          ||           d S rw  )r8   rB   r"   r)   rg   r   rP  s      r>   test_size_zerozTestTrimZeros.test_size_zero_  s0    hqkkoo3$$$$$r@   r   )r   l            r   )r   l            r   )r   l            r   c                 x    t           j        dd         }t          |          }t          |||                    d S )NrQ   rO   )r8   r  r"   r)   )rg   r   r  rP  s       r>   test_overflowzTestTrimZeros.test_overflowd  s8     eAaCjoo3C)))))r@   c                 p    t          j        g d          }t          |          }t          ||           d S )N)NrQ   N)r8   r   r"   r)   r  s      r>   test_no_trimzTestTrimZeros.test_no_trimo  s6    h''oo3$$$$$r@   c                     t          | j                                                  }t          |t                    sJ d S r7   )r"   rh   tolistr  r  r  s     r>   test_list_to_listzTestTrimZeros.test_list_to_listt  s5    ))#t$$$$$$$r@   N)r   r   r   r8   r   rh   r  r  r   complexr   r   rq  r\  rm   r  r  r  r  r  rL  rM  r  r  r  r   r@   r>   r  r  8  sF       )))**A	A	A	A< < <. . .. . .. . ." " "% % %
 [	---	 	 	---	 	 	---	 	 	" * * *
% % %
% % % % %r@   r  c                        e Zd Zd Zd Zd ZdS )
TestExtinsc                 ~    t          j        g d          }t          |dk    |          }t          |g d           d S )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{  sE    H***++AE11ooo.....r@   c                 J   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           d S )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   rQ  )rw   rO   rQ  rM   rw   rx   rQ  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!-B-B-BB$G$G r@   12349)
r,   r  r   r8   r   r)   rB   r9   r/   rd   rt   s    @r>   
test_placezTestExtins.test_place  sD    	i			D%=1a&IIIH***++a&&&			2221333444a!b!!!1bi1oo...a&&&A///1333444J(KGGGG	I 	I 	I HdD\""a!Q1tSk*****r@   c                     t          d          }|dk    }|                                }t          ||          }t          ||d           t          |||           t	          ||           d S )Nr   r  r   )r4   r   r   r   r)   )rg   rh   r  acr   s        r>   	test_bothzTestExtins.test_both  sl    HH3wVVXXD!aqaq1b!!!!!r@   N)r   r   r   rm   r  r  r   r@   r>   r  r  y  sA        / / /
+ + +," " " " "r@   r  r   c                 0    |t          j        |           z  S r7   mathfloorr   r  s     r>   _foo1r    s    TZ]]?r@   r   c                 6    |t          j        |           z  |z   S r7   r  )r   r  r  s      r>   _foo2r    s    TZ]]?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-d, Z.d-S ).TestVectorizec                 n    d }t          |          } |g dg d          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r7   r   rh   r   s     r>   addsubtractz.TestVectorize.test_simple.<locals>.addsubtract      1uu1u1ur@   r   rY   rx   rQ  rQ   rY   rZ   ry   rQ   rx   rQ   rO   r%   r)   rg   r  r  r  s       r>   test_simplezTestVectorize.test_simple  sS    	 	 	 k""AlllLLL))1lll+++++r@   c                 j    d }t          |          } |g dd          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r7   r   r  s     r>   r  z.TestVectorize.test_scalar.<locals>.addsubtract  r   r@   r  rZ   )rZ   rw   rQ   rM   r  r  s       r>   test_scalarzTestVectorize.test_scalar  sO    	 	 	 k""AlllA1lll+++++r@   c                     t          j        ddd          }t          d           } ||          }t          ||           d S )Nr]   rO   i'  c                     | S r7   r   r   s    r>   r  z*TestVectorize.test_large.<locals>.<lambda>       r@   )r8   rr  r%   r)   )rg   r   r  r  s       r>   
test_largezTestVectorize.test_large  sG    KAu%%kk""AaDD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          ||           d S )Nr   r  r]  rO   )r%   r  cosr8   r   r  r+   )rg   r  argsr1r2s        r>   
test_ufunczTestVectorize.test_ufunc  so    dhxC"%KbeQYGHHQtWWVD\\!"b)))))r@   c                    dd}t          |          }t          j        g d          } ||          }t          j        g d          }t          ||            ||d          }t          j        g d          }t          ||           d S )NrQ   c                     | |z   S r7   r   r  s     r>   r  z(TestVectorize.test_keywords.<locals>.foo      q5Lr@   r   r
  rO   rX   rG  r%   r8   r   r)   rg   r  r  r  r  r  s         r>   test_keywordszTestVectorize.test_keywords  s    	 	 	 	 cNNx			""QtWWXiii  2r"""QtQZZXiii  2r"""""r@   c                     t          t          t          g          } |t          j        d          d          } |t          j        d                    }t          ||           d S Notypesr   r   r%   r  r  r8   r9   r)   rg   r  r  r  s       r>    test_keywords_with_otypes_order1z.TestVectorize.test_keywords_with_otypes_order1  s`     eUG,,, Qry~~s##Qry~~2r"""""r@   c                     t          t          t          g          } |t          j        d                    } |t          j        d          d          }t          ||           d S r  r  r   s       r>    test_keywords_with_otypes_order2z.TestVectorize.test_keywords_with_otypes_order2  s`     eUG,,, Qry~~Qry~~s##2r"""""r@   c                 0   t          t          t          g          } |t          j        d                    } |t          j        d          d          } |t          j        d                    }t          ||           t          ||           d S )Nr  r   r   r  r  rg   r  r  r  r3s        r>    test_keywords_with_otypes_order3z.TestVectorize.test_keywords_with_otypes_order3  s     eUG,,, Qry~~Qry~~%%%Qry~~2r"""2r"""""r@   c                 >   t          t          t          g          } |dd          } |dd          } |d          }t          |t          dd                     t          |t          dd                     t          |t          d                     d S )Nr  $@r|  )r  r`   r%  r%   r  r  r(   r&  s        r>   +test_keywords_with_otypes_several_kwd_args1z9TestVectorize.test_keywords_with_otypes_several_kwd_args1  s     eUG,,, Qts^^^Qtr]]]QtWW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                     d S )	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  s     eUG,,, Q###Qq!QZZR333444Rq!Q(((((r@   c                 p    dd l }	 t          |j                   d S # t          $ r t	                      w xY wrw  )rt  r%   	randrange	ExceptionAssertionError)rg   rt  s     r>   test_keywords_no_func_codez(TestVectorize.test_keywords_no_func_code  sP     		#f&''''' 	# 	# 	# """	#s    5c                 \   d
d}t          |          }t          j        g d          } ||          }t          j        g d          }t          ||            |d|          }t          ||            ||d          }t          j        g d	          }t          ||           d S )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   rG  r  r  s         r>   test_keywords2_ticket_2100z(TestVectorize.test_keywords2_ticket_2100   s    	 	 	 	 cNNx			""QYYYXiii  2r"""Qd^^^2r"""Qtq\\\Xiii  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                     d S )Nc                     t          |          }|                    d          }|r|| z  |                    d          z   }||S rw  )r  pop)r   p_prP  s       r>   	mypolyvalz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyval3  sK    aB&&))C *Agq		)  *Jr@   r;  rQ   )excludedrY   rx   r   r   )r   r;  )r;  )r8   r%   r)   )rg   r=  vpolyvalanss       r>   test_keywords3_ticket_2100z(TestVectorize.test_keywords3_ticket_21001  s    	 	 	 <	S!H===!f3Aq6YYY ? ? ?@@@3!Q999 = = =>>>3!Q ; ;<<<<<r@   c                 h    t           d             }t           |ddgddg          ddg           d S )Nc                  *    d}| D ]}|| |         z  }|S Nr   r   )kwrP  _ks      r>   r  z3TestVectorize.test_keywords4_ticket_2100.<locals>.fB  s*    C  r"vJr@   rQ   rO   rY   rM   r  rw   r  rg   r  s     r>   test_keywords4_ticket_2100z(TestVectorize.test_keywords4_ticket_2100@  sN    		 	 
	 	111v!Q0001a&99999r@   c                 f    t           d             }t           |ddgddg          ddg           d S )Nc                  *    t          j        |           S r7   )r8   r  )rX  s    r>   r  z3TestVectorize.test_keywords5_ticket_2100.<locals>.fM  s    71::r@   rQ   rO   rY   rM   rw   r  rG  s     r>   test_keywords5_ticket_2100z(TestVectorize.test_keywords5_ticket_2100K  sK    		 	 
	 	11aVaV,,q!f55555r@   c                 Z    d }t          |          }t           |            d           d S )Nc                      dS NrQ   r   r   r@   r>   r  z5TestVectorize.test_coverage1_ticket_2100.<locals>.fooT      1r@   rQ   r  rg   r  r  s      r>   test_coverage1_ticket_2100z(TestVectorize.test_coverage1_ticket_2100S  s:    	 	 	 cNN1133"""""r@   c                     d }t          |          }t          |j        |j                   d}t          ||          }t          |j        |           d S )Nc                     | S )zOriginal documentationr   r  s    r>   r  z3TestVectorize.test_assigning_docstring.<locals>.foo[      Hr@   zProvided documentation)doc)r%   r(   __doc__)rg   r  r  rU  s       r>   test_assigning_docstringz&TestVectorize.test_assigning_docstringZ  sa    	 	 	 cNNQY,,,&cs###QY$$$$$r@   c                     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             d S )Nc                       e Zd ZdZd ZdS )9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.FoorO   c                     || j         z  S r7   r6  rt   s     r>   r  z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.bark  s    DF{"r@   N)r   r   r   r   r  r   r@   r>   FoorZ  h  s(        A# # # # #r@   r\  rQ  rO   )r)   r%   r  r8   r9   )rg   r\  s     r>   test_UnboundMethod_ticket_1156z,TestVectorize.test_UnboundMethod_ticket_1156f  s    	# 	# 	# 	# 	# 	# 	# 	# 	/9SSUUY//	!==9Q<<1,	. 	. 	.-9SW--cceeRYq\\BB9Q<<1,	. 	. 	. 	. 	.r@   c                 r   t          d           } |t          j        d                    } |t          j        dd                    }t          d           } |t          j        dd                    } |t          j        d                    }t          ||           t          ||           d S )Nc                     | S r7   r   r  s    r>   r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>u       r@   rY   r  c                     | S r7   r   r  s    r>   r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>x  r`  r@   )r%   r8   r9   r(   )rg   f1res1ares1bf2res2bres2as          r>    test_execution_order_ticket_1487z.TestVectorize.test_execution_order_ticket_1487s  s    {{##29Q<<  29S!$$%%{{##29S!$$%%29Q<<  UE"""UE"""""r@   c                 f    t          j        d           }d}t          | ||                     d S )Nc                     | S r7   r   r  s    r>   r  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>      1 r@   d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r8   r%   r(   )rg   r  r<  s      r>   test_string_ticket_1892z%TestVectorize.test_string_ticket_1892~  s6    L%%Q!r@   c                     dgt           fd            }d|_        t          j        d          }t	           ||          ||z             t          d         t          |                     d S )Nr   c                 .    dxx         dz  cc<   | dz  S )Nr   rQ   rO   r   )r   _callss    r>   r  z#TestVectorize.test_cache.<locals>.f  s!    1IIINIII6Mr@   TrZ   )r%   cacher8   r9   r)   r(   rY  )rg   r  r   rp  s      @r>   
test_cachezTestVectorize.test_cache  s    		 	 	 	 
	 IaLL11Q44Q'''VAYA'''''r@   c                     t          j        d           }d|_        t          j        d          }t	           ||          |           d S )Nc                     | S r7   r   r  s    r>   r  z+TestVectorize.test_otypes.<locals>.<lambda>  rk  r@   r   rZ   )r8   r%   r  r9   r)   rg   r  r   s      r>   test_otypeszTestVectorize.test_otypes  sE    L%%IaLL11Q44#####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            n# 1 swxY w Y   t          t                    5  t          j        d           d d d            n# 1 swxY w Y   t          t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )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   )rq  )rq  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_signature  s   S0;;vh=MNNNS0==!lRD)	+ 	+ 	+S0??v&-	/ 	/ 	/S0<<h)	+ 	+ 	+S0??h-	/ 	/ 	/S01HII333j\B	D 	D 	D 	S0<<x">NOOOS01BCC!lRD)	+ 	+ 	+S0AAv&-	/ 	/ 	/S01ABBh)	+ 	+ 	+S01ABBh-	/ 	/ 	/S0AC C333j\B	D 	D 	D :&& 	6 	6'555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6:&& 	5 	5'444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5:&& 	6 	6'555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s6   #HHH#III#JJ	J	c                 r    d }t          |d          } |g dg d          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r7   r   r  s     r>   r  z8TestVectorize.test_signature_simple.<locals>.addsubtract  r   r@   z	(),()->()	signaturer  r  r  r  r  s       r>   test_signature_simplez#TestVectorize.test_signature_simple  sX    	 	 	 k[999AlllLLL))1lll+++++r@   c                 t    d }t          |d          } |ddgddgg          }t          |ddg           d S )Nc                 *    |                                  S r7   r   r  s    r>   r   z4TestVectorize.test_signature_mean_last.<locals>.mean  s    6688Or@   z(n)->()r~  rQ   rY   rO   rM   r  )rg   r   r  r  s       r>   test_signature_mean_lastz&TestVectorize.test_signature_mean_last  s[    	 	 	 di000A1v1v1q!f%%%%%r@   c                 |    d }t          |d          } |ddgddgg          }t          |ddgddgg           d S )	Nc                 0    | |                                  z
  S r7   r  r  s    r>   centerz3TestVectorize.test_signature_center.<locals>.center  s    qvvxx<r@   (n)->(n)r~  rQ   rY   rO   rM   r`   r  )rg   r  r  r  s       r>   test_signature_centerz#TestVectorize.test_signature_center  sd    	  	  	  f
333A1v1v1AwQ011111r@   c                    t          d d          } |g d          }t          t          |t                    ot	          |          dk               t          |d         g d           t          |d         g d           d S )Nc                 
    | | fS r7   r   r  s    r>   r  z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>  
    A r@   	()->(),()r~  r   rO   r   rQ   )r%   r'   r  r  rY  r)   rg   r  r  s      r>   test_signature_two_outputsz(TestVectorize.test_signature_two_outputs  s    &&+>>>AiiiLL
1e$$4Q15551Q4+++1Q4+++++r@   c                    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           d S )	Nz(a),(b)->(a,b)r~  rQ   rO   r   r  r   r   )r%   r8   r;   r)   r  s      r>   test_signature_outerz"TestVectorize.test_signature_outer  sM   bh*:;;;Aq!fiii  1yyy)))4555AAxj)))$$1III 678999A1v1v			**1			9995 )		99957 	8 	8 	8 Aq!fyyy))),--1			9995 )		99957 	8 	8 	8 	8 	8r@   c                     t          d d          } |g d          }t          |ddg            |g dg dg          }t          |ddgddgg           d S )	Nc                     | d d         S Nr`   r   r  s    r>   r  z<TestVectorize.test_signature_computed_size.<locals>.<lambda>      #2# r@   z(n)->(m)r~  r   rQ   rO   r
  rY   r  r  s      r>   test_signature_computed_sizez*TestVectorize.test_signature_computed_size  s|    &&*===AiiiLL1q!f%%%Ayyy)))$%%11v1v./////r@   c                     d
d}t          |ddh          }t           |g d          g d           t           |g dd	          g d           d S )NrQ   c                     | |z   S r7   r   r  s     r>   r  z2TestVectorize.test_signature_excluded.<locals>.foo  r  r@   ()->()r   )r  r>  r   r
  r   r6  rG  r  rP  s      r>   test_signature_excludedz%TestVectorize.test_signature_excluded  s{    	 	 	 	 cX>>>11YYY<<33311YYY!,,,iii88888r@   c                     t          d ddg          } |g d          }t          |j        t          j        d                     t	          |g d           d S )Nc                     | S r7   r   r  s    r>   r  z5TestVectorize.test_signature_otypes.<locals>.<lambda>  r  r@   r  r  r  r  r   )r%   r(   r   r8   r)   r  s      r>   test_signature_otypesz#TestVectorize.test_signature_otypes  sa    kkZLLLAiiiLLQWbhy112221iii(((((r@   c                 F   t          t          j        d          }t          t          d          5   |ddg           d d d            n# 1 swxY w Y   t          t
          d          5   |dd           d d d            n# 1 swxY w Y   t          t
          d          5   |ddgg d           d d d            n# 1 swxY w Y   t          t          j        d	          }t          t          d          5   |dd           d d d            d S # 1 swxY w Y   d S )
Nz(n),(n)->(n)r~  zwrong number of positionalrQ   rO   zdoes not have enough dimensions$inconsistent size for core dimensionr   r  )r%   operatorr:   r/   r  rd   rG  s     r>   test_signature_invalid_inputsz+TestVectorize.test_signature_invalid_inputs  s*   hln=== ,HII 	 	Aq!fIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 =? ? 	 	AaGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !BD D 	! 	!Aq!fiii   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! hlh777 ,HII 	 	AaGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sG   AAA+BBB$CCC<DDDc                    t          d d          }t          t          d          5   |g d           d d d            n# 1 swxY w Y   t          d d          }t          t          d          5   |d	           d d d            n# 1 swxY w Y   t          d
 d          }t          t          d          5   |d	dg           d d d            d S # 1 swxY w Y   d S )Nc                     | d d         S r  r   r  s    r>   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r@   r  r~  r  r   c                     | S r7   r   r  s    r>   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r@   r  zwrong number of outputsrQ   c                 
    | | fS r7   r   r  s    r>   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r@   r  rO   )r%   r/   rd   rG  s     r>   test_signature_invalid_outputsz,TestVectorize.test_signature_invalid_outputs  s   &&*=== BD D 	 	AiiiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 kk[999 -FGG 	 	AaDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 &&(;;; -FGG 	 	Aq!fIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   AA	A4BBB>CC Cc                    t          j        d           }t          j        ddgt                    }t	          t
          d          5   ||           d d d            n# 1 swxY w Y   d|_        t           ||          |           t          j        d d	          }t	          t
          d          5   ||           d d d            n# 1 swxY w Y   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            d S # 1 swxY w Y   d S )Nc                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>#  rk  r@   r   rZ   r   r  r   c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>+  rk  r@   r  r~  c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>/  rk  r@   r  c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>2  rk  r@   r  c                     | S r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>5  rk  r@   c                     | gS r7   r   r  s    r>   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>8  s    A3 r@   z()->(n)znew output dimensions)	r8   r%   rB   intr/   rd   r  r)   r#  ru  s      r>   test_size_zero_outputz#TestVectorize.test_size_zero_output!  st   L%%HaV3''' X66 	 	AaDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 11Q44###L999 X66 	 	AaDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 LEEE11Q44###L
3GGG11Q44###L
;;;11QS6613'''L)CHHH -DEE 	 	AaDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   A  A$'A$7CCC#F<<G G c                 \    G d dt           j                  }t          j        g dg dg dg                              |          }t          j        g dg dg dg                              |          }t          j        t           j        d	
          } |||          }t          t          |          |           t          |g dg dg dg           t          j        d           } |||          }t          t          |          |           t          |||z             d S )Nc                       e Zd ZdS )/TestVectorize.test_subclasses.<locals>.subclassNr.  r   r@   r>   r/  r  =  r0  r@   r/  )r   r   r   r  )r   r   r   r   )r   r   r  r  z(m,m),(m)->(m)r~  )r   r   r   )r   r  r   )r   r!  r   c                     | |z  S r7   r   r  s     r>   r  z/TestVectorize.test_subclasses.<locals>.<lambda>K  s
    1 r@   )r8   r1  r   r2  r%   matmulr(   r3  )rg   r/  rX  rX  matvecr  mults          r>   r4  zTestVectorize.test_subclasses<  sM   	 	 	 	 	rz 	 	 	 Hlll"ll"ll$ % %%)T(^^ 	
 HlllLLL,,,?@@EEhOObi3CDDDF1aLLT!WWh'''Q|||\\\BCCC |,,--DAJJT!WWh'''QAr@   c                 J    t           j        d             }|j        dk    sJ d S )Nc                     | |z   S r7   r   r  s     r>   re  z#TestVectorize.test_name.<locals>.f2R  s    q5Lr@   re  )r8   r%   r   )rg   re  s     r>   	test_namezTestVectorize.test_nameP  s8    		 	 
	 {d""""""r@   c                 j    t           d             } |g dg d          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r7   r   r  s     r>   r  z1TestVectorize.test_decorator.<locals>.addsubtractY  s    1uu1u1ur@   r  r  r  r  )rg   r  r  s      r>   test_decoratorzTestVectorize.test_decoratorX  sP    		 	 
	 Klll331lll+++++r@   c                 n    t           d             }t          j        j        dk     r|j        dk    sJ d S d S )Nc                     | S )	Docstringr   r  s    r>   r  z'TestVectorize.test_docstring.<locals>.fd  s	     Hr@   rO   r  )r%   sysr   optimizerV  rG  s     r>   test_docstringzTestVectorize.test_docstringc  sN    		 	 
	 9!!9++++ "!++r@   c                 v    d }t          |d          }t          j        |          } |d          dk    sJ d S )Nc                     | |z   S r7   r   r  s     r>   r  z'TestVectorize.test_partial.<locals>.foom  r  r@   rY   rQ   rM   )r   r8   r%   )rg   r  r  vbars       r>   test_partialzTestVectorize.test_partiall  sH    	 	 	 c1oo|C  tAww!||||||r@   c                     t          ddg          d             } |g d          }t          |j        t          j        d                     t	          |g d           |j        dk    sJ d S )Nr  r  r  c                     | S r7   r   r  s    r>   r  z8TestVectorize.test_signature_otypes_decorator.<locals>.fu  rT  r@   r   r  )r%   r(   r   r8   r)   r   r  s      r>   test_signature_otypes_decoratorz-TestVectorize.test_signature_otypes_decoratort  s    	Z	<	<	<	 	 
=	<	 AiiiLLQWbhy112221iii(((zS      r@   c                     t          t                    5  t          j        d          }d d d            d S # 1 swxY w Y   d S )NrY   )pyfuncr,   r  r8   r%   )rg   As     r>   test_bad_inputzTestVectorize.test_bad_input~  s    9%% 	) 	)a(((A	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   8<<c                     t          t                    5  t          j        d          d             }d d d            d S # 1 swxY w Y   d S )Nstringc                      dS )Nr  r   r   r@   r>   r  z+TestVectorize.test_no_keywords.<locals>.foo  s    ur@   r  )rg   r  s     r>   test_no_keywordszTestVectorize.test_no_keywords  s    9%% 	 	\(##  $#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A  AAc                     t          d dg          } |dg          }t          |j        t          j        d                     d S )Nc                     | S r7   r   r  s    r>   r  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>  r`  r@   r  rO   )r%   r(   r   r8   r  s      r>   test_positional_regression_9477z-TestVectorize.test_positional_regression_9477  sH     {{i[11AqcFFQWbhy1122222r@   c                     d}t          j        g dd          }t           t          j        d d|g          |          |           d S )Nzdatetime64[ns])z
2024-01-01z
2024-01-02z
2024-01-03r   c                     | S r7   r   r  s    r>   r  z8TestVectorize.test_datetime_conversion.<locals>.<lambda>  s    ! r@   z(i)->(j)r  )r8   r   r)   r%   )rg   otyper   s      r>   test_datetime_conversionz&TestVectorize.test_datetime_conversion  s}     hAAA-/ / / 82<z05w8 8 88;= =>A	C 	C 	C 	C 	Cr@   N)/r   r   r   r  r	  r  r  r  r!  r#  r(  r,  r.  r3  r7  rA  rH  rK  rQ  rW  r]  rh  rm  rr  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r4  r  r  r  r  r  r  r  r  r  r   r@   r>   r  r    s       	, 	, 	,	, 	, 	,! ! !* * *# # ## # #	# 	# 	#
# 
# 
#& & &	) 	) 	)# # ## # #"= = =	: 	: 	:6 6 6# # #
% 
% 
%. . .	# 	# 	#  ( ( ($ $ $ 6  6  6D	, 	, 	,& & &2 2 2, , ,8 8 8 0 0 09 9 9) ) )      6  (# # #	, 	, 	,, , ,  ! ! !) ) )  3 3 3C C C C Cr@   r  c                      e Zd Z G d d          Zej                            e d          ej                            ed          ej        	                    ddej
        fdg          d	                                     Zd
S )	TestLeaksc                   .    e Zd ZdZd Zed             ZdS )TestLeaks.Ar  c                     dS rw  r   rg   r  s     r>   boundzTestLeaks.A.bound  rO  r@   c                      dS rw  r   )r  s    r>   unboundzTestLeaks.A.unbound  s    1r@   N)r   r   r   itersr  staticmethodr  r   r@   r>   r  r    sC        	 	 	 
	 	 
	 	 	r@   r  Python lacks refcountsreasonzJFunctions are immortalized if a thread is launched, making this test flakyz
name, incrr  )r  r   c                    dd l }t          | j        |          }|                                 	 t	          j        |          }t          | j        j                  D ]f}|                                 }t          j	        t          ||          dd          |_
        |
                    t          j        d                    }gd }t          t	          j        |          ||z              t          d          D ]}|                                 t          t	          j        |          |           |                                 d S # |                                 w xY w)Nr   rQ   r   rZ   )gcr  r  disabler  getrefcountrf   r  r8   
frompyfuncr  r9   r(   collectenable)	rg   r  incrr  A_funcrefcountr   rh   r  s	            r>   test_frompyfunc_leakszTestLeaks.test_frompyfunc_leaks  s%    				&&


	v..H46<(( ) )FFHHmGAt$4$4a;;cc")B--((A00(T/BBB1XX  

00(;;;IIKKKKKBIIKKKKs   DE EN)r   r   r   r  r  rL  skipifr1   r3   rM  r  r  r   r@   r>   r  r    s                [L(1IJJ[!C  E E [\ag,   	 E E KJ  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                            d          d             ZdS )TestDigitizec                     t          j        dd          }t          j        dd          }t          t          ||          t          j        d                     d S )Nr7  rZ   r  r   r8   r9   r)   r   rg   r   binss      r>   test_forwardzTestDigitize.test_forward  sL    Ib!yQ8At,,bimm<<<<<r@   c                     t          j        ddd          }t          j        ddd          }t          t          ||          t          j        d                     d S )NrZ   r7  r`   r  r   r  r  s      r>   test_reversezTestDigitize.test_reverse  sP    IaR  yB##8At,,bimm<<<<<r@   c                     t          d          }t          j        |                                |                                d          }t          t          j        t          ||          dk                         d S )Nr   r   r4   r8   rr  r  r  r'   r   r   )rg   r   bins      r>   test_randomzTestDigitize.test_random  s]    HHk!%%''15577B//x3''1,--.....r@   c                     g d}g d}g d}t          t          ||          |           g d}t          t          ||d          |           d S )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_basic  sh    ###zz...8At,,n===,,,8AtT22LAAAAAr@   c                     t          j        dd          }t          j        dd          }t          t          ||d          t          j        d                     d S )Nr7  rZ   rM   Tr   r  r  s      r>   test_right_openzTestDigitize.test_right_open  sN    Ib!yQ8AtT22BIbMMBBBBBr@   c                     t          j        ddd          }t          j        ddd          }t          t          ||d          t          j        d                     d S )NrZ   r7  r`   rM   Tr   r  r  s      r>   test_right_open_reversez$TestDigitize.test_right_open_reverse  sR    IaR  yB##8AtT22BIbMMBBBBBr@   c           	          t          d          }t          j        |                                |                                d          }t          t          j        t          ||d          dk                         d S )Nr   Tr  r  s      r>   test_right_open_randomz#TestDigitize.test_right_open_random  s_    HH{15577AEEGGR00x4.."45566666r@   c                 2   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          ||           d S )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&   MMyy8AtU33\\\BBB8AtT22LLLAAAyy8AtU33\\\BBB8AtT22LLLAAA||8AtU33\\\BBB8AtT22LLLAAA||j(At444||j(At44444r@   c                     g d}g d}t          t          t          ||           ||}}t          t          t          ||           d S )N)rQ   rO   y      @      ?r   )r,   r  r   r  s      r>   test_casting_errorzTestDigitize.test_casting_error  sK    OOyyi1d3334i1d33333r@   c           	          G d dt           j                  }t          j        d                              |          }t          j        dd                              |          }t	          t          t          ||d          |                      t	          t          t          ||d          |                      d S )Nc                       e Zd ZdS )(TestDigitize.test_return_type.<locals>.ANr.  r   r@   r>   r  r    r0  r@   r  rZ   rQ   rY   FT)r8   r1  r9   r2  r'   r  r   )rg   r  rh   r   s       r>   r  zTestDigitize.test_return_type  s    	 	 	 	 	
 	 	 	IaLLa  IaOO  ##Jx1e44a888999Jx1d33Q77788888r@   c                 `    d}t          t          j        ||dz
  |dz   g          d           d S Nl          rQ   r(   r8   r   r  s     r>   test_large_integers_increasingz+TestDigitize.test_large_integers_increasing  s5    R[QUAEN33Q77777r@   z9gh-11022: np._core.multiarray._monoticity loses precisionr  c                 `    d}t          t          j        ||dz   |dz
  g          d           d S r  r  r  s     r>   test_large_integers_decreasingz+TestDigitize.test_large_integers_decreasing  s7     R[QUAEN33Q77777r@   N)r   r   r   r  r  r  r  r  r	  r  r  r  r  r  r  rL  xfailr  r   r@   r>   r  r    s        = = =
= = =
/ / /
B B BC C C
C C C
7 7 7
5 5 5 4 4 49 9 98 8 8
 [J  L L8 8L L8 8 8r@   r  c                       e Zd Zd Zd ZdS )
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                          d S )NrQ   rO   r   r|  )r)   r#   r8   r  r'   r   r   r4   r   s    r>   r  zTestUnwrap.test_simple  sl    61a!be)m"4551v>>>tF488c>2233be;<<=====r@   c                    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 d S )NrQ   i     periodrO   r     )r   K         r  )r   r"  r#  r$  r  i     )r   r"  r#  r$  r  r     )r   discont)
r)   r#   r'   r8   r   r   r4   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DDtF488d?3???@@3FGGHHHX44455
6*c**6(3777DDDX999::
fZ--K444
:'B'B'BCCCKSAAA
:'B'B'BCCC;#4444444r@   N)r   r   r   r  r/  r   r@   r>   r  r    s2        > > >5 5 5 5 5r@   r  O
AllIntegerFloatM)r   rQ   r   c                   r    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	dS )
TestFilterwindowsr   r3  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                      d S |dk    r$t          |t          j	        d                     d S t          t          j        |d          dd           d S )	Nr   r   r0  rQ   r   r         @rM   )r8   r   r   r  r  r   r(   r   r)   re   r*   r  rg   r   r3  scalarr  	ref_dtypes         r>   test_hanningzTestFilterwindows.test_hanning:  s    !5)))"-FOOC<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 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                      d S |dk    r$t          |t          j	        d                     d S t          t          j        |d          dd           d S )	Nr   r   r0  rQ   r   r   g(\@rM   )r8   r   r   r  r  r   r(   r   r)   re   r*   r  r9  s         r>   test_hammingzTestFilterwindows.test_hammingO  s    !5)))"-FOOC<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 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                      d S |dk    r$t          |t          j	        d                     d S t          t          j        |d          dd           d S )	Nr   r   r0  rQ   r   r   g^)@rM   )r8   r   r
   r  r  r   r(   r   r)   re   r*   r  r9  s         r>   test_bartlettzTestFilterwindows.test_bartlettd      !5)))"-VC<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 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                      d S |dk    r$t          |t          j	        d                     d S t          t          j        |d          dd           d S )	Nr   r   r0  rQ   r   r   g=
ףp=@rM   )r8   r   r   r  r  r   r(   r   r)   re   r*   r  r9  s         r>   test_blackmanzTestFilterwindows.test_blackmany  rA  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                      d S |dk    r$t          |t          j	        d                     d S t          t          j        |d          dd           d S )	Nr   r   r   r0  rQ   r   r   ra  )r8   r   r   r  r  r   r(   r   r)   re   r*   r  r9  s         r>   test_kaiserzTestFilterwindows.test_kaiser  s    !5)))"-61C<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 12r:::::r@   )
r   r   r   strr  r<  r>  r@  rC  rE  r   r@   r>   r5  r5  4  s        =# =# =$ = = = =*># ># >$ > > > >*>3 >3 >4 > > > >*>3 >3 >4 > > > >*; ; ; ; ; ; ; ; ;r@   r5  c                        e Zd Zd Zd Zd ZdS )TestTrapezoidc                     t          j        ddd          }t          t          j        d|dz  z            t          j        dt           j        z            z  d          }t          |dd           d S )	Nr   r  r|  rO   )rY  rQ   ry   )r8   r9   r!   r  r  r  r*   )rg   r   r  s      r>   r  zTestTrapezoid.test_simple  sf    Ic2r""bfS16\**RWQY-?-??CHHHAq!$$$$$r@   c                 2   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                      d          }||d d d d f         z                      d          }	||d d d d f         z                      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          ||
           d S )
Nr   rQ   rY   rO   rw   r^   r`   r   )r   r   )r8   rr  	ones_liker  r!   r*   )rg   r   r  r  wxwywzqqxqyqzr  s               r>   	test_ndimzTestTrapezoid.test_ndim  s   K1a  K1a  K1b!!\!__!qt,
1

2!\!__!qt,
1

2!\!__!qt,
1

2!aaatmqaaa.4aaa<@"QQQd]##((a(00"T111d]##((a(00"T4]##((a(00 a1QQQd]+!444Ar"""a1T111d]+!444Ar"""a1T4]+!444Ar""" a11%%%Ar"""a11%%%Ar"""a11%%%Ar"""""r@   c                    t          j        d          }||z  }|dk    }t           j                            ||          }d}t	          t          ||          |           t           j                            ||          }t	          t          ||          |           t           j                            ||          }t	          t          ||          |           d S )NrZ   rO   r  g      *@)r8   r9   r   r   r*   r!   )rg   r   r  r  ymr  xms          r>   rp  zTestTrapezoid.test_masked  s     IaLLEAvU[[[&&Ib!,,a000U[[[&&Ib"--q111U[[[&&Ia,,a00000r@   N)r   r   r   r  rT  rp  r   r@   r>   rH  rH    sB        % % %## ## ##J1 1 1 1 1r@   rH  c                       e Zd Zd Zd ZdS )TestSincc                     t          t          d          dk               t          t          j        ddd                    }t	          |t          |          d           d S )Nr   rQ   r`   r|  ry   )r'   r    r8   rr  r+   r   rg   r  s     r>   r  zTestSinc.test_simple  sS    Q1RC(())!!VAYY22222r@   c                     ddg}t          t          j        |                    }t          t          |                    }t          t	          |                    }t          ||           t          ||           d S )Nr   r  )r    r8   r   r  r  r)   )rg   r   r   r   r   s        r>   test_array_likezTestSinc.test_array_like  sh    H"(1++$q'']]%((^^2r"""2r"""""r@   N)r   r   r   r  r]  r   r@   r>   rY  rY    s2        3 3 3# # # # #r@   rY  c                       e Zd Zd ZdS )
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                         d S )	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  rb  )r  r  rb  ra  )      @      @r        ?      $@r   rc  )r  rd  rc  r   )r8   r   r'   r   r$   r  s     r>   r  zTestUnique.test_simple  s    H00011vayyOOO344555rx0011RXqc]]BCCC999vayy$C$C$CCDDEEEH:::;;vayy$A$A$AABBCCCCCr@   N)r   r   r   r  r   r@   r>   r_  r_    s(        D D D D Dr@   r_  c                       e Zd Zd Zd ZdS )TestCheckFinitec                     g d}ddt           j        g}ddt           j        g}t          j        |           t	          t
          t           j        |           t	          t
          t           j        |           d S )Nr   rQ   rO   )r8   infro  asarray_chkfiniter,   rd   r   s       r>   r  zTestCheckFinite.test_simple	  sf    II26N26N
Qj""6:::j""6:::::r@   c                     g d}t          j        |dt           j                  }t          |j        t           j        k               d S )Nr   r   )r   r   )r8   ri  r  r'   r   rt   s     r>   test_dtype_orderz TestCheckFinite.test_dtype_order		  sA    II #RZ@@@2:%&&&&&r@   N)r   r   r   r  rk  r   r@   r>   rf  rf    s2        ; ; ;' ' ' ' 'r@   rf  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                            dej        ej        ej        ej        g          d             ZdS )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@)rn  r   p]4?)ro  rp  r   )r   rn  ro  ?'L?(8?4V}?)rn  r   rp  w{,H5?jS,?)ro  rp  r   )h?5#A?)rq  rt  rw  r   toBC,)rr  ru  rx  rz  r   @02v?)rs  rv  ry  r{  r|  r   c                 `    t          t          j        g dg d          ddgddgg           d S )Nr   )rQ   r   rQ   r         )r*   r8   r   r   s    r>   test_non_arrayzTestCorrCoef.test_non_array%	  sD    BK			999== #Yr
3	5 	5 	5 	5 	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                         d S rD  )
r   r  r*   r  r'   r8   r   rs  r  r  )rg   tgt1tgt2s      r>   r  zTestCorrCoef.test_simple)	  s    D$),,,rvd||s*++,,,''D$),,,rvd||s*++,,,,,r@   c                 T   t                      5 }t          j        d           t          t          t
          | j        d           |                    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            d S # 1 swxY w Y   d S )Nr  r`   ddofrY   )r0   r  simplefilterr.   DeprecationWarningr   r  filterr*   r  r  r  rg   sups     r>   	test_ddofzTestCorrCoef.test_ddof2	  sL      	MC!(++++XtvBGGGGJJ)***b 9 9 949EEEb A A A49MMMa 8 8 8$)DDDa @ @ @$)LLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms   DDD!$D!c           	         t                      5 }t          j        d           t          t          t
          | j        | j        dd           t          t          t
          | j        d           |                    t                     t          t          | j        d          | j
                   d d d            d S # 1 swxY w Y   d S )Nr  rQ   r   )bias)r0   r  r  r.   r  r   r  r  r  r*   r  r  s     r>   	test_biaszTestCorrCoef.test_bias>	  s       	EC!(++++Xtvtvq!LLL+XtvAFFFFJJ)***a 8 8 8$)DDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   B"B>>C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                         d S Nr   rk  y               @rt  r   r  rk  )r8   r   r   r-   r'   r   rs  )rg   r   rP  r  s       r>   test_complexzTestCorrCoef.test_complexH	  s    Hiii.//qkkhT
S"I.//S!!!rvc{{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                     d S r  )r8   r   r-   r   rg   r   r  s      r>   test_xyzTestCorrCoef.test_xyO	  se    Hiii[!!Hlll^$$Aq))28b$Z#r4K+L+LMMMMMr@   c           	         t          j        d          5  t          j        dt                     t	          t          t          j        g                     t          j                   t	          t          t          j        g           	                    dd                    t          j        g           	                    dd                     t	          t          t          j        g           	                    dd                    t          j        t          j        t          j        gt          j        t          j        gg                     d d d            d S # 1 swxY w Y   d S NTr  r  r   rO   )
r  r  r  RuntimeWarningr)   r   r8   r   ro  rz   r   s    r>   
test_emptyzTestCorrCoef.test_emptyT	  sm   $D111 	O 	O!(N;;;x55rv>>>x(<(<Q(B(BCC!x||33Aq99; ; ;x(<(<Q(B(BCC!x"&"&)9BFBF;K(LMMO O O	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O   E E##E'*E'c                 L   ddgddgg}t          j        d          5  t          |          }d d d            n# 1 swxY w Y   t          |t          j        ddgddgg                     t          t          j        t          j        |          dk                         d S )Ng0.++g}Ô%ITraise)r   r   r~  )r8   errstater   r+   r   r'   r   rs  )rg   r   r   s      r>   test_extremezTestCorrCoef.test_extreme]	  s    e_ufo.[W%%% 	 	A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!RXCy3).D%E%EFFFrvayyC'(()))))s   :>>	test_typec                 v    | j                             |          }t          ||          }||j        k    sJ d S Nr   )r  r  r   r   )rg   r  cast_ArP  s       r>   test_corrcoef_dtypez TestCorrCoef.test_corrcoef_dtyped	  s@    y))vY///CI%%%%%%r@   N)r   r   r   r8   r   r  r  r  r  r  r  r  r  r  r  r  r  r  rL  rM  halfsingledouble
longdoubler  r   r@   r>   rm  rm  	  s       	-	-	-	-	-	-	,	,	,	.	/ 	/A 		,	,	,	-	-	-	,	,	,	.	/ 	/A 28	%	%	%	$	$	$	&	&	&	() )D 28	I	I	I	I	I	I	K	K	K	M	M	M	J	J	J	J	J	J	LM MD5 5 5- - -
M 
M 
ME E E, , ,N N N
O O O* * * [[27BIry"-*XYY& & ZY& & &r@   rm  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                            dej         ej!        ej"        ej#        g          d             Z$dS ) TestCovr   rO   rQ   r   r~  )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                 T    t          t          | j                  | j                   d S r7   )r-   r   x1r  r   s    r>   rm   zTestCov.test_basicx	  s"    DGdi0000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                    |           d S )Nr   r  r   r  rk  rY   aweights)r8   r   r-   r   re   )rg   r   rP  s      r>   r  zTestCov.test_complex{	  s{    Hiii.//hT
S"I.//A$$$A

333S99999r@   c                     t          j        g dg          }t          j        g dg          }t          t          ||          t          j        ddgddgg                     d S r  )r8   r   r-   r   r  s      r>   r  zTestCov.test_xy	  sa    Hiii[!!Hlll^$$Aq		28b$Z#r,C#D#DEEEEEr@   c           	         t          j        d          5  t          j        dt                     t	          t          t          j        g                     t          j                   t	          t          t          j        g           	                    dd                    t          j        g           	                    dd                     t	          t          t          j        g           	                    dd                    t          j        t          j        t          j        gt          j        t          j        gg                     d d d            d S # 1 swxY w Y   d S r  )
r  r  r  r  r)   r   r8   r   ro  rz   r   s    r>   r  zTestCov.test_empty	  sm   $D111 	O 	O!(N;;;s28B<<00"&999s28B<<#7#71#=#=>>!x||33Aq99; ; ;s28B<<#7#71#=#=>>!x"&"&)9BFBF;K(LMMO O O	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Or  c           	      b   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            d S # 1 swxY w Y   d S )NTr  r  rZ   r  )
r  r  r  r  r)   r   r  r8   r   rh  r   s    r>   test_wrong_ddofzTestCov.test_wrong_ddof	  s    $D111 	> 	>!(N;;;s47333!x"&26'):+-6'26):)<  =  => > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   BB$$B(+B(c                    t          t          | j                  t          | j        d                     t          j        g d          }t          t          | j        |          t          | j        |d                     d S )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	  sp    DGc$'%&@&@&@AAAH===>>DGQTWa)F)F)FGGGGGr@   c                     t          t          | j        d          t          j        | j        d                     d S )NrQ   r  )r-   r   r  r8   varr   s    r>   test_1D_variancezTestCov.test_1D_variance	  s8    DG!,,,bfTW1.E.E.EFFFF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        |           d S )N)fweightsr  rO   rY   r   rO   r`   rY   )r-   r   ro  frequencies
x2_repeatsr  r  unit_frequenciesr  r,   r  r8   re   rx  RuntimeErrorrd   )rg   nonintr  s      r>   test_fweightszTestCov.test_fweights	  sI   DGd.>???DO,,	. 	. 	.DGd.>???		# 	# 	#DGd.CDDD		# 	# 	#!C'idg????GF"'***lC1====GARW%%%lC1===="'****j#tw;;;;;;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        |           d S )Nr  r   r  rO   r~  rY   )r-   r   r  r   r  unit_weightsr  r8   re   r,   r  rd   r[  s     r>   test_aweightszTestCov.test_aweights	  s   DGdl;;;TYGGGDGcDL.@AAADGdl;;;	= 	= 	=DGd.?@@@$)LLLGFOOlC1====GAJJlC1====271::j#tw;;;;;;r@   c                    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	                   d S )N)r  r  r   r  )r-   r   ro  r  r  r  r  r  r  r  r   r  r   s    r>   test_unit_fweights_and_aweightsz'TestCov.test_unit_fweights_and_aweights	  sz   DGd.>%)%68 8 8DO,,	. 	. 	. 	DGd.>%)%68 8 8		# 	# 	# 	DGd.C%)%68 8 8		# 	# 	# 	DGd.C%)\3 3 3		# 	# 	# 	DGd.C%(4<%79 9 9DGdl;;;	= 	= 	= 	DGd.C%)%68 8 8		# 	# 	# 	# 	#r@   r  c                 v    | j                             |          }t          ||          }||j        k    sJ d S r  )r  r  r   r   )rg   r  cast_x1rP  s       r>   test_cov_dtypezTestCov.test_cov_dtype	  s@    '..++'+++CI%%%%%%r@   N)%r   r   r   r8   r   r#  r  r  ro  r  r  r  re   rx  r  r   r  r  r  rm   r  r  r  r  r  r  r  r  r  r  rL  rM  r  r  r  r  r  r   r@   r>   r  r  k	  s*       	Aq6Aq6Aq6*	+	+	-B28b#Yb	*++D	///	+	+	+B"(999%%KC53%#useDEEGJ28c4[4+.//Drwq000bh''G28gx(8W*=>??D271::L	:::	;	;B1 1 1: : :F F F
O O O> > >H H H
G G G< < < 
< 
< 
<# # #( [[27BIry"-*XYY& & ZY& & &r@   r  c                        e Zd Zd Zd Zd ZdS )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                     d S )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   rG  r   )r*   r   r8   r   r(   rD   r)   )rg   r  r  r  i0_0s        r>   r  zTest_I0.test_simple	  si   sGGH'((	* 	* 	*
 HIIIJJ8[[[\\BqEE8,,,BrFFH---Hx,!:.!:.!:.!:.	0 1 1
 	qEEHz:.!:.!:.!:.!:.	0 1 1	2 	2 	2 ubT{{TZ&&&25";;"77777r@   c                 &   t          j        d           G fdd          }t          t          j         |                      |          sJ t          j                  }t          j         |                      }t          ||           d S )NrM   c                   $    e Zd Z j        Zd ZdS )*Test_I0.test_non_array.<locals>.array_likec                     | S r7   r   )rg   r   contextreturn_scalars       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    r@   r  )r8   r9   r  rs  r   r)   )rg   r  r  rP  rh   s       @r>   r  zTest_I0.test_non_array	  s    IaLL	 	 	 	 	 	 	 	 	 	 "&..
;;;;;eAhheJJLL!!3$$$$$r@   c                     t          j        ddg          }t          j        t          d          5  t          |          }d d d            d S # 1 swxY w Y   d S )Nr   y      ?       @z#i0 not supported for complex valuesr  )r8   r   r  r  r  r   )rg   rh   rP  s      r>   r  zTest_I0.test_complex
  s    Ha[!!]9,QRRR 	 	Q%%C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)r   r   r   r  r  r  r   r@   r>   r  r  	  sA        8 8 88% % %     r@   r  c                       e Zd Zd Zd ZdS )
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	                     d S )
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   F1cNN++,,,F1cNNHRLL	* 	* 	*F1cNNHj*%=>>	@ 	@ 	@F1cNNH &> &> &> ? ?	@ 	@ 	@ 	F1g..H &> &> &> ? ?	@ 	@ 	@ 	@ 	@r@   c                 &    t          dd           d S )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  	
  s5        @ @ @    r@   r  c                   P    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S )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                     d S )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2A1bh			(1		(1		(1		(3 4 4 	5 	5 	5 	1bh			(1		(1		(1		(3 4 4 	5 	5 	5 	5 	5r@   c                 t    t          g d          \  }t          |t          j        g d                     d S )Nr  r  )rg   r  s     r>   test_single_inputzTestMeshgrid.test_single_input)
  s9    |||$$1bh|||4455555r@   c                 l    g }t          g t          |            t          g t          |ddi           d S )Nr   F)r)   r   r  s     r>   test_no_inputzTestMeshgrid.test_no_input-
  s>    2x///2x:E::;;;;;r@   c           	         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           d S )Nr   r  ijindexingr   )rO   rO   rO   rO   )rY   rY   rY   rY   rw   rQ  r   rg  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_indexing2
  sn   IILL!Q...A1bh(4(4(6 7 7 	8 	8 	8 	1bh(4(4(6 7 7 	8 	8 	8
 FAq!'61222A---a06&@AAAAq!!!$*i7888Aq400039YFGGGj(Aq:FFFFF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                     d S )	Nr   r  TsparserM   rZ   rx   ry   r  r  s      r>   test_sparsezTestMeshgrid.test_sparseF
  ss    )))\\\$???A1bh			{334441bhaS1#s';<<=====r@   c                 J    t          t          t          g dg dd           d S )Nr   r  r  )r0  )r,   r  r   r   s    r>   test_invalid_argumentsz#TestMeshgrid.test_invalid_argumentsK
  s8     	iii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               d S )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_typeR
  s    Ia2:...Ib"BJ///{1Q117"###17"### {1QT***117"###17"### {1Qt,,,117"###17"#####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         |           d S )
Nr  r  gffffff
@g@FT)r  r   r   rQ   )r8   r   r   r(   )rg   r  r  r   r  s        r>   test_writebackzTestMeshgrid.test_writebackj
  s    Hc3Z  Hc3Z  {1aD9991!QQQ$Qq!!!tWa   Qq!!!tWa     r@   c                 4   t          j        d t          dd          D              \  }}}}}d}t          |j        |           t          |j        |           t          |j        |           t          |j        |           t          |j        |           d S )Nc              3   "   K   | ]
}d g|z  V  dS )r   Nr   rC  r   s     r>   r  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>u
  s(      %C%C!qcAg%C%C%C%C%C%Cr@   rQ   rx   )rO   rQ   rY   rM   rZ   )r8   r   rf   r(   rD   )rg   rh   r   r   rq  rx  expected_shapes          r>   test_nd_shapezTestMeshgrid.test_nd_shapet
  s    %C%CuQ{{%C%C%CD1aA(QWn---QWn---QWn---QWn---QWn-----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           d S )Nr   rQ   rO   rX   r   r   rN   r8   r   r(   r   s       r>   test_nd_valueszTestMeshgrid.test_nd_values}
  s    +qcAq6999551aQ)))yyyk2333Q)))yyyk2333Q)))yyyk23333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           d S )
Nr   rQ   rO   rX   r  r  r   r   rN   r  r   s       r>   test_nd_indexingzTestMeshgrid.test_nd_indexing
  s    +qcAq6999tDDD1aQ)))YYY/0111Q)))YYY/0111Q)))YYY/011111r@   N)r   r   r   r  r  r  r  r  r  r  r  r  r	  r  r   r@   r>   r  r  
  s        	5 	5 	56 6 6< < <
G G G(> > >
= = =$ $ $0! ! !. . .4 4 42 2 2 2 2r@   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestPiecewisec           	         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           d S )	Nr   TFrQ   c                     dS r  r   r  s    r>   r  z+TestPiecewise.test_simple.<locals>.<lambda>
  s     r@   r`   z1 or 2 functions are expectedr   )r   r)   r8   r   r/   rd   r  s     r>   r  zTestPiecewise.test_simple
  s   q!ftUmaS111q!f%%% q!fe}os331q!f%%% q!fbhe}55s;;1q!f%%% q!fbh1v..441q!f%%% q!frxA//01#661q!f%%%q!ft}o}==1q"g&&&J(G1v	4 	4 	4J(G1v				; 	; 	; 	; 	;r@   c                 `    t          ddgddgddggddg          }t          |ddg           d S )NrQ   rO   TFrY   rM   r   r)   r  s     r>   test_two_conditionsz!TestPiecewise.test_two_conditions
  sB    q!fe}udm<q!fEE1q!f%%%%%r@   c                 P    t          dg dg d          }t          |d           d S )NrY   )TFF)rM   rO   r   rM   )r   r(   r  s     r>   $test_scalar_domains_three_conditionsz2TestPiecewise.test_scalar_domains_three_conditions
  s4    a---yyy9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           d S )NrQ   rO   TFr   rY   r  r  s     r>   test_defaultzTestPiecewise.test_default
  sj    q!ftUmaS111q!f%%% q!ftUmaV441q!f%%%%%r@   c                    t          j        d          }t          ||dk    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           d S )
NrY   rM   r   rZ   TFrQ   rS  r   )r8   r   r   r'   r   r)   r  s      r>   r  zTestPiecewise.test_0d
  s    HQKKaQA''!Qa$A//!Q a---yyy991a     r@   c           	         d}t          ||dk    |dk    gddg          }t          |d           d}t          ||dk    |dk    |dk    z  |dk    gg d          }t          |d           t          t          dt           ||dk    |dk    gdg           t          t          dt           ||dk    |dk    gg d	           d S )
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1Q a!q&1q5Q!V"4a!e<iiiHH1a   J(Gq161q5/A3	0 	0 	0J(Gq161q5/<<<	9 	9 	9 	9 	9r@   c                     t          j        d          }t          j        |dk              }t          ||gddg          }t          |d           d S )NrY   rQ   rO   )r8   r   r   r(   )rg   r   r   r  s       r>   test_0d_0d_conditionz"TestPiecewise.test_0d_0d_condition
  sM    HQKKHQUOO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                     d S )N)g      g      r|  )r  r]  r{  r   rO   r  )r~  r~  r~  )r   r   r   )r8   r   r   r)   r  s      r>   test_multidimensional_extrafuncz-TestPiecewise.test_multidimensional_extrafunc
  s    H(((%oo' ( (a!a%a***551bh(4(6 7 7 	8 	8 	8 	8 	8r@   c                     G d dt           j                  }t          j        d                              |          }t	          ||dk     |dk    gg d          }t          t          |          |           t          |g d           d S )Nc                       e Zd ZdS )/TestPiecewise.test_subclasses.<locals>.subclassNr.  r   r@   r>   r/  r   
  r0  r@   r/  r   r   rM   )r~  r   r   )r~  r~  r   r   r   )r8   r1  r9   r2  r   r(   r3  )rg   r/  r   r  s       r>   r4  zTestPiecewise.test_subclasses
  s    	 	 	 	 	rz 	 	 	IbMMx((a!B$1}}}55T!WWh'''Q.../////r@   N)r   r   r   r  r  r  r  r  r  r  r  r4  r   r@   r>   r  r  
  s        ; ; ;:& & &  & & &! ! !9 9 9  8 8 80 0 0 0 0r@   r  c                   4   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                            d
ddg          d             Zd Zej                            e d          d             Zej                            dddggdg          d             ZdS )TestBincountc                     t          j        t          j        d                    }t          |t          j        d                     d S )NrM   )r8   bincountr9   r)   re   r  s     r>   r  zTestBincount.test_simple
  s7    K	!%%1bgajj)))))r@   c                     t          j        t          j        g d                    }t          |t          j        g d                     d S )N)rQ   rZ   rO   rM   rQ   )r   rO   rQ   r   rQ   rQ   )r8   r$  r   r)   r  s     r>   test_simple2zTestBincount.test_simple2
  sF    K11221bh'9'9'9::;;;;;r@   c                     t          j        d          }t          j        g d          }t          j        ||          }t	          ||           d S )NrM   )皙?333333?r  r  )r8   r9   r   r$  r)   rg   r   r  r  s       r>   test_simple_weightzTestBincount.test_simple_weight
  sL    IaLLH)))**K11a     r@   c                     t          j        g d          }t          j        g d          }t          j        ||          }t          |t          j        g d                     d S )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    H___%%H...//K11bh'A'A'ABBCCCCCr@   c                    t          j        g d          }t          j        |d          }t          |t          j        g d                     g }t          j        |d          }t          |t          j        g                      d S )N)r   rQ   r   rQ   rQ   rY   	minlength)rO   rY   r   r   r/  r  s      r>   test_with_minlengthz TestBincount.test_with_minlength  s~    H___%%KQ'''1bhyyy11222KQ'''1bhrll+++++r@   c                    t          j        g d          }t          j        |d          }t          |t          j        g d                     t          j        |d          }t          |t          j        g d                     d S )N)r   rQ   rQ   rO   rO   rY   rY   rO   r2  )rQ   rO   rO   rO   r   r/  r  s      r>   )test_with_minlength_smaller_than_maxvaluez6TestBincount.test_with_minlength_smaller_than_maxvalue  s    H***++KQ'''1bh|||44555KQ'''1bh|||4455555r@   c                     t          j        g d          }t          j        g d          }t          j        ||d          }t          |t          j        g d                     d S )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    H___%%H...//K1a  1bh'G'G'GHHIIIIIr@   c                     t          j        g t                    }t          j        |          }t	          ||           d S r  )r8   r   r  r$  r)   r  s      r>   r  zTestBincount.test_empty  s9    HRs###KNN1a     r@   c                     t          j        g t                    }t          j        |d          }t	          |t          j        dt                               d S )Nr   rZ   r2  )r8   r   r  r$  r)   rB   r  s      r>   test_empty_with_minlengthz&TestBincount.test_empty_with_minlength  sO    HRs###KQ'''1bhq44455555r@   r3  r   rY   c                     t          t          j        g |          t          j        |t                               d S )Nr2  r   )r)   r8   r$  rB   r  )rg   r3  s     r>   test_empty_listzTestBincount.test_empty_list#  sA    2;rY???8IS999	; 	; 	; 	; 	;r@   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           d S )	Nr   z"'str' object cannot be interpretedc                  0    t          j         d          S Nfoobarr2  r8   r$  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>,      BKX$F$F$F r@   zmust not be negativec                  0    t          j         d          S Nr`   r2  rB  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>/      BKR$@$@$@ r@   rZ   c                  0    t          j         d          S r@  rB  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>4  rC  r@   c                  0    t          j         d          S rE  rB  r  s   r>   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>7  rF  r@   )r8   r   r  r/   r  rd   r9   r  s    @r>   test_with_incorrect_minlengthz*TestBincount.test_with_incorrect_minlength(  s    HRs###I@FFFF	H 	H 	H 	J2@@@@	B 	B 	B IaLLI@FFFF	H 	H 	H 	J2@@@@	B 	B 	B 	B 	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                            |           d S )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_leaks9  s6    (9(9::/"(29*=*=>>r 	# 	#AK			""""S_RXbg%6%677GGGS_RXbi%8%899?KKKr 	. 	.AK			999----S_RXbg%6%677GGGS_RXbi%8%899?KKKKKr@   valsrO   c                 0   t          j        |          }t          t                    5  t          j        |           d d d            n# 1 swxY w Y   t          t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S r7   )r8   asarrayr,   rd   r$  )rg   rP  vals_arrs      r>   test_error_not_1dzTestBincount.test_error_not_1dI  s    :d##:&& 	" 	"K!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	":&& 	 	K	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   A

AA)BBBN)r   r   r   r  r&  r+  r0  r4  r6  r8  r  r;  r  rL  rM  r=  rI  r  r1   rO  rT  r   r@   r>   r"  r"  
  sV       * * *< < <! ! !D D D, , ,6 6 6J J J! ! !
6 6 6
 [[1a&11; ; 21;B B B" [L(1IJJL L KJL [V1vh]33  43  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dS )
TestInterpc                 H   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           d S )Nr   rQ   rO   r  h  )r,   rd   r   r   s    r>   test_exceptionszTestInterp.test_exceptionsU  s    j&!R444j&!aS1a&999j&!aVaVAFFFFj&!RC@@@@j&!aS1a&EEEEEEr@   c                     t          j        ddd          }t          j        ddd          }t          j        ddd          }t          t          j        |||          |           d S )Nr   rQ   rZ   ro   )r8   rr  r*   r   rg   r   r  x0s       r>   rm   zTestInterp.test_basic\  s_    K1a  K1a  [Ar""BIb!Q//4444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          ||	           -d S )NrQ   r   r   r`   r   r   left)r   rQ   rQ   rQ   rO   right)rQ   rQ   rQ   rO   )r_  ra  )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_behaviorb  sM    !RLL  	)  	)D4ry111BRY///BXr1dQh5RYGGGFDDbD\FFB++FFB++FXlll%888FDDbD\F((((((FB333FFB333FXlll%888FDDbD\F((((((FB!444FFB!444FXlll%888FDDbD\F((((((FB!<<<FFB!<<<FXlll%888FDDbD\F(((((((A 	)  	)r@   c                 6   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        |||          |           d S )Nr   rQ   rZ   r)  )r8   rr  r*   r   r  r  ro  r[  s       r>   test_scalar_interpolation_pointz*TestInterp.test_scalar_interpolation_point  s    K1a  K1a  BIb!Q//444BIb!Q//444Z^^BIb!Q//444Z^^BIb!Q//444VBIb!Q//44444r@   c                 J   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           d S )NrQ   rO   r{  rY   rM   r  rQ   rO   rM   )r8   rh  r*   r   ro  )rg   r   rc  fps       r>    test_non_finite_behavior_exact_xz+TestInterp.test_non_finite_behavior_exact_x  s    \\BFABIaR001a2KLLLBFABIaR001a2KLLLLLr@   c                 *    t          j        |           S r7   r8   r  r  s    r>   r  zTestInterp.<lambda>  s    "*Q-- r@   c                 "    t          | d          S rw  rI   r  s    r>   r  zTestInterp.<lambda>      -1%% r@   c                 "    t          d|           S rw  ru  r  s    r>   r  zTestInterp.<lambda>  rv  r@   c                 H    t          | t          j        | d                    S )NrW   )rI   r8   multiplyr  s    r>   r  zTestInterp.<lambda>  s    -2;q"#5#566 r@   )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.sc  s     }r@   c           
      v   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                             dS )z test that nans are propagated r  rQ   r   r   N)r(   r8   r   ro  rg   r  s     r>   test_non_finite_any_nanz"TestInterp.test_non_finite_any_nan  s   RYsRV!$4bbqb9I6J6JKKRRPRPVZZXXXRYs!RV$4bbqb9I6J6JKKRRPRPVZZXXXRYs!!$4bb"&b9I6J6JKKRRPRPVZZXXXRYs!!$4bbq"&9I6J6JKKRRPRPVZZXXXX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                     dS )z2 Test that interp between opposite infs gives nan r  r   r   rQ   Nr(   r8   r   rh  ro  r  s     r>   test_non_finite_infzTestInterp.test_non_finite_inf  s/   RYsbfWrvg$6!";M8N8NOOQSQSTVTZQ[Q[\\\RYs1A$6RVGbfW;M8N8NOOQSQSTVTZQ[Q[\\\RYs1A$6RVGbfW;M8N8NOOQSQSTVTZQ[Q[\\\ 	RYsbfWrvg$6";M8N8NOOQSQSTVQWQWXXXX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                             dS )z@ Test that interp where both axes have a bound at inf gives nan r  rQ   r   r   Nr  r  s     r>   test_non_finite_half_inf_xfz&TestInterp.test_non_finite_half_inf_xf  sX   RYsbfWA$6RVG";M8N8NOOQSQSTVTZQ[Q[\\\RYsbfWA$6RVG";M8N8NOOQSQSTVTZQ[Q[\\\RYsbfWA$6!bfW;M8N8NOOQSQSTVTZQ[Q[\\\RYsbfWA$6!bfW;M8N8NOOQSQSTVTZQ[Q[\\\RYs1rvg$6RVG";M8N8NOOQSQSTVTZQ[Q[\\\RYs1rvg$6RVG";M8N8NOOQSQSTVTZQ[Q[\\\RYs1rvg$6!bfW;M8N8NOOQSQSTVTZQ[Q[\\\RYs1rvg$6!bfW;M8N8NOOQSQSTVTZQ[Q[\\\\\r@   c           
      Z   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                     dS )z1 Test interp where the x axis has a bound at inf r  r   r   rQ   Nr(   r8   r   rh  r  s     r>   test_non_finite_half_inf_xz%TestInterp.test_non_finite_half_inf_x  s    RYsbfWrvg$6Ar7DDbbffMMMRYsbfWa$6Ar7DDbbffMMMRYs1rvg$6Ar7DDbbeeLLLRYsbfWrvg$6Ar7DDbbeeLLLL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        
                      dS )z1 Test interp where the f axis has a bound at inf r  r   rQ   r   Nr  r  s     r>   test_non_finite_half_inf_fz%TestInterp.test_non_finite_half_inf_f  s   RYsQFBBa"&/A,B,BCCRR[[QQQRYsQFBBa"&/A,B,BCCRR[[QQQRYsQFBBb/A,B,BCCRR[[QQQRYsQFBBb/A,B,BCCRR[[QQQRYsQFBB"&/A,B,BCCRR[[QQQRYsQFBB"&/A,B,BCCRR[[QQQQ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          |           d S )Nr   rQ   rZ   rk  r)  r`          @      @r^  r   r`  ro  r         @      ?rM   y              ?iLiViG   rJ  r  r   im     iBi^  i)      @      ?y      $@       @      @      @y      @      @)y      @      ?r  y     !@      ?y      @      ?r  y      
@      
@y      @      @y      @      @rX  r  )r8   rr  r*   r   rh  )	rg   r   r  r\  y0r_  ra  rc  rp  s	            r>   test_complex_interpzTestInterp.test_complex_interp  s   K1a  K1a  AAq!(<(<$<d#BB1R4+BIb!Q//444BIb!QT:::DAAABIb!Qe<<<eDDD\\rvq!bfTk261-BIaR00!444444###(((# # #BIa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                             d S )Nr   rQ   rZ   r)  r  )rQ   r`   rQ   r8  rM   r  r  )	r8   rr  r   r*   r   r(   r'   r  r  )rg   r   r  r\  rc  rp  r  s          r>   )test_zero_dimensional_interpolation_pointz4TestInterp.test_zero_dimensional_interpolation_point  s   K1a  K1a  Xb\\BIb!Q//444Xiii  Xjjj!!28A;;B//VQ
62:..///28C=="b;;;VS!!!
62:../////r@   c                     t          j        ddd          }t          j        |          }t          t          j        t           j        ||          d           d S )Nr   r   g-C6?r   )r8   r9   sinr*   r   r  )rg   rc  rp  s      r>   test_if_len_x_is_smallz!TestInterp.test_if_len_x_is_small  sH    Yq"f%%VBZZBIbeR44c:::::r@   c                 f   g d}g d}g d}g d}t          t          j        |||d          |           t          j        |d                              d	d
          }t          j        |d                              d	d
          }t          t          j        |||d          |           d S )Nr  r  )rZ   r   rY   rM   )g      @r        !@g      @r   g      
@      @g      @rX  r  r   r   rO   r`   rW  )r*   r8   r   r   rz   )rg   r   rc  rp  r  s        r>   r/  zTestInterp.test_period
  s    444###]]666BIaR<<<a@@@HQc"""**1b11HQc"""**1b11BIaR<<<a@@@@@r@   N)r   r   r   rY  rm   rk  rm  rq  r  fixturer  r  r  r  r  r  r  r  r  r/  r   r@   r>   rV  rV  S  sa       F F F5 5 5$) $) $)L5 5 5M M M V^%%%%66	
  
 
 
 
 
Y Y YY Y Y	] 	] 	]M M MR R RA A A80 0 0"; ; ;
A A A A Ar@   rV  c                      e Zd Zd Zd Zd Zd Zd Zej	        
                    dej        d                   d             Zd	 ej        d
         D             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	        
                    ddgej        dfej        dfg          ej	        
                    ddge          ej	        
                    g dg d          d                                     Zej        d
         ej        d         z   dz   Zej	        
                    de          d             Zej	        
                    de          d             Zej	        
                    de          d             Zd Zd Zd Zd Zd Zd Z ej	        
                    dej        df e!ej        d !          d"fg          d#             Z"d$ Z#d% Z$d& Z%d' Z&d( Z'd) Z(d* Z)ej	        
                    d+d,d-d,gg          ej	        
                    d.g d/0          d1                         Z*d2 Z+ej	        
                    d3g d4          d5             Z,d6 Z-d7 Z.ej	        
                    dd8d9g          ej	        
                    d:g d;          d<                         Z/d=S )>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                   t          t          j        |dd          t           j                   t          t          j        |ddt          j        |                    t           j                   d S )Nrw   r  r   r   r|  r  ro   r   rQ   nearestmethodinverted_cdfr  r   )r8   r9   r(   
percentilero  rL  r  s     r>   rm   zTestPercentile.test_basic  s   IaLL3R]1a(("---R]1c**C000R]1b))4000v!R]1a(("&111R]1a	:::BFCCCR]1a???HHHM!Q~"$,q//3 3 3F	
 	
 	
 	
 	
r@   c           	      x   d t          d          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                   d S )	Nc                 .    g | ]}t          |d           S rO   r   r  s     r>   rD  z0TestPercentile.test_fraction.<locals>.<listcomp>'       ...Xa^^...r@   rw   r   r|  ry   rO   ro   rM   )rf   r8   r  r   r(   r3  r   r1  )rg   r   r;  s      r>   test_fractionzTestPercentile.test_fraction&  sD   ..U1XX...M!Xa[[))Q$$$T!WWh'''M!Xc]]++QA'''T!WWh'''M!Xb\\**QA'''T!WWh'''M!hrll^,,Q(1a..!122333T!WWbj)))))r@   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           d S )NrZ   FlinearrG  )r8   re   r  )rg   rq  os      r>   test_apizTestPercentile.test_api9  sn    GAJJ
aD$...
aD$x888GDMM
aD!UH55555r@   c                 \   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           d S N)y      ?      @y @      ?y?ffffff@Gr   r  Dr   )r8   r   r,   r  r  rg   arr_cs     r>   r  zTestPercentile.test_complex@  s    777sCCCis;;;777sCCCis;;;777sCC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           d S )Nr   )rM   rM   rY   ro   r   r   )r8   r   r)   r  r  s     r>   test_2DzTestPercentile.test_2DH  sg    Hiiiiiiiiiii	! " "
 	2=BQ777CCCCCr@   r   r2  c                 &   t          j        dt           j        dddg|          }t          j        |dd          }t           j                            |t           j                   t           j                            |j        |j                   d S )Nr       A@      D@      I@r   r  r  )r8   rR  ro  r  testingr(   r   )rg   r   r   rP  s       r>   test_linear_nan_1Dz!TestPercentile.test_linear_nan_1DP  s     j$dD9GGGm   	
RV,,,

	3955555r@   c                 *    g | ]}|t           j        fS r   rs  )rC  int_types     r>   rD  zTestPercentile.<listcomp>[  s/       "  ,   r@   r1  r0  functionquantiler  r  input_dtypeexpected_dtype)r  weightedr  )
)r  Fr  )r  Tr  )averaged_inverted_cdfF     ;@)closest_observationFr  )interpolated_inverted_cdfFr  )hazenFr  )weibullF   )r  Fr
  )median_unbiasedFr  )normal_unbiasedFg      ;@c                    t          j        |          }t          j                    dk    rt          j        |t           j                  }t          j        g d|          }|rt          j        |          nd }	|t           j        u r+|t           j        u r |d          }t           j	        j
        }
nt           j	        j        }
 |||||	          } |
||                    |                     |dv r|dk    rCt           j	                            t          j        |          j        t           j                   d S t           j	                            t          j        |          j        t          j        |                     d S t           j	                            t          j        |          j        t          j        |                     d S )Nlegacy)r  g      4@r  r  r  r   z0.4r  )r  r  r0  )r8   r   _get_promotion_statepromote_typesr  rR  rL  r  r  r  r*   assert_array_almost_equal_nulpr3  r(   )rg   r  r  r  r  r  r  r  r   r   test_functionr  s               r>   test_linear_interpolationz(TestPercentile.test_linear_interpolationc  s   0 .11"$$00-nbjIINj777{KKK'/9",s###T"-''2;&& ';u--J:MMJEM#xHHHfn11(;;<<<<<<c!!
''
6(:(:(@"*MMMMM
''
6(:(:(@(*(=(=? ? ? ? ? J##BJv$6$6$<$&H^$<$<> > > > >r@   c                     t          t          j        t          j        d|          dd          d           t          t          j        t          j        d|          dd          d           d S )	Nr   r   ro   lowerr  rM   higherrZ   r(   r8   r  r9   rg   r   s     r>   test_lower_higherz TestPercentile.test_lower_higher  s    R]29Ru#=#=#=r*13 3 345	7 	7 	7R]29Ru#=#=#=r*24 4 456	8 	8 	8 	8 	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
           d S )Nr   r   3   midpointr  r8  rQ  rQ   ro   rZ   r         @r  r  s     r>   test_midpointzTestPercentile.test_midpoint  s	   R]29Ru#=#=#=r*46 6 67:	< 	< 	<R]29Qe#<#<#<q#@"*46 6 678	: 	: 	:R]29Ru#=#=#=r*46 6 67:	< 	< 	<R]29Ru#=#=#=r*46 6 678	: 	: 	: 	: 	:r@   c                     t          t          j        t          j        d|          dd          d           t          t          j        t          j        d|          dd          d           d S )	Nr   r   r  r  r  rZ   1   rM   r  r  s     r>   test_nearestzTestPercentile.test_nearest  s    R]29Ru#=#=#=r*35 5 567	9 	9 	9R]29Ru#=#=#=r*35 5 567	9 	9 	9 	9 	9r@   c                 `   t           j                            d          }t          j        |d          }t           j                            ||                                           t          j        |d          }t           j                            ||                                           d S )NrZ   r|  r   )r8   rt  r4   r  r  r(   r  r  )rg   r   r  s      r>   'test_linear_interpolation_extrapolationz6TestPercentile.test_linear_interpolation_extrapolation  s}    innQsC((

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

		22222r@   c                     t          j        d          dz  }t          t          j        |g d          g d           d S )Nrw   r  )r   r|  ro   )r   r  r   )r8   r9   r(   r  r  s     r>   test_sequencezTestPercentile.test_sequence  s>    IaLL3R]1lll33^^^DDDDDr@   c                 |   t          j        d                              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                              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           d S )Nr  rY   rM   )r\  ro   r|  )g      @r  r[  )rO   rY   rM   rZ   r  )rw   rQ  r   r   r   r   )      ?r]  rY   )r"  r  ry   )r  r   r   rQ   rX  rZ   rx   r\  ro   r  )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   r#  rD   )rg   r   r0r  s       r>   r  zTestPercentile.test_axis  sa   IbMM!!!Q''R]1m446G6G6GHHHllLLL...9R]1m!<<<bAAAnnnnnooo>R]1m!<<<bhrllnMMM Im$$,,Q1a88R]1h//5t<<<R]1l3394@@@R]1hQ777=|LLLR]1hQ777=|LLLR]1hQ777=|LLLR]1hQ777=|LLLM!\2228,	H 	H 	HR]1h*24 4 4494	A 	A 	AR]1l*24 4 4494	A 	A 	AR]1hQ*24 4 449<	I 	I 	IR]1hQ*24 4 449<	I 	I 	IR]1hQ*24 4 449<	I 	I 	IR]1hQ*24 4 449<	I 	I 	IR]1l*24 4 449<	I 	I 	I 	I 	Ir@   c                    t          j        d                              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                              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          ||           d S )Nr  rY   rM   ro   r  r   r   r  r   r   r   r]  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   IbMM!!!Q''R]1b))3///BM!R0011222X)))**R]1bq1112666R]1bq1117BBBX'''((BM!Ra888"===R]1bq1117BBBhqkkR]1bc222C888S#hqkkR]1bqc:::B???S"hqkkR]1bqc:::B???S" IbMM!!!Q''R]1b9992>>>BM!R0011222X)))**]1bq999RRXrx(((Xnnn%%]1bq999B###RXrx(((hr)))M!RS999QS!hq(((M!RaSAAAQS"hq(((M!RaSAA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              d S )
NrQ   rO   8   rA  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99j"-!d599oo6MNNNj"-!d599oo6NOOOOOr@   c                 P    t          t          j        g dd          d           d S )Nr   r   rQ   )r(   r8   r  r   s    r>   test_percentile_listz#TestPercentile.test_percentile_list  s(    R]999a00!44444r@   zpercentile, with_weightsFr  r  Tc           	         |rt           nt          }t          j        g d          }t          j        d|          }d}|rt          j        |          nd } |||||          }||u sJ t           ||||          |           t          j        g dg dg          }t          j        d|          }|rt          j        |          nd } |||d||	          }||u sJ t           ||||d
          |           t          j        d|          } |||d||	           t           ||||d
          |           t          j        d                              dd          }|rt          j        g dg dg          }	nt          j        g dg dg          }	t          j	        d|          }
|rt          j        |          nd }t           ||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          |
|           d S )Nr   r  r   )r  r   r  r   r"  r   )r   r  r   r  r  rQ   r  rY   rM   r   rQ   rO   rY   r  )r   r   r   r   r  )rO   rM   r  )r  r"  r  r  r  r  r  r  )r   rM   rw   )rQ   rZ   rQ  )r  r  r8   r   rB   rL  r(   r9   rz   r  r  r   )rg   r  with_weights	out_dtyper   r  r;  r   r  r  r  r  r   s                r>   test_percentile_outz"TestPercentile.test_percentile_out   s    (2CCU	HYYYHT+++%1;",q///tJq!G444AvvvvZZ1g666:::Hiiiii! " "HV9---%1;",q///tJq!!G<<<AvvvvZZ1gA>>>BBBHV9---
1aaQ8888ZZ1gA>>>BBBIbMM!!!Q'' 	@<<<677BB+++-=-=-=>??BhvY///%1;",q///tJq(WEEEr	
 	
 	
 	S"X+++->->->?@@hvR]1hQC@@@"EEES" X~~~|||455hvQW---M!XgA3GGGQS"X{{{KKK011hvQW---M!XgA3GGGQS"r@   c           	         t          j        d                              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           d S )Nr  r   rQ   rO   ro   r   r   )rQ   rO   rQ   )r   rO   rQ   )r   rQ   rQ   rY   )r   rQ   rO   r`   rW   r]   r  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   rq  s     r>   test_percentile_empty_dimz(TestPercentile.test_percentile_empty_dimZ  s   If%%b!Q222=BQ777=yIII2=BQ777=zJJJ2=BQ777=zJJJ2=BQ777=zJJJ2=BR888>
KKK2=BR888>
KKK2=BR888>
KKK2=BR888>	JJJ2=BQ0:< < <<A%	' 	' 	' 	2=BR0:< < <<A%	' 	' 	' 	28BM!b"XA$F$F$FGGM'	) 	) 	)28BM!b"XA$F$F$FGGM(	* 	* 	*28BM!b"XA$F$F$FGGM(	* 	* 	*28BM!b"XA$F$F$FGGM(	* 	* 	* 	* 	*r@   c                 J   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                     d S )NrO   rY   rM   rQ   ro   Foverwrite_inputr8   r   r  r(   rt   s     r>   test_percentile_no_overwritez+TestPercentile.test_percentile_no_overwritev  s    H\\\""
a"u5555Q..///H\\\""
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                                          }t          j        t          j        d          |d           t	          |t          j        ddd                                                     d S )Nr         Y@rZ   )numr  r  )r8   rr  r  r9   r)   r  )rg   r;  s     r>   test_no_p_overwritez"TestPercentile.test_no_p_overwrite  s    KDa(((
biooq<<<<1bk"d:::;;;KDa(((//11
biooq<<<<1bk"d:::AACCDDDD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                     d S )Nr  ro   Tr  r{  r  r   s      r>   test_percentile_overwritez(TestPercentile.test_percentile_overwrite  s    H\\\""M!bT4888Q#(((M,,,dCCCQ#(((((r@   c                 ~	   t           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                     |                    dd
                                          }t	          t          j        |dd          t          j        |d                     |                    dd
                                          }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          
                    d          }t           j                            |                                           t	          t          j        |dd          d         t          j        |d d d d d d df                                         d                     t	          t          j        |ddgd          d d d
f         t          j        |d d d d d
d d f                                         ddg                     t	          t          j        |dd          d         t          j        |d d d d dd d f                                         d                     t	          t          j        |dd          d         t          j        |dd d d d d d f                                         d                     t	          t          j        |dd          d         t          j        |dd
d d d d f                                         d                     t	          t          j        |dd          d         t          j        |dd d d d d
f                                         d                     t	          t          j        |dd          d         t          j        |dd d dd d f                                         d                     d S )NG      rb  r   r  ra   r   r`   r   rs   rQ   rq   r\  rG  rP   r~    rY   rZ   ry   r   Z   r   rQ   rY   rY   rQ   r  rO   rY   rQ   rO   r  rO   rQ   rQ   rW   rQ   rY   rT   )r8   rt  normaldstackr(   r  moveaxisr   r   r9   rz   shuffleravelflattenrg   r  r   rq  s       r>   test_extended_axisz!TestPercentile.test_extended_axis  sb   I(++IqcBhR]1bv666a8L8LMMMK2q!!R]1bx888"-2:N:NOOOJJq!!!##R]1bw777q"9M9MNNNJJq!!!##R]1r2hY???]1r2hT:::	< 	< 	<R]1r2hT:::]1r2hQ777	9 	9 	9 In%%--m<<
	!''))$$$R]1b	:::1=]1QQQqqqAX;#6#6#8#8"==	? 	? 	?R]1r2hY???1E]1QQQqqq!AAAX;#6#6#8#82r(CC	E 	E 	ER]1bz:::1=]1QQQqqq!AAAX;#6#6#8#8"==	? 	? 	?R]1by999!<]1Qqqq111W:#5#5#7#7<<	> 	> 	>R]1bv666t<]1Q!!!AAAX;#6#6#8#8"==	? 	? 	?R]1bw777=]1QqqqAX;#6#6#8#8"==	? 	? 	?R]1bv666t<]1Qqqq!AAAX;#6#6#8#8"==	? 	? 	? 	? 	?r@   c                    t          j        d          }t          t          t           j        |dd           t          t          t           j        |dd           t          t          t           j        |dd           t          t          t           j        |dd           t          t
          t           j        |dd           t          t
          t           j        |d	d           t          t
          t           j        |d
d           d S )Nr  r  r\  )r   rP  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_invalid  s    GM""ibAAAAi2FFFFiR@@@@i"EEEEj"-2FFFFj"-RHHHHj"-BGGGGG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           d S )Nr  ry   Tr   r   ra   rQ   rQ   ry   r   r   rQ   rZ   ry   rQ   rG  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   GM""R]1adTBBBH!	# 	# 	#R]1aftDDDJ"	$ 	$ 	$R]1aftDDDJ!	# 	# 	#R]1adTBBBH"	$ 	$ 	$R]1aEEEK!	# 	# 	#R]1ai$GGGM!	# 	# 	# 	R]1q!f9,02 2 227	J 	J 	JR]1q!f6,02 2 227	J 	J 	J 	J 	Jr@   rP  ry   rQ   r   NrQ   rG  ra   )r]   r`   argnames	argvaluesc                    t          j        d          |dj        z  }nCt          |j                  t	          fdt          j                  D                       }t          j        |          |z   }t          j        |          }t          j        ||d|          }||u sJ t          |j        |           d S )Nr  rG  c              3   >   K   | ]}|v rd nj         |         V  dS rQ   NrD   rC  r   	axis_normrq  s     r>   r  z3TestPercentile.test_keepdims_out.<locals>.<genexpr>  N       L L89Q)^^L L L L L Lr@   Tr   r   r  )
r8   re   r   r5   r  rf   rD   r  r  r(   )rg   rP  r   	shape_outr  r$  r?  rq  s         @@r>   test_keepdims_outz TestPercentile.test_keepdims_out  s     GM""<qvII,T16::I L L L L L=B16]]L L L L LIHQKK)+	hy!!q!$3GGG}}}}V\9-----r@   c           	      p   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 S )NrM   r  r   r  r  r  r  rQ   r   rO   )r8   rB   re   r(   r  rg   r  rq  s      r>   test_outzTestPercentile.test_out  s   HTNNGFOOR]1a222A666R]1a9!DDDaHHHHTNNR]1a222A666R]1a9!DDDaHHHHRLLR]1aQ///333R]1a	qAAA1EEEEEr@   zmethod, weighted))r  F)r  F)r  F)r  Tc                 h   |rt          j        d          |d}nd|i}t          j        d          5  t          j        ddt
                     t          j        d          }t          j        d          }t           j        |d	<   t          t          j	        |d
d
fd|i||           t          j        d          }t          t          j	        |ddfd|i||           t          j        d          }t          t          j	        |dfd|i||           d d d            d S # 1 swxY w Y   d S )Nr  r   r  r  Tr  r  r  rE  r!  r   r  r  rQ   r   )
r8   re   r  r  r  r  rB   ro  r(   r  )rg   r  r  kwargsr  rq  s         r>   test_out_nanzTestPercentile.test_out_nan  s     	(!#FCCFF'F$D111 	B 	B#Hb.AAAAAfAdGq!Q@@A@@@!DDDAq!Q@@A@@@!DDDAq!===f==qAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   C&D''D+.D+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                                        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                                        ddd	          dd          }t           j        |d<   t           j        |d<   t	          t          j        |dd          |           t          j        t          j        dt                                        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                                        ddd	          dd          }t           j        |d<   t           j        |d<   t	          t          j        |dd          |           t          j        t          j        dt                                        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                                        ddd	          dd          }t           j        |d<   t           j        |d<   t	          t          j        |dd          |           t          j        t          j        dt                                        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                                        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          |           d S )Nr  r   rO   r)  r   r   333333?rY   rM   r   rQ   rQ   rO   r  rr   rQ   r#  rU   r  r  )	r8   r9   r  ro  r(   r  r   rz   r   r   s      r>   test_nan_behaviorz TestPercentile.test_nan_behavior  s   Ib&&&v!R]1c**BF333R]1c222BF;;;R]1sCjq999Xrvhl++	- 	- 	- Ib&&&..q!Q77V'
V'
 	R]1c**BF333R]1c**/333 M")Be444<<Q1EEsANN&$&$R]1c1--q111 M")Be444<<Q1EE*a) )V!!!Q'
V!!!Q'
R]1sCj!44a888 M")Be444<<Q1EEsANN&$&$R]1c1--q111MIb&&&..q!Q77#sQH HV!!!Q'
V!!!Q'
R]1sCj!44a888 MIb&&&..q!Q77fF Fv!v!R]1c622A666M")Be444<<Q1EE*f. .&!!!Q$&!!!Q$R]1sCj&991===M")Be444<<Q1EE*fY@ @ @&!!!Q$&!!!Q$R]Sz6)5 5 567	9 	9 	9 	9 	9r@   c                 8   t          j        t          d          5  t          j        g dt          j                   d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        g dt          j        g           d d d            n# 1 swxY w Y   t          j        ddd          }t          j        |d<   t          j        t          d          5  t          j        g d|           d d d            d S # 1 swxY w Y   d S )NzPercentiles must be inr  )rQ   rO   rY   r   r   g     X@r  r   )r  r  rd   r8   r  ro  rr  )rg   rP  s     r>   
test_nan_qzTestPercentile.test_nan_qJ  s   ]:-EFFF 	2 	2M..."&111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2]:-EFFF 	4 	4M...26(333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4KT2&&v!]:-EFFF 	- 	-M...!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s5   "A

AA0#BB#&B#*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        |                                          sJ t          j        dd|                              dd	          }d||d
f<   t          j        |dd          }t          t          j        |          g d           d S Nr   r  r   NaTr  rG  H   r`   rY   rQ   r   rR  )r8   r9   r  r   isnatr   rz   r)   rg   r   rR  rh   rP  s        r>   test_nat_basiczTestPercentile.test_nat_basicU  s   
 Ia5)))#mAr""yE!!!!x}}mABx((yE!!!!x}}  """""IaU+++33B::#q&	mAr***28C==*>*>*>?????r@   N)0r   r   r   rm   r  r  r  r  r  rL  rM  r8   	typecodesr  r  r  r  r  r   H_F_TYPE_CODESr  r  r  
TYPE_CODESr  r  r  r  r  r  r  r  r  r   r  r	  r  r  r  r+  r/  r5  rC  rG  rK  rO  rQ  rZ  r   r@   r>   r  r    s       
 
 
* * *&6 6 6< < <D D D [Wbl7&;<<6 6 =<6 &(l<&@  J
3J
3J
3M2=9$BHSMM2:6	88N [j*5!{C0!}d356 6 [m-=>OO[???
! 
! 
!" "$> $>" " PO6 6 $>L l+bl7.CCcIJ[Wj118 8 218 [Wj11: : 21: [Wj119 9 2193 3 3E E E"I "I "IH. . .`P P P5 5 5 ["]E"WR]>:::DA	
 1 1 1f* * *80 0 0E E E) ) )? ? ?@	H 	H 	HJ J J( [S1q!f+..[
 
 
  	 	. .	 	 /..F F F [/ 2 2 2  B B B$;9 ;9 ;9z	- 	- 	- [Ww&899[UKKK00@ @ 10 :9@ @ @r@   r  )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                            dej        d	                   d
             Ze
j                            de          d             Ze
j                            de          d             Z ej         eej         ej        dd           ej        dddd                              d             Zd Ze
j                            dddg          e
j                            de          e
j                            dg d          d                                     Ze
j                            dddg          e
j                            de          e
j                            dg d          d                                     Ze
j                            de          e
j                            dg d          d                         Ze
j                            de          e
j                            dg d           d!                         Z e
j                            de          d"             Z!e
j                            de          d#             Z"d$ Z#e
j                            d e$ e%e           e%e          z
                      d%             Z&d& Z'd' Z(d(S ))TestQuantilec                     ||k    |z
  S r7   r   )rg   r   r  alphas       r>   rV  zTestQuantile.Vv  s    Q%r@   c                 |    g d}t          j        |d          }t           j                            |dd           d S )N)r   r(  r  g?g
ףp=
?rQ   )maxulp)r8   r  r  assert_array_max_ulp)rg   r   rh   s      r>   test_max_ulpzTestQuantile.test_max_ulpz  sA    OOK4   	
''4':::::r@   c                    t          j        d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )Nrw   r  r   r   rQ   r  r   )r8   r9   r(   r  r  s     r>   rm   zTestQuantile.test_basic  sn    IaLL3R[A&&+++R[A&&,,,R[C(($/////r@   c                 t   t          j        dg          }t          j        dd          }t          ||d                    t          t	          |          |j                   t          j        g d          }t          j        ||          }t          ||           t          |j        |j                   d S )NTFr   )FTT)r8   r   r  r(   r3  r   r)   )rg   rh   tf_quant	quant_ress       r>   test_correct_quantile_valuez(TestQuantile.test_correct_quantile_value  s    HdV;tU++Xqt$$$T(^^QW---H((())K1%%	9a(((Y_ag.....r@   c           	      h   d t          d          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                     d S )
Nc                 .    g | ]}t          |d           S r  r   r  s     r>   rD  z.TestQuantile.test_fraction.<locals>.<listcomp>  r  r@   rw   r   rQ   ry   rO   r  r   rM   )
rf   r8   r  r(   r3  r   r  r   r1  r9   )rg   r   rP  s      r>   r  zTestQuantile.test_fraction  s
   ..U1XX...K1QT!WWh'''K1QA'''T!WWh'''K2QT!WWbj)))K8Aq>>**QA'''T!WWh'''KHQNN+,,Q(1a..!122333T!WWbj)))KXa^^,-..Q8Aq>>"2!344555T!WWbj))) IaLLR[HQNN33Xa^^DDDDDr@   c                 \   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           d S r  )r8   r   r,   r  r  r  s     r>   r  zTestQuantile.test_complex  s    777sCCCieS999777sCCCieS999777sCCCieS99999r@   c                    t          j        g d          }|                                }t          j        t          j        d          |d           t          ||           |                                }|                                }t          j        t          j        d          |d           t          ||           d S )N)r   r  r~  r  r   r  r  r  )r8   r   r   r  r9   r)   r  )rg   p0r;  s      r>   r  z TestQuantile.test_no_p_overwrite  s    X///00GGII
BIdOOQz::::1b!!!YY[[HHJJ
BIdOOQz::::1b!!!!!r@   r   r1  c                 |    t          j        t          j        ddg|          dgd          }|j        |k    sJ d S )NrQ   rO   r   r  r  r  )r8   r  r   r   )rg   r   rP  s      r>   test_quantile_preserve_int_typez,TestQuantile.test_quantile_preserve_int_type  sM    k"(Aq6777#!*, , ,yE!!!!!!r@   r  c                     g d}t          j        |ddg|          }t          |t          j        ddg                     d S )N)r   r   r  r   rQ   )rP  r  r   r  )r8   r  r(   r   )rg   r  r   r  s       r>   test_q_zero_onezTestQuantile.test_q_zero_one  sK     ll;sAv>>>X"b 2 233333r@   c                 H   t          j        ddd          }t          j        t          j        g d          dz  ||          }t	          t          j        |          |           t          j        g d||          }t	          t          j        |          |           d S )Nr   rQ   r  )r   rQ   rQ   rO   rO   rY   rY   rM   rZ   rZ   rQ   rQ   rQ  rQ  rQ  rw   rw   ry   r  r  )r   r   r   r   )r8   rr  r  r   r(   rv  )rg   r  ro  r  s       r>   test_quantile_monotonicz$TestQuantile.test_quantile_monotonic  s    
 [As##;rx )2 )2 )2  3  358 9:<VM M MRWX&&111 ;///FCCCRWX&&11111r@   rY   r!  )	min_value	max_valueFu <7u <7~)allow_infinity	allow_nanrv  rw  )r   rD   elements)r   c                     t          j        ddd          }t          j        ||          }t          t          j        |          |           d S )Nr   rQ   g{Gz?)r8   r9   r  r(   rv  )rg   r   ro  r  s       r>   test_quantile_monotonic_hypoz)TestQuantile.test_quantile_monotonic_hypo  sH     Yq!T"";sB''RWX&&1111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                   d S )N)r  r   r   )r   r   r   r   rQ   r  )r8   r   ro  r  r  r(   )rg   rh   r  s      r>   test_quantile_scalar_nanz%TestQuantile.test_quantile_scalar_nan  sx    Hmmm\\\233&!QQ$${6"""""R[C(("&11111r@   r   Tra  )r(  r  ?c           
         |r|t           vrt          j        d           t          j                            d          }d}|                    |          }|r|                    dd|          nd }t          j        ||||          }|dv rFt          j        t          j	        | 
                    |||                              d	|z  k    sJ d S t          ||z            ||z  k    r?|s=t          t          j        | 
                    |||          |
          dd           d S t          t          j        | 
                    |||          |
          dd|z  t          j        |d|z
  g          z             d S )N Weights not supported by method.  f   r   r   lowhighrb  r  )r  r  r  g+=)atolrQ   )methods_supporting_weightsr  skipr8   rt  default_rngintegersr  rs  r   rV  r  r-   r	   r  )	rg   r   r  ra  rngr<   r  r  r   s	            r>   %test_quantile_identification_equationz2TestQuantile.test_quantile_identification_equation  s     	<v%???K:;;;i##D))
 JJqMM4;ECLLQRaL000K5;;;[  6"'$&&Au"5"56677#'AAAAAAU^^q5y(((
466!Q..:::AE      BJtvvaE':':AFFFURWeQY%7888: : : : : :r@   c           	         |r|t           vrt          j        d           t          j                            d          }d}|                    |          }|r|                    dd|          nd }t          j        ||||          }d}	t          t          j        |	|z   |||          |	|z              t          t          j        |	|z  |||          |	|z             |rd S 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
                     d S t          |t          j        ||d
                     d S |dk    r||z  t          ||z            k    r't          |t          j        ||d
                     d S t          j
        ||z            t          ||z            d	z   k    r-t          |t          j        ||d	|z  z   d
                     d S t          |t          j        ||d
                     d S |dk    r-t          |t          j        ||d	|z  z   |
                     d S |dk    rm||z  t          ||z            k    r-t          |t          j        ||d	|z  z   |
                     d S t          |t          j        |||
                     d S |dk    r't          |t          j        ||d
                     d S |dk    r't          |t          j        ||d
                     d S t          |t          j        |||
                     d S )Nr  r  r  r   r   r  r  g      +@rQ   r  r  r  r  r  r  r  )r  r  r  r8   rt  r  r  r  r-   r  round)
rg   r   r  ra  r  r<   r  r  rP  r   s
             r>   'test_quantile_add_and_multiply_constantz4TestQuantile.test_quantile_add_and_multiply_constant  s     	<v%???K:;;;i##D))
 JJqMM4;ECLLQRaL000K5;;; 	AE5KKKA	 	 	 	AE5KKKA	 	 	  	F[!QYv6666^##E	SU^^++8AI&&#a%i..1*<<<2;q%#I#I#IJJJJJ2;q%#H#H#HIIIII,,,5yCE	NN**2;q%#I#I#IJJJJJ!e)$$AI(:::r{1eack(CCCE E E E E  2;q%#H#H#HIIIII222Ar{1eack&IIIJJJJJy  5yCE	NN**2;q%!A#+f#M#M#MNNNNN2;q%#G#G#GHHHHHwAr{1eHEEEFFFFFxAr{1eGDDDEEEEE Ar{1eFCCCDDDDDr@   c                    t           j                            d          }d}|                    |          }t          j        |||          }t          j        |          }t          j        ||||          }t          ||           dt          j        |          z  }t          j        ||||          }t          ||           d S )Nr  r  r  r  g     @ @)r8   rt  r  r  rL  r-   )	rg   r  ra  r  r<   r  rP  r  qws	            r>   test_quantile_constant_weightsz+TestQuantile.test_quantile_constant_weightsZ  s     i##D))
 JJqMMK5000LOO[E&!<<<ABLOO#[E&!<<<Ar@   )r   r(  r  r  rQ   c                 \   t           j                            d          }d}|                    |          }|                    dd|t           j                  }t          j        ||||          }t          j        t          j        ||          ||          }t          ||           d S )Nr  r  r   r   )r  r  rb  r   r  r  )r8   rt  r  r  r  r  r  r-   )	rg   r  ra  r  r<   r  r  r  rP  s	            r>   "test_quantile_with_integer_weightsz/TestQuantile.test_quantile_with_integer_weightsn  s     i##D))
 JJqMMLLQRarxL@@[E&!<<<K	!Qv>>>Ar@   c                    t           j                            d          }|                    d          }t          j        |                    d                    }d}t          j        ||||d          }t          j        d          }t          d	          D ]<}t          d
          D ]*}	t          j        ||d d |	f         |||          |||	f<   +=t          ||           g d}t          j        ||||d          }t          j        d          }t          d	          D ]?}t          d
          D ]-}	t          j        ||d d |	f         |||          |d d ||	f<   .@t          ||           ddgddgddgg}t          j        ||||d          }|                    d          }t          ||           t          j        |                    d                    }d}t          j        ||||d          }t          j        d          }t          d	          D ]G}t          d
          D ]5}	t          j        ||d d |	f         ||||d d |	f                   |||	f<   6Ht          ||           d S )Nr  )rO   r   rY   r   r  rQ   )r   r  r   r  r=  rO   rY   r  )r   r(  r  rM  r  rQ   )rx   rO   rY   r   r(  r  rM  r  )rY   rO   rO   rY   )	r8   rt  r  rs  r  rB   rf   r-   rz   )
rg   r  r  r  r  ra  rP  q_resr   rN  s
             r>   #test_quantile_with_weights_and_axisz0TestQuantile.test_quantile_with_weights_and_axis  s   i##D)) JJz""F3::b>>""K5!FCCCv&&&q 	 	A1XX   kaAgJfa  ad 	5!!! +**K5!FCCCy)))q 	 	A1XX  !#aAgJfa" " "aaaAg 	5!!! SC:Qx0K5!FCCCl++5!!! F3::j))**K5!FCCCv&&&q 	 	A1XX   kaAgJfa111aj  ad 	5!!!!!r@   c                     g d}t          j        d          }t          j        |d|d          }t          j        |d|d          }||d         k    sJ ||d         k    sJ d S )	N)r   r   rQ   rO   rY   r   rx   r   r  rI  rQ   rO   rM   )r8   r9   r  )rg   r  r  r  y_miny_maxs         r>   test_quantile_weights_min_maxz*TestQuantile.test_quantile_weights_min_max  sr     IaLLAq!NCCCAq!NCCC!}}}}!}}}}}}r@   c                     ddg}ddg}t          j        t          d          5  t          j        |d|d           d d d            d S # 1 swxY w Y   d S )	NrQ   rO   r|  zWeights must be non-negativer  r  r  rI  r  r  rd   r8   r  )rg   r  r  s      r>   -test_quantile_weights_raises_negative_weightsz:TestQuantile.test_quantile_weights_raises_negative_weights  s    F1I]:-KLLL 	B 	BK3.AAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   A

AAc                     ddg}ddg}d}t          j        t          |          5  t          j        |d||           d d d            d S # 1 swxY w Y   d S )NrQ   rO   r  z+Only method 'inverted_cdf' supports weightsr  rI  r  )rg   r  r  r  r3  s        r>   0test_quantile_weights_raises_unsupported_methodsz=TestQuantile.test_quantile_weights_raises_unsupported_methods  s    
 F!H;]:S111 	: 	:K3&9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   AAAc           	         t          dd          t          dd          g}t          j        |dgd          }t          |t          j        t          dd                               t          j        |t          dd          gd          }t          |t          j        t          dd                               d S )Nr   rQ   r   r  r  rO   r  )r   r8   r  r(   r   )rg   r   r  s      r>   test_weibull_fractionz"TestQuantile.test_weibull_fraction  s    1~~x2/;sQE)<<<XrxA77888;sXa^^$4YGGGXrxB8899999r@   c                    d}d}g d}t          dt          j        |dd         ||                     t          dt          j        |dd         ||                     t          dt          j        |dd	         ||                     t          dt          j        |dd
         ||                     t          dt          j        |dd         ||                     t          dt          j        |dd         ||                     t          dt          j        |dd         ||                     t          d	t          j        |||                     d S )Nr  r  )
rQ   rO   rY   rM   rZ   rx   ry   rw   rQ  r   rO   r   rY   r  rM   rZ   rx   ry   rw   rQ  )r(   r8   r  )rg   rX  rP  r   s       r>   test_closest_observationz%TestQuantile.test_closest_observation  s]   !---QC!Ha:::;;;QC!Ha:::;;;QC!Ha:::;;;QC!Ha:::;;;QC!Ha:::;;;QC!Ha:::;;;QC!Ha:::;;;QC155566666r@   N))r   r   r   rV  re  rm   rj  r  r  r  r  rL  rM  r8   r[  rq  quantile_methodsrs  ru  
hypothesisgivenr   r  str  floatsr~  r  r  r  r  r  r  r  r  r  sortedsetr  r  r  r   r@   r>   r_  r_  s  s#            ; ; ;0 0 0/ / /E E E>: : :
" 
" 
" [Wbl<&@AA" " BA"
 [X'7884 4 984 [X'7882 2 982 ZRZ(R[1EEE )	%4:e!M !M !MN N NO O O
2 2O O
2
2 2 2 [Y66[X'788[Wooo66 :  : 76 98 76 :D [Y66[X'788[Wooo66>E >E 76 98 76>E@ [X'ABB[Wooo66  76 CB$ [X'ABB[W&;&;&;<<  =< CB [X'ABB+" +" CB+"Z [X'ABB  CBB B B [F33'((33/I+J+JJKK : :	 :: : :7 7 7 7 7r@   r_  c                   &   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
dS )TestLerpFr   rQ   )r{  rz  rv  rw  rx  ry  )t0t1rh   r   c                     t          j        |||          }t          j        |||          }||k    s||k    r
||k    sJ d S ||k     ||k     k    r
||k    sJ d S ||k    sJ d S r7   ry  _lerp)rg   r  r  rh   r   l0l1s          r>   +test_linear_interpolation_formula_monotonicz4TestLerp.test_linear_interpolation_formula_monotonic  s     Yq!R  Yq!R  88qAvv8888882g1q5!!888888888888r@   )trh   r   c                     ||k    r'|t          j        |||          cxk    r|k    sn J d S |t          j        |||          cxk    r|k    sn J d S r7   r  )rg   r  rh   r   s       r>   )test_linear_interpolation_formula_boundedz2TestLerp.test_linear_interpolation_formula_bounded  s     66	!Q**////a////////	!Q**////a////////r@   c                     t          j        ||dd|z
  z
            }t          j        ||d|z
            }t          ||           d S rN  )ry  r  r-   )rg   r  rh   r   r_  ra  s         r>   +test_linear_interpolation_formula_symmetricz4TestLerp.test_linear_interpolation_formula_symmetric  sL     yAqAE{++	!QA&&e$$$$$r@   c                     t          j        d          }t          j        d          }t          j        d          }t          j        |||          dk    sJ d S )NrO   rZ   r(  g@)r8   r   ry  r  )rg   rh   r   r  s       r>   +test_linear_interpolation_formula_0d_inputsz4TestLerp.test_linear_interpolation_formula_0d_inputs
  sN    HQKKHQKKHSMMyAq!!S((((((r@   N)r   r   r   r  r  r  r  r  r  r  r  r   r@   r>   r  r    s       ZU5-.!= = ="U5-.!= = =#")eE.4G G G#")eE.4G G GH H H H H Z		E%,-< < <!	E%,2eE E E!	E%,2eE E E	F F F0 0F F0 Z		E%,-< < <!	E%,2eE E E!	E%,2eE E E	F F F% %F F%) ) ) ) )r@   r  c                      e Zd Zd Zd Zd Zd Zd Zej	        
                    dg ddej        d	gej        d
f          d             Zd Zd Zd Zej	                            ed          d             Zd Zd Zd Zd Zej	        
                    dg d          d             Zej	        
                    ddg          ej	        
                    dg d          d                         ZdS ) 
TestMedianc                    t          j        d          }t          j        d          }t          j        d                              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           d S )NrQ   rO   rx   rY   r  r{  r   r   r]  r{  r  rM   )6-¦?0?}r?g4?r   )r  r  r  )r  r  r  r`   )
r8   r   r9   rz   r(   medianr-   r*   r   ro  )rg   a0a1r  rh   s        r>   rm   zTestMedian.test_basic  s   Xa[[Yq\\Yq\\!!!Q''RYr]]A&&&	"s+++	"s+++	"1---/@/@/@AAARYr***QF333	"4000#666H@@@AAQqTAaD[B.	!===H55566QqT29Q<<(((H55566QrUBIaLL)))RYq\\&***v!RYq\\&*****r@   c                    t          j        ddgddgddgddgg          }|t           j                            dd	d
          fD ]i}|                                }t          j        |d            t          |j                  D ]}t          j        ||           t          ||           jt          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           d S )NrO   rY   r   rQ   rx   ry   rM   rZ   r|  r
  r  r   r  )r8   r   rt  randintr   r  rf   r   r)   r-   r#  )rg   a3rh   origaxs        r>   test_axis_keywordzTestMedian.test_axis_keyword)  sc   X1v1v1v1v     bi''3Y'??@ 	( 	(A6688DIad####AFmm & &	!"%%%%%q$''''	"1---Aw777	"$Q///!a999	"s+++	"4000#66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                              dd          }t	          t          j        |                                d	
          d           t	          t          j        |                                d	
          d           t	          t          j        |                                d	
          d           t	          t          j        |                                d	d          g d           t	          t          j        |                                d	d          ddg           t	          t          j        |                                d	d           d           t	          t          j        |                                d	d          ddg           t	          t          j        |j                                        d	d          ddg           t          j        dt           j                                      d          }t           j	        
                    |                                           t	          t          j        |d           t          j        |                                d d	                     t	          t          j        |d          t          j        |                                dd	                     t	          t          j        |d          t          j        |                                dd	                     t	          t          j        |d          t          j        |                                dd	                     d S )NrO   rY   r   rQ   rx   ry   rM   rZ   Tr  r  r{  )r  r   r  rG  r   rX   r   )r   r  )r8   r   r9   rz   r-   r  r   r#  r  rt  r'  r(  )rg   r  r  r  r  a4s         r>   test_overwrite_keywordz!TestMedian.test_overwrite_keyword;  sF   X1v1v1v1v     Xa[[Yq\\Yq\\!!!Q''	"''))TBBBAFFF	"''))TBBBCHHH	"''))TBBBCHHH	"''))TJJJ)))	+ 	+ 	+IbggiiA>>>A	H 	H 	HIbggiiDAAA3	H 	H 	HIbggiiA>>>Q	I 	I 	I	"$))++t!LLLQ	! 	! 	! Yy
333;;IFF
	"((**%%%	"4000	"''))$MMM	O 	O 	O	"1---	"''))!TJJJ	L 	L 	L	"1---	"''))!TJJJ	L 	L 	L	"1---	"''))!TJJJ	L 	L 	L 	L 	Lr@   c                     g d}t          t          j        |          d           |g}t          t          j        |          d           t          t          j        |d          |           d S )Nr   rO   r   r   )r*   r8   r  r-   )rg   r   ro  s      r>   r]  zTestMedian.test_array_like\  sg    IIBIaLL!,,,SBIbMM1---	"1---q11111r@   c                      G d dt           j                  } |g d          }t          t          j        |          d           d S )Nc                       e Zd ZddZddZdS ),TestMedian.test_subclass.<locals>.MySubClassNc                 b    t          j        |                              |           }||_        |S r7   )r8   rR  r2  info)clsinput_arrayr  objs       r>   __new__z4TestMedian.test_subclass.<locals>.MySubClass.__new__g  s+    j--22377
r@   c                     dS )Nr   )rg   r   r   r  s       r>   r   z1TestMedian.test_subclass.<locals>.MySubClass.meanl  s    rr@   r7   )NNN)r   r   r   r  r   r   r@   r>   
MySubClassr  e  s<           
     r@   r  r   r  )r8   r1  r(   r  )rg   r  rh   s      r>   r  zTestMedian.test_subclassc  sa    	 	 	 	 	 	 	 	 Jyyy!!RYq\\2&&&&&r@   r   r   r   r   r   c                      G d dt           j                  }t          j        t          j        |                              |                    }t          ||          sJ dS )z6Check that we return subclasses, even if a NaN scalar.c                       e Zd ZdS )-TestMedian.test_subclass2.<locals>.MySubclassNr.  r   r@   r>   
MySubclassr  v  r0  r@   r  N)r8   r1  r  r   r2  r  )rg   r   r  rX  s       r>   test_subclass2zTestMedian.test_subclass2r  sq    	 	 	 	 	 	 	 	 Ibhsmm((4455!Z(((((((r@   c                    t          j        d          }t          j        d          }t          t          j        |d|          |           t          j        d          }t          t          j        |d|          |           t          j        d          }t          t          j        ||          |           d S )NrE  r  r   r  r  rQ   r   )r8   rB   re   r(   r  rF  s      r>   rG  zTestMedian.test_out|  s    HTNNGFOORYq!+++Q///HTNNRYq!+++Q///HRLLRYqa(((!,,,,,r@   c                 2   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            d S # 1 swxY w Y   d S )NTr  r  r  rE  r  r!  r   r  r  rQ   r   )
r  r  r  r  r8   rB   re   ro  r(   r  rF  s      r>   rK  zTestMedian.test_out_nan  s/   $D111 		1 		1#Hb.AAAAAfAdG1aQ///333A1aQ///333A1!,,,a000		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1s   C)DDDc                 h   t          j        dt                    }t           j        |d<   t	          t          j        |          t           j                   t	          t          j        |d          t           j                   t          j        dt                                        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                                        ddd          d          }t           j        |d
<   t           j        |d<   t	          t          j        |d          |           t          j        t          j        dt                                        ddd          d          }t           j        |d<   t           j        |d<   t	          t          j        |d          |           t          j        t          j        dt                                        ddd          d          }t           j        |d<   t           j        |d<   t	          t          j        |d          |           d S )Nr  r   rO   r   r   rY   rM   r   rN  r  rr   rQ   r#  rU   )r8   r9   r  ro  r(   r  rz   r   r   s      r>   rO  zTestMedian.test_nan_behavior  s   Ib&&&v!RYq\\26***RYqq)))26222Ib&&&..q!Q77V'
V'
 	RYq\\26***RYq\\&*** Ibi%00088AqAA1EE&$&$RYq!__a((( Ibi%00088AqAA1EE&$&$RYq!__a((( Ibi%00088AqAA6JJv!v!RYq&))1-----r@   zfp errors don't work correctlyr  c                 2   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            n# 1 swxY w Y   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            n# 1 swxY w Y   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            d S # 1 swxY w Y   d S )Nr   Tr  r  r  r   rO   rY   )r   r  r   rQ   )r8   r   r  r  r  r  r  r(   r  ro  r'   r  rY  )rg   rh   r  r   s       r>   r  zTestMedian.test_empty  s    HRu%%%$D111 	$Q#Hb.AAA1rv...AaDM^3444Q###		$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ HRuA...$D111 	5Q#Hb.AAA1rv...AaDM^3444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 HRuA...RYqq)))1---RYqq)))1--- HRV5222$D111 	5Q#Hb.AAA11---q111AaDM^3444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s8   BCC
C?A)E44E8;E8A!JJJc           	      |   t          j        d          }t          t          t          j        |                    t                                        t                     t           j        |d<   t          t          t          j        |                    t                                        t                     d S )Nr   rO   )	r8   r9   r'   r3  r  r  r   r  ro  )rg   r  s     r>   test_objectzTestMedian.test_object  s|    IbMMRYqxx//00115999v!RYqxx//0011599999r@   c                 N	   t           j                            d          }t          j        |gdz            }t	          t          j        |d          t          j        |                     t          j        |dd          }t	          t          j        |d          t          j        |                     |                    dd	                                          }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          
                    d          }t           j                            |                                           t	          t          j        |d          d         t          j        |d d d d d d df                                                              t	          t          j        |d          d	         t          j        |d d d d d	d d f                                                              t	          t          j        |d          d         t          j        |d d d d dd d f                                                              t	          t          j        |d          d         t          j        |dd d d d d d f                                                              t	          t          j        |d          d         t          j        |dd	d d d d f                                                              t	          t          j        |d          d         t          j        |dd d d d d	f                                                              t	          t          j        |d          d         t          j        |dd d dd d f                                                              d S )Nr  r  r   ra   r   r`   r   rs   rQ   rq   rP   r~  )r`   r  r  r  r  rO   r   r  r!  r"  r#  rT   )r8   rt  r$  r%  r(   r  r&  r   r   r9   rz   r'  r(  r)  r*  s       r>   r+  zTestMedian.test_extended_axis  s   I(++IqcBhRYqv...	!===K2q!!RYqx000")A,,???JJq!!!##RYqw///1>>>RYqy11129QT3J3J3JKKKRYqu---ry/C/C/CDDDRYqv...	!"0E0E0EFFFIn%%--m<<
	!''))$$$RYqy111!4Yq111QQQ{224455	7 	7 	7RYqy111!4Yq111a{224455	7 	7 	7RYqz22215Yq111a{224455	7 	7 	7RYqy111!4Yq111QQQqqqz113344	6 	6 	6RYqv...t4YqAaaa{224455	7 	7 	7RYqw///5Yq111QQQ{224455	7 	7 	7RYqv...t4Yq111a{224455	7 	7 	7 	7 	7r@   c                    t          j        d          }t          t          t           j        |d           t          t          t           j        |d           t          t          t           j        |d           t          t          t           j        |d           t          t
          t           j        |d           d S )Nr  r  r   r-  rM   r.  rV   )r8   re   r,   r&   r  rd   r  s     r>   r/  z%TestMedian.test_extended_axis_invalid  s    GM""iAB7777iAG<<<<iAA6666iAF;;;;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           d S )Nr  Tr   r   ra   r1  r   r2  rG  r3  r  r  r4  )r8   re   r(   r  rD   r  s     r>   r5  zTestMedian.test_keepdims  s   GM""RYqtd;;;A!	# 	# 	#RYqv===C"	$ 	$ 	$RYqv===C!	# 	# 	#RYqtd;;;A"	$ 	$ 	$RYq|dCCCI!	# 	# 	#RYqy4@@@F!	# 	# 	# 	# 	#r@   r   r6  r7  c                 `   t          j        d          |dj        z  }nCt          |j                  t	          fdt          j                  D                       }t          j        |          }t          j        |d|          }||u sJ t          |j	        |           d S )Nr  rG  c              3   >   K   | ]}|v rd nj         |         V  dS r<  r=  r>  s     r>   r  z/TestMedian.test_keepdims_out.<locals>.<genexpr>  r@  r@   TrA  )
r8   re   r   r5   r  rf   r  r  r(   rD   )rg   r   rB  r  r$  r?  rq  s        @@r>   rC  zTestMedian.test_keepdims_out
  s     GM""<qvII,T16::I L L L L L=B16]]L L L L LIhy!!14$C@@@}}}}V\9-----r@   r   zm8[s]rR  rS  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        |                                          sJ t          j        dd|                              dd	          }d||d
f<   t          j        |d          }t          t          j        |          g d           d S rU  )	r8   r9   r  r   rX  r  r   rz   r)   rY  s        r>   test_nat_behaviorzTestMedian.test_nat_behavior!  s   
 Ia5)))#illyE!!!!x}}mABx((yE!!!!x}}  """""IaU+++33B::#q&	i"""28C==*>*>*>?????r@   N)r   r   r   rm   r  r  r]  r  r  rL  rM  r8   ro  r  rG  rK  rO  r  r2   r  r  r+  r/  r5  rC  r  r   r@   r>   r  r    s       + + +,. . .$L L LB2 2 2' ' ' [U*llR,<bfbIK K) )K K)- - -
1 
1 
1. . .@ [(HII5 5 JI5:: : :7 7 7<= = =# # # [
 
 
  	 	. .	 	. [Wwi00[UKKK00@ @ 10 10@ @ @r@   r  c                   `    e Zd Zej                            dg d          d             Zd ZdS )TestSortComplexztype_in, type_out))lr  )hr   )Hr   )r   r   )r  r   )r  r  c                     t          j        g d|          }t          j        |          }t          j        |                              |          }t          ||           t          |j        |j                   d S )N)rZ   rY   rx   rO   rQ   r   )r8   r   sort_complexrv  r  r(   r   )rg   type_intype_outrh   r  r  s         r>   test_sort_realzTestSortComplex.test_sort_real7  sp     H___G444##71::$$X..VX&&&V\8>22222r@   c                     t          j        g dd          }t          j        g dd          }t          j        |          }t          ||           t          |j        |j                   d S )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_complexG  sq    H555SAAA8<<<CHHH##VX&&&V\8>22222r@   N)r   r   r   r  rL  rM  r  r  r   r@   r>   r  r  5  sc        [0 3
 3
 3
  3 3 33 3 3 3 3r@   r  )r   )r   r   )~r  r  r  rA  	fractionsr   r  r  r  hypothesis.extra.numpyr   hypothesis.strategies
strategiesr  	functoolsr   numpyr8   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   numpy.exceptionsr&   numpy.testingr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   numpy.lib._function_base_impllib_function_base_implry  numpy.randomr4   numpy._core.numericr5   r?   rI   rK   r   r   r   rL  rM  r   r   r   rO  r  r  r  r  r  r  r  r  r  r*  rU  r  r  r  r  r  r  r  r  r  r[  r5  rH  rY  r_  rf  rm  r  r  r  r  r  r"  rV  r  r  r  r_  r  r  r  r   r@   r>   <module>r     sn     



              ) ) ) ) ) ) " " " " " "                                                                            ' & & & & &                              , + + + + + + + +       4 4 4 4 4 4    A@ A@ A@ A@ A@ A@ A@ A@Hd1 d1 d1 d1 d1 d1 d1 d1N: : : : : : : :": : : : : : : :$ "K"K"KLL( ( ML( 3  3  3  3  3  3  3  3Fy4 y4 y4 y4 y4 y4 y4 y4v;$ ;$ ;$ ;$ ;$ ;$ ;$ ;$|l0 l0 l0 l0 l0 l0 l0 l0^	; 	; 	; 	; 	; 	; 	; 	;	: 	: 	: 	: 	: 	: 	: 	:E E E E E E E E8 8 8 8 8 8 8 80E E E E E E E E(J J J J J J J J8  :I< I< I< I< I< I< I< I<Xr> r> r> r> r> r> r> r>j}" }" }" }" }" }" }" }"@' ' ' ' ' ' ' '4>% >% >% >% >% >% >% >%B$" $" $" $" $" $" $" $"R      kC kC kC kC kC kC kC kC\) ) ) ) ) ) ) )XR8 R8 R8 R8 R8 R8 R8 R8j5 5 5 5 5 5 5 56 S2<--W0EE  jjj))i; i; i; i; i; i; i; *) i;X;1 ;1 ;1 ;1 ;1 ;1 ;1 ;1|# # # # # # # #"	D 	D 	D 	D 	D 	D 	D 	D' ' ' ' ' ' ' '"X& X& X& X& X& X& X& X&vg& g& g& g& g& g& g& g&T1 1 1 1 1 1 1 1h       &k2 k2 k2 k2 k2 k2 k2 k2\a0 a0 a0 a0 a0 a0 a0 a0Hb b b b b b b bJA A A A A A A ADQ	@ Q	@ Q	@ Q	@ Q	@ Q	@ Q	@ Q	@h    -- i7 i7 i7 i7 i7 i7 i7 i7X/) /) /) /) /) /) /) /)da@ a@ a@ a@ a@ a@ a@ a@H	3 3 3 3 3 3 3 3 3 3r@   