
    Ngh                        d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZ d dlZd dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZm Z  d dl!m"c m#Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d d	lHmIZI d
 ZJd ZK G d d          ZL G d d          ZM G d d          ZN G d d          ZO G d d          ZP G d d          ZQ G d d          ZR G d d          ZS G d d          ZT G d d          ZU G d  d!          ZV G d" d#          ZW G d$ d%          ZX G d& d'          ZY G d( d)          ZZ G d* d+          Z[ G d, d-          Z\ G d. d/          Z] G d0 d1          Z^ G d2 d3          Z_dsd5Z`dtd7Za G d8 d9          Zb G d: d;          Zc G d< d=          Zd G d> d?          Zeejf        g                    d@dAejh        dB         z   ejh        dC         z             ejf        g                    dDg dE           G dF dG                                  Zi G dH dI          Zj G dJ dK          Zk G dL dM          Zl G dN dO          Zm G dP dQ          Zn G dR dS          Zo G dT dU          Zp G dV dW          Zq G dX dY          Zr G dZ d[          Zs G d\ d]          Zt G d^ d_          Zu G d` da          Zv G db dc          Zwg ddZx G de df          Zy G dg dh          Zz G di dj          Z{ G dk dl          Z| G dm dn          Z} G do dp          Z~ G dq dr          ZdS )u    NFraction)arrays)partial)ma)assert_assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_raisesassert_allcloseIS_PYPYassert_warnsassert_raises_regexsuppress_warningsHAS_REFCOUNTIS_WASM)rand) add_newdoc_ufuncangleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanningi0insertinterpkaisermeshgridmsort	piecewiseplacerot90selectsetxor1dsinctrapz
trim_zerosunwrapunique	vectorize)normalize_axis_tuplec                 n    t          j        |           }t           j                            ||          }|S N)nparangeaddouter)ndatas     ^/var/www/html/ai-engine/env/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
    )r9   zeros	broadcastshapecomplex_realimag)rG   rH   rets      r?   _make_complexrJ   %   s9    
 (2<d++12;
?
?CCHCHJrA   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      rP   rP   r      rP   axesrP   rP   r   rP   rR   rR   )rR      rN      rP   r[   rR   r   rZ   r[   rN   rZ   rP   rR   r      )krX   r   rR   rR   r   r`   rT   )r   
ValueErrorr-   r9   onesranger	   )selfab1b2b3b4r`   s          r?   
test_basiczTestRot90.test_basic1   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KrA   c                 *   t          j        d          }t          t          |          j        d           t          t          |d          t          |d                     t          t          |d          t          |d                     d S )N)2   (   rZ   )rq   rp   rZ   rV   rS   r   ra   rR   rP   rX   ra   )r9   rf   r	   r-   rE   rh   ri   s     r?   	test_axeszTestRot90.test_axesQ   s    GK  U1XX^[111U15)))5+@+@+@AAAU15)))5+A+A+ABBBBBrA   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   rO   rP   rZ         r   rR   rN   r[   rb   rS   rc   rs   )rP   r   rd   )r9   r:   reshaper	   r-   rg   )rh   ri   
a_rot90_01
a_rot90_12
a_rot90_20
a_rot90_10r`   s          r?   test_rotation_axeszTestRot90.test_rotation_axesW   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>>>@ @ @ @	@ 	@rA   N)__name__
__module____qualname__rn   rv   r    rA   r?   rL   rL   0   sM        L L L@C C C@ @ @ @ @rA   rL   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          j        t          j        t          j        d          d           t          t          j        t          j        t          j        d          d           t          t          j        t          j        t          j        d          d           t          t          j        t          j        t          j        d          d           d S )NrN   rR   axisrN   rN   rP   r^   r   rZ   )r   r9   	AxisErrorfliprf   rh   s    r?   rv   zTestFlip.test_axesv   s    blBGRWQZZa@@@@blBGRWV__1EEEEblBGRWV__2FFFFblBGRWV__6JJJJJJrA   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 )NrN   ra   rR   rQ   rY   r]   r\   r@   r	   r9   r   rh   ri   bs      r?   test_basic_lrzTestFlip.test_basic_lr|   s    AJJaaa2gJRWQ]]A&&&YYYYYYYYRWQ]]A&&&&&rA   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 )NrN   ra   r   rQ   rY   r   r   s      r?   test_basic_udzTestFlip.test_basic_ud   s    AJJdddAAAgJRWQ]]A&&&YYYYYYYYRWQ]]A&&&&&rA   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   rR   rP   rZ   rN   r[   ry   rz   r9   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&&&&&rA   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   rA   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   rA   c           
      B   t          j        d                              dddd          }t          |j                  D ]_}t          t          j        ||          t          j        |                    d|                                        |d                     `d S )Nx   rP   rZ   rN   r[   r   )	r9   r:   r{   rg   ndimr	   r   r!   swapaxes)rh   ri   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rA   c                     t          j        g dg dg          }t          j        g dg dg          }t          t          j        |          |           d S )NrR   rP   rZ   rN   r[   ry   )ry   r[   rN   rZ   rP   rR   r   r   s      r?   test_default_axiszTestFlip.test_default_axis   sf    Hiiiii! " "Hiiiii! " "RWQZZ#####rA   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   rR   rP   rZ   rN   r[   ry   rz   r   r   rV   rs   r   rh   ri   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0rA   N)r   r   r   rv   r   r   r   r   r   r   r   r   r   rA   r?   r   r   t   s        K K K' ' '' ' '' ' '' ' '' ' 'E E E$ $ $1 1 1 1 1rA   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   rR   r   r   r   r   r   )rR   r   rR   r   )r   r9   anyrh   y1y2y3s       r?   rn   zTestAny.test_basic   sg    \\\\\\r

r

BF2JJrA   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   rR   r   rR   rR   r   r   r   rR   r   rR   rR   )r   r9   r   r
   rh   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9rA   Nr   r   r   rn   r   r   rA   r?   r   r      s2             : : : : :rA   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   rR   rR   r   r   rR   rR   rR   rR   )r   r9   allr   r   s       r?   rn   zTestAll.test_basic   s    \\\\\\BF2JJr

BF2JJ}%%&&&&&rA   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   rR   r   rR   rR   rR   r   r   rR   )r   r9   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9rA   Nr   r   rA   r?   r   r      s2        ' ' ': : : : :rA   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 )NrR   rP   rZ   rN   
   )r   r   )r9   r   copyr
   r	   )rh   ri   a_copys      r?   rn   zTestCopy.test_basic   sr    Hq!fq!f%&&1f%%%tQtWa   VD\2&&&&&rA   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 )NrR   rP   rZ   rN   Forder)r9   r   r   flagsc_contiguousf_contiguousr   )rh   ri   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!./////rA   c                 l   t          j        d          }t          t          j        t	          j        |d                                t          t          j        t	          j        |d                               t          t          j        t	          j        |                                d S )Nr[   F)subokT)r   rf   r   isMaskedArrayr9   r   )rh   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2rA   N)r   r   r   rn   r   r   r   rA   r?   r   r      sA        ' ' '0 0 0"3 3 3 3 3rA   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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   rb   rP   rc   rR   r[   )r9   r   r   r   rf   r   meanr   )rh   r   r   r   y4y5s         r?   rn   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7rA   z<x, axis, expected_avg, weights, expected_wavg, expected_wsumr   Nr   )rZ   rN   rR         ?       @)rR   rP   r[   )rR   ry      r   )r         @r   rR   rZ   )r         @      #@rN   rN   rN   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   )r9   r   rE   r
   )
rh   xr   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             r?   test_basic_keepdimszTestAverage.test_basic_keepdims5  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/////rA   c                    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	          ||           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   rP   r   r   r   rR   r   )r   r   )r   r   r   r   r         @)r   r   rP   r   r[   rP   rZ   rN   rZ   F)r   r   r   )r   r   r   Tr   r   )r9   r:   r   sumr   r   r
   r	   r   astypefloat32float64r   dtyperesult_typer{   )rh   ywactualdesiredr   w0w1w2r   w3r   s               r?   test_weightszTestAverage.test_weightsL  s   IbMMIbMMA&&&9R==A%**,,r1BIbMM4E4E4G4GGFG,,,Xyyy))),--VRa000(<<<((FG,,,YYRa000(B8$$FG,,, 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+++++rA   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   rR   r   rP   )r   r   r   )r   r   r   r   r   )r9   r   r   r	   r
   )rh   r  r   sclr  r  r  s          r?   test_returnedzTestAverage.test_returnedx  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3rA   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   rA   r?   subclassr            DrA   r  rR   rP   rZ   rN   r   )r9   ndarrayr   viewr	   typer   )rh   r  ri   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>>>>>rA   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))i4r  f8)r  f4r  )r   r  r  )r   r   r   )r   r  r  rR   rP   rZ   rN   r  r   )r9   r   r	   r   r  )rh   typsatwtrtri   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rA   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((<<<rA   r   c                 6    g | ]}t          j        d           S rR   r)  )r,  _s     r?   r-  z1TestAverage.test_object_dtype.<locals>.<listcomp>  r.  rA   r   r   )r9   r   rg   r  r   r   r   )rh   ri   r  s      r?   test_object_dtypezTestAverage.test_object_dtype  s    H<<%))<<<==H<<%))<<<==	QUUWWAFF1IIwq!'<'<'<=====rA   c                     t          j        t          dd          t          dd          g          }t          t          j        |          t          dd                     d S )NrR   r[   rZ   rP   )r9   r   r   r	   r   ru   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3rA   )r   r   r   rn   pytestmarkparametrizer   r  r  r  r&  r2  r4  r   rA   r?   r   r   !  s       8 8 8$ [F
))TC5)))dVcU	;99jjj
!1&7a&???#iii[
2	3 0 0 0"*, *, *,X4 4 44? ? ?G G G> > >4 4 4 4 4rA   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   rz   rx   	   )FFFFTFFFTr   c                     g }t          t          |                    D ]$|fdt          ||          D             p|gz  }%|S )Nc                 6    g | ]\  }}|         |         S r   r   )r,  VCms      r?   r-  z&TestSelect._select.<locals>.<listcomp>  s*    BBB1QqTBqtBBBrA   )rg   lenzip)rh   condvaluesdefaultoutputrB  s        @r?   _selectzTestSelect._select  s^    s4yy!! 	P 	PABBBBFD(9(9BBBOwiOFFrA   c                    | j         }| j        }t          t          ||d          |                     ||d                     t          t          |          d           t          t          |          d           d S )N   rG  rZ   )choices
conditionsr
   r.   rI  r	   rC  rh   rM  rN  s      r?   rn   zTestSelect.test_basic  s    ,_
6*grBBB<<
GR<HH	J 	J 	J 	S\\1%%%S__a(((((rA   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 )NTr<  rR      rN   rZ   rN   rZ   r   rL  r0  )	r9   r   r:   r{   r
   r.   rf   r	   rE   rh   rN  rM  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BrA   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  r9   int8)r,  choices     r?   r-  z0TestSelect.test_return_dtype.<locals>.<listcomp>  s&    EEEf6==))EEErA   rR   rP   rZ   r[   rz   r   )r	   r.   rN  rM  r  r9   rF   rX  r   nanisnan)rh   rM  drB  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'>?????rA   c                 x    t          t          t          g g d           t          t          t          g g            d S )N              @)r   re   r.   r   s    r?   test_deprecated_emptyz TestSelect.test_deprecated_empty  s2    j&"b"555j&"b11111rA   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   )	rM  rN  r  r9   int_r   	TypeErrorr.   uint8rO  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=====rA   c                     t          j        dg          gdz  }t          j        dg          gdz  }t          ||           d S )NFd   rR   )r9   r   r.   rS  s      r?   test_many_argumentszTestSelect.test_many_arguments  sG    hw''(3.
8QC==/C'z7#####rA   Nr   )r   r   r   r9   r   rM  rN  rI  rn   rT  r]  r`  rf  ri  r   rA   r?   r9  r9    s       rx			""rx			""rx			""$G "(00011"(///00"(///002J   ) ) )C C C
@ 
@ 
@2 2 2> > >$ $ $ $ $rA   r9  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   rR   )rR   rR   rP   rZ   rZ   )rR   rP   rZ   rR   r   )rR   rR   rP   rZ   rP   rZ   )rR   ra   rZ   r;  )rR   r;  rP   r;  rZ   r;  ra   )r;  rR   r;  rP   r;  rZ   ra   rR   rZ   r:  )rR   rx   rP   rz   rZ   r;  r!  r   r   r   Trecordalways rN   )rR   r;  r;  r;  r;  rP   rZ   )r	   r&   slicer9   r   r  warningscatch_warningsfilterwarningsFutureWarningr   category)rh   ri   r   r  s       r?   rn   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          j
        t          |d|d d dd d f         d	           t          t          j
        t          |d|d d dd d f         d           t          j        d                              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   rO   r   rR   r   r   rP   )rR   rR   rP   rR   rZ   rN   r      r   ra   rX   )r	   r&   r9   r   r:   repeatr{   concatenateTr   r   )rh   ri   rr   r   s        r?   test_multidimzTestInsert.test_multidim  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 	blFAq!AAAq!!!G*1EEEEblFAq!AAAq!!!G*2FFFF 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 	7rA   c                 J   t          j        d          }t          j        t           j                  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 )NrR   rP   r   r   nonsense)r9   r   r5  raisesr   r&   rd  ru   s     r?   test_0dzTestInsert.test_0d,  s   HQKK]2<(( 	% 	%1b!!$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]9%% 	. 	.1b!*----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s#   AAA7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   rA   r?   SubClassr  4  r  rA   r  r   r   rR   rP   rX   ra   )	r9   r  r:   r  r   
isinstancer&   rt  r   rh   r  ri   s      r?   test_subclasszTestInsert.test_subclass3  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//::;;;;;rA   c                     t          j        g d          }t          j        g d|g d           t          |t          j        g d                     d S )Nr   rQ   rY   )r9   r   r&   r	   rh   r   s     r?   test_index_array_copiedz"TestInsert.test_index_array_copied@  sU    HYYY
	)))Q			***Q++,,,,,rA   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))rR   ri   )rP   r   )rZ   r   )foor   )bara1r!  )rN   r\  r   rP   rZ   )r9   r   r&   r
   r  )rh   ri   valr   s       r?   test_structured_arrayz TestInsert.test_structured_arrayE  s    H333(-8: : :IaC  1Q4#QW!=!=!=>>>j1nIa!Q%%1aV9bhs!'&B&B&BCCCCCrA   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 )NrQ   r   r   r      r!  )r5  r  
IndexErrorr9   r&   r   floatr   s    r?   test_index_floatszTestInsert.test_index_floatsO  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<idxrN   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 boundsmatchrQ   rZ   rN   )r5  r  r  r9   r&   )rh   r  s     r?   test_index_out_of_boundsz#TestInsert.test_index_out_of_boundsU  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   rn   r  r  r  r  r  r  r5  r6  r7  r  r   rA   r?   rl  rl    s        4 4 4((7 (7 (7T. . .< < <- - -
D D D@ @ @ [UQG,,0 0 -,0 0 0rA   rl  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rZ   rN   r[   r   r^   r         $@rZ   r         "@rN   r  r   rx   r   r   r   r   )r   r  r  rR   )r  r  r   )r	   r9   amaxr   s      r?   rn   zTestAmax.test_basic]  s    &&&RWQZZ&&&]]^^]] 	RWQQ''')9)9)9:::RWQQ''')9)9)9:::::rA   Nr   r   r   rn   r   rA   r?   r  r  [  s#        ; ; ; ; ;rA   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   rR   )r   r   r   )r	   r9   aminr   s      r?   rn   zTestAmin.test_basici  s    &&&RWQZZ&&&]]^^]] 	RWQQ'''999RWQQ'''99999rA   Nr  r   rA   r?   r  r  g  s#        : : : : :rA   r  c                       e Zd Zd ZdS )TestPtpc                    t          j        g d          }t          |                    d          d           t          j        g dg dg dg          }t          |                    d          g d           t          |                    d	          g d
           t          |                    dd          g dg           t          |                    dd          dgg           d S )Nr  r   r         .@r  r  r  )r         @r  ra   )r   r   r   Tr   rb   r   )r9   r   r	   ptpr   s      r?   rn   zTestPtp.test_basicu  s    H///00QUUU]]D)))Hmmm$nn#mm% & & 	QUUU]]OOO444QUUU^^___555QUUDU11OOO3DEEEQUUU55w?????rA   Nr  r   rA   r?   r  r  s  s(        
@ 
@ 
@ 
@ 
@rA   r  c                       e Zd Zd ZdS )
TestCumsumc           
         g d}g dg dg dg}t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        f
D ]}t          j        ||          }t          j        ||          }t          j        g d|          }t          t          j        |d          |           t          j        g dg dg d	g|          }t          t          j        |d          |           t          j        g d
g dg dg|          }t          t          j        |d          |           d S )NrR   rP   r   r   ry   r[   rN   rR   rP   rZ   rN   r[   ry   rz   r;  r   rZ   rN   r[   )rR   rZ   r_   r{     #   '   r   r   )ry   rx   r   r_   )   r         )rR   rZ   ry   r   )r[   r   r     )r   r_         rR   )r9   rX  re  int16uint16int32uint32r  r  	complex64
complex128r   r
   cumsum)rh   baba2ctyperi   a2tgts          r?   rn   zTestCumsum.test_basic  sc   $$$||\\\===9grx29bhiRZm% 	; 	;E U##A#u%%B(555u==Cry333S999(~~~/?/?/?@%I ICry!444c:::(1A1A1ABEK KCry!444c::::	; 	;rA   Nr  r   rA   r?   r  r    s#        ; ; ; ; ;rA   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   rR   r   r    g  rp   $   T      ra   )r{  b  X  )r9   r  r  r  r  r  r  r  r  r   r   ArithmeticErrorprodr	   r
   rh   r  r  r  ri   r  s         r?   rn   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rA   Nr  r   rA   r?   r  r    s(        E E E E ErA   r  c                       e Zd Zd ZdS )TestCumprodc           
      t   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 ]L}t          j	        ||          }t          j	        ||          }|dv rbt          t          t           j        |           t          t          t           j        |d           t          t          t           j        |           t          t          j        |d          t          j	        g d	|                     t          t          j        |d
          t          j	        g dg dg dg|                     t          t          j        |d          t          j	        g dg dg dg|                     Nd S )Nr  r  r  r  r  rR   ra   r   )rR   rP   r     i(  i  r  r   )r[   rQ     r  r  )rR   rP   ry   r{  )r[   r     r  )r   r  r   r  )r9   r  r  r  r  r  r  r  r  r   r   r  cumprodr
   r  s         r?   rn   zTestCumprod.test_basic  s   $$$||\\\===9h	28RYj"*blBMK 	J 	JEU##A#u%%B
""orz1===orz2qAAAorz1===="2:ab#9#9#9#%8 -@ -@ -@AF$H $HI I I #2:bq#9#9#9#%8\\\-<__->->->-@AF$H $HI I I #2:br#:#:#:#%8]]]-?-?-?-?-?-?-ABG$I $IJ J J J!	J 	JrA   Nr  r   rA   r?   r  r    s(        J J J J JrA   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)rR   rN   ry   rz   rQ  )rZ   rP   rR   r[   )ra   ra   rN   r   r[   rP   r=   rZ   )皙?皙@r   gɿ皙)r  g?g	皙?)TTFFr<  T)r9   r   r
   r   r   )rh   r   outout2out3s        r?   rn   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<<<.....rA   c                 ,   t          j        d          }d|d d dd dd d f<   t          j        d          }d|d d dd dd d f<   t          t	          |          t          j        d                     t          t	          |d          t          j        d                     t          t	          |d          t          j        d	                     t          t	          |d          |           t          t	          |d
          |           t          t           j        t          |d           t          t           j        t          |d           t          j        dt           j                  }t          t          t          |           d S )N)r   r  r  rR   rP   )r      r  ra   )r   r     r   r   )r;  r  r  rX   rZ   r|  gq?)
r9   rC   rf   r
   r   r   r   r   r  re   )rh   r   exps      r?   	test_axiszTestDiff.test_axis  sY   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blD!!4444blD!"5555H]BJ//j$*****rA   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  rR   ra   rP   r  r   r   )r=   r   )r   r
   r   )rh   r   out1r  r  out4s         r?   r   zTestDiff.test_nd  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6rA   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 )	NrZ   ra   r  c                 2    g | ]}t          |           S )r  )r   )r,  r=   r   s     r?   r-  z#TestDiff.test_n.<locals>.<listcomp>  s#    4441$qA,,,444rA   rR   r[   r   start)listrg   r   re   r   r   	enumeraterD  r  r9   r  r
   r	   r  rc  rC  max)rh   rH  expectedr=   r  r   s        @r?   test_nzTestDiff.test_n  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 	7rA   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!  rR   timedelta64[D]r   rZ   r  r  )
r9   r:   
datetime64r   extendr   r   r
   r	   r  )rh   r   r  r=   r  r  s         r?   
test_timeszTestDiff.test_times  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....	/ 	/rA   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 )NrR   rP   rZ   rN   r[   ry   rz   rx   r;  r   FTmaskr  )r   r   r   r
   r>   r  r   r  )rh   r   r  r  s       r?   r  zTestDiff.test_subclass  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%&&&&&rA   c                 0   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           j
        t          |dd           d S )Nr[   rR   r   )prependra   ry   rN   rP   )r   r  rZ   rZ   rZ   )r  r   )r9   r:   r
   r   rf   r  r{   r   re   rC   r   rh   r   resultr  s       r?   test_prependzTestDiff.test_prepend  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blD!QQ??????rA   c                 r   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           j        t          |dd           d S )Nr[   r   )append)rR   rR   rR   rR   r|  rP   rN   rR   )r   r  ra   r^   rX   r  rZ   )r  r   )	r9   r:   r   r
   r{   r   re   rC   r   r  s       r?   test_appendzTestDiff.test_append7  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blD!AA>>>>>>rA   N)r   r   r   rn   r  r   r  r  r  r  r  r   rA   r?   r  r    s        / / /&+ + + 	7 	7 	7
7 
7 
7
/ 
/ 
/' ' '@ @ @0? ? ? ? ?rA   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 )Nr[   rP   rR   )r9   r:   ri   r}  r{   nd_ar   s    r?   setup_methodzTestDelete.setup_methodV  sD    1IaLL''**221a;;			rA   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 )NrR   r   zDelete failed for obj: %r)err_msgr   )r   ri   r  r
   r/   )rh   indicesa_delnd_a_delmsgxors         r?   _check_inverse_of_slicingz$TestDelete._check_inverse_of_slicingZ  s    tvw''$)W1555)G38E46'(+<==tv#&	( 	( 	( 	(x!!!Q'1gq=)ABB3	!AAAq& 13??????rA   c                     g d}g d}|D ]2}|D ]-}|D ](}t          |||          }|                     |           ).3d S )N)rX   r   rR   rP   rN   r[   )r^   ra   rR   rZ   )rt  r!  )rh   limsstepsr  stopstepss          r?   test_sliceszTestDelete.test_slicesc  s    &&& 	6 	6E 6 6! 6 6DeT400A221555566	6 	6rA   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   rR   rP   rh  i)r   ra   rP   rP   )TFFTFTFrN   )	r!  r9   r   r5  r  r  r   ri   re   r   s    r?   
test_fancyzTestDelete.test_fancyl  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|  )r!  r   s    r?   test_singlezTestDelete.test_single  s0    &&q)))&&r*****rA   c                 F   t          j        d          }t          j        t           j                  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 )NrR   r   r   r  )r9   r   r5  r  r   r   rd  ru   s     r?   r  zTestDelete.test_0d  s   HQKK]2<(( 	" 	"1bq!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"]9%% 	+ 	+1bz****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s#   AAA6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   rA   r?   r  r1    r  rA   r  r   rR   rP   rX   )r9   r  ri   r  r   r  r   rt  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==>>>>>rA   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   rP   r[   r   r   <   rR   r   )	r9   r:   r{   r   rt  r	   r   r   r   )rh   r`   rB  s      r?   test_array_order_preservez$TestDelete.test_array_order_preserve  s|    IbMM!!!Qc!221eBooA... 	QW)17+?@@@QW)17+?@@@@@rA   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 )NrQ   r   r   r!  )r5  r  r  r9   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indexerrR   c                    t          | j        d          }t          | j        |          }t          ||           t          | j        dd          }t          | j        t	          j        dg          d          }t          ||           d S )NrR   r   )r   ri   r	   r  r9   r   )rh   r6  	a_del_intr  nd_a_del_intr  s         r?   test_single_item_arrayz!TestDelete.test_single_item_array  s    461%%	tvw''Y&&&di333$)RXqc]];;;\8,,,,,rA   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 )NrR   F)rZ   rR   r!  Tra   r   r   rP   zm8[ns])
r   r9   rf   r   r
   boolr5  r  r  object)rh   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  r!  r)  r+  r-  r  r  r4  r  r5  r6  r7  r9   r   r:  rA  r   rA   r?   r  r  T  s        < < <@ @ @6 6 6& & &*+ + ++ + +? ? ?A A A< < < [Y1#(<==- - >=-> > > > >rA   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 )NrR   rZ   rN   r   r   r   r   )r9   r   r
   r"   rh   vr   dxs       r?   rn   zTestGradient.test_basic  s    VaVHQKKhR2r(+,,hR2r(+,,.8A;;+++8A;;+++++rA   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 )Nr[   )r   r   r   r        &@   r         ?rP   rR   r   z.*scalars or 1dra   )
r9   r  rf   r:   r{   r"   r   r   re   stack)rh   rG  	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	: 	: 	: 	: 	:rA   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 )NrJ  r[   rP   rR   rb   r   )	r9   r:   r{   r  rf   r   re   r"   rd  )rh   rN  r   s      r?   test_badargszTestGradient.test_badargs  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>>>>>>rA   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  r9   r   r
   r"   r   r  rh   r   rG  s      r?   test_datetime64zTestGradient.test_datetime64  s    H7 7 7!# # # X)))"$ $ $ 	8A;;+++BH%566677777rA   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 )NrR   rZ   rN   Fr
  r   r[   rP   
edge_order)FFTFF)r9   r   r   r"   r	   r  r   _maskr:   maskedr
   r  )rh   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GrA   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   rR   r   rP   rZ   rN   ry   rx   rY  gQ?T)	r9   linspaceabsr"   r   r   randomseedsort)rh   r   rG  r  
analytical	num_errors         r?   test_second_order_accuratez'TestGradient.test_second_order_accurate  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1rA   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   )ry   rR   ra   rR   )r         ?r   r   r   r  r   )r   rK  r   r   ri  r   )      @rK  r   r   ri        )r   r   333333?ri        ?r   )r   r   rl  ri  rm  g      пrP   r   rb   )r   rZ  r   rc   )r9   r   tiler{   r:   r"   r
   r   r  r   rE   )rh   fx_unevenx_evenfdx_even_ord1fdx_even_ord2fdx_uneven_ord1fdx_uneven_ord2rZ  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5rA   c                    ddgddgg}t          j        |          }t          j        ddgddgg          t          j        ddgddgg          g}t          t          |d	          |d                    t          t          |d	          |d                    t          t          |d
	          |d                    t          t          |d	          |d         |d         g           t	          t          |d 	          |d         |d         g           t	          t          |d 	          t          |                     t          t          |ddd	          |d         dz  |d         dz  g           t          t          t          |ddd	           t          t           j        t          |d	           t          t           j        t          |d	           d S )NrR   rZ   rN   r   r   r   r   r   r   ra   rc   rP   r^   )r9   r   r
   r"   r   r   rd  r   rE  s       r?   test_specific_axeszTestGradient.test_specific_axesk  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;;;;blHaa8888blHab999999rA   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   rQ  rT  iA  ,  r  r!  )rP   rz   rz   rJ     w   irU  rV  s      r?   test_timedelta64zTestGradient.test_timedelta64  s    H***"$ $ $ X((("$ $ $ 	8A;;+++BH%566677777rA   c                     t           j        t           j        t           j        fD ]S}t          j        g d|          }t          t          |          j        t          j        |          j                   Td S )Nr   r!  )	r9   float16r  r  r   r	   r"   r  r   )rh   dtr   s      r?   test_inexact_dtypesz TestGradient.test_inexact_dtypes  sg    :rz2:6 	> 	>B"---A!*BGAJJ,<====	> 	>rA   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 )NrP   rR   rY  rZ   r   )r"   r9   r:   r   re   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GrA   f_dtypec                     t          j        g d|          }t          |          }t          |dgt	          |          z             d S )N)r[   rN   rZ   rP   rR   r!  ra   r9   r   r"   r
   rC  )rh   r  ro  gs       r?   test_f_decreasing_unsigned_intz+TestGradient.test_f_decreasing_unsigned_int  sI     H___G444QKK1rd3q66k*****rA   c                     t          j        |          j        }t          j        ddg          }t          j        d|g|          }t	          ||          }t          ||dz   dz  gdz             d S )NrR   rZ   ra   r!  rP   )r9   iinfor  r   r"   r
   )rh   r  maxintr   ro  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7rA   x_dtypec                     t          j        g d|          }t          j        g d          }t          ||          }t          |dgt	          |          z             d S )Nr   r!  r   rP   rN   rX   r  )rh   r  r   ro  r  s        r?   test_x_decreasing_unsignedz'TestGradient.test_x_decreasing_unsigned  s^     HYYYg...HYYY1~~4"c!ff-----rA   c                    t          j        |          j        }t          j        |          j        }t          j        d|g|          }t          j        |dz  dg          }t          ||          }t          |ddg           d S )Nra   r!  rP   r   ri  )r9   r  minr  r   r"   r
   )rh   r  minintr  r   ro  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,,,,,rA   c                     t          j        ddgddgf          }t          j                    rt          |          t          u sJ d S t          |          t
          u sJ d S )NrR   rP   rZ   )r9   r"   _using_numpy2_behaviorr  tupler  rh   r>  s     r?   test_return_typezTestGradient.test_return_type  si    kAq6Aq6*++$&& 	%99%%%%%%99$$$$$$rA   N)r   r   r   rn   rO  rQ  rW  r^  rg  rz  r|  r  r  r  r5  r6  r7  r9   re  r  r  uint64r  rX  r  r  int64r  r  r  r  r   rA   r?   rC  rC    s       , , ,: : :2? ? ? 
8 
8 
8H H H2 2 2(>6 >6 >6@: : :4	8 	8 	8> > >
H 
H 
H [Y29)+BI)? @ @+ +@ @+
 [Y"()+28)= > >8 8> >8 [Y29)+BI)? @ @. .@ @. [Y"()+28)= > >- -> >-% % % % %rA   rC  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      ?      @rP   r   rV  rR   ra                      ?      y            @r   r   r   T)degr  r   )r9   sqrtr   arctanpir   r   )rh   r   r  yozzos         r?   rn   zTestAngle.test_basic  s    RWQZZ#%RWQZZ!(;;BVW.!HHIi  IcNNAruqy"%"%#Yy!!!2529Y+?+?#?A !Xb\\C"%'!!R,,,!!R,,,,,rA   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  rR   rP         ?      ?r   r   r   )
r9   r   r   r  r\  r  r   r	   r  r  )rh   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&&&&&rA   N)r   r   r   rn   r  r   rA   r?   r  r    s2        - - -' ' ' ' 'rA   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   rR   r   rP   rZ   rN   r   c                 $     d} fd|D             S )N)ri   r   r   r\  c              3   8   K   | ]}t          |          V  d S r8   )getattr)r,  namerh   s     r?   	<genexpr>z'TestTrimZeros.values.<locals>.<genexpr>  s-      ;;d##;;;;;;rA   r   )rh   
attr_namess   ` r?   rF  zTestTrimZeros.values  s"    )
;;;;
;;;;rA   c                     t           j        dd         }|                                 D ]'}t          |          }t	          |||                    (d S )NrP   ra   r9   s_rF  r2   r
   rh   slcarrr>  s       r?   rn   zTestTrimZeros.test_basic  sT    eAbDk;;== 	. 	.CS//CsCH----	. 	.rA   c                     t           j        d d         }|                                 D ])}t          |d          }t	          |||                    *d S )Nra   r   trimr  r  s       r?   test_leading_skipzTestTrimZeros.test_leading_skip  s[    eCRCj;;== 	. 	.CSs+++CsCH----	. 	.rA   c                     t           j        dd          }|                                 D ])}t          |d          }t	          |||                    *d S )NrP   r   r  r  r  s       r?   test_trailing_skipz TestTrimZeros.test_trailing_skip  s[    eABBi;;== 	. 	.CSs+++CsCH----	. 	.rA   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   ro  )rF  r9   
zeros_liker  r2   rC  )rh   _arrr  rw  rx  s        r?   test_all_zerozTestTrimZeros.test_all_zero  s    KKMM 	" 	"D-DJ777Cc,,,Dt99>>>>c,,,Dt99>>>>>	" 	"rA   c                 l    t          j        d          }t          |          }t          ||           d S rb  )r9   rC   r2   r
   rh   r  r>  s      r?   test_size_zerozTestTrimZeros.test_size_zero  s0    hqkkoo3$$$$$rA   r  )r   l            r   )r   l            r   )r   l            r   c                 x    t           j        dd         }t          |          }t          |||                    d S )NrR   rP   )r9   r  r2   r
   )rh   r  r  r>  s       r?   test_overflowzTestTrimZeros.test_overflow  s8     eAaCjoo3C)))))rA   c                 p    t          j        g d          }t          |          }t          ||           d S )N)NrR   N)r9   r   r2   r
   r  s      r?   test_no_trimzTestTrimZeros.test_no_trim  s6    h''oo3$$$$$rA   c                     t          | j                                                  }t          |t                    sJ d S r8   )r2   ri   tolistr  r  r  s     r?   test_list_to_listzTestTrimZeros.test_list_to_list"  s5    ))#t$$$$$$$rA   N)r   r   r   r9   r   ri   r  r  r   complexr   r=  r\  rF  rn   r  r  r  r  r5  r6  r7  r  r  r  r   rA   r?   r  r    sF       )))**A	A	A	A< < <. . .. . .. . ." " "% % %
 [	---	 	 	---	 	 	---	 	 	" * * *
% % %
% % % % %rA   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)rR   rZ   rP   rR   rP   rZ   rZ   rR   )rZ   rP   rP   rZ   rZ   )r9   r   r    r
   r   s      r?   rn   zTestExtins.test_basic)  sE    H***++AE11ooo.....rA   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   rR   )rR   rN   rZ   rP   r[   rx   rz   )r   rR   r   rR   r   rR   r   rP   rN   ry   )rR   rP   rZ   rN   r[   ry   rz   rz   rx   )rR   r   rR   r   rR   r   rR   r;  )rx   rP   r;  rN   rx   ry   r;  z!Cannot insert from an empty arrayc                  *    t           g dg           S )N)r   r   r   r   r   rR   r   )r,   ri   s   r?   <lambda>z'TestExtins.test_place.<locals>.<lambda>=  s    E!-B-B-BB$G$G rA   12349)
r   rd  r,   r9   r   r
   rC   r:   r   re   ru   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*****rA   c                     t          d          }|dk    }|                                }t          ||          }t          ||d           t          |||           t	          ||           d S )Nr   ri  r   )r   r   r    r,   r
   )rh   ri   r  acr   s        r?   	test_bothzTestExtins.test_bothD  sl    HH3wVVXXD!aqaq1b!!!!!rA   N)r   r   r   rn   r  r  r   rA   r?   r  r  '  sA        / / /
+ + +," " " " "rA   r  r   c                 0    |t          j        |           z  S r8   mathfloorr   r  s     r?   _foo1r  P  s    TZ]]?rA   r   c                 6    |t          j        |           z  |z   S r8   r  )r   r  r  s      r?   _foo2r  T  s    TZ]]?QrA   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,S )-TestVectorizec                 n    d }t          |          } |g dg d          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r8   r   ri   r   s     r?   addsubtractz.TestVectorize.test_simple.<locals>.addsubtract[      1uu1u1urA   r   rZ   ry   r;  rR   rZ   r[   rz   rR   ry   rR   rP   r5   r
   rh   r  ro  r  s       r?   test_simplezTestVectorize.test_simpleZ  sS    	 	 	 k""AlllLLL))1lll+++++rA   c                 j    d }t          |          } |g dd          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r8   r   r  s     r?   r  z.TestVectorize.test_scalar.<locals>.addsubtractf  r  rA   r  r[   )r[   rx   rR   rN   r  r  s       r?   test_scalarzTestVectorize.test_scalare  sO    	 	 	 k""AlllA1lll+++++rA   c                     t          j        ddd          }t          d           } ||          }t          ||           d S )Nr^   rP   i'  c                     | S r8   r   r   s    r?   r  z*TestVectorize.test_large.<locals>.<lambda>r       rA   )r9   r`  r5   r
   )rh   r   ro  r  s       r?   
test_largezTestVectorize.test_largep  sG    KAu%%kk""AaDD1a     rA   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   ri  rK  rP   )r5   r  cosr9   r   r  r   )rh   ro  argsr1r2s        r?   
test_ufunczTestVectorize.test_ufuncv  so    dhxC"%KbeQYGHHQtWWVD\\!"b)))))rA   c                    dd}t          |          }t          j        g d          } ||          }t          j        g d          }t          ||            ||d          }t          j        g d          }t          ||           d S )NrR   c                     | |z   S r8   r   r  s     r?   r  z(TestVectorize.test_keywords.<locals>.foo      q5LrA   r   r   rP   rY   r0  r5   r9   r   r
   rh   r  ro  r  r  r  s         r?   test_keywordszTestVectorize.test_keywords}  s    	 	 	 	 cNNx			""QtWWXiii  2r"""QtQZZXiii  2r"""""rA   c                     t          t          t          g          } |t          j        d          d          } |t          j        d                    }t          ||           d S Notypesr   r   r5   r  r  r9   r:   r
   rh   ro  r  r  s       r?    test_keywords_with_otypes_order1z.TestVectorize.test_keywords_with_otypes_order1  s`     eUG,,, Qry~~s##Qry~~2r"""""rA   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"""""rA   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  rh   ro  r  r  r3s        r?    test_keywords_with_otypes_order3z.TestVectorize.test_keywords_with_otypes_order3  s     eUG,,, Qry~~Qry~~%%%Qry~~2r"""2r"""""rA   c                 >   t          t          t          g          } |dd          } |dd          } |d          }t          |t          dd                     t          |t          dd                     t          |t          d                     d S )Nr  $@rh  )r  ra   r  r5   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%%%%%rA   c                     t          t          t          g          } |ddd          } |ddd          }t          |t          ddd                     t          |t          ddd                     d S )	Nr  rh  r  ra   )r  r   r  rR   rP   rZ   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(((((rA   c                 p    dd l }	 t          |j                   d S # t          $ r t	                      w xY wrb  )rb  r5   	randrange	ExceptionAssertionError)rh   rb  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 )NrR   c                     | |z   S r8   r   r  s     r?   r  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foo  r  rA   r   r  r   )r   ri   rP   r   rY   r0  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"""""rA   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 rb  )r  pop)r   p_pr>  s       r?   	mypolyvalz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyval  sK    aB&&))C *Agq		)  *JrA   r,  rR   )excludedrZ   ry   r   r   )r   r,  )r,  )r9   r5   r
   )rh   r.  vpolyvalanss       r?   test_keywords3_ticket_2100z(TestVectorize.test_keywords3_ticket_2100  s    	 	 	 <	S!H===!f3Aq6YYY ? ? ?@@@3!Q999 = = =>>>3!Q ; ;<<<<<rA   c                 h    t           d             }t           |ddgddg          ddg           d S )Nc                  *    d}| D ]}|| |         z  }|S Nr   r   )kwr>  _ks      r?   ro  z3TestVectorize.test_keywords4_ticket_2100.<locals>.f  s*    C  r"vJrA   rR   rP   rZ   rN   r  rx   r  rh   ro  s     r?   test_keywords4_ticket_2100z(TestVectorize.test_keywords4_ticket_2100  sN    		 	 
	 	111v!Q0001a&99999rA   c                 f    t           d             }t           |ddgddg          ddg           d S )Nc                  *    t          j        |           S r8   )r9   r  )rF  s    r?   ro  z3TestVectorize.test_keywords5_ticket_2100.<locals>.f  s    71::rA   rR   rP   rZ   rN   rx   r  r8  s     r?   test_keywords5_ticket_2100z(TestVectorize.test_keywords5_ticket_2100  sK    		 	 
	 	11aVaV,,q!f55555rA   c                 Z    d }t          |          }t           |            d           d S )Nc                      dS NrR   r   r   rA   r?   r  z5TestVectorize.test_coverage1_ticket_2100.<locals>.foo      1rA   rR   r  rh   r  ro  s      r?   test_coverage1_ticket_2100z(TestVectorize.test_coverage1_ticket_2100  s:    	 	 	 cNN1133"""""rA   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	      HrA   zProvided documentation)doc)r5   r	   __doc__)rh   r  ro  rF  s       r?   test_assigning_docstringz&TestVectorize.test_assigning_docstring  sa    	 	 	 cNNQY,,,&cs###QY$$$$$rA   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>.FoorP   c                     || j         z  S r8   r'  ru   s     r?   r  z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.bar  s    DF{"rA   N)r   r   r   r   r  r   rA   r?   FoorK    s(        A# # # # #rA   rM  r;  rP   )r
   r5   r  r9   r:   )rh   rM  s     r?   test_UnboundMethod_ticket_1156z,TestVectorize.test_UnboundMethod_ticket_1156  s    	# 	# 	# 	# 	# 	# 	# 	# 	/9SSUUY//	!==9Q<<1,	. 	. 	.-9SW--cceeRYq\\BB9Q<<1,	. 	. 	. 	. 	.rA   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 r8   r   r  s    r?   r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>#       rA   rZ   r  c                     | S r8   r   r  s    r?   r  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>&  rQ  rA   )r5   r9   r:   r	   )rh   f1res1ares1bf2res2bres2as          r?    test_execution_order_ticket_1487z.TestVectorize.test_execution_order_ticket_1487!  s    {{##29Q<<  29S!$$%%{{##29S!$$%%29Q<<  UE"""UE"""""rA   c                 f    t          j        d           }d}t          | ||                     d S )Nc                     | S r8   r   r  s    r?   r  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>.      1 rA   d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r9   r5   r	   )rh   ro  r(  s      r?   test_string_ticket_1892z%TestVectorize.test_string_ticket_1892,  s6    L%%Q!rA   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   rR   rP   r   )r   _callss    r?   ro  z#TestVectorize.test_cache.<locals>.f6  s!    1IIINIII6MrA   Tr[   )r5   cacher9   r:   r
   r	   rC  )rh   ro  r   ra  s      @r?   
test_cachezTestVectorize.test_cache2  s    		 	 	 	 
	 IaLL11Q44Q'''VAYA'''''rA   c                     t          j        d           }d|_        t          j        d          }t	           ||          |           d S )Nc                     | S r8   r   r  s    r?   r  z+TestVectorize.test_otypes.<locals>.<lambda>A  r\  rA   r   r[   )r9   r5   r  r:   r
   rh   ro  r   s      r?   test_otypeszTestVectorize.test_otypes@  sE    L%%IaLL11Q44#####rA   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   )ri   r   r   )r\  )r\  ez(x )->()z( x , y )->(  )z(x),( y) ->()z(  x)-> (y )  z (x)->( y),( )z*(  ), ( a,  b,c )  ,(  d)   ->   (d  ,  e)z
(x)(y)->()z	(x),(y)->z
((x))->(x))r	   nfb_parse_gufunc_signaturer   re   r   s    r?   test_parse_gufunc_signaturez)TestVectorize.test_parse_gufunc_signatureF  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 r8   r   r  s     r?   r  z8TestVectorize.test_signature_simple.<locals>.addsubtracti  r  rA   z	(),()->()	signaturer  r  r  r  r  s       r?   test_signature_simplez#TestVectorize.test_signature_simpleh  sX    	 	 	 k[999AlllLLL))1lll+++++rA   c                 t    d }t          |d          } |ddgddgg          }t          |ddg           d S )Nc                 *    |                                  S r8   r   r  s    r?   r   z4TestVectorize.test_signature_mean_last.<locals>.meant  s    6688OrA   z(n)->()ro  rR   rZ   rP   rN   r  )rh   r   ro  r  s       r?   test_signature_mean_lastz&TestVectorize.test_signature_mean_lasts  s[    	 	 	 di000A1v1v1q!f%%%%%rA   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 r8   rt  r  s    r?   centerz3TestVectorize.test_signature_center.<locals>.center|  s    qvvxx<rA   (n)->(n)ro  rR   rZ   rP   rN   ra   r  )rh   rx  ro  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1rA   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 r8   r   r  s    r?   r  z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>  
    A rA   	()->(),()ro  r   rP   r   rR   )r5   r   r  r  rC  r
   rh   ro  r  s      r?   test_signature_two_outputsz(TestVectorize.test_signature_two_outputs  s    &&+>>>AiiiLL
1e$$4Q15551Q4+++1Q4+++++rA   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)ro  rR   rP   r   r  r   r   )r5   r9   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 	8rA   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 Nra   r   r  s    r?   r  z<TestVectorize.test_signature_computed_size.<locals>.<lambda>      #2# rA   z(n)->(m)ro  r   rR   rP   r   rZ   r  r  s      r?   test_signature_computed_sizez*TestVectorize.test_signature_computed_size  s|    &&*===AiiiLL1q!f%%%Ayyy)))$%%11v1v./////rA   c                     d
d}t          |ddh          }t           |g d          g d           t           |g dd	          g d           d S )NrR   c                     | |z   S r8   r   r  s     r?   r  z2TestVectorize.test_signature_excluded.<locals>.foo  r  rA   ()->()r   )rp  r/  r   r   r   r'  r0  r  rA  s      r?   test_signature_excludedz%TestVectorize.test_signature_excluded  s{    	 	 	 	 cX>>>11YYY<<33311YYY!,,,iii88888rA   c                     t          d ddg          } |g d          }t          |j        t          j        d                     t	          |g d           d S )Nc                     | S r8   r   r  s    r?   r  z5TestVectorize.test_signature_otypes.<locals>.<lambda>  r  rA   ry  r  rp  r  r   )r5   r	   r  r9   r
   r  s      r?   test_signature_otypesz#TestVectorize.test_signature_otypes  sa    kkZLLLAiiiLLQWbhy112221iii(((((rA   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)ro  zwrong number of positionalrR   rP   zdoes not have enough dimensions$inconsistent size for core dimensionr   r  )r5   operatorr;   r   rd  re   r8  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  rA   ry  ro  r  r   c                     | S r8   r   r  s    r?   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  rA   r~  zwrong number of outputsrR   c                 
    | | fS r8   r   r  s    r?   r  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r}  rA   r  rP   )r5   r   re   r8  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 r8   r   r  s    r?   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r\  rA   r   r[   r!  r  r   c                     | S r8   r   r  s    r?   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r\  rA   r  ro  c                     | S r8   r   r  s    r?   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r\  rA   r  c                     | S r8   r   r  s    r?   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r\  rA   ry  c                     | S r8   r   r  s    r?   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r\  rA   c                     | gS r8   r   r  s    r?   r  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  s    A3 rA   z()->(n)znew output dimensions)	r9   r5   rC   intr   re   r  r
   r  rf  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   rA   r?   r  r    r  rA   r  )r   r   r   ro  )r   r   r   r   )r   r   r   )r  r   r  z(m,m),(m)->(m)ro  )r   r   r   )r   r   r   )r  r  r   c                     | |z  S r8   r   r  s     r?   r  z/TestVectorize.test_subclasses.<locals>.<lambda>  s
    1 rA   )r9   r  r   r  r5   matmulr	   r  )rh   r  rB  rF  matvecr  mults          r?   r  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rA   c                 J    t           j        d             }|j        dk    sJ d S )Nc                     | |z   S r8   r   r  s     r?   rV  z#TestVectorize.test_name.<locals>.f2   s    q5LrA   rV  )r9   r5   r   )rh   rV  s     r?   	test_namezTestVectorize.test_name  s8    		 	 
	 {d""""""rA   c                 j    t           d             } |g dg d          }t          |g d           d S )Nc                 "    | |k    r| |z
  S | |z   S r8   r   r  s     r?   r  z1TestVectorize.test_decorator.<locals>.addsubtract  s    1uu1u1urA   r  r  r  r  )rh   r  r  s      r?   test_decoratorzTestVectorize.test_decorator  sP    		 	 
	 Klll331lll+++++rA   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?   ro  z'TestVectorize.test_docstring.<locals>.f  s	     HrA   rP   r  )r5   sysr   optimizerG  r8  s     r?   test_docstringzTestVectorize.test_docstring  sN    		 	 
	 9!!9++++ "!++rA   c                 v    d }t          |d          }t          j        |          } |d          dk    sJ d S )Nc                     | |z   S r8   r   r  s     r?   r  z'TestVectorize.test_partial.<locals>.foo  r  rA   rZ   rR   rN   )r   r9   r5   )rh   r  r  vbars       r?   test_partialzTestVectorize.test_partial  sH    	 	 	 c1oo|C  tAww!||||||rA   c                     t          ddg          d             } |g d          }t          |j        t          j        d                     t	          |g d           |j        dk    sJ d S )Nry  r  r  c                     | S r8   r   r  s    r?   ro  z8TestVectorize.test_signature_otypes_decorator.<locals>.f#  rE  rA   r   ro  )r5   r	   r  r9   r
   r   r  s      r?   test_signature_otypes_decoratorz-TestVectorize.test_signature_otypes_decorator"  s    	Z	<	<	<	 	 
=	<	 AiiiLLQWbhy112221iii(((zS      rA   c                     t          t                    5  t          j        d          }d d d            d S # 1 swxY w Y   d S )NrZ   )pyfuncr   rd  r9   r5   rh   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   rA   r?   r  z+TestVectorize.test_no_keywords.<locals>.foo2  s    urA   r  )rh   r  s     r?   test_no_keywordszTestVectorize.test_no_keywords0  s    9%% 	 	\(##  $#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A  AAc                     t          d dg          } |dg          }t          |j        t          j        d                     d S )Nc                     | S r8   r   r  s    r?   r  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>:  rQ  rA   r  rP   )r5   r	   r  r9   r  s      r?   test_positional_regression_9477z-TestVectorize.test_positional_regression_94776  sH     {{i[11AqcFFQWbhy1122222rA   N).r   r   r   r  r  r  r  r  r  r  r  r  r  r$  r(  r2  r9  r<  rB  rH  rN  rY  r^  rc  rg  rl  rq  ru  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rA   r?   r  r  X  s       	, 	, 	,	, 	, 	,! ! !* * *# # ## # #	# 	# 	#
# 
# 
#& & &	) 	) 	)# # ## # #"= = =	: 	: 	:6 6 6# # #
% 
% 
%. . .	# 	# 	#  ( ( ($ $ $ 6  6  6D	, 	, 	,& & &2 2 2, , ,8 8 8 0 0 09 9 9) ) )      6  (# # #	, 	, 	,, , ,  ! ! !) ) )  3 3 3 3 3rA   r  c                       e Zd Z G d d          Z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 rb  r   rh   r  s     r?   boundzTestLeaks.A.boundC  r@  rA   c                      dS rb  r   )r  s    r?   unboundzTestLeaks.A.unboundF  s    1rA   N)r   r   r   itersr  staticmethodr  r   rA   r?   r  r  @  sC        	 	 	 
	 	 
	 	 	rA   r  Python lacks refcountsreasonz
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   rR   r   r[   )gcr  r  disabler  getrefcountrg   r  r9   
frompyfuncro  r:   r	   collectenable)	rh   r  incrr  A_funcrefcountr   ri   r  s	            r?   test_frompyfunc_leakszTestLeaks.test_frompyfunc_leaksJ  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  r5  r6  skipifr   r7  r  r  r   rA   r?   r  r  ?  s                [L(1IJJ[\ag,   	  KJ
  rA   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 )Nr#  r[   r  r   r9   r:   r
   r   rh   r   binss      r?   test_forwardzTestDigitize.test_forwardj  sL    Ib!yQ8At,,bimm<<<<<rA   c                     t          j        ddd          }t          j        ddd          }t          t          ||          t          j        d                     d S )Nr[   r#  ra   r  r   r  r  s      r?   test_reversezTestDigitize.test_reverseo  sP    IaR  yB##8At,,bimm<<<<<rA   c                     t          d          }t          j        |                                |                                d          }t          t          j        t          ||          dk                         d S )Nr   r   r   r9   r`  r  r  r   r   r   )rh   r   bins      r?   test_randomzTestDigitize.test_randomt  s]    HHk!%%''15577B//x3''1,--.....rA   c                     g d}g d}g d}t          t          ||          |           g d}t          t          ||d          |           d S )N)rR   r[   rN   r   rx   r   r   )rR   r[   r   )rR   rP   rR   rZ   rP   rZ   r   )r   rR   rR   rP   rP   rZ   r   T)r
   r   )rh   r   r  default_answerright_answers        r?   test_right_basiczTestDigitize.test_right_basicy  sh    ###zz...8At,,n===,,,8AtT22LAAAAArA   c                     t          j        dd          }t          j        dd          }t          t          ||d          t          j        d                     d S )Nr#  r[   rN   Tr   r  r  s      r?   test_right_openzTestDigitize.test_right_open  sN    Ib!yQ8AtT22BIbMMBBBBBrA   c                     t          j        ddd          }t          j        ddd          }t          t          ||d          t          j        d                     d S )Nr[   r#  ra   rN   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BrA   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6rA   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)ra   r   rR   rP   r   F)r   rP   rZ   rZ   T)r   r   rP   rZ   r   )rZ   rP   r   r   )rZ   rZ   rP   r   r   )r   r   rN   rN   )r   r   r   rN   r   )rR   rR   r   rR   )r
   r   r   re   r  s      r?   test_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4rA   c                     g d}g d}t          t          t          ||           ||}}t          t          t          ||           d S )N)rR   rP   y      @      ?r   )r   rd  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3rA   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   rA   r?   r  r     r  rA   r  r[   rR   rZ   FT)r9   r  r:   r  r   r  r   )rh   r  ri   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8rA   c                 `    d}t          t          j        ||dz
  |dz   g          d           d S Nl          rR   r	   r9   r   r  s     r?   test_large_integers_increasingz+TestDigitize.test_large_integers_increasing  s5    R[QUAEN33Q77777rA   z8gh-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7rA   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r5  r6  xfailr  r   rA   r?   r  r  h  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
 [I  K K8 8K K8 8 8rA   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 )NrR   rP   r   rh  )r
   r3   r9   r  r   r   r   r   r   s    r?   r  zTestUnwrap.test_simple  sl    61a!be)m"4551v>>>tF488c>2233be;<<=====rA   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 )NrR   i     periodrP   r     )r   K         r~  )r   r  r  r  r~  i     )r   r  r  r  r~  r     )r  discont)
r
   r3   r   r9   r   r   r   r   modr  )rh   
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4rA   N)r   r   r   r  r  r   rA   r?   r	  r	    s2        > > >5 5 5 5 5rA   r	  r  O
AllIntegerFloatM)r   rR   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  r!  returnNc                    t          j        ||          d         }t          |          }|dk    rt           j        }n$t          j        |j        t           j                  }|j        |k    sJ t          |t          |                     |dk     r$t          |t          j        g                      d S |dk    r$t          |t          j	        d                     d S t          t          j        |d          dd           d S )	Nr!  r   r  rR   r   r         @rN   )r9   r   r$   r  r  r  r	   r!   r
   rf   r   r  rh   r  r!  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!<<<<<rA   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   r  rR   r   r   g(\@rN   )r9   r   r#   r  r  r  r	   r!   r
   rf   r   r  r'  s         r?   test_hammingzTestFilterwindows.test_hamming  s    !5)))"-FOOC<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 161=====rA   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   r  rR   r   r   g^)@rN   )r9   r   r   r  r  r  r	   r!   r
   rf   r   r  r'  s         r?   test_bartlettzTestFilterwindows.test_bartlett      !5)))"-VC<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 161=====rA   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   r  rR   r   r   g=
ףp=@rN   )r9   r   r   r  r  r  r	   r!   r
   rf   r   r  r'  s         r?   test_blackmanzTestFilterwindows.test_blackman  r/  rA   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   r  rR   r   r   rK  )r9   r   r(   r  r  r  r	   r!   r
   rf   r   r  r'  s         r?   test_kaiserzTestFilterwindows.test_kaiser2  s    !5)))"-61C<<
IIv|RZ@@Iw)#### 	Qq		""" A::q"(2,,/////q[[q"'!**-----qq 1 1 12r:::::rA   )
r   r   r   strr  r*  r,  r.  r1  r3  r   rA   r?   r#  r#    s        =# =# =$ = = = =*># ># >$ > > > >*>3 >3 >4 > > > >*>3 >3 >4 > > > >*; ; ; ; ; ; ; ; ;rA   r#  c                        e Zd Zd Zd Zd ZdS )	TestTrapzc                     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  rk  rP   )rG  rR   rz   )r9   r:   r1   r  r  r  r   )rh   r   r  s      r?   r  zTestTrapz.test_simpleJ  sf    Ic2r"""&qAv&&RU););;DDDAq!$$$$$rA   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   rR   rZ   rP   rx   r_   ra   r   )r   r   )r9   r`  	ones_liker  r1   r   )rh   r   r  r  wxwywzqqxqyqzr  s               r?   	test_ndimzTestTrapz.test_ndimP  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 !qD$'a000Ar"""!qaaaQ///Ar"""!qtAAAQ///Ar""" !qq!!!Ar"""!qq!!!Ar"""!qq!!!Ar"""""rA   c                    t          j        d          }||z  }|dk    }t           j                            ||          }d}t	          t          ||          |           t           j                            ||          }t	          t          ||          |           t           j                            ||          }t	          t          ||          |           d S )Nr[   rP   r
  g      *@)r9   r:   r   r   r   r1   )rh   r   r  r  ymr  xms          r?   r^  zTestTrapz.test_maskedu  s     IaLLEAvU[[[&&E"aLL!,,,U[[[&&E"bMM1---U[[[&&E!RLL!,,,,,rA   N)r   r   r   r  rB  r^  r   rA   r?   r6  r6  H  sB        % % %## ## ##J- - - - -rA   r6  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   rR   ra   rh  rz   )r   r0   r9   r`  r   r!   rh   r  s     r?   r  zTestSinc.test_simple  sS    Q1RC(())!!VAYY22222rA   c                     ddg}t          t          j        |                    }t          t          |                    }t          t	          |                    }t          ||           t          ||           d S )Nr   ri  )r0   r9   r   r  r  r
   )rh   r   r   r   r   s        r?   test_array_likezTestSinc.test_array_like  sh    H"(1++$q'']]%((^^2r"""2r"""""rA   N)r   r   r   r  rK  r   rA   r?   rG  rG    s2        3 3 3# # # # #rA   rG  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)	rN   rZ   rP   rR   rR   rP   rZ   rN   r   )r   rR   rP   rZ   rN   )rR   rR   rR   rR   rR   rR   )widgethamr  r  r  rP  )r  r  rP  rO  )      @      @r        ?      $@r   rQ  )r  rR  rQ  r   )r9   r   r   r   r4   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CrA   Nr   r   r   r  r   rA   r?   rM  rM    s(        D D D D DrA   rM  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        j        |           t          t          t           j        j        |           d S )Nr   rR   rP   )r9   infrZ  libasarray_chkfiniter   re   r   s       r?   r  zTestCheckFinite.test_simple  so    II26N26N
  ###j"&":A>>>j"&":A>>>>>rA   c                     g d}t           j                            |dt           j                  }t	          |j        t           j        k               d S )Nr   r   )r   r  )r9   rX  rY  r  r   r  ru   s     r?   test_dtype_orderz TestCheckFinite.test_dtype_order  sF    IIF$$Qc$DD2:%&&&&&rA   N)r   r   r   r  r[  r   rA   r?   rU  rU    s2        ? ? ?' ' ' ' 'rA   rU  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@)r^  r   p]4?)r_  r`  r   )r   r^  r_  ?'L?(8?4V}?)r^  r   r`  w{,H5?jS,?)r_  r`  r   )h?5#A?)ra  rd  rg  r   toBC,)rb  re  rh  rj  r   @02v?)rc  rf  ri  rk  rl  r   c                 `    t          t          j        g dg d          ddgddgg           d S )Nr   )rR   r   rR   r         )r   r9   r   r   s    r?   test_non_arrayzTestCorrCoef.test_non_array  sD    BK			999== #Yr
3	5 	5 	5 	5 	5rA   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 r5  )
r   r  r   rw  r   r9   r   ra  r  rx  )rh   tgt1tgt2s      r?   r  zTestCorrCoef.test_simple  s    D$),,,rvd||s*++,,,''D$),,,rvd||s*++,,,,,rA   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 )Nrr  ra   ddofrZ   )r   ru  simplefilterr   DeprecationWarningr   r  filterr   rw  r  rx  rh   sups     r?   	test_ddofzTestCorrCoef.test_ddof  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 )Nrr  rR   r   )bias)r   ru  rv  r   rw  r   r  r  rx  r   rw  ry  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   rV  y               @r_  r   r  rV  )r9   r   r   r   r   r   ra  )rh   r   r>  r  s       r?   test_complexzTestCorrCoef.test_complex  s    Hiii.//qkkhT
S"I.//S!!!rvc{{c)**+++++rA   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  )r9   r   r   r   rh   r   r  s      r?   test_xyzTestCorrCoef.test_xy  se    Hiii[!!Hlll^$$Aq))28b$Z#r4K+L+LMMMMMrA   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 NTrp  rr  r   rP   )
ru  rv  rv  RuntimeWarningr
   r   r9   r   rZ  r{   r   s    r?   
test_emptyzTestCorrCoef.test_empty  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   rn  )r9   errstater   r   r   r   r   ra  )rh   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  )rh   r  cast_Ar>  s       r?   test_corrcoef_dtypez TestCorrCoef.test_corrcoef_dtype	  s@    y))vY///CI%%%%%%rA   N)r   r   r   r9   r   r  r  rw  rx  ro  r  r{  r~  r  r  r  r  r5  r6  r7  halfsingledouble
longdoubler  r   rA   r?   r]  r]    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& & &rA   r]  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   rP   rR   r   rn  )r   r   r   )ndmin)rR   rN   rR   r   r   皙?gٿrZ   r!  )r   r   r   gUUUUUU?gUUUUUU)g&S:?go_?g#~j?gZӼ?gQ|?c                 T    t          t          | j                  | j                   d S r8   )r   r   x1rw  r   s    r?   rn   zTestCov.test_basic	  s"    DGdi00000rA   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  rV  rZ   aweights)r9   r   r   r   rf   )rh   r   r>  s      r?   r  zTestCov.test_complex	  s{    Hiii.//hT
S"I.//A$$$A

333S99999rA   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  )r9   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ErA   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  )
ru  rv  rv  r  r
   r   r9   r   rZ  r{   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 )NTrp  rr  r[   rt  )
ru  rv  rv  r  r
   r   r  r9   r   rW  r   s    r?   test_wrong_ddofzTestCov.test_wrong_ddof3	  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   x3r9   r   rh   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GrA   c                     t          t          | j        d          t          j        | j        d                     d S )NrR   rt  )r   r   r  r9   varr   s    r?   test_1D_variancezTestCov.test_1D_variance?	  s8    DG!,,,bfTW1.E.E.EFFFFFrA   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)fweightsri  rP   rZ   r!  rP   ra   rZ   )r   r   r]  frequencies
x2_repeatsr  rx  unit_frequenciesrw  r   rd  r9   rf   rc  RuntimeErrorre   )rh   nonintro  s      r?   test_fweightszTestCov.test_fweightsB	  sI   DGd.>???DO,,	. 	. 	.DGd.>???		# 	# 	#DGd.CDDD		# 	# 	#!C'idg????GF"'***lC1====GARW%%%lC1===="'****j#tw;;;;;;rA   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  rP   rn  rZ   )r   r   r  r   ry  unit_weightsrw  r9   rf   r   r  re   rI  s     r?   test_aweightszTestCov.test_aweightsR	  s   DGdl;;;TYGGGDGcDL.@AAADGdl;;;	= 	= 	=DGd.?@@@$)LLLGFOOlC1====GAJJlC1====271::j#tw;;;;;;rA   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   r]  r  r  r  r  rx  r  rw  r   ry  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		# 	# 	# 	# 	#rA   r  c                 v    | j                             |          }t          ||          }||j        k    sJ d S r  )r  r  r   r  )rh   r  cast_x1r>  s       r?   test_cov_dtypezTestCov.test_cov_dtyper	  s@    '..++'+++CI%%%%%%rA   N)%r   r   r   r9   r   r  r  rw  r]  r  r  rx  rf   rc  r  r   ry  r  r  rn   r  r  r  r  r  r  r  r  r  r5  r6  r7  r  r  r  r  r  r   rA   r?   r  r  	  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& & &rA   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 )Nri  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   r0  r   )r   r%   r9   r   r	   rE   r
   )rh   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7rA   c                 &   t          j        d           G fdd          }t          t          j         |                      |          sJ t          j                  }t          j         |                      }t          ||           d S )NrN   c                   $    e Zd Z j        Zd ZdS )*Test_I0.test_non_array.<locals>.array_likec                     | S r8   r   )rh   r  s     r?   __array_wrap__z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__	  s    rA   N)r   r   r   __array_interface__r  r  s   r?   
array_liker  	  s-        "#"7    rA   r  )r9   r:   r  ra  r%   r
   )rh   r  r  r>  ri   s       @r?   ro  zTest_I0.test_non_array	  s    IaLL	 	 	 	 	 	 	 	 	 	 "&..
;;;;;eAhheJJLL!!3$$$$$rA   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  )r9   r   r5  r  rd  r%   )rh   ri   r>  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  ro  r  r   rA   r?   r  r  y	  sA        8 8 88% % %     rA   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 )
NrR   r   r   rP    oF?r[   )r  vT=?r   r  r  gg?)?YJ?r   r  r  )r   r9   isfiniter(   r   r   r   s    r?   r  zTestKaiser.test_simple	  s   F1cNN++,,,F1cNNHRLL	* 	* 	*F1cNNHj*%=>>	@ 	@ 	@F1cNNH &> &> &> ? ?	@ 	@ 	@ 	F1g..H &> &> &> ? ?	@ 	@ 	@ 	@ 	@rA   c                 &    t          dd           d S )NrZ   rN   )r(   r   s    r?   test_int_betazTestKaiser.test_int_beta	  s    q!rA   N)r   r   r   r  r  r   rA   r?   r  r  	  s5        @ @ @    rA   r  c                       e Zd Zd ZdS )	TestMsortc           
         t          j        g dg dg dg          }t          j        t          d          5  t          t          |          t          j        g dg dg dg                     d d d            d S # 1 swxY w Y   d S )	N)\?bCQ?הs?)w?kl?*dta?)ӯ?6H?ܘC?zmsort is deprecatedr  )r  r  r  )r  r  r  )r  r  r  )r9   r   r5  warnsrw  r   r*   r  s     r?   r  zTestMsort.test_simple	  s   H:::::::::< = = \,4IJJJ 	B 	Ba>>>>>>>>>@ A AB B B	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   9A??BBNrS  r   rA   r?   r  r  	  s(        	B 	B 	B 	B 	BrA   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   rN   r[   ry   rz   r   )r[   r[   r[   )ry   ry   ry   )rz   rz   rz   r)   r
   r9   r   rh   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 	5rA   c                 t    t          g d          \  }t          |t          j        g d                     d S )Nr  r  )rh   r  s     r?   test_single_inputzTestMeshgrid.test_single_input	  s9    |||$$1bh|||4455555rA   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::;;;;;rA   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   )rP   rP   rP   rP   )rZ   rZ   rZ   rZ   rx   r;  r   rR  rZ   rN   )rN   rZ   rP   )rZ   rN   rP   notvalid)r)   r
   r9   r   r   rE   r   re   )rh   r   r  r  r  r  s         r?   test_indexingzTestMeshgrid.test_indexing	  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FrA   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sparserN   r[   ry   rz   r  r  s      r?   test_sparsezTestMeshgrid.test_sparse	  ss    )))\\\$???A1bh			{334441bhaS1#s';<<=====rA   c                 J    t          t          t          g dg dd           d S )Nr   r  r  )r  )r   rd  r)   r   s    r?   test_invalid_argumentsz#TestMeshgrid.test_invalid_arguments	  s8     	iiit	= 	= 	= 	= 	= 	=rA   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  )r9   r:   r  r  r)   r   r  )rh   r   r  r  r  s        r?   r  zTestMeshgrid.test_return_type
  s    Ia2:...Ib"BJ///{1Q117"###17"### {1QT***117"###17"### {1Qt,,,117"###17"#####rA   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   rR   )r9   r   r)   r	   )rh   r  r  r   r  s        r?   test_writebackzTestMeshgrid.test_writeback
  s    Hc3Z  Hc3Z  {1aD9991!QQQ$Qq!!!tWa   Qq!!!tWa     rA   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   r,  r   s     r?   r  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>'
  s(      %C%C!qcAg%C%C%C%C%C%CrA   rR   ry   )rP   rR   rZ   rN   r[   )r9   r)   rg   r	   rE   )rh   ri   r   r   r\  ri  expected_shapes          r?   test_nd_shapezTestMeshgrid.test_nd_shape&
  s    %C%CuQ{{%C%C%CD1aA(QWn---QWn---QWn---QWn---QWn-----rA   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   rR   rP   rY   r   r   rO   r9   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3rA   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   rR   rP   rY   r  r  r   r   rO   r  r   s       r?   test_nd_indexingzTestMeshgrid.test_nd_indexing5
  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1rA   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   rA   r?   r  r  	  s        	5 	5 	56 6 6< < <
G G G(> > >
= = =$ $ $0! ! !. . .4 4 42 2 2 2 2rA   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   TFrR   c                     dS r  r   r  s    r?   r  z+TestPiecewise.test_simple.<locals>.<lambda>S
  s     rA   ra   z1 or 2 functions are expectedr   )r+   r
   r9   r   r   re   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				; 	; 	; 	; 	;rA   c                 `    t          ddgddgddggddg          }t          |ddg           d S )NrR   rP   TFrZ   rN   r+   r
   r  s     r?   test_two_conditionsz!TestPiecewise.test_two_conditions[
  sB    q!fe}udm<q!fEE1q!f%%%%%rA   c                 P    t          dg dg d          }t          |d           d S )NrZ   )TFF)rN   rP   r   rN   )r+   r	   r  s     r?   $test_scalar_domains_three_conditionsz2TestPiecewise.test_scalar_domains_three_conditions_
  s4    a---yyy99QrA   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 )NrR   rP   TFr   rZ   r  r  s     r?   test_defaultzTestPiecewise.test_defaultc
  sj    q!ftUmaS111q!f%%% q!ftUmaV441q!f%%%%%rA   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 )
NrZ   rN   r   r[   TFrR   r=  r   )r9   r   r+   r   r   r
   r  s      r?   r  zTestPiecewise.test_0dl
  s    HQKKaQA''!Qa$A//!Q a---yyy991a     rA   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 )
NrZ   rN   r   r[   r   rP   z2 or 3 functions are expectedrR   r   )r+   r	   r
   r   re   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 	9rA   c                     t          j        d          }t          j        |dk              }t          ||gddg          }t          |d           d S )NrZ   rR   rP   )r9   r   r+   r	   )rh   r   r   r  s       r?   test_0d_0d_conditionz"TestPiecewise.test_0d_0d_condition
  sM    HQKKHQUOOa!q!f%%QrA   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      rk  )ri  rK  rj  r   rP   rn  )rn  rn  rn  )r   r   r   )r9   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 	8rA   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   rA   r?   r  r  
  r  rA   r  r   r   rN   )rn  r   r   )rn  rn  r   r   r   )r9   r  r:   r  r+   r	   r  )rh   r  r   r  s       r?   r  zTestPiecewise.test_subclasses
  s    	 	 	 	 	rz 	 	 	IbMMx((a!B$1}}}55T!WWh'''Q.../////rA   N)r   r   r   r  r  r  r  r  r  r  r  r  r   rA   r?   r  r  <
  s        ; ; ;:& & &  & & &! ! !9 9 9  8 8 80 0 0 0 0rA   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                            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 )NrN   )r9   bincountr:   r
   rf   r  s     r?   r  zTestBincount.test_simple
  s7    K	!%%1bgajj)))))rA   c                     t          j        t          j        g d                    }t          |t          j        g d                     d S )N)rR   r[   rP   rN   rR   )r   rP   rR   r   rR   rR   )r9   r  r   r
   r  s     r?   test_simple2zTestBincount.test_simple2
  sF    K11221bh'9'9'9::;;;;;rA   c                     t          j        d          }t          j        g d          }t          j        ||          }t	          ||           d S )NrN   )皙?333333?ri  r  )r9   r:   r   r  r
   rh   r   r  r  s       r?   test_simple_weightzTestBincount.test_simple_weight
  sL    IaLLH)))**K11a     rA   c                     t          j        g d          }t          j        g d          }t          j        ||          }t          |t          j        g d                     d S )NrR   rP   rN   r[   rP   r#  r$  ri  r  r#  )r   r#  ri  r   ri  r  r9   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CrA   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   rR   r   rR   rR   rZ   	minlength)rP   rZ   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+++++rA   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   rR   rR   rP   rP   rZ   rZ   rP   r-  )rR   rP   rP   rP   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5rA   c                     t          j        g d          }t          j        g d          }t          j        ||d          }t          |t          j        g d                     d S )Nr(  r)  rx   )r   r#  ri  r   ri  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IrA   c                     t          j        g t                    }t          j        |          }t	          ||           d S r  )r9   r   r  r  r
   r  s      r?   r  zTestBincount.test_empty
  s9    HRs###KNN1a     rA   c                     t          j        g t                    }t          j        |d          }t	          |t          j        dt                               d S )Nr!  r[   r-  )r9   r   r  r  r
   rC   r  s      r?   test_empty_with_minlengthz&TestBincount.test_empty_with_minlength
  sO    HRs###KQ'''1bhq44455555rA   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foobarr-  r9   r  r  s   r?   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
      BKX$F$F$F rA   zmust not be negativec                  0    t          j         d          S Nra   r-  r;  r  s   r?   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
      BKR$@$@$@ rA   r[   c                  0    t          j         d          S r9  r;  r  s   r?   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
  r<  rA   c                  0    t          j         d          S r>  r;  r  s   r?   r  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>
  r?  rA   )r9   r   r  r   rd  re   r:   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rA   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  r9   r  intpr  rg   r  r	   )rh   intp_refcountdouble_refcountjs       r?   test_dtype_reference_leaksz'TestBincount.test_dtype_reference_leaks
  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KrA   valsrP   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 r8   )r9   asarrayr   re   r  )rh   rI  vals_arrs      r?   test_error_not_1dzTestBincount.test_error_not_1d
  s    :d##:&& 	" 	"K!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	":&& 	 	K	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   A

AA)BBBN)r   r   r   r  r!  r&  r+  r/  r1  r3  r  r6  rB  r5  r6  r  r   rH  r7  rM  r   rA   r?   r  r  
  s$       * * *< < <! ! !D D D, , ,6 6 6J J J! ! !
6 6 6
B B B" [L(1IJJL L KJL [V1vh]33  43  rA   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   rR   rP   r  h  )r   re   r'   r   s    r?   test_exceptionszTestInterp.test_exceptions  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ErA   c                     t          j        ddd          }t          j        ddd          }t          j        ddd          }t          t          j        |||          |           d S )Nr   rR   r[   rp   )r9   r`  r   r'   rh   r   r  x0s       r?   rn   zTestInterp.test_basic	  s_    K1a  K1a  [Ar""BIb!Q//44444rA   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 )NrR   r   r!  ra   r   r   left)r   rR   rR   rR   rP   right)rR   rR   rR   rP   )rX  rZ  )r   rR   rR   rP   )	rg   r9   r:   r  rf   r   r'   r  r	   )
rh   sizexpypincptsdecptsincresdecresinctgtdectgts
             r?   test_right_left_behaviorz#TestInterp.test_right_left_behavior  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 	)  	)rA   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   rR   r[   r$  )r9   r`  r   r'   r  r  rZ  rT  s       r?   test_scalar_interpolation_pointz*TestInterp.test_scalar_interpolation_point5  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4rA   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rR   rP   rj  rZ   rN   r  rR   rP   rN   )r9   rW  r   r'   rZ  )rh   r   r\  fps       r?    test_non_finite_behavior_exact_xz+TestInterp.test_non_finite_behavior_exact_xC  s    \\BFABIaR001a2KLLLBFABIaR001a2KLLLLLrA   c                 *    t          j        |           S r8   )r9   float_r  s    r?   r  zTestInterp.<lambda>L  s    ")A,, rA   c                 "    t          | d          S rb  rJ   r  s    r?   r  zTestInterp.<lambda>M      -1%% rA   c                 "    t          d|           S rb  rn  r  s    r?   r  zTestInterp.<lambda>N  ro  rA   c                 H    t          | t          j        | d                    S )NrX   )rJ   r9   multiplyr  s    r?   r  zTestInterp.<lambda>O  s    -2;q"#5#566 rA   )rG   zcomplex-realzcomplex-imagzcomplex-both)paramsidsc                     |j         S )z( scale function used by the below tests )param)rh   requests     r?   sczTestInterp.scK  s     }rA   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 ri  rR   r   r   N)r	   r9   r'   rZ  rh   rx  s     r?   test_non_finite_any_nanz"TestInterp.test_non_finite_any_nanZ  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XrA   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 ri  r   r   rR   Nr	   r9   r'   rW  rZ  rz  s     r?   test_non_finite_infzTestInterp.test_non_finite_infa  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XrA   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 ri  rR   r   r   Nr}  rz  s     r?   test_non_finite_half_inf_xfz&TestInterp.test_non_finite_half_inf_xfj  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[\\\\\rA   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 ri  r   r   rR   Nr	   r9   r'   rW  rz  s     r?   test_non_finite_half_inf_xz%TestInterp.test_non_finite_half_inf_xu  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LrA   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 ri  r   rR   r   Nr  rz  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QrA   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   rR   r[   rV  r$  ra          @      @rW  r   rY  rh  r         @      ?rN   y              ?iLiViG   r8  r  r   im     iBi^  i)      @      ?y      $@       @      @      @y      @      @)y      @      ?r  y     !@      ?y      @      ?r  y      
@      
@y      @      @y      @      @rQ  r  )r9   r`  r   r'   rW  )	rh   r   r  rU  y0rX  rZ  r\  ri  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@@@@@rA   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   rR   r[   r$  r  )rR   ra   rR   r&  rN   r  ri  )	r9   r`  r   r   r'   r	   r   r  r  )rh   r   r  rU  r\  ri  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:../////rA   c                     t          j        ddd          }t          j        |          }t          t          j        t           j        ||          d           d S )Nr   r   g-C6?r   )r9   r:   sinr   r'   r  )rh   r\  ri  s      r?   test_if_len_x_is_smallz!TestInterp.test_if_len_x_is_small  sH    Yq"f%%VBZZBIbeR44c:::::rA   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  )r[   r   rZ   rN   )g      @r        !@g      @r   g      
@      @g      @rQ  r  r   r   rP   ra   rA  )r   r9   r'   r   r{   )rh   r   r\  ri  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@@@@@rA   N)r   r   r   rR  rn   rd  rf  rj  r5  fixturerx  r{  r~  r  r  r  r  r  r  r  r   rA   r?   rO  rO     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rA   rO  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          ej	        
                    ddg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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'(          d)                         Z'd* Z(d+ Z)d, Z*d- Z+ej	        
                    dd.d/g          ej	        
                    d0g d1          d2                         Z,d3S )4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                   d S )Nrx   ri  r   r   rh  r  rp   r   rR   nearestmethod)r9   r:   r	   
percentilerZ  r  s     r?   rn   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CCrA   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 rP   r   r  s     r?   r-  z0TestPercentile.test_fraction.<locals>.<listcomp>       ...Xa^^...rA   rx   r   rh  rz   rP   rp   rN   )rg   r9   r  r   r	   r  r   r  )rh   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)))))rA   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 )Nr[   Flinearr0  )r9   rf   r  )rh   r\  os      r?   test_apizTestPercentile.test_api  sn    GAJJ
aD$...
aD$x888GDMM
aD!UH55555rA   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!  ri  Dr   )r9   r   r   rd  r  rh   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;;;;;rA   c                     t          j        g dg dg dg dg dg          }t          t          j        |dd          g d           d S )Nr   )rN   rN   rZ   rp   r   r   )r9   r   r
   r  r  s     r?   test_2DzTestPercentile.test_2D  sg    Hiiiiiiiiiii	! " "
 	2=BQ777CCCCCrA   r  r   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  )r9   rK  NANr  testingr	   r  )rh   r  r  r>  s       r?   test_linear_nan_1Dz!TestPercentile.test_linear_nan_1D  s     j$dD9GGGm   	
RV,,,

	3955555rA   c                 *    g | ]}|t           j        fS r   )r9   r  )r,  int_types     r?   r-  zTestPercentile.<listcomp>  s/       "  ,   rA   r  r  input_dtypeexpected_dtyper  r  )	)inverted_cdfr  )averaged_inverted_cdf     ;@)closest_observationr  )interpolated_inverted_cdfr  )hazenr  )weibull   )r  r  )median_unbiasedr  )normal_unbiasedg      ;@c                 "   t          j        |          }t          j                    dk    rt          j        |t           j                  }t          j        g d|          }t          j        |d|          }t           j                            ||	                    |          d           |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!  r  r  r  )r  r  r  )r9   r  _get_promotion_statepromote_typesr  rK  r  r  r   r  r	   )rh   r  r  r  r  r  r	  s          r?   test_linear_interpolationz(TestPercentile.test_linear_interpolation
  sc   " .11"$$00-nbjIINj777{KKKsD888

&&N''112	7 	7 	7 <<<c!!
''
6(:(:(@"*MMMMM
''
6(:(:(@(*(=(=? ? ? ? ? J##BJv$6$6$<$&H^$<$<> > > > >rA   c                     t          t          j        t          j        d|          dd          d           t          t          j        t          j        d|          dd          d           d S )	Nr   r!  rp   lowerr  rN   higherr[   r	   r9   r  r:   rh   r  s     r?   test_lower_higherz TestPercentile.test_lower_higher1  s    R]29Ru#=#=#=r*13 3 345	7 	7 	7R]29Ru#=#=#=r*24 4 456	8 	8 	8 	8 	8rA   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  r&  r;  rR   rp   r[   r         @r  r  s     r?   test_midpointzTestPercentile.test_midpoint8  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	: 	: 	: 	: 	:rA   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  r[   1   rN   r  r  s     r?   test_nearestzTestPercentile.test_nearestC  s    R]29Ru#=#=#=r*35 5 567	9 	9 	9R]29Ru#=#=#=r*35 5 567	9 	9 	9 	9 	9rA   c                 `   t           j                            d          }t          j        |d          }t           j                            ||                                           t          j        |d          }t           j                            ||                                           d S )Nr[   rh  r   )r9   rb  r   r  r  r	   r  r  )rh   r  r	  s      r?   'test_linear_interpolation_extrapolationz6TestPercentile.test_linear_interpolation_extrapolationJ  s}    innQsC((

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

		22222rA   c                     t          j        d          dz  }t          t          j        |g d          g d           d S )Nrx   ri  )r   rh  rp   )r   r  r   )r9   r:   r	   r  r  s     r?   test_sequencezTestPercentile.test_sequenceS  s>    IaLL3R]1lll33^^^DDDDDrA   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 )NrQ  rZ   rN   )rJ  rp   rh  )g      @r  rI  )rP   rZ   rN   r[   r  )rx   r;  r   r   r   r   )      ?rK  rZ   )      @r  rz   )r  r   r   rR   rQ  r[   ry   rJ  rp   r  )rJ  rp   r  rZ   )rP   rN   r[   ry   )rP   rZ   r[   ry   rP   )rP   rZ   rN   ry   )rZ   rZ   r[   ry   r  r  r   r  )r9   r:   r{   r	   r  r   r  rE   )rh   r   r0r  s       r?   r  zTestPercentile.test_axisW  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rA   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 )NrQ  rZ   rN   rp   r  r   r   r   r  r   r   rK  r  r   rR   r  r   r  r  r  r   )r  r   )r   r   r  r   r!  r  r  r[   r  r   r  )r9   r:   r{   r	   r  r   isscalarr   rE   r   emptyr  )rh   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"rA   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 )
NrR   rP   8   r:  r  e   ra   rp   r  )r   re   r9   r  r  rg   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OrA   c                 P    t          t          j        g dd          d           d S )Nr   r   rR   )r	   r9   r  r   s    r?   test_percentile_listz#TestPercentile.test_percentile_list  s(    R]999a00!44444rA   c                    t          j        g d          }t          j        d          }d}t          j        |||           t	          t          j        ||          |           t          j        g dg dg          }t          j        d          }t          j        ||d|           t	          t          j        ||d          |           t          j        d	          }t          j        ||d
|           t	          t          j        ||d
          |           t          j        d                              dd          }t          j        g dg dg          }t          j        d          }t	          t          j        |dd|          |           t	          ||           t          j        g dg dg          }t          j        d          }t	          t          j        |dd
|          |           t	          ||           t          j        g dg dg          }t          j        d|j                  }t          j        |ddd|          }t	          ||           t	          ||           t          j        g dg dg          }t          j        d|j                  }t          j        |ddd
|          }t	          ||           t	          ||           d S )Nr   r  r  r   r  r   r  r   rZ   rP   rR   rQ  rZ   rN   )r   r   r   r   r  )rP   rN   r  )r  r  r  r  r  r   rR   rP   rZ   r  r!  r  r  )r   rN   rx   )rR   r[   r;  )	r9   r   rC   r  r	   r:   r{   r  r  )rh   r   r  r,  r  r  r  r   s           r?   test_percentile_outz"TestPercentile.test_percentile_out  s   HYYYHTNN
a""""R]1a((!,,,Hiiiii! " " HV
a****R]1aa000!444HV
a****R]1aa000!444IbMM!!!Q''X)))+;+;+;<==hvR]1hQC@@@"EEE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"rA   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   rR   rP   rp   r   r   )rR   rP   rR   )r   rP   rR   )r   rR   rR   rZ   )r   rR   rP   ra   rX   r^   r|  r  r  r   )rP   rR   rP   rR   )rP   r   rP   rR   )rP   r   rR   rR   )rP   r   rR   rP   )r9   r:   r{   r
   r  rE   r   rh   r\  s     r?   test_percentile_empty_dimz(TestPercentile.test_percentile_empty_dim  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(	* 	* 	* 	* 	*rA   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rP   rZ   rN   rR   rp   Foverwrite_inputr9   r   r  r	   ru   s     r?   test_percentile_no_overwritez+TestPercentile.test_percentile_no_overwrite  s    H\\\""
a"u5555Q..///H\\\""
a"Q../////rA   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@r[   )numr  r  )r9   r`  r  r:   r
   r  )rh   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DrA   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  rp   Tr   rj  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#(((((rA   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      r[  r   r  rb   r   ra   r   rt   rR   rr   rJ  r3  rQ   rj    rZ   r[   rz   r   Z   r   rR   rZ   rZ   rR   r|  rP   rZ   rR   rP   r  rP   rR   rR   rX   rR   rZ   rU   )r9   rb  normaldstackr	   r  moveaxisr   r   r:   r{   shuffleravelflattenrh   r  r   r\  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"==	? 	? 	? 	? 	?rA   c                 @   t          j        d          }t          t           j        t           j        |dd           t          t           j        t           j        |dd           t          t           j        t           j        |dd           t          t           j        t           j        |dd           t          t
          t           j        |dd           t          t
          t           j        |d	d           t          t
          t           j        |d
d           d S )Nr  r  rJ  )r   r>  r   r  rN   r   rN   rW   )ra   ra   )rZ   ra   )r9   rf   r   r   r  re   r  s     r?   test_extended_axis_invalidz)TestPercentile.test_extended_axis_invalid4  s    GM""blBM12DDDDblBM17bIIIIblBM11CCCCblBM16RHHHHj"-2FFFFj"-RHHHHj"-BGGGGGGrA   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  rz   Tr   r   rb   rR   rR   rz   r   r   rR   r[   rz   rR   r0  rZ   rR   rz   r   r  )r   r  rR   rR   rz   rR   rR   )rP   rR   rR   rz   rR   )rP   rR   r[   rz   rR   )r9   rf   r	   r  rE   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rA   r>  rz   rR   r   NrR   r0  rb   )r^   ra   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  r0  c              3   >   K   | ]}|v rd nj         |         V  dS rR   NrE   r,  r   	axis_normr\  s     r?   r  z3TestPercentile.test_keepdims_out.<locals>.<genexpr>d  N       L L89Q)^^L L L L L LrA   Tr   r   r  )
r9   rf   r   r6   r  rg   rE   r  r  r	   )rh   r>  r   	shape_outr  r  r3  r\  s         @@r?   test_keepdims_outz TestPercentile.test_keepdims_outS  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-----rA   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rN   r  r   r  r  r  r  rR   r   rP   )r9   rC   rf   r	   r  rh   r  r\  s      r?   test_outzTestPercentile.test_outm  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ErA   c           
          t          j        d          5  t          j        ddt                     t	          j        d          }t	          j        d          }t          j        |d<   t          t	          j	        |dd|	          |           t          t	          j	        |ddd
|          |           t	          j        d          }t          t	          j	        |dd|	          |           t          t	          j	        |ddd
|          |           t	          j        d          }t          t	          j	        |d|	          |           t          t	          j	        |dd
|          |           d d d            d S # 1 swxY w Y   d S )NTrp  rr  rs  r9  r  r  r   r  r  r  r  rR   r   )
ru  rv  rw  r  r9   rC   rf   rZ  r	   r  r:  s      r?   test_out_nanzTestPercentile.test_out_nanz  s   $D111 	A 	A#Hb.AAAAAfAdGq!QA666:::aAiQ???D D DAq!QA666:::aAiQ???D D DAq!333Q777a9!<<<aA A A	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   E FF
F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!  rP   r$  r   r   g333333?rZ   rN   r   rR   rR   rP   r  rs   rR   r  rV   r  r  )	r9   r:   r  rZ  r	   r  r   r{   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 	9rA   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  )rR   rP   rZ   r   r   g     X@r  r   )r5  r  re   r9   r  rZ  r`  )rh   r>  s     r?   
test_nan_qzTestPercentile.test_nan_q  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  r3  H   ra   rZ   rR   r   r<  )r9   r:   r  r  isnatr   r{   r
   rh   r  rC  ri   r>  s        r?   test_nat_basiczTestPercentile.test_nat_basic  s   
 Ia5)))#mAr""yE!!!!x}}mABx((yE!!!!x}}  """""IaU+++33B::#q&	mAr***28C==*>*>*>?????rA   N)-r   r   r   rn   r  r  r  r  r5  r6  r7  r9   	typecodesr  r  r  r  r  r  H_F_TYPE_CODESr  
TYPE_CODESr  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r#  r)  r7  r;  r=  r@  rB  rK  r   rA   r?   r  r    s       D D D* * *&6 6 6< < <D D D [Wbl7&;<<6 6 =<6 &(l<&@  J
3J
3J
3M2=9$BHSMM2:6	88N [m-=>OO[h
3	  	  	 
! 
!> >
! 
! PO>2 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' ' 'R* * *80 0 0E E E) ) )? ? ?@	H 	H 	HJ J J( [S1q!f+..[
 
 
  	 	. .	 	 /..F F FA A A$;9 ;9 ;9z	- 	- 	- [Ww&899[UKKK00@ @ 10 :9@ @ @rA   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         eej         ej        dd           ej        dddd                              d             Zd Ze
j                            de          e
j                            dg d          d                         Ze
j                            de          e
j                            dg d          d                         ZdS )TestQuantilec                     ||k    |z
  S r8   r   )rh   r   r  alphas       r?   r@  zTestQuantile.V  s    Q%rA   c                 |    g d}t          j        |d          }t           j                            |dd           d S )N)r   r#  r  g?g
ףp=
?rR   )maxulp)r9   quantiler  assert_array_max_ulp)rh   r   ri   s      r?   test_max_ulpzTestQuantile.test_max_ulp  sA    OOK4   	
''4':::::rA   c                    t          j        d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )Nrx   ri  r   r   rR   r  r   )r9   r:   r	   rU  r  s     r?   rn   zTestQuantile.test_basic  sn    IaLL3R[A&&+++R[A&&,,,R[C(($/////rA   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)r9   r   rU  r	   r  r  r
   )rh   ri   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.....rA   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?   r-  z.TestQuantile.test_fraction.<locals>.<listcomp>  r  rA   rx   r   rR   rz   rP   ri  r   rN   )
rg   r9   rU  r	   r  r   r  r   r  r:   )rh   r   r>  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DrA   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  )r9   r   r   rd  rU  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9rA   c                    t          j        g d          }|                                }t          j        t          j        d          |d           t          ||           |                                }|                                }t          j        t          j        d          |d           t          ||           d S )N)r   r  rm  ri  r   r  r  r  )r9   r   r   rU  r:   r
   r  )rh   p0r,  s      r?   r  z TestQuantile.test_no_p_overwrite6  s    X///00GGII
BIdOOQz::::1b!!!YY[[HHJJ
BIdOOQz::::1b!!!!!rA   r  r  c                 |    t          j        t          j        ddg|          dgd          }|j        |k    sJ d S )NrR   rP   r!  ri  r  r  )r9   rU  r   r  )rh   r  r>  s      r?   test_quantile_preserve_int_typez,TestQuantile.test_quantile_preserve_int_typeB  sM    k"(Aq6777#!*, , ,yE!!!!!!rA   r  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   rR   r  )r   rR   rR   rP   rP   rZ   rZ   rN   r[   r[   rR   rR   r;  r;  r;  rx   rx   rz   r  r  )r   r   r   r   )r9   r`  rU  r   r	   rd  )rh   r  ra  rU  s       r?   test_quantile_monotonicz$TestQuantile.test_quantile_monotonicH  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1rA   rZ   r  )	min_value	max_valueFu <7u <7~)allow_infinity	allow_nanrf  rg  )r  rE   elements)r  c                     t          j        ddd          }t          j        ||          }t          t          j        |          |           d S )Nr   rR   g{Gz?)r9   r:   rU  r	   rd  )rh   r  ra  rU  s       r?   test_quantile_monotonic_hypoz)TestQuantile.test_quantile_monotonic_hypoV  sH     Yq!T"";sB''RWX&&11111rA   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   rR   ri  )r9   r   rZ  rU  r  r	   )rh   ri   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1rA   rR  )r#  ri  g?c           
         t           j                            d          }d}|                    |          }t          j        |||          }|dv rFt          j        t          j        |                     |||                              d|z  k    sJ d S t          ||z            ||z  k    r;t          t          j        |                     |||                    dd           d S t          t          j        |                     |||                    dd	|z  t          j	        |d	|z
  g          z             d S )
N  f   r  )r  r  r   g+=)atolrR   )
r9   rb  default_rngrU  ra  r   r@  r  r   r  )rh   r  rR  rngr=   r  r   s          r?   %test_quantile_identification_equationz2TestQuantile.test_quantile_identification_equationg  s=    i##D))
 JJqMMK5000[  6"'$&&Au"5"56677#'AAAAAAU^^q5y((BGDFF1a$7$788!%HHHHHH BGDFF1a$7$788!URWeQY%7888: : : : : :rA   c           	         t           j                            d          }d}|                    |          }t          j        |||          }d}t	          t          j        ||z   ||          ||z              t	          t          j        ||z  ||          ||z             t          j        | d|z
  |           }|dk    r||z  t          ||z            k    s.t          j        ||z            t          ||z            dz   k    r't	          |t          j        ||d                     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 )Nrr  rs  r  g      +@rR   r  r  r  r  r  r  )r9   rb  ru  rU  r   r  round)rh   r  rR  rv  r=   r  r>  r   s           r?   'test_quantile_add_and_multiply_constantz4TestQuantile.test_quantile_add_and_multiply_constant  su    i##D))
 JJqMMK5000 	AE5@@@!a%HHHAE5@@@!a%HHH[!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DrA   N)r   r   r   r@  rW  rn   r\  r  r  r  r5  r6  r7  r9   rL  rc  quantile_methodsre  
hypothesisgivenr   r  stintegersfloatsrn  rp  rw  rz  r   rA   r?   rP  rP    s!            ; ; ;0 0 0/ / /E E E>: : :
" 
" 
" [Wbl<&@AA" " BA"
 [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 [X'788[Wooo66: : 76 98:8 [X'788[Wooo666E 6E 76 986E 6E 6ErA   rP  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   rR   )rk  rj  rf  rg  rh  ri  )t0t1ri   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 r8   rj  _lerp)rh   r  r  ri   r   l0l1s          r?   +test_linear_interpolation_formula_monotonicz4TestLerp.test_linear_interpolation_formula_monotonic  s     Yq!R  Yq!R  88qAvv8888882g1q5!!888888888888rA   )tri   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 r8   r  )rh   r  ri   r   s       r?   )test_linear_interpolation_formula_boundedz2TestLerp.test_linear_interpolation_formula_bounded  s     66	!Q**////a////////	!Q**////a////////rA   c                     t          j        ||dd|z
  z
            }t          j        ||d|z
            }t          ||           d S r?  )rj  r  r   )rh   r  ri   r   rX  rZ  s         r?   +test_linear_interpolation_formula_symmetricz4TestLerp.test_linear_interpolation_formula_symmetric  sL     yAqAE{++	!QA&&e$$$$$rA   c                     t          j        d          }t          j        d          }t          j        d          }t          j        |||          dk    sJ d S )NrP   r[   r#  g@)r9   r   rj  r  )rh   ri   r   r  s       r?   +test_linear_interpolation_formula_0d_inputsz4TestLerp.test_linear_interpolation_formula_0d_inputs  sN    HQKKHQKKHSMMyAq!!S((((((rA   N)r   r   r   r|  r}  r~  r  r  r  r  r  r   rA   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%) ) ) ) )rA   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 )NrR   rP   ry   rZ   ri  rj  r   r   rK  rj  r  rN   )6-¦?0?}r?g4?r   )r  r  r  )r  r  r  ra   )
r9   r   r:   r{   r	   medianr   r   r   rZ  )rh   a0r  r  ri   s        r?   rn   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\\&*****rA   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 )NrP   rZ   r   rR   ry   rz   rN   r[   rh  r   r  r   r  )r9   r   rb  randintr   r  rg   r   r
   r   r  )rh   a3ri   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	"$-----rA   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 )NrP   rZ   r   rR   ry   rz   rN   r[   Tr   ri  rj  )r  r   r  r3  r!  rY   r   )r   r  )r9   r   r:   r{   r   r  r   r  r  rb  r  r  )rh   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rA   c                     g d}t          t          j        |          d           |g}t          t          j        |          d           t          t          j        |d          |           d S )Nr   rP   r   r   )r   r9   r  r   )rh   r   r]  s      r?   rK  zTestMedian.test_array_like=  sg    IIBIaLL!,,,SBIbMM1---	"1---q11111rA   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 r8   )r9   rK  r  info)clsinput_arrayr  objs       r?   __new__z4TestMedian.test_subclass.<locals>.MySubClass.__new__H  s+    j--22377
rA   c                     dS )Nr   )rh   r   r  r  s       r?   r   z1TestMedian.test_subclass.<locals>.MySubClass.meanM  s    rrA   r8   )NNN)r   r   r   r  r   r   rA   r?   
MySubClassr  F  s<           
     rA   r  r   r  )r9   r  r	   r  )rh   r  ri   s      r?   r  zTestMedian.test_subclassD  sa    	 	 	 	 	 	 	 	 Jyyy!!RYq\\2&&&&&rA   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   rA   r?   
MySubclassr  W  r  rA   r  N)r9   r  r  r   r  r  )rh   r  r  rB  s       r?   test_subclass2zTestMedian.test_subclass2S  sq    	 	 	 	 	 	 	 	 Ibhsmm((4455!Z(((((((rA   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 )Nr9  r  r   r  r  rR   r   )r9   rC   rf   r	   r  r:  s      r?   r;  zTestMedian.test_out]  s    HTNNGFOORYq!+++Q///HTNNRYq!+++Q///HRLLRYqa(((!,,,,,rA   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 )NTrp  rr  rs  r9  r  r  r   r  r  rR   r   )
ru  rv  rw  r  r9   rC   rf   rZ  r	   r  r:  s      r?   r=  zTestMedian.test_out_nanf  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!  rP   r   r   rZ   rN   r   r?  r  rs   rR   r  rV   )r9   r:   r  rZ  r	   r  r{   r   r   s      r?   r@  zTestMedian.test_nan_behaviorr  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-----rA   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!  Trp  rr  rs  r   rP   rZ   )r  r  r   rR   )r9   r   r  ru  rv  rw  r  r	   r  rZ  r   ry  rC  )rh   ri   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  rP   )	r9   r:   r   r  r  r  r=  r  rZ  )rh   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9rA   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   rb   r   ra   r   rt   rR   rr   rQ   rj  )ra   r  r  r  r  rP   r  r  r  r  r  rU   )r9   rb  r  r  r	   r  r  r   r   r:   r{   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 	7rA   c                    t          j        d          }t          t           j        t           j        |d           t          t           j        t           j        |d           t          t           j        t           j        |d           t          t           j        t           j        |d           t          t
          t           j        |d           d S )Nr  r  r   r!  rN   r"  rW   )r9   rf   r   r   r  re   r  s     r?   r#  z%TestMedian.test_extended_axis_invalid  s    GM""blBIqr::::blBIqw????blBIqq9999blBIqv>>>>j")QV<<<<<<rA   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   rb   r%  r   r&  r0  r'  r  r  r(  )r9   rf   r	   r  rE   r  s     r?   r)  zTestMedian.test_keepdims  s   GM""RYqtd;;;A!	# 	# 	#RYqv===C"	$ 	$ 	$RYqv===C!	# 	# 	#RYqtd;;;A"	$ 	$ 	$RYq|dCCCI!	# 	# 	#RYqy4@@@F!	# 	# 	# 	# 	#rA   r   r*  r+  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  r0  c              3   >   K   | ]}|v rd nj         |         V  dS r0  r1  r2  s     r?   r  z/TestMedian.test_keepdims_out.<locals>.<genexpr>  r4  rA   Tr5  )
r9   rf   r   r6   r  rg   r  r  r	   rE   )rh   r   r6  r  r  r3  r\  s        @@r?   r7  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-----rA   r  zm8[s]rC  rD  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 rF  )	r9   r:   r  r  rI  r  r   r{   r
   rJ  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==*>*>*>?????rA   N)r   r   r   rn   r  r  rK  r  r5  r6  r7  r9   rZ  r  r;  r=  r@  r  r   r  r  r  r#  r)  r7  r  r   rA   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@ @ @rA   r  c                       e Zd Zd Zd ZdS )TestAdd_newdoc_ufuncc                     t          t          t          dd           t          t          t          t          j        d           d S )NrP   blah)r   rd  r   re   r9   r;   r   s    r?   test_ufunc_argz#TestAdd_newdoc_ufunc.test_ufunc_arg  s4    i!11f===j"2BFFCCCCCrA   c                 R    t          t          t          t          j        d           d S )NrZ   )r   rd  r   r9   r;   r   s    r?   test_string_argz$TestAdd_newdoc_ufunc.test_string_arg  s    i!1261=====rA   N)r   r   r   r  r  r   rA   r?   r  r    s5        D D D> > > > >rA   r  c                      e Zd Zej                            ej        j        dk    d          ej        	                    e
d          d                         Zej                            ej        j        dk    d          d             ZdS )TestAdd_newdocrP   Python running -OOr  PyPy does not modify tp_docc                 j   d}t          t          j        j        j        j        d t          |                   |           t          t          t          j        j        j	        j                  dk               t          t          t          j
        j        j        j                  dk               d S )Nz"Current flat index into the array.r~  )r	   r9   coreflatiterindexrG  rC  r   ufuncidentityrX  index_tricksmgrid)rh   r  s     r?   test_add_doczTestAdd_newdoc.test_add_doc"  s     3RW%+3ISXXI>DDDBGM*233c9:::BF'-566<=====rA   c                     t           j        j        j        j        }t          j        ddd           |t           j        j        j        j        k    sJ d S )Nz
numpy.corer  )r  zbad docstring)r9   r  r  r  rG  
add_newdoc)rh   prev_docs     r?   test_errors_are_ignoredz&TestAdd_newdoc.test_errors_are_ignored+  sK    7#)1 	lJ0JKKK27+19999999rA   N)r   r   r   r5  r6  r  r  r   r  r  r   r  r  r   rA   r?   r  r     s        [	*a/8LMM[w'DEE> > FE NM> [	*a/8LMM: : NM: : :rA   r  c                      e Zd Zej                            ej        j        dk    d          ej                            e	d          d                         Z
ej                            ej        j        dk    d          d             ZdS )TestAddDocstringrP   r  r  r  c                     t          j        t           j        j        t           j        j        j                   d }t          j        ||j                   d S )Nc                      dS 	docstringNr   r   rA   r?   funcz6TestAddDocstring.test_add_same_docstring.<locals>.func=      FrA   )r9   add_docstringr  flatrG  rh   r  s     r?   test_add_same_docstringz(TestAddDocstring.test_add_same_docstring7  sN     	"*/*ABBB	 	 	 	t|,,,,,rA   c                 0   t          t                    5  t          j        t          j        j        d           d d d            n# 1 swxY w Y   d }t          t                    5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nzdifferent docstringc                      dS r  r   r   rA   r?   r  z=TestAddDocstring.test_different_docstring_fails.<locals>.funcI  r  rA   )r   r  r9   r  r  r  r  s     r?   test_different_docstring_failsz/TestAddDocstring.test_different_docstring_failsC  s'    <(( 	E 	ERZ_.CDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E	 	 	 <(( 	: 	:T#8999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s#   %AA
A
(BBBN)r   r   r   r5  r6  r  r  r   r  r   r  r  r   rA   r?   r  r  4  s         [	*a/8LMM[(EFF- - GF NM- [	*a/8LMM
: 
: NM
: 
: 
:rA   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)r[   rZ   ry   rP   rR   r!  )r9   r   sort_complexrd  r  r	   r  )rh   type_intype_outri   r	  r  s         r?   test_sort_realzTestSortComplex.test_sort_realS  sp     H___G444##71::$$X..VX&&&V\8>22222rA   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  )r9   r   r  r	   r  )rh   ri   r  r	  s       r?   test_sort_complexz!TestSortComplex.test_sort_complexc  sq    H555SAAA8<<<CHHH##VX&&&V\8>22222rA   N)r   r   r   r5  r6  r7  r  r  r   rA   r?   r  r  Q  sc        [0 3
 3
 3
  3 3 33 3 3 3 3rA   r  )r   )r   r   )r  ru  r  r*  	fractionsr   r  r5  r|  hypothesis.extra.numpyr   hypothesis.strategies
strategiesr~  	functoolsr   numpyr9   r   numpy.testingr   r	   r
   r   r   r   r   r   r   r   r   r   r   numpy.lib.function_baserX  function_baserj  numpy.randomr   	numpy.libr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   numpy.core.numericr6   r@   rJ   rL   r   r   r   r   r   r9  rl  r  r  r  r  r  r  r  r  rC  r  r  r  r  r  r  r  r  r	  r6  r7  rL  r#  r6  rG  rM  rU  r]  r  r  r  r  r  r  r  rO  r  r{  rP  r  r  r  r  r  r  r   rA   r?   <module>r     s     



              ) ) ) ) ) ) " " " " " "                                             
 & % % % % % % % %                                                                          4 3 3 3 3 3    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: : : : : : : :": : : : : : : :$ 3  3  3  3  3  3  3  3FK4 K4 K4 K4 K4 K4 K4 K4Z;$ ;$ ;$ ;$ ;$ ;$ ;$ ;$|l0 l0 l0 l0 l0 l0 l0 l0^	; 	; 	; 	; 	; 	; 	; 	;	: 	: 	: 	: 	: 	: 	: 	:@ @ @ @ @ @ @ @; ; ; ; ; ; ; ;.E E E E E E E E(J J J J J J J J6I? I? I? I? I? I? I? I?Xr> r> r> r> r> r> r> r>j@% @% @% @% @% @% @% @%F' ' ' ' ' ' ' '4>% >% >% >% >% >% >% >%B$" $" $" $" $" $" $" $"R      d3 d3 d3 d3 d3 d3 d3 d3N& & & & & & & &R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;- ;- ;- ;- ;- ;- ;- ;-|# # # # # # # #"	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       &B B B B B B B B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] ] ] ] ] ] ] ]@A A A A A A A ADc@ c@ c@ c@ c@ c@ c@ c@L   NE NE NE NE NE NE NE NEb/) /) /) /) /) /) /) /)da@ a@ a@ a@ a@ a@ a@ a@H	> > > > > > > >: : : : : : : :(: : : : : : : ::3 3 3 3 3 3 3 3 3 3rA   