
    .|h                       d dl Z d dlZd dlZd dlmZ d dl mZ d dlmZ d dlZ	d dl
mZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%Z%d Z&d Z'd Z(d Z)d Z*ddZ+d Z,d Z-d Z.d Z/d Z0d Z1d Z2ddZ3d Z4d Z5d Z6d Z7d  Z8d! Z9d" Z:d# Z;d$ Z<d% Z=d& Z>dd'Z?dd(Z@dd)ZAd* ZBd+ ZCd, ZDd- ZEd. ZFd/ ZGd0 ZHd1 ZIdd2ZJd3 ZKdd4ZLd5 ZMdd6ZNdd7ZOdd8ZPd9 ZQd: ZRd; ZSdd<ZTdd=ZUd> ZVdd?ZWdd@ZXddAZYdB ZZddCZ[dD Z\ddEZ]ddFZ^ddGZ_dH Z`ddIZadJ ZbddKZcdL ZdddMZeddNZfddOZgdP ZhddQZiddRZjdS ZkdT ZlddUZmddVZnddWZodX ZpdY ZqdZ Zre	j                  fd[Ztd\ Zud] Zvd^ Zwd_ Zxd` Zyda Zzdb Z{dc Z|dd Z}de Z~ddfZddgZdh Zdi Zdj ZddkZdl Zdm Zdn Zdo Zdp Zdq Zdr ZddsZdt Zdu Zdv Zdw ZddxZddyZdz Zd{ Zd| Zd} Zd~ ZddZd Zd ZddZd ZddZd ZddZd ZddZddZddZd ZddZddZddZ G d dee      Z G d de      Z G d de      Zedk(  r e%jX                          yy)    N)partial)product)dedent)jitnjittypeof)types)ListDict)numpy_version)TypingError)	IS_32BITS)pysignaturecross2d)TestCaseMemoryLeakMixin
needs_blasrun_in_subprocessskip_if_numpy_2
IS_NUMPY_2IS_MACOS_ARM64c                 ,    t        j                  |       S N)npsincxs    \/var/www/html/test/engine/venv/lib/python3.12/site-packages/numba/tests/test_np_functions.pyr   r          771:    c                 ,    t        j                  |       S r   r   angler   s    r   angle1r%          88A;r!   c                 .    t        j                  | |      S r   r#   )r   degs     r   angle2r)   #   s    88Asr!   c                 .    t        j                  | |      S r   )r   array_equalabs     r   r+   r+   '       >>!Qr!   c                 .    t        j                  | |      S r   r   intersect1dr,   s     r   intersect1d_2r3   +   r/   r!   c                 0    t        j                  | ||      S r   r1   r-   r.   assume_uniques      r   intersect1d_3r7   /   s    >>!Q..r!   c                 2    t        j                  | ||      S Naxis)r   append)arrvaluesr;   s      r   r<   r<   3   s    99S&t,,r!   c                 0    t        j                  | |      S r9   )r   count_nonzero)r=   r;   s     r   r@   r@   7   s    Cd++r!   c                 .    t        j                  | |      S r   )r   delete)r=   objs     r   rB   rB   ;   s    99S#r!   c                 ,    t        j                  |       S r   r   diffr-   s    r   diff1rH   ?   r    r!   c                 .    t        j                  | |      S r   rE   )r-   ns     r   diff2rK   C       771a=r!   c                 ,    t        j                  |       S r   r   bincountrG   s    r   	bincount1rP   G       ;;q>r!   c                 0    t        j                  | |      S )NweightsrN   )r-   ws     r   	bincount2rV   K   s    ;;q!$$r!   c                 0    t        j                  | ||      S r   rN   )r-   rU   	minlengths      r   	bincount3rY   O   s    ;;q!Y''r!   c                 .    t        j                  | |      S r   r   searchsortedr-   vs     r   r\   r\   S       ??1a  r!   c                 2    t        j                  | |d      S )Nleftsider[   r]   s     r   searchsorted_leftrd   W   s    ??1af--r!   c                 2    t        j                  | |d      S )Nrightrb   r[   r]   s     r   searchsorted_rightrg   [   s    ??1ag..r!   c                  &    t        j                  |  S r   )r   digitizeargss    r   ri   ri   _   s    ;;r!   c                  &    t        j                  |  S r   )r   	histogramrj   s    r   rm   rm   c   s    <<r!   c                  *    t        j                         S r   )r   MachArrj   s    r   macharrp   g   s    99;r!   c                 ,    t        j                  |       S r   )r   	iscomplexr   s    r   rr   rr   k       <<?r!   c                 ,    t        j                  |       S r   )r   iscomplexobjr   s    r   ru   ru   o       ??1r!   c                 ,    t        j                  |       S r   )r   isscalarr   s    r   rx   rx   s   rQ   r!   c                 ,    t        j                  |       S r   )r   isrealr   s    r   rz   rz   w       99Q<r!   c                 ,    t        j                  |       S r   )r   	isrealobjr   s    r   r}   r}   {   rs   r!   c                 .    t        j                  | |      S r   )r   isneginfr   outs     r   r   r          ;;q#r!   c                 .    t        j                  | |      S r   )r   isposinfr   s     r   r   r      r   r!   c                 4    t        j                  | ||||      S r   )r   iscloser-   r.   rtolatol	equal_nans        r   r   r      s    ::aD$	22r!   c                 ,    t        j                  |       S r   )r   isnatr   s    r   r   r      r&   r!   c                  &    t        j                  |  S r   )r   iinforj   s    r   r   r          88T?r!   c                  &    t        j                  |  S r   )r   finforj   s    r   r   r      r   r!   c                  :    t        j                  |  j                  S r   )r   r   rp   rj   s    r   finfo_macharr      s    88T?!!!r!   c                 ,    t        j                  |       S r   r   fliplrrG   s    r   r   r      r{   r!   c                 ,    t        j                  |       S r   r   flipudrG   s    r   r   r      r{   r!   c                 ,    t        j                  |       S r   )r   fliprG   s    r   r   r      r    r!   c                 .    t        j                  | |      S r   r   logspacestartstops     r   	logspace2r      s    ;;ud##r!   c                 2    t        j                  | ||      S Nnumr   r   r   r   s      r   	logspace3r      s    ;;ud,,r!   c                 .    t        j                  | |      S r   r   	geomspacer   s     r   
geomspace2r      s    <<t$$r!   c                 2    t        j                  | ||      S r   r   r   s      r   
geomspace3r      s    <<t--r!   c                 ,    t        j                  |       S r   r   rot90rG   s    r   r   r      r&   r!   c                 .    t        j                  | |      S r   r   )r-   ks     r   rot90_kr          88Aq>r!   c                 2    t        j                  | ||      S r9   )r   array_splitr-   indicesr;   s      r   r   r      s    >>!W400r!   c                 2    t        j                  | ||      S r9   )r   splitr   s      r   r   r      s    88AwT**r!   c                 .    t        j                  | |      S r   )r   vsplitr-   
ind_or_secs     r   r   r          99Q
##r!   c                 .    t        j                  | |      S r   )r   hsplitr   s     r   r   r      r   r!   c                 .    t        j                  | |      S r   )r   dsplitr   s     r   r   r      r   r!   c                 2    t        j                  | ||      S Nmode)r   	correlater-   r^   r   s      r   r   r      s    <<14((r!   c                 2    t        j                  | ||      S r   )r   convolver   s      r   r   r      s    ;;q!$''r!   c                 ,    t        j                  |       S r   r   triNs    r   tri_nr      s    66!9r!   c                 .    t        j                  | |      S r   r   r   Ms     r   tri_n_mr          66!Q<r!   c                 .    t        j                  | |      S r   r   r   r   s     r   tri_n_kr      r   r!   c                 0    t        j                  | ||      S r   r   r   r   r   s      r   	tri_n_m_kr      s    66!Q?r!   c                 ,    t        j                  |       S r   r   trilms    r   tril_mr      r    r!   c                 .    t        j                  | |      S r   r   r   r   s     r   tril_m_kr      rL   r!   c                 ,    t        j                  |       S r   r   tril_indicesrJ   s    r   tril_indices_nr      rv   r!   c                 .    t        j                  | |      S r   r   rJ   r   s     r   tril_indices_n_kr      r_   r!   c                 0    t        j                  | |      S Nr   r   rJ   r   s     r   tril_indices_n_mr          ??1""r!   c                 0    t        j                  | ||      S r   r   rJ   r   r   s      r   tril_indices_n_k_mr          ??1a##r!   c                 ,    t        j                  |       S r   r   tril_indices_fromr=   s    r   tril_indices_from_arrr         $$r!   c                 .    t        j                  | |      S r   r   r=   r   s     r   tril_indices_from_arr_kr         Q''r!   c                 ,    t        j                  |       S r   r   triur   s    r   triu_mr    r    r!   c                 .    t        j                  | |      S r   r  r   s     r   triu_m_kr    rL   r!   c                 ,    t        j                  |       S r   r   triu_indicesr   s    r   triu_indices_nr    rv   r!   c                 .    t        j                  | |      S r   r	  r   s     r   triu_indices_n_kr    r_   r!   c                 0    t        j                  | |      S r   r	  r   s     r   triu_indices_n_mr    r   r!   c                 0    t        j                  | ||      S r   r	  r   s      r   triu_indices_n_k_mr    r   r!   c                 ,    t        j                  |       S r   r   triu_indices_fromr   s    r   triu_indices_from_arrr  #  r   r!   c                 .    t        j                  | |      S r   r  r   s     r   triu_indices_from_arr_kr  '  r  r!   c                 0    t        j                  | ||      S r   )r   vanderr   r   
increasings      r   r  r  +  s    99Q:&&r!   c                 .    t        j                  | |      S r   )r   	partitionr-   kths     r   r  r  /  s    <<3r!   c                 .    t        j                  | |      S r   )r   argpartitionr  s     r   r!  r!  3  s    ??1c""r!   c                 4    t        j                  | ||||      S r   )r   cov)r   yrowvarbiasddofs        r   r#  r#  7  s    66!Qd++r!   c                 0    t        j                  | ||      S r   )r   corrcoefr   r$  r%  s      r   r)  r)  ;  s    ;;q!V$$r!   c                 0    t        j                  | ||      S r   )r   ediff1d)aryto_endto_begins      r   r,  r,  ?  s    ::c68,,r!   c                 .    t        j                  | |      S r   )r   roll)r-   shifts     r   r1  r1  C  s    771er!   c                 ,    t        j                  |       S r   r   asarrayrG   s    r   r5  r5  G      ::a=r!   c                 0    t        j                  | |      S Ndtyper4  r-   r:  s     r   asarray_kwsr<  K  s    ::au%%r!   c                 0    t        j                  | |      S r8  r   asfarrayr;  s     r   r?  r?  O  s    ;;q&&r!   c                 ,    t        j                  |       S r   r>  rG   s    r   asfarray_default_kwargrA  S  rQ   r!   c                 .    t        j                  | |      S r   )r   extract	conditionr=   s     r   rC  rC  W  s    ::i%%r!   c                 ,    t        j                  |       S r   r   trapzr$  s    r   np_trapzrJ  [  r&   r!   c                 .    t        j                  | |      S r   rG  r$  r   s     r   
np_trapz_xrM  _  r   r!   c                 0    t        j                  | |      S NdxrG  r$  rQ  s     r   np_trapz_dxrS  c  s    88A"r!   c                 0    t        j                  | ||      S r   rG  r$  r   rQ  s      r   np_trapz_x_dxrV  g  s    88Aq"r!   c                 ,    t        j                  |       S r   r   	trapezoidrI  s    r   np_trapezoidrZ  k  rs   r!   c                 .    t        j                  | |      S r   rX  rL  s     r   np_trapezoid_xr\  o      <<1r!   c                 0    t        j                  | |      S rO  rX  rR  s     r   np_trapezoid_dxr_  s  s    <<b!!r!   c                 0    t        j                  | ||      S r   rX  rU  s      r   np_trapezoid_x_dxra  w  s    <<1b!!r!   c                 4    t        j                  | ||||      S r   )r   allcloser   s        r   np_allcloserd  {  s    ;;q!T433r!   c                 2    t        j                  | ||      S )Nr;   rT   )r   average)r-   r;   rT   s      r   
np_averagerh    s    ::adG44r!   c                 0    t        j                  | ||      S r   )r   interpr   xpfps      r   rj  rj    s    99QBr!   c                 .    t        j                  | |      S r   )r   repeatr-   repeatss     r   	np_repeatrr    s    99Q  r!   c                 J    t        j                  |       j                  |      S r   )r   r5  ro  rp  s     r   array_repeatrt    s    ::a=((r!   c                 2    t        j                  | ||      S )N)defaultr   select)condlist
choicelistrv  s      r   	np_selectr{    s    99Xz7;;r!   c                 .    t        j                  | |      S r   rw  )ry  rz  s     r   np_select_defaultsr}    s    99Xz**r!   c                 ,    t        j                  |       S r   )r   bartlettr   s    r   np_bartlettr    rQ   r!   c                 ,    t        j                  |       S r   )r   blackmanr  s    r   np_blackmanr    rQ   r!   c                 ,    t        j                  |       S r   )r   hammingr  s    r   
np_hammingr    r6  r!   c                 ,    t        j                  |       S r   )r   hanningr  s    r   
np_hanningr    r6  r!   c                 .    t        j                  | |      S r   )r   kaiser)r   betas     r   	np_kaiserr    s    99Qr!   c                 .    t        j                  | |      S r   )r   crossr,   s     r   np_crossr    r   r!   c                 .    t        j                  | |      S r   )r   
trim_zeros)r-   trims     r   np_trim_zerosr    s    ==D!!r!   c                     t        | |      S r   r   r,   s     r   
nb_cross2dr    s    1a=r!   c                 ,    t        j                  |       S r   r   rG   s    r   flip_lrr    r{   r!   c                 ,    t        j                  |       S r   r   rG   s    r   flip_udr    r{   r!   c                 .    t        j                  | |      S r   )r   union1dr,   s     r   
np_union1dr    s    ::a?r!   c                 .    t        j                  | |      S r   )r   asarray_chkfiniter;  s     r   np_asarray_chkfiniter    s    5))r!   c                 4    t        j                  | |||      S Nperiodr   unwrap)pdiscontr;   r  s       r   r  r    s    99Qf55r!   c                 ,    t        j                  |       S r   r  )r  s    r   unwrap1r    r{   r!   c                 0    t        j                  | |      S r  r  )r  r  s     r   unwrap13r    s    99Qv&&r!   c                 2    t        j                  | ||      S )Nr  r  r  )r  r  r  s      r   	unwrap123r    s    99Qvw77r!   c                 
    || v S r    )r-   keys     r   array_containsr    s    !8Or!   c                 0    t        j                  | ||      S r   )r   swapaxes)r-   a1a2s      r   r  r    s    ;;q"b!!r!   c                 2    t        j                  | ||      S )Ncopynan)r   
nan_to_num)Xr  r  s      r   r  r    s    ==3//r!   c                 ,    t        j                  |       S r   )r   r   )
dimensionss    r   
np_indicesr    s    ::j!!r!   c                 ,    t        j                  |       S r   r   diagflat)r^   s    r   	diagflat1r    rQ   r!   c                 .    t        j                  | |      S r   r  )r^   r   s     r   	diagflat2r        ;;q!r!   c                 .    t        j                  | |      S r   r   setxor1dr,   s     r   np_setxor1d_2r    r  r!   c                 0    t        j                  | ||      S r   r  r5   s      r   np_setxor1d_3r    s    ;;q!]++r!   c                 .    t        j                  | |      S r   r   	setdiff1dr,   s     r   np_setdiff1d_2r    r]  r!   c                 0    t        j                  | ||      S r   r  r5   s      r   np_setdiff1d_3r    s    <<1m,,r!   c                 .    t        j                  | |      S r   r   in1dr,   s     r   	np_in1d_2r    rL   r!   c                 2    t        j                  | ||      S Nr6   r  r5   s      r   
np_in1d_3ar        771a}55r!   c                 2    t        j                  | ||      S Ninvertr  r-   r.   r  s      r   
np_in1d_3br        771a''r!   c                 2    t        j                  | |||      S r   r  r-   r.   r6   r  s       r   	np_in1d_4r        771a//r!   c                 .    t        j                  | |      S r   r   isinr,   s     r   	np_isin_2r    rL   r!   c                 2    t        j                  | ||      S r  r  r5   s      r   
np_isin_3ar    r  r!   c                 2    t        j                  | ||      S r  r  r  s      r   
np_isin_3br    r  r!   c                 2    t        j                  | |||      S r   r  r  s       r   	np_isin_4r    r  r!   c                       e Zd ZdZ fdZ	 	 dd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. Z0d/ Z1d0 Z2d1 Z3d2 Z4dd3Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>e?d=        Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIddGZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZdX Z[dY Z\dZ Z]d[ Z^d\ Z_d] Z`d^ Zad_ Zbd` Zcda Zddb Zedc Zfdd Zgde Zhdf Zidg Zjdh Zkdi Zldj Zmdk Zneodl        Zpdm Zqeodn        Zreodo        Zseodp        Zteodq        Zudr Zveods        Zweodt        Zxeodu        Zyeodv        Zzdw Z{dx Z|dy Z}dz Z~d{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej4                  ed      d        ZefdZ ej4                  ed      d        ZefdZ ej4                  ed      d        Z ejF                  d      efd       Z ej4                  ed      d        ZefdZ ej4                  ed      d        ZefdZ ej4                  ed      d        ZefdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ejt                  exr ed      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed        Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Ze?dل        Zdڄ Zdۄ Zd܄ Ze?d݄        Zdބ Zd߄ Zd Ze?d        Zd Zd Zd Zd Zd Ze?d        Zd Zd Zd Zd Zd Zd Z xZS )TestNPFunctionsz,
    Tests for various Numpy functions.
    c                 r    t         t        |           t        j                  j                  d      | _        y )N*   )superr  setUpr   randomRandomStaternd)self	__class__s    r   r  zTestNPFunctions.setUp$  s&    ot*,99((,r!   c           
      z   t        ||      D ]  \  }	}
|dgx}}t        ||      D ]  \  }} t        |	f|z         |      } ||
g| } ||
g| }	 |	j                  }|t        j
                  t        j                  fv rdnd}d|
d|} | j                  ||f||||d|   y# t        $ r |	}Y Yw xY w)aC  
        Runs tests for a unary function operating in the numerical real space.

        Parameters
        ----------
        pyfunc : a python function definition holding that calls the numpy
                 functions to be tested.
        x_types: the types of the values being tested, see numba.types
        x_values: the numerical values of the values to be tested
        func_extra_types: the types of additional arguments to the numpy
                          function
        func_extra_args:  additional arguments to the numpy function
        ignore_sign_on_zero: boolean as to whether to allow zero values
        with incorrect signs to be considered equal
        prec: the required precision match, see assertPreciseEqual

        Notes:
        ------
        x_types and x_values must have the same length

        Nr  singledoublez
for input z with prec )precmsgignore_sign_on_zeroabs_tol)zipr   r:  AttributeErrorr	   float32	complex64assertPreciseEqual)r  pyfuncx_typesx_valuesfunc_extra_typesfunc_extra_argsr  r  kwargstxvxxtypesxargscfuncgotexpectedscaltyr  r  s                      r   	run_unaryzTestNPFunctions.run_unary(  s   0 '8, 	CFB&68T9 ?!$%5!G C-bUV^-f5B''!"-u- XXF "emmU__%EE !%  68>'''X C-1,/<O07	C <B	CC	C &  F s   B,,B:9B:c                 X    ddt          fd}g d}t        j                  t        j                  gt	        |      dz  z  } |||       t        j                  |t
        j                        g}|D cg c]  }t        |       }} |||       g d}t        j                  t        j                  gt	        |      dz  z  } |||d       t        j                  |t
        j                        g}|D cg c]  }t        |       }} |||d       y	c c}w c c}w )
zv
        Tests the sinc() function.
        This test is purely to assert numerical computations are correct.
        Tepsc                 6     j                   | |fd| y )N)r  r  )r  )r  r  r  isozr
  r  tols      r   checkz(TestNPFunctions.test_sinc.<locals>.checkq  s)    DNN67H %/3S%#%r!   )
      ?                           ?         g#B;g#B   r9  )      ?                                      r*                ?y                    ?                            ?      ?                  @      @            y#B;        y#B        y        #B;y        #B)ulpsN)
r   r	   r  float64lenr   arrayr   r  
complex128)r  r  r  r  r^   r  r
  r  s   `    @@@r   	test_sinczTestNPFunctions.test_sincU  s     	% I==%--0CMQ4FGgx  HHXRZZ89&./6!9//gx 
 ??E$4$45X!9KLgxa( HHXR]];<&./6!9//gxa( 0 0s   =D"D'c                    t         } t        d      |      }| j                  t              5 } |d       d d d        | j	                  dt        j                               | j                          y # 1 sw Y   ?xY w)NTnopythonstrz+Argument "x" must be a Number or array-like)r   r   assertRaisesr   assertInr;  	exceptiondisable_leak_checkr  r
  r  raisess       r   test_sinc_exceptionsz$TestNPFunctions.test_sinc_exceptions  so    "T"6*{+ 	v%L	C&**+	- 	!	 	   	A55A>c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3   t  K   t        j                  dd      } d}| |f t        j                  d      }d}||f t        j                  dg      }d}d}||f ||f t        j                  g       }||f t        j                  ddg      }|df ||f t         j                  j                  d       t         j                  j                  d      }	t         j                  j                  d       t         j                  j                         }
|	d	   }|	|
f |	|f |	j                  t         j                        }||d	   f ||
f t         j                  j                  d       t         j                  j                  dd
t         j                        }|df |df y w)N
   2            TFr'  r      )sizer:  r%     )r   aranger5  r5  r  seedrandviewr6  randintuint8)a_0k_0a_1k_1single_val_ak_ink_out	empty_arrbool_arr	float_arrrand_k	present_k
complx_arruint_arrs                 r   arrsz+TestNPFunctions.test_contains.<locals>.arrs  s    ))B#CCs(N))A,CCs(N::rd+LDE$$%%

2IU"" xxu.HD. C-IINN1		r*IIINN1YY^^%F!!IV##Y&&"6Jjm++f$$IINN1yy(("BHH(EHA+B,s   F6F8Tr9  )r  r   r	  )r  rb  r
  r  r=   r  r  receiveds           r   test_containszTestNPFunctions.test_contains  s\    +	Z  "T"6* 	8HCc3'HS#H##Hh7		8r!   c                 @    t         t         fd}g d}t        j                  t        j                  gt        |      dz  dz   z  } |||       t        j                  |t        j                        g}|D cg c]  }t        |       }} |||       g d}t        j                  t        j                  gt        |      dz  dz   z  } |||       t        j                  |      }t        j                  t        j                  g} |||       yc c}w )zw
        Tests the angle() function.
        This test is purely to assert numerical computations are correct.
        c                     j                  | |       ddg}t        j                  fgt        |      z  }j                  | |||       y )NTF)r  r  )r  r	   bool_r4  )r  r  xtra_values
xtra_typespyfunc1pyfunc2r  s       r   r  z)TestNPFunctions.test_angle.<locals>.check  sR    NN7GX6"H-K ;;.)C,<<JNN7GX,6+6  9r!   )r  r   r!  r"  r#  r$  r%  r&  r'     r9  )r(  r)  r*  r*  r+  y             r,  r-  r.  r/  r0  r1  N)r%   r)   r	   r  r3  r4  r   r5  r   r  r6  )r  r  r  r  r^   rl  rm  s   `    @@r   
test_anglezTestNPFunctions.test_angle  s    
 	9 :==%--0CMQ4F4JKgx  HHXRZZ89&./6!9//gx A??E$4$45X!9Ka9OPgx  88H%??E$4$45gx  0s    Dc                     d }|}g d}g d}t        ||      D ]Q  \  }}t        j                  |g|      } t        d      |      } ||      }	 ||      }
| j	                  |	|
       S y )Nc                 D    t        j                  |       }|j                  S r   )r   r$   r:  )r   rs     r   numba_anglez;TestNPFunctions.test_angle_return_type.<locals>.numba_angle  s    A77Nr!   )r  r   r(  r1  )f4f8c8c16r9  Tr9  )r  r   r5  r   assertEqual)r  rs  r
  r  r  valtypr   r  r  r  s              r   test_angle_return_typez&TestNPFunctions.test_angle_return_type  sw    	 .+Hg. 	,HC#c*A&C&v.EayH(CXs+	,r!   c                    t         } t        d      |      }| j                  t              5 } |d       d d d        | j	                  dt        j                               | j                          y # 1 sw Y   ?xY w)NTr9  helloz0Argument "z" must be a complex or Array[complex])r%   r   r<  r   r=  r;  r>  r?  r@  s       r   test_angle_exceptionsz%TestNPFunctions.test_angle_exceptions  so    "T"6*{+ 	v'N	H&**+	- 	!	 	rC  c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   t        j                  g       t        j                  g       f t        j                  ddg      t        j                  ddg      f t        j                  g       t        j                  dg      f t        j                  d      j                  dd      } d| d   d<   t        j                  d      j                  dd      | f | | f d d d d	 d
 d d d y w)Nrn  r'  rF  r%     rn  r'     r  r'  r'  )r  r'  )TTTF)Tr'  )Trn  )Fr   r   r5  rN  reshaper   s    r   arraysz0TestNPFunctions.test_array_equal.<locals>.arrays  s     ((2,,,((Aq6"BHHaV$444((2,!--		"%%a+AAaDG))B-''1-q00Q$J&&JJMMN   DD	Tr9  )r+   r   r	  r  r  r
  r  r=   rC   r  r  s           r   test_array_equalz TestNPFunctions.test_array_equal  s[    	" "T"6* 	3HCc3'HS/C##Hc2	3r!   c                 *   t         } t        d      |      }| j                  t              5 } |t	        j
                  d      j                  dd      d        d d d        | j                  dt        j                               y # 1 sw Y   /xY w)NTr9     r     z3Both arguments to "array_equals" must be array-like)
r+   r   r<  r   r   rN  r  r=  r;  r>  r@  s       r   test_array_equal_exceptionz*TestNPFunctions.test_array_equal_exception-  sz    "T"6*{+ 	8v"))E"**1a0$7	8A  !	
	8 	8s   -B		Bc                    d }t         } t        d      |      } |       D ]_  \  }}t        |t              rt	        |      }t        |t              rt	        |      } |||      } |||      }| j                  ||       a y )Nc               3     K   t        j                  t        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf ddgddgf g dg df g dg df g dg df y w	Nrn  r'  rn  r'  r'  r  r%     rn  r'  r'  r  r  rn  r%  )r%  r%  r  rn  r'  )r'  rn  r  r  r  rn  r%  r
   
empty_listr	   r3  r  r!   r   r  z2TestNPFunctions.test_intersect1d_2.<locals>.arrays:       ??5==1??5==13 3#tu}}555//%--01#55#s(N#s(Na&1#+aV##a&1a&. Y&& //!#888   C%C'Tr9  )r3   r   
isinstancelistr
   r	  r  r  r
  r  r-   r.   r  r  s           r   test_intersect1d_2z"TestNPFunctions.test_intersect1d_28  s    	9  "T"6*H 		3DAq !T"G!T"Ga|H1+C##Hc2		3r!   c                    d }t         } t        d      |      } |       D ]  \  }}t        |t              rt	        |      }t        |t              rt	        |      } |||d      } |||d      }| j                  ||       t        t        j                  |            t        |      k(  st        t        j                  |            t        |      k(  s |||d      } |||d      }| j                  ||        y )Nc               3     K   t        j                  t        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf ddgddgf g dg df g dg df g dg df y wr  r  r  r!   r   r  z2TestNPFunctions.test_intersect1d_3.<locals>.arraysZ  r  r  Tr9  Fr  )	r7   r   r  r  r
   r	  r4  r   uniquer  s           r   test_intersect1d_3z"TestNPFunctions.test_intersect1d_3X  s    	9  "T"6*H 	7DAq!T"G!T"Ga%8H1E2C##Hc2299Q< CF*s299Q</@CF/J!!Qd;Aq5''#6	7r!   c                    t         }t        |      }t        j                  dg      }t        j                  dg      }| j	                          | j                  t              5   |||d       d d d        | j                  t              5   |d|d       d d d        | j                  t              5   ||dd       d d d        y # 1 sw Y   ZxY w# 1 sw Y   >xY w# 1 sw Y   y xY wNrn  r'  fooT)r7   r   r   r5  r?  r<  r   r  	np_pyfunc	np_nbfuncr-   r.   s        r   test_intersect1d_errorsz'TestNPFunctions.test_intersect1d_errorsz      !	O	HHaSMHHaSM!{+ 	#aE"	#{+ 	&eQ%	&{+ 	&a%	& 	&		# 	#	& 	&	& 	&$   #CC3CCCC(c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   t        j                  g       d f t        j                  d      d f t        j                  d      d f t        j                  dt         j
                        df t        j                  d      j                  ddd      d f t        j                  d      j                  dd      df t        j                  d      j                  dd      d	f y w)
NrF  r9  r   <   r  r  r%  r  rn  )r   r5  zerosrN  onesri  r  r  r!   r   r  z2TestNPFunctions.test_count_nonzero.<locals>.arrays  s     ((2,$$((2,$$))B-%%''"BHH-q00))I&..q!Q7==))E"**1a0!33))E"**1a0!33s   C2C4Tr9  )r@   r   r	  )r  r  r
  r  r=   r;   r  r  s           r   test_count_nonzeroz"TestNPFunctions.test_count_nonzero  s\    	4 "T"6* 	3ICc4(HT"C##Hc2	3r!   c                     d }t         } t        d      |      } |       D ],  \  }}} ||||      } ||||      }| j                  ||       . y )Nc               3     K   d t        j                  d      dd f t        j                  d      t        j                  d      d f t        j                  d      j                  dd      t        j                  d      d f t        j                  g dg dg      t        j                  g dg      d	f t        j                  g dg dg      } | | d
f y w)N)r'  r'  NrF  r  r%  r'  r  r  r%  rI  r     	   r   rn  )r   rN  r  r5  r   s    r   r  z.TestNPFunctions.test_np_append.<locals>.arrays  s     ))B-D(())B-1t33))B-''1-ryy|TAA((Iy12BHHi[4I1LL((Iy12CsA+s   C"C$Tr9  )r<   r   r	  )	r  r  r
  r  r=   rC   r;   r  r  s	            r   test_np_appendzTestNPFunctions.test_np_append  sb    	 "T"6*$h 	3NCdc3-HS$'C##Hc2	3r!   c                    t         } t        d      |      }t        j                  g dg dg      }t        j                  g dg      }d}| j	                  t
              5 } |d ||       d d d        | j                  dt        j                               | j	                  t
              5 } ||d |       d d d        | j                  dt        |j                               | j	                  t
              5 } |||d	
       d d d        | j                  dt        |j                               | j                          y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w)NTr9  r  r  r  r   z+The first argument "arr" must be array-likez/The second argument "values" must be array-liker!  r:   z,The third argument "axis" must be an integer)
r<   r   r   r5  r<  r   r=  r;  r>  r?  )r  r
  r  r=   r>   r;   rA  s          r   test_np_append_exceptionsz)TestNPFunctions.test_np_append_exceptions  s>   "T"6*hh	9-.9+& {+ 	&v$%	&9  !	
 {+ 	#v#tT"	#=  !	
 {+ 	)v#vC(	):  !	

 	!/	& 	&	# 	#	) 	)s$   #E0E=EEEE(c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   g ddf g dddgf t        j                  d      df t        j                  d      df t        j                  d      g df t        j                  d      g df t        j                  d      j                  dd	d
      df t        j                  d      j                  dd	d
      g df g dt        ddd      f t        j                  d      t        d      f y w)Nrn  r'  r  r  r%  r  r'  rF  )r  r%  rI  )r'  r  r  r%  r  r  r%  )r%  r     r  rn  r'  r  r  rn  )r   rN  r  slicer  r!   r   r  z+TestNPFunctions.test_delete.<locals>.arrays  s      "1$$!Aq6))))B-""))B-##))B-**))B---))I&..q!Q7::))I&..q!Q7GGaA..))B-r**r  Tr9  )rB   r   r	  r  s           r   test_deletezTestNPFunctions.test_delete  s[    	+( "T"6* 	3HCc3'HS/C##Hc2	3r!   c                 h   t         } t        d      |      }| j                          | j                  t              5 } |ddgd       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      g d       d d d        | j                  dt        |j                               | j                  t              5 } |dd	       d d d        | j                  d
t        |j                               | j                  t              5 } |ddgd	       d d d        | j                  dt        |j                               | j                          y # 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   dxY w)NTr9  rn  r'  gQ	@zobj should be of Integer dtyperF  )g      @gffffff@g@r  z)arr must be either an Array or a Sequencez"obj must be less than the len(arr))rB   r   r?  r<  r   r=  r;  r>  r   rN  
IndexErrorr@  s       r   test_delete_exceptionsz&TestNPFunctions.test_delete_exceptions  sw   "T"6*!{+ 	 v1a&$	 ,  !	

 {+ 	2v"))B-1	2,  !	

 {+ 	v!QK	7  !	

 z* 	f1a&!	0  !	

 	!9	  	 	2 	2	 		 	s/   FF-
F9F(FFF%(F1c              #      K   t        j                  d      dz  }| |j                  d      }| t        j                  d      j                  d      dz  }| yw)z0
        Some test arrays for np.diff()
        r  r  r  r     )r  r'  r  Nr   rN  r  r  r-   r.   cs       r   diff_arrayszTestNPFunctions.diff_arrays  sT      IIbMQIIfIIbM!!),1s   AA c                 &   t         } t        d      |      }| j                         D ]$  } ||      } ||      }| j                  ||       & t	        j
                  d      }| j                         5   ||       d d d        y # 1 sw Y   y xY w)NTr9  r  )rH   r   r  r	  r   r5  assertTypingError)r  r
  r  r=   r  r  r-   s          r   
test_diff1zTestNPFunctions.test_diff1  s    "T"6*##% 	3Cc{H*C##Hc2	3 HHRL##% 	!H	 	 	s   5	BBc           	          t         } t        d      |      }| j                         D ]J  }|j                  d   }dddd|dz
  ||dz   dfD ]&  } |||      } |||      }| j	                  ||       ( L y )	NTr9  r   rn  r'  r  i  )rK   r   r  shaper	  )r  r
  r  r=   rL  rJ   r  r  s           r   
test_diff2zTestNPFunctions.test_diff2'  s    "T"6*##% 	7C99R=DAq$(D$(C@ 7!#q>Cm''#67	7r!   c                    t         } t        d      |      }| j                          t        j                  d      }| j                         5   ||d       d d d        t        j                  d      }dD ]N  }| j                  t              5 } |||       d d d        | j                  dt        j                               P | j                          y # 1 sw Y   xY w# 1 sw Y   MxY w)NTr9  r  rn  rF  )r  izorder must be non-negative)rK   r   r?  r   r5  r  rN  r<  
ValueErrorr=  r;  r>  )r  r
  r  r=   rJ   rA  s         r   test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptions1  s    "T"6* 	! hhrl##% 	#qM	 iim 	OA"":. &c1MM6F<L<L8MN	O
 	!	 	 s   
C
C%C"%C.	c                     d }t         } t        d      |      } |       D ]%  } ||      } ||      }| j                  |||       ' y )Nc               3   J  K   d t        j                  dg       d d d t        d       t        j                  d       d d d  t        j                  dd	       t        j
                  d
       t        j
                  dd	       y w)Nr  )r                @numbarF  i90  gV-@TYnatrn  )r   r5  intint16timedelta64
datetime64r  r!   r   r>   z-TestNPFunctions.test_isscalar.<locals>.valuesG  s     G**aS/!JHMb'M((5/!KJJ..S))--&&--3''s   B!B#Tr9  )rx   r   rx  r  r>   r
  r  r   r  r  s          r   test_isscalarzTestNPFunctions.test_isscalarF  sT    	( "T"6* 	/AayH(CXsA.	/r!   c                    d }t        d      d        }t        t        g}|D ]  } t        d      |      } |       D ]  } ||      } ||      }| j                  ||       |j	                  |d|      }	 ||d|      }
| j                  |	|
       |j	                  |d|      } ||d|      }| j                  ||        | j                  t        |j                        d        y )Nc               3   V   K   d d t        j                  g d       d y w)Nrn  r(  )r  r(  Thello worldr4  r  r!   r   r>   z4TestNPFunctions.test_isobj_functions.<locals>.values^  s&     GL**.//s   ')Tr9  c                     |r| nd } ||      S r   r  )r   condr  r$  s       r   optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fnd  s    tA8Or!   Fr  )r   ru   r}   rx  py_funcr4  
signatures)r  r>   r  pyfuncsr
  r  r   r  r  expected_optionalgot_optionalexpected_nonegot_nones                r   test_isobj_functionsz$TestNPFunctions.test_isobj_functions]  s   	  
d		 
	  + 	7F&C&v.EX :!!9Ah  3/ %0$7$74$H!*1dE:  !2LA !, 3 3Auf E&q%7  9: S!1!12A6#	7r!   c                     d }t         t        g}|D ]B  } t        d      |      } |       D ]$  } ||      } ||      }| j                  ||       & D y )Nc               3      K   t        j                  g d       t        j                  g d       d d d d d t        j                  dd	gdd
gddgddgg       y w)N)      ?      ?r(        @r  r'                 @r  r  y              (@      ?      @y      $@        )r  y       @        rn  r'  r  r%  rI  r  r  r   r5  r  r!   r   r>   z7TestNPFunctions.test_is_real_or_complex.<locals>.values~  sg     ((:;;((9%%GILM""((QFQFQFQF;<<s   A+A-Tr9  )rr   rz   r   r	  )r  r>   r  r
  r  r   r  r  s           r   test_is_real_or_complexz'TestNPFunctions.test_is_real_or_complex}  sf    	= f% 	7F&C&v.EX 7!!9Ah''#67	7r!   c                     d }t         t        g}|D ]G  } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + I y )Nc               3   L  K   t         j                   d f t         j                  d f t         j                  d f t        j                  t         j                   dt         j                  g      d f t         j                   t        j                  dt         j                        f t         j                  t        j                  dt         j                        f t         j                  t        j                  dt         j                        f t         j                   t        j
                  d      f t        j                  t         j                   dt         j                  g      t        j                  dt         j                        f y w)Nr!  rn  r9  r  r  )r   infr5  r  ri  emptyr  r!   r   r>   z7TestNPFunctions.test_isneg_or_ispos_inf.<locals>.values  s     66'4-&&$,&&$,**rvvgr26623T9966'288ARXX666&&"((1BHH555&&"((1BHH55566'288B<''**rvvgr26623RXXarxx5PPPs   F"F$Tr9  )r   r   r   r	  )	r  r>   r  r
  r  r   r   r  r  s	            r   test_isneg_or_ispos_infz'TestNPFunctions.test_isneg_or_ispos_inf  so    		Q X& 	7F&C&v.E ( 73!!S>Asm''#67	7r!   c                   	
 ddt        j                  ddg      
t        j                  d      j                  d      	d	
fd}t        } t        d	
      |      } |       D ]l  \  }}} |||fi |} |||fi |}t        |t         j                        r| j                  ||       H| j                  t        j                  ||             n y )Nh㈵>:0yE>d     r  r'  r'  r'  )r   r   c               3     K   ddi f dt         j                  i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  dt         j                  g      t        j                  dt         j                  g      i f t        j                  dt         j                  g      t        j                  dt         j                  g      d	d
if t        j                  t         j                  t         j                  g      t        j                  dt         j                  g      d	d
if t        j                  ddg      t        j                  ddg      ddif t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      ddif t        j                  dt         j                  dg      t        j                  dt         j                  dg      f t        j                  t         j                  t         j                   t         j                  g      t        j                  dg      f t        j                  t         j                  t         j                   t         j                  g      df dt        j                  t         j                  t         j                   t         j                  g      f t        j                  ddg      t        j                  ddg      f f t        j                  dg      t        j                  dz   z   g      f z  z   f z  z   z   f    z  z   f t         j                  t         j                  f t         j                   t         j                  f t         j                  t        j                  t         j                  g      f t        j                  t         j                  t         j                   g      t        j                  t         j                  t         j                   g      f t        j                  t         j                  dg      t        j                  dt         j                  g      f t        j                  t         j                  t         j                   g      t        j                  ddg      f t        j                  t         j                  t         j                  g      t        j                  dt         j                   g      f t        j                  t         j                  t         j                  g      t        j                  ddg      f t        j                  t         j                  dg      t        j                  t         j                  t         j                   g      f t        j                  dz  g      t        j                  dg      f t        j                  dg      t        j                  dz   dz  z   g      f   dz   z  z   dz  z   f t        j                  t        j                  t         j                  dg            t        j                  t        j                  dt         j                  g            f t        j                  t         j                  dg      t        j                  dz  dz  g      f t        j                  t         j                  dg      t        j                  t         j                  dz  g      f t        j                  ddddz  z   z  z   g      t        j                  dt         j                  dg      f t        j                  d      t        j                  g d      f t         j                  t        j                  t         j                  t         j                  t         j                  g      f t        j                  dg      t        j                  t         j                  t         j                   t         j                  g      f dt        j                  t         j                  t         j                   t         j                  g      f y w)N    _B   UkBr  Hz>r!  &.>   2٠Br  r   T0.++r   绽|=g#B;g=|=rn  r'  r  r  r   皙?    .A)r   rn   @)r   r  r5  r  rN  )aranr=   r   kwr   s   r   r>   z,TestNPFunctions.test_isclose.<locals>.values  s    
B&&""((D$<("((C:*>BB((D$<("((J3E*FJJ((D$<("((J3E*FJJ((D$<("((It3D*ErII((C=)288S"&&M+BBFF((C=)288S"&&M+B[RVDWWW((BFFBFF+,bhhRVV}.EUYGZZZ((FD>*BHHc3Z,@63-OO((E5>*BHHeS\,BBFF((E5>*BHHe\5J,KfVY]ZZ((Arvvq>*BHHa^,DbHH((D"&&266'266:;RXXqc]BNN((D"&&266'266:;QBBRXXtRVVbffWbff=>BB ((Aq6"BHHaV$4b88sB,((A3-1t8d?*;!<b@@sS4Z'++sS4Z'$.22td{*B..&&"&&"$$66'2662%%&&"((BFF8,b00((BFFRVVG,-rxx"&&8I/JBNN ((BFFA;'1bff+)>BB((BFFRVVG,-rxxA/?CC((BFFBFF+,bhhBFF7|.DbHH((BFFBFF+,bhh1v.>BB((BFFA;'266BFF72C)DbHH((D1H:&!r99((A3-1t8dQh+>*?!@"DDtczD004#:=rAA((288RVVQK01288BHHa[<Q3RTVVV ((BFFA;'4!8TAX2F)GKK((BFFA;'2664!82D)ErII((D!SADL%9D%@ABBHHaQSQWQWY\M]D^`bbb))A, 5r99&&"((BFFBFFBFF#;<b@@((A3-4"&&"&&*I!JBNNRXXtRVVbffWbff=>BBs   ggTr9  )r   r5  rN  r  r   r   r  ri  rx  
assertTruer+   )r  r>   r
  r  r-   r.   r  r  r  r  r=   r   r  r   s            @@@@@r   test_isclosezTestNPFunctions.test_isclose  s    hhT{#yy|##I.D)3	C 3	Cj "T"6*"H 	?LAq&a-f-H1''C(BHH-  3/x =>	?r!   c                    t         } t        d      |      }t        j                  ddt        j                  g      t        j                  ddg      dddd	t
        fd
dddddt        fdd
ddddt        fddddddt        fddddddt        fddddddt        fg}|D ]1  \  }}}}}}	}
| j                  |
|	      5   ||||||       d d d        3 y # 1 sw Y   >xY wNTr9  r  r
  r  r  r  Fz=shape mismatch: objects cannot be broadcast to a single shaper}  r  z)The first argument "a" must be array-likez*The second argument "b" must be array-liker'  z2The third argument "rtol" must be a floating pointz3The fourth argument "atol" must be a floating pointrn  z0The fifth argument "equal_nan" must be a boolean)r   r   r   r5  r  r  r   assertRaisesRegexr  r
  r  inpsr-   r.   r   r   r   exc_msgexcs              r   isclose_exceptionz!TestNPFunctions.isclose_exception  s+   "T"6*ZZtRVV,-ZZD)*E5L	
 au8 u9 5%A 5%B 5%?%
. :> 	35Aq$i#''W5 3aD$	23 3	33 3s   ;CC	c                     g d}t        j                  g d      }| j                  j                  ddd      j	                  t         j
                        }|||fS )z7
        Some test sequences for np.bincount()
        )rn  r'  r%  r'  r  rH  )r%  r  r  r%  r   r  ,  rL  )r   r5  r  rR  astypeint8r  s       r   bincount_sequencesz"TestNPFunctions.bincount_sequences  sM      HH]#HHQ#.55bgg>1ayr!   c                     t         } t        d      |      }| j                         D ]$  } ||      } ||      }| j                  ||       & y NTr9  )rP   r   r"  r	  )r  r
  r  seqr  r  s         r   test_bincount1zTestNPFunctions.test_bincount1  sR    "T"6***, 	3Cc{H*C##Hc2	3r!   c                 &   t         } t        d      |      }| j                          | j                  t              5 } |ddg       d d d        | j                  dt        j                               | j                          y # 1 sw Y   ?xY w)NTr9  r'  r  #first argument must be non-negative)rP   r   r?  r<  r  r=  r;  r>  r@  s       r   test_bincount1_exceptionsz)TestNPFunctions.test_bincount1_exceptions  s    "T"6* 	! z* 	f1b'N	;&**+	- 	!	 	s   BBc                 \   t         } t        d      |      }| j                         D ]|  }|D cg c]  }t        j                  |      dz
   }}|t        j                  |      |t        j                  |      fD ]&  } |||      } |||      }| j                  ||       ( ~ y c c}w NTr9  r'  )rV   r   r"  mathsqrtr   r5  r	  )	r  r
  r  r%  r   rU   rT   r  r  s	            r   test_bincount2zTestNPFunctions.test_bincount2(  s    "T"6***, 	7C+./a1!/A/rxx{C#? 7!#w/C)''#67	7/s   B)c                    t         } t        d      |      }| j                          | j                  t              5 } |ddgddg       d d d        | j                  dt        j                               | j                  t              5 } |ddgdg       d d d        | j                  dt        |j                               y # 1 sw Y   ~xY w# 1 sw Y   ;xY w)NTr9  r'  r  r   r(  z+weights and list don't have the same length)rV   r   r?  r<  r  r=  r;  r>  r@  s       r   test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptions3  s    "T"6* 	! z* 	#f1b'Aq6"	#;&**+	- z* 	 f1b'A3	 C&**+	-	# 	#	  	    C	C	CCc                     t         } t        d      |      }| j                         D ]c  }t        |      }||dz   fD ]L  } ||d |      } ||d |      }| j	                  t        |      t        |             | j                  ||       N e y r+  )rY   r   r"  maxrx  r4  r	  )r  r
  r  r%  a_maxrX   r  r  s           r   test_bincount3zTestNPFunctions.test_bincount3F  s    "T"6***, 	7CHE#UQY/ 7	!#tY7Cy1  XC9''#6	7	7r!   c                    t         } t        d      |      }| j                          | j                  t              5 } |ddgddg       d d d        | j                  dt        j                               | j                  t              5 } |ddgd d       d d d        | j                  d	t        |j                               y # 1 sw Y   ~xY w# 1 sw Y   ;xY w)
NTr9  r'  r  r   r(     &   z 'minlength' must not be negative)rY   r   r?  r<  r  r=  r;  r>  r@  s       r   test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptionsR  s    "T"6* 	! z* 	#f1b'Aq6"	#;&**+	- z* 	&f2r(D"%	&8&**+	-	# 	#	& 	&r1  c                    	
 t          t        d            t         t        d            	t         t        d            
	
 fd}t	        j
                  d      dz  }t	        j
                  d      dz
  }|t        |      fD ]E  }|D ]  } |||        ||j                  d      fD ]  } |||         ||t        |             G t	        j                  t        |      t        d	      gd
z  z         dz  }t	        j
                  d      dz
  }|t        |      fD ]E  }|D ]  } |||        ||j                  d      fD ]  } |||         ||t        |             G d } t        d      |       j                         5   ddgd       d d d        dd} t        d      |       j                         5   ddgdd       d d d        t	        j                  g d      }t	        j                  ddgdd
gddgddgg      } |||       t	        j                  g d      }t	        j                  ddgddgddgg      } |||       y # 1 sw Y   xY w# 1 sw Y   xY w)NTr9  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r	  r-   r^   r  r  r  
cfunc_leftcfunc_rightr
  pyfunc_leftpyfunc_rightr  s       r   r  z0TestNPFunctions.test_searchsorted.<locals>.checko  y    a|H1+C##Hc2"1a(HQ"C##Hc2#Aq)Ha#C##Hc2r!   r%  r'  rH  rn  r  r%  r  r         @r#  c                 2    t        j                  | |d      S )Nnonsenserb   r[   r]   s     r   bad_sidez3TestNPFunctions.test_searchsorted.<locals>.bad_side  s    ??1aj99r!   c                 2    t        j                  | ||      S )Nrb   r[   )r-   r^   rc   s      r   nonconst_sidez8TestNPFunctions.test_searchsorted.<locals>.nonconst_side  s    ??1ad33r!   rf   rb   )rn  r'  r   r  rI  r   r  )	r  rn  r  r'  r   r  r  rI  r  rF  r  )ra   )r\   r   rd   rg   r   rN  r  r  r3  floatr  r5  )r  r  binsr>   r-   r^   rG  rI  r  r>  r?  r
  r@  rA  s   `       @@@@@@r   test_searchsortedz!TestNPFunctions.test_searchsortede  s   "T"6*''S$'4
)(c4(6	3 	3 yy|q 2"T
# 	#A a fnnV45 a !T&\"	# zz$t*e~'99:S@2$T
# 	#A a fnnV45 a !T&\"	#	:"T"8,##% 	1Q%O		4"T"=1##% 	*1Q%)	* HHYHHAAAA	
 	aHH01HHBQQ
 	a=	 		* 	*s   #I3I?3I<?Jc                    	
 t          t        d            	t         t        d            
t         t        d            	
 fd}t	        t        dd            }|t        j                  gdz  t        j                  gdz  z   t        j                   gdz  z   z  }t        d      D ]  } j                  j                  g d	      } j                  j                  ||      } j                  j                  |||dz  d
z
  z         } |||        |t        j                  |      |        t        j                  d      }t        j                  t        |      t        j                        } |||        |||        |||        |||       t        j                  d
      }t        j                  d      } |||       t        j                   g d      }t        j                   ddg      } |||       g d}d} |||       t        j                   g d      }t        j                   ddg      } |||       y )NTr9  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r<  r=  s       r   r  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.check  rB  r!   r&  rG  r%  r  r  )r%  rF  rM  rn  
fill_valuer   )FFTTFr  )123rR  4)r\   r   rd   rg   r  ranger   r  r  r  choicesortr  fullr4  rN  r5  )r  r  element_poolisample_sizer-   r^   r  nansr  r>  r?  r
  r@  rA  s   `        @@@@@@r   test_searchsorted_supplementalz.TestNPFunctions.test_searchsorted_supplemental  s   "T"6*''S$'4
)(c4(6	3 	3 E"bM*1x!|3wi!mCCt 		!A((//+6K k:AkQUQY.GHA !QK"''!*a 		! wwqzwws4yRVV4dD 	dDdDdD IIaLIIaLa HH/0HHeT]#a a HH_%HHc3Z ar!   c                    	
 t          t        d            	t         t        d            
t         t        d            	
 fd}ddt        j
                  g}t        j                  ||      D cg c]
  }t        |  }}t        d      D ]  } j                  j                  ddt        |      g      } j                  j                  ||      } j                  j                  |||dz  dz
  z         } |||        |t	        j                  |      |         |t	        j                  |      t	        j                  d	      
       y c c}w )NTr9  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r<  r=  s       r   r  z8TestNPFunctions.test_searchsorted_complex.<locals>.check  rB  r!   r   rn  r  r  r%  r'  r]   )r\   r   rd   rg   r   r  	itertoolsr   complexrU  r  rV  r4  rW  r5  rN  )r  r  poolr  rY  rZ  r[  r-   r^   r  r>  r?  r
  r@  rA  s   `        @@@@@@r   test_searchsorted_complexz)TestNPFunctions.test_searchsorted_complex  s,   "T"6*''S$'4
)(c4(6	3 	3 1bff~-6->->tT-JKKKs 		!A((//1a\1B*CDK k:AkQUQY.GHA !QK"''!*a 		! 	&"))A,7 Ls   E%c                     t          t        d             fd}t        j                  dddddd	d
ddt	        d      t	        d      t	        d      f      }t        |      dk(  sJ  j                  j                  |       t        j                  g d      }t        j                  dddd
t	        d      t	        d      g      }t        j                  dddd
t	        d      t	        d      gt	        d      gdz  z         }|||g}||j                  d      g}|D ]1  }|j                          |D ]  }	 ||	|        ||	|d d d           3 |D ]#  }dD ]  }
 ||||
        |||d d d   |
        %  |t        |      |        |t        j                  t        j                  dg      t        j                  dt        j                  g             y )NTr9  c                  >     |  } |  }j                  ||       y r   r<  rk   r  r  r  r
  r  s      r   r  z,TestNPFunctions.test_digitize.<locals>.check*  %    t}H,C##Hc2r!   r   Gz?rn  皙@r  r  r  r        #@r  z-infr  r  rn  r  r  r  r  rF  r  r  r        ?)ri   r   r   r3  rJ  r4  r  shuffler  rW  r  r5  r  )r  r  r>   bins1bins2bins3all_binsxsrK  r   rf   r  r
  s   `          @@r   test_digitizezTestNPFunctions.test_digitize&  s   "T"6*	3
 Qac1aC"5\5=%,H I6{b    

>*

Aq#q%,fFG

Aq#q%,fF#El^b01 2 5%(fnnV,-  	%DIIK %aadd$%	%  	1D& 1fdE*fd4R4j%01	1 	d6lE" 	bhh{#RXXsBFFm%<=r!   c                 j     j                          t         t        d             fd}t        j                  t        j
                  dg      }t        j                  t        j
                  ddt        j
                  g      } |||       g d}g d} |||       g d	} |||       y )
NTr9  c                      fD ]L  }j                  t              5 } ||   d d d        d}j                  |t        j                               N y # 1 sw Y   3xY w)Nz3bins must be monotonically increasing or decreasingr<  r  r=  r;  r>  )rk   fnrA  r  r  r
  r  s       r   check_errorzETestNPFunctions.test_digitize_non_monotonic_bins.<locals>.check_errorV  sc    uo :&&z2 fI Lc3v'7'7#89: s   AA	rn  rl  ffffff@r  r   rn  r'  )r   r   rn  r   rn  rn  r   rn  )r?  ri   r   r   r5  r  )r  rx  r   rK  r  r
  s   `   @@r    test_digitize_non_monotonic_binsz0TestNPFunctions.test_digitize_non_monotonic_binsO  s    !"T"6*	: HHbffa[!xxc26623AtAtAtr!   c                     t          t        d             fd}t        j                  dd      }t        j                  dd      } |||       t        j                  ddd      }t        j                  ddd      } |||        j                  j                  d      }t        j                  |j                         |j                         d      } |||       g d	}g d
} |||       t        j                  dd      }t        j                  dd      } |||d       t        j                  ddd      }t        j                  ddd      } |||d        j                  j                  d      }t        j                  |j                         |j                         d      } |||d       g d}g d} |||       g d} |||       g d} |||       d} ||g|dz
  |dz   g       y )NTr9  c                  >     |  } |  }j                  ||       y r   r<  rf  s      r   r  z9TestNPFunctions.test_digitize_supplemental.<locals>.checkp  rg  r!   r%  r&  r  rF  )rn  r%  r  rF  r     r   )rn  r%  rF  r  rz  )r   r   rn  )rn  rn  r   rn  rn  rn  rn  l          rn  )	ri   r   r   rN  r  rP  linspaceminr3  )r  r  r   rK  r  r
  s   `   @@r   test_digitize_supplementalz*TestNPFunctions.test_digitize_supplementali  s    "T"6*	3 IIb!yyQa IIaR yyB#a HHMM"{{1557AEEGR0a $a IIb!yyQat IIaR yyB#at HHMM"{{1557AEEGR0at aaa qcAE1q5>"r!   c                 j   | j                          t        } t        d      |      }t        j                  dg      }t        j                  g d      }d}||fD ]I  }| j                         5 } |||       | j                  |t        |j                               d d d        K y # 1 sw Y   VxY w)NTr9  r  )r        @r         @zx may not be complex)	r?  ri   r   r   r5  r  r=  r;  r>  )r  r
  r  r   r$  r  funcrA  s           r    test_digitize_raise_if_x_complexz0TestNPFunctions.test_digitize_raise_if_x_complex  s    !"T"6*HHfXHH&'$EM 	:D'') :VQ
c3v'7'7#89: :	:: :s   //B))B2	c                      t          t        d             fdfd}t        j                  d      }t	        |      dk(  sJ  j
                  j                  |        ||       y )NTr9  c                  t     |  \  }} |  \  }}j                  ||       j                  ||dd       y )Nr   r'  r  r2  r<  )rk   pyhistpybinschistcbinsr  r
  r  s        r   r  z-TestNPFunctions.test_histogram.<locals>.check  sF    #T]NFF $<LE5##FE2 ##FEq#Ir!   c                     t        j                  g d      } | |        | j                  d      |        | d        | dd        |        y )Nrk  r  r  )r  g      +@)r   r3  r  )r>   rK  r  s     r   check_valuesz4TestNPFunctions.test_histogram.<locals>.check_values  sS     ::n-D&$&..($/ &! &![) &Mr!   )r   rh  rn  ri  r  r  r  r  rj  g     @E@r   r"  r  )rm   r   r   r3  r4  r  rm  )r  r  r>   r  r  r
  s   `  @@@r   test_histogramzTestNPFunctions.test_histogram  se    "T"6*	J	   7 86{b    Vr!   c                 2    t        d      |      }d}t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  g}g d}t        j                  |||||      D ]  \  }}}}	}
t        j                  ||      }t        j                  |	|      }t        j                  |t        j                        r|d|z  z   j                  |      }t        j                  |t        j                        r|d|z  z   j                  |      } ||||
      } ||||
      }| j                  ||        t        j                  d      j!                  d	d
      }t        j                  d      }||f||ffD ]S  \  }}| j#                  t$              5 } |||       d d d        d}| j'                  |t)        j*                               U y # 1 sw Y   3xY w)NTr9  )rn  r'  r  r  )rX  validsamer9  r+  r   r  r  r  zonly supported on 1D arrays)r   r   r!  int32int64r  r3  r  r6  r`  r   rN  
issubdtypecomplexfloatingr   r	  r  r<  r   r=  r;  r>  )r  r
  r  lengthsdtsmodesdt1dt2rJ   r   r   r-   r^   r  r  _a_br   r$  rA  r  s                        r   _test_correlate_convolvez(TestNPFunctions._test_correlate_convolve  s   "T"6* ww"((BJJ

||R]],)$-$5$5gw%
 	3 CaD 		!3'A		!3'A}}S""4"45aZ'',}}S""4"45aZ'',a.H14(C##Hc2	3  YYr]""1a(YYr]"XBx( 	6DAq"";/ 6a/CMM#s6#3#345		6 s   
HH	c                 .    | j                  t               y r   )r  r   r  s    r   test_correlatezTestNPFunctions.test_correlate  s    %%i0r!   c                    | j                          t        j                  d      }t        j                  d      } t	        d      |      }||f||ffD ]  \  }}| j                  t              5 } |||       d d d        t        |      dk(  r&| j                  dt        j                               a| j                  dt        j                                | j                  t              5 } |||d	
       | j                  dt        |j                               d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   )r  r%  Tr9  r   z'a' cannot be emptyz'v' cannot be emptyzinvalid moder   zInvalid 'mode')r?  r   r  rN  r   r<  r  r4  r=  r;  r>  )r  rw  r  r  r  r   r$  rA  s           r   #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions  s"   ! WW4 YYq\"T"2&"XBx( 	LDAq"":. &a1v{3S9I9I5JK3S9I9I5JK	L z* 	Cf"b~.MM*C0@0@,AB	C 	C 	C 	Cs   1
D-31D9-D6	9Ec                 .    | j                  t               y r   )r  r   r  s    r   test_correlate_exceptionsz)TestNPFunctions.test_correlate_exceptions  s    00;r!   c                 .    | j                  t               y r   )r  r   r  s    r   test_convolvezTestNPFunctions.test_convolve  s    %%h/r!   c                 .    | j                  t               y r   )r  r   r  s    r   test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptions  s    00:r!   c                 L     |di |} |di |}| j                  |||       y )Nr  r  r<  )r  r
  r  paramsr  r  r  s          r   _check_outputzTestNPFunctions._check_output  s/    #F#ofo#w?r!   c                    t         } t        d      |      }t        | j                  ||      fd} |t	        j
                  g d              |t	        j                  d      dz
          |t	        j                  ddd	              |t	        j
                  d
t        j                  t        j                  t        j                   g              |t	        j
                  g               |t	        j                  dd	      dz
          |t	        j
                  dgd	z  dgdz  z                t        j                  t        j                  t        j                  t        j                  fD ]  } |t	        j                  d|             !  |g d        |d        |d        |d        |d        |d       y )NTr9  c                     g d}ddg}d| i} |       |D ]  }| |d} |        |D ]  }| |d} |        |D ]  }|D ]  }| ||d} |         y )N)Nr   rn  r'  r  r  TFr   )r   r   )r   r  r  r  )r   	n_choicesincreasing_choicesr  rJ   r  r  s         r   _checkz1TestNPFunctions.test_vander_basic.<locals>._check'  s    -I"& 1XF&!  & q)f%&
 1 &
 
;f%&
  *"4 *J#$1JGF!&)**r!   )rn  r'  r  r%  r        %@r  rF  r%  333333?r&  333333?Fr  r9  r   rn  r'  r  r  r%  rI  r  )r!  r  rD  r  )r  g-@A`"	@)TFr  )r  r   r   r  r   r5  rN  r  r  r  r  r  r  r3  )r  r
  r  r  r:  r  s        @r   test_vander_basicz!TestNPFunctions.test_vander_basic"  sU   "T"6* 2 2FEB	*0 	rxx%&ryy|d"#r{{1b!$%rxxbffbffrvvg678rxx|ryyQ#%& 	rxx
eWq[012 XXrxxRZZ? 	/E299Ru-.	/ 	||r
 	 ! r!   c                     t         } t        d      |       j                          t        j                  d      dz
   fd}ddt        j
                  ddgfD ]
  } ||         j                  t              5 } d	
       d d d         j                  dt        j                                fd}t        j                  d      j                  d       |       d |       y # 1 sw Y   kxY w)NTr9  r%  r#  c                     j                         5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nr   z,Second argument N must be None or an integerr  r=  r;  r>  )r   rA  r  r  r   s     r   _check_nz8TestNPFunctions.test_vander_exceptions.<locals>._check_n`  sL    '') Va1MMHf../1    AAr  rn  r'  r  r   z#Negative dimensions are not allowedc                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz.x must be a one-dimensional array or sequence.)r<  r  rx  r;  r>  )r   rA  r  r  s     r   	_check_1dz9TestNPFunctions.test_vander_exceptions.<locals>._check_1dn  sN    "":. &aM !1!124    	AAr  )r  r  r  )r'  r  rC  )r  r   r?  r   rN  r  r<  r  r=  r;  r>  r  )r  r
  r  r   rA  r  r  r   s   `     @@r   test_vander_exceptionsz&TestNPFunctions.test_vander_exceptionsW  s    "T"6* 	!IIaL3	1 dBFFQF* 	AQK	 z* 	f!rN	;&**+	-	4 IIbM!!),!!	 	s   C88Dc                     t         } t        d      |      }t        | j                  ||      }d } |       D ]  }d|i} ||        y )NTr9  c                  .    t        j                  dd      S Nr  r   rN  r  r!   r   n_variationsz6TestNPFunctions.test_tri_n_basic.<locals>.n_variations      99R##r!   r   )r   r   r   r  )r  r
  r  r  r  rJ   r  s          r   test_tri_n_basicz TestNPFunctions.test_tri_n_basicz  sT    "T"6*++VU;	$  	A1XF6N	r!   c                     t         } t        d      |      }t        | j                  ||      }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }||d} ||         y )NTr9  c                  .    t        j                  dd      S r  r  r  r!   r   r  z8TestNPFunctions.test_tri_n_m_basic.<locals>.n_variations  r  r!   c                  Z    t         j                  j                  d gt        dd      f      S Nr&  r  r`  chainfrom_iterablerU  r  r!   r   m_variationsz8TestNPFunctions.test_tri_n_m_basic.<locals>.m_variations  $    ??004&%A,1GHHr!   r   r   )r   r   r   r  )	r  r
  r  r  r  r  rJ   r  r   s	            r   test_tri_n_m_basicz"TestNPFunctions.test_tri_n_m_basic  s    "T"6*++VU;	$	I
  	A1XF6N	
  	A!^  q)v	r!   c                     t         } t        d      |      }t        | j                  ||      }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }||d} ||         y )NTr9  c                  .    t        j                  dd      S r  r  r  r!   r   r  z8TestNPFunctions.test_tri_n_k_basic.<locals>.n_variations  r  r!   c                  .    t        j                  dd      S NrF  r  r  r!   r   k_variationsz8TestNPFunctions.test_tri_n_k_basic.<locals>.k_variations      99S"%%r!   r   r   )r   r   r   r  )	r  r
  r  r  r  r  rJ   r  r   s	            r   test_tri_n_k_basicz"TestNPFunctions.test_tri_n_k_basic  s    "T"6*++VU;	$	&  	A1XF6N	
  	A!^  q)v	r!   c                    t         } t        d      |      }t        | j                  ||      }d }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }	||	d} ||          |       D ]  } |       D ]  }
||
d} ||          |       D ](  } |       D ]  }
 |       D ]  }	||	|
d	} ||         * y )
NTr9  c                  .    t        j                  dd      S r  r  r  r!   r   r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.n_variations  r  r!   c                  Z    t         j                  j                  d gt        dd      f      S r  r  r  r!   r   r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.m_variations  r  r!   c                  .    t        j                  dd      S r  r  r  r!   r   r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.k_variations  r  r!   r   r   r   r   )r   r   r   r  )r  r
  r  r  r  r  r  rJ   r  r   r   s              r   test_tri_n_m_k_basicz$TestNPFunctions.test_tri_n_m_k_basic  s   "T"6*++VU;	$	I	&  	A1XF6N	
  	A!^  q)v	  	A!^  q)v	  	#A!^ #% #A#$115F6N##	#r!   c                      t         } t        d      |       j                           fd}ddt        j                  ddgfD ]
  } ||        y )NTr9  c                     j                         5 } dd|        d d d        dt        j                        v sJ y # 1 sw Y   #xY w)Nr%  rI  r   k must be an integer)r  r;  r>  )r   rA  r  r  s     r   r  z3TestNPFunctions.test_tri_exceptions.<locals>._check  sK    '') !Vaa !)S1A1A-BBBB! !s   A  A	rl  rn  r'  )r   r   r?  r   r  )r  r
  r  r   r  s   `   @r   test_tri_exceptionsz#TestNPFunctions.test_tri_exceptions  sV    "T"6* 	!	C
 dBFFQF* 	A1I	r!   c                 `      t        d             fd} j                   |      S )NTr9  c                      |       } |       }j                  |j                  |j                         t        j                  j	                  ||       y r   )rx  r:  r   testingassert_array_equal)r=   r  r  r  r
  r  s      r   r  z:TestNPFunctions._triangular_matrix_tests_m.<locals>._check  sA    c{H*CSYY7JJ))#x8r!   r   _triangular_matrix_tests_innerr  r
  r  r  s   `` @r   _triangular_matrix_tests_mz*TestNPFunctions._triangular_matrix_tests_m  s0    "T"6*	9 224HHr!   c                 `      t        d             fd} j                   |      S )NTr9  c                 *   t         j                  j                  d gt        dd      f      D ]c  }|i }nd|i} | fi |} | fi |}j	                  |j
                  |j
                         t        j                  j                  ||       e y )Nr  rF  r   )	r`  r  r  rU  rx  r:  r   r  r  )r=   r   r  r  r  r  r
  r  s        r   r  z<TestNPFunctions._triangular_matrix_tests_m_k.<locals>._check  s    __22TFE#rN3KL 	=9F!1XF!#00C*6*  HNN;

--c8<	=r!   r  r  s   `` @r   _triangular_matrix_tests_m_kz,TestNPFunctions._triangular_matrix_tests_m_k  s0    "T"6*
	= 224HHr!   c                 n   fd}fd} |t        j                  d      dz           |t        j                  d      dz
          t        j                  d      j                  ddd	d
              t        j                  g               t        j                  d      j                  d      d d d           t        j                  d      j                  dd             t        j                  d      dz
  j                  d      } |        t        j                  |             y )Nc                      |        | j                  d      }  |        | j                  d      }  |         | j                         y )N)r  r  )r  rn  r  r  r  Tr-   r  s    r   	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_odd
  s?    1I		&!A1I		,'A1I133Kr!   c                      |        | j                  d      }  |        | j                  d      }  |         | j                         y )N)r     r  r'  r'  r  r  r  s    r   
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_even  s?    1I		'"A1I		,'A1I133Kr!   ?   r  @   ih  r  r  r%  rI  r  )r  r  r  Forderr   )r   rN  r  r5  asfortranarray)r  r
  r  r  r  r=   s     `   r   r  z.TestNPFunctions._triangular_matrix_tests_inner  s    		 	"))B-$&'299R=4'( 	ryy~%%aAq12rxx|ryy|##F+DbD12ryy|##F##67yy}t#,,\:sr  %&r!   c                     t        d      |      }| j                          t        j                  d      }| j	                         5 } ||d       | j                  dt        |j                               d d d        y # 1 sw Y   y xY w)NTr9  r%  rI  rl  r  r  )r   r?  r   r  r  r=  r;  r>  )r  r
  r  r-   rA  s        r   _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptions'  sx    "T"6* 	!GGFO##% 	I!sOMM0#f6F6F2GH	I 	I 	Is   0BB
c                 B    t        d      |      }|D ]  } || } || }| j                  t        |      t        |             | j                  t        |      t        |             t	        ||      D ]%  \  }}t
        j                  j                  ||       '  y r$  )r   rx  typer4  r  r   r  r  )	r  r
  rk   r  r   r  r  egs	            r   _triangular_indices_tests_basez.TestNPFunctions._triangular_indices_tests_base2  s    "T"6* 	4AqzH)CT(^T#Y7S]CH5Hc* 41

--a34	4r!   c                 b    | j                  |t        d      D cg c]  }|g c}       y c c}w )NrF  r  rU  )r  r
  rJ   s      r   _triangular_indices_tests_nz+TestNPFunctions._triangular_indices_tests_n=  s*    ++)$QaS$	
$s   
,
c                     | j                  |t        d      D cg c]  }t        | dz
  |dz         D ]  }||g   c}}       y c c}}w )NrF  rn  r'  r  )r  r
  rJ   r   s       r   _triangular_indices_tests_n_kz-TestNPFunctions._triangular_indices_tests_n_kC  sI    ++"2YEqb1fa!e0DE1aVEVE	
Es   #Ac                     | j                  |t        d      D cg c]  }t        d|z        D ]  }||g  c}}       y c c}}w )NrF  r'  r  )r  r
  rJ   r   s       r   _triangular_indices_tests_n_mz-TestNPFunctions._triangular_indices_tests_n_mI  s@    ++"2Y=a!e=1aV=V=	
=s   Ac                     | j                  |t        d      D cg c]2  }t        | dz
  |dz         D ]  }t        d|z        D ]  }|||g	  4 c}}}        t        d      |      } |d       y c c}}}w )NrF  rn  r'  Tr9  )r  rU  r   )r  r
  rJ   r   r   r  s         r   _triangular_indices_tests_n_k_mz/TestNPFunctions._triangular_indices_tests_n_k_mO  s    ++ %b	 $ $1QBFAE*$AEl$ AY $Y $Y $	
 #T"6*a$s   7A7c                     t        d      |      }t        t        t        fD ]  }t	        j
                  t        d      t        d            D ]  \  }}t        j                  ||f|      } ||      } ||      }| j                  t        |      t        |             | j                  t        |      t        |             t        ||      D ]%  \  }	}
t        j                  j                  |	|
       '   y )NTr9  rF  r   r  rJ  boolr`  r   rU  r   r  rx  r  r4  r  r  r  )r  r
  r  r:  rJ   r   r=   r  r  r  r  s              r   "_triangular_indices_from_tests_arrz2TestNPFunctions._triangular_indices_from_tests_arr[  s    "T"6*5$' 	8E ((rE"I> 8!ggq!fe,!#;Cj  hc;  XC9#. 8DAqJJ11!Q788	8r!   c           	          t        d      |      }t        t        t        fD ]  }t	        j
                  t        d      t        d            D ]  \  }}t        j                  ||f|      }t        dd      D ]  } ||      } ||      }	| j                  t        |      t        |	             | j                  t        |      t        |	             t        ||	      D ]%  \  }
}t        j                  j                  |
|       '    y )NTr9  rF  r  r  )r  r
  r  r:  rJ   r   r=   r   r  r  r  r  s               r   $_triangular_indices_from_tests_arr_kz4TestNPFunctions._triangular_indices_from_tests_arr_kh  s    "T"6*5$' 		<E ((rE"I> <!ggq!fe,sB <A%c{H*C$$T(^T#Y?$$S]CH= #Hc 2 <1

55a;<<<		<r!   c                 X    t        d      |      }t        |      j                  }| j                         5 } |d       d d d        | j	                  dt        j                               d|v rH| j                         5 } |dd       d d d        | j	                  dt        |j                               d	|v rI| j                         5 } |dd
       d d d        | j	                  dt        |j                               y y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   HxY w)NTr9  r  zn must be an integerr   rn  r  r  r   r   zm must be an integer)r   r   
parametersr  r=  r;  r>  )r  r
  r  r   rA  s        r   _triangular_indices_exceptionsz.TestNPFunctions._triangular_indices_exceptionsv  s   "T"6* (33
##% 	#J	,c&2B2B.CD*'')  Va3 MM0#f6F6F2GH*'')  Va3 MM0#f6F6F2GH 	 	
   
   s#   	DDD DD D)c                     t        d      |      }dD ]a  }t        j                  dg|z        }| j                         5 } ||       d d d        | j	                  dt        j                               c |r`t        j                  ddg      }| j                         5 } ||d       d d d        | j	                  dt        j                               y y # 1 sw Y   xY w# 1 sw Y   <xY w)	NTr9  r   rn  r  r%  zinput array must be 2-dr#  r  r  )r   r   r  r  r=  r;  r>  )r  r
  test_kr  ndimsr-   rA  s          r   #_triangular_indices_from_exceptionsz3TestNPFunctions._triangular_indices_from_exceptions  s    "T"6* 	LEe$A'') VaMM3S9I9I5JK		L AA'')  Va3 MM0#f6F6F2GH	 	    s   	C"C(C%	(C1c                 X    | j                  t               | j                  t               y r   )r  r   r  r   r  s    r   test_tril_basiczTestNPFunctions.test_tril_basic      ''/))(3r!   c                 .    | j                  t               y r   )r
  r   r  s    r   test_tril_exceptionsz$TestNPFunctions.test_tril_exceptions      **84r!   c                 T   | j                  t               | j                  t               | j	                  t
               | j                  t               | j                  t               | j                  t               | j                  t
               | j                  t               y r   )	r  r   r  r   r  r   r  r   r!  r  s    r   test_tril_indicesz!TestNPFunctions.test_tril_indices  x    ((8**+;<**+;<,,-?@++N;++,<=++,<=++,>?r!   c                     | j                  t               | j                  t               | j	                  t        d       | j	                  t        d       y NFT)r  r   r  r   r&  r  s    r   test_tril_indices_fromz&TestNPFunctions.test_tril_indices_from  B    //0EF112IJ001FN001H$Or!   c                 X    | j                  t               | j                  t               y r   )r  r  r  r  r  s    r   test_triu_basiczTestNPFunctions.test_triu_basic  r)  r!   c                 .    | j                  t               y r   )r
  r  r  s    r   test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions  r,  r!   c                 T   | j                  t               | j                  t               | j	                  t
               | j                  t               | j                  t               | j                  t               | j                  t
               | j                  t               y r   )	r  r  r  r  r  r  r  r  r!  r  s    r   test_triu_indicesz!TestNPFunctions.test_triu_indices  r/  r!   c                     | j                  t               | j                  t               | j	                  t        d       | j	                  t        d       y r1  )r  r  r  r  r&  r  s    r   test_triu_indices_fromz&TestNPFunctions.test_triu_indices_from  r3  r!   c                     t         }t        t               }d } |       D ]   }| j                   ||       ||             " y )Nc               3   ,   K   d d d d y w)N)r  r  )r  r  )r'  r'  r  r%  r  r  r!   r   inputsz2TestNPFunctions.test_indices_basic.<locals>.inputs  s     LJJs   )r  r   r	  )r  r
  r  r>  dimss        r   test_indices_basicz"TestNPFunctions.test_indices_basic  sA    Z 	 H 	?D##F4L%+>	?r!   c                 P   t        t              }| j                          d}| j                  t              5 } |d       d d d        | j                  |t        j                               | j                  t              5 } |d       d d d        | j                  |t        |j                               | j                  t              5 } |d       d d d        | j                  |t        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)Nz5The argument "dimensions" must be a tuple of integersabc)rD  r  )r'  r  )r   r  r?  r<  r   r=  r;  r>  )r  r  errmsgrA  s       r   test_indices_exceptionz&TestNPFunctions.test_indices_exception  s    Z !H{+ 	v%L	f&**+	- {+ 	v*	f&**+	- {+ 	v(O	f&**+	-	 	
	 	
	 	s#   	D	D	DDDD%c                      |||      } |||      }| j                  t        j                  |d |       t        j                  |d |              | j                  t        j                  ||d        t        j                  ||d               y r   r	  r   r  r  r
  r  r-   r  r  r  s          r   partition_sanity_checkz&TestNPFunctions.partition_sanity_check  sz     !S>Asm 			(4C. 9299S#Y;OP 			(34. 9299SY;OPr!   c           	      8    |||      } |||      }| j                  t        j                  ||d |          t        j                  ||d |                 | j                  t        j                  |||d           t        j                  |||d                  y r   rF  rG  s          r   argpartition_sanity_checkz)TestNPFunctions.argpartition_sanity_check  s     !S>Asm 			!HTcN*; < "		!CI, 7	9 			!HSTN*; < "		!CI, 7	9r!   c           
         t         } t        d      |      }t        dd      D ]F  }t        d|dz
        D ]0  }t        j                  |      }| j
                  j                  |       || j
                  j                  dd      z  }| j
                  j                  |j                        }d|||dz   | | g}t        j                  |      |   }| j                   |||      |   |       | j                   ||j                         |      |   |       | j                   |t        |j                               |      |   |       |D ]  }	| j                  ||||	        3 I y NTr9  rF  r  rn  r'  r   )r  r   rU  r   rN  r  rm  rR  rL  rW  r	  tolisttuplerH  
r  r
  r  jrZ  didxr  tgtr   s
             r   test_partition_fuzzz#TestNPFunctions.test_partition_fuzz	  s]    "T"6*r2 	EA1a!e_ EIIaL  #((B//hh&&qvv.#q!a%#r2ggajo''ac(:(+-''ahhj#(>s(C(+-''eAHHJ.?(Ec(J(+-  EA//q!DEE	Er!   c                    t         } t        d      |      }t        dd      D ]X  }t        d|dz
        D ]B  }t        j                  |      }| j
                  j                  |       || j
                  j                  dd      z  }| j
                  j                  |j                        }d|||dz   | | g}t        j                  |      |   }| j                  | |||      |      ||          | j                  | ||j                         |      |      ||          | j                  | |t        |j                               |      |      ||          |D ]  }	| j                  ||||	        E [ y rL  )r!  r   rU  r   rN  r  rm  rR  rL  argsortr	  rM  rN  rJ  rO  s
             r   test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzz	  sy    "T"6*r2 	HA1a!e_ HIIaL  #((B//hh&&qvv.#q!a%#r2jjmC(''%3-*<(=()#0''%
C*@*E(F()#0''%ahhj0A3*G*L(M()#0  HA2265!QGHH	Hr!   c                      t         } t        d      |       j                          t        j                  d      } fd} ||d        ||d        ||d       y )NTr9  rF  c                     j                  t              5 } | |       d d d        t        j                        dk(  sJ y # 1 sw Y   $xY wNzkth out of boundsr<  r  r;  r>  r-   r  r  r  r  s      r   r  zETestNPFunctions.test_partition_exception_out_of_range.<locals>._check@	  I    "":. !aq{{#'::::    
AAr  r  )r  r   r?  r   rN  r  r
  r-   r  r  s   `   @r   %test_partition_exception_out_of_rangez5TestNPFunctions.test_partition_exception_out_of_range4	  s[     "T"6* 	! IIbM	;
 	q"q#q'r!   c                      t         } t        d      |       j                          t        j                  d      } fd} ||d        ||d        ||d       y )NTr9  rF  c                     j                  t              5 } | |       d d d        t        j                        dk(  sJ y # 1 sw Y   $xY wrZ  r[  r\  s      r   r  zHTestNPFunctions.test_argpartition_exception_out_of_range.<locals>._checkU	  r]  r^  r_  r`  )r!  r   r?  r   rN  ra  s   `   @r   (test_argpartition_exception_out_of_rangez8TestNPFunctions.test_argpartition_exception_out_of_rangeI	  s[     "T"6* 	! IIbM	;
 	q"q#q'r!   c                     t         } t        d      |       j                           fd}t        j                  d      } ||d        ||d        ||t        j
                  ddt        j                  f             y )	NTr9  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNzPartition index must be integerr  r-   r  rA  r  r  s      r   r  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._checkg	  L    '') VaMM;f../1    
A

ArF        "@ffffff
@ri  rn  r'  )r  r   r?  r   rN  r5  r  r  r
  r  r-   r  s   `   @r   (test_partition_exception_non_integer_kthz8TestNPFunctions.test_partition_exception_non_integer_kth^	  sm     "T"6* 	!	1 IIbMq#q*q"((Aq"&&>*+r!   c                     t         } t        d      |       j                           fd}t        j                  d      } ||d        ||d        ||t        j
                  ddt        j                  f             y )	NTr9  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wrh  r  ri  s      r   r  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check{	  rj  rk  rF  rl  rm  rn  r'  )r!  r   r?  r   rN  r5  r  ro  s   `   @r   +test_argpartition_exception_non_integer_kthz;TestNPFunctions.test_argpartition_exception_non_integer_kthr	  sm     "T"6* 	!	1 IIbMq#q*q"((Aq"&&>*+r!   c                      t         } t        d      |       j                           fd} |dd        |dd       y )NTr9  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNz(The first argument must be an array-liker  ri  s      r   r  zITestNPFunctions.test_partition_exception_a_not_array_like.<locals>._check	  L    '') VaMMDf../1 rk  r  r   Sausages)r  r   r?  r  s   `  @r   )test_partition_exception_a_not_array_likez9TestNPFunctions.test_partition_exception_a_not_array_like	  sA    "T"6* 	!	1 	q!z1r!   c                      t         } t        d      |       j                           fd} |dd        |dd       y )NTr9  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wrv  r  ri  s      r   r  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check	  rw  rk  r  r   rx  )r!  r   r?  r  s   `  @r   ,test_argpartition_exception_a_not_array_likez<TestNPFunctions.test_argpartition_exception_a_not_array_like	  sA    "T"6* 	!	1 	q!z1r!   c                      t         } t        d      |       j                           fd} |t        j                  d      d       y )NTr9  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNz3The first argument must be at least 1-D (found 0-D)r  ri  s      r   r  zCTestNPFunctions.test_partition_exception_a_zero_dim.<locals>._check	  L    '') VaMMOf../1 rk  rn  r   )r  r   r?  r   r5  r  s   `  @r   #test_partition_exception_a_zero_dimz3TestNPFunctions.test_partition_exception_a_zero_dim	  s@    "T"6* 	!	1 	rxx{Ar!   c                      t         } t        d      |       j                           fd} |t        j                  d      d       y )NTr9  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  ri  s      r   r  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check	  r  rk  rn  r   )r!  r   r?  r   r5  r  s   `  @r   &test_argpartition_exception_a_zero_dimz6TestNPFunctions.test_argpartition_exception_a_zero_dim	  s@    "T"6* 	!	1 	rxx{Ar!   c                      t         } t        d      |       j                           fd} |t        j                  d      t        j                  d      j                  dd             y )	NTr9  c                     j                  t              5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNzkth must be scalar or 1-Drv  ri  s      r   r  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._check	  K    "":. &aMM5s6;K;K7LM    
AArF  rI  r  r'  r  )r  r   r?  r   rN  r  r  s   `  @r   .test_partition_exception_kth_multi_dimensionalz>TestNPFunctions.test_partition_exception_kth_multi_dimensional	  sV    "T"6* 	!	N
 	ryy}"))A,"6"6q!"<=r!   c                      t         } t        d      |       j                           fd} |t        j                  d      t        j                  d      j                  dd             y )	NTr9  c                     j                  t              5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  rv  ri  s      r   r  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._check	  r  r  rF  rI  r  r'  r  )r!  r   r?  r   rN  r  r  s   `  @r   1test_argpartition_exception_kth_multi_dimensionalzATestNPFunctions.test_argpartition_exception_kth_multi_dimensional	  sV    "T"6* 	!	N
 	ryy}"))A,"6"6q!"<=r!   c                      t          t        d            d fd	}t        j                  g       }d|_        |dt        j                  g       fD ]
  } ||        y )NTr9  c                 N     | |      } | |      }j                  ||       y r   r<  r-   r  r  r  r  r
  r  s       r   r  z9TestNPFunctions.test_partition_empty_array.<locals>.check	  )    a~H3-C##Hc2r!   r  r'  rn  r   r  r  )r  r   r   r5  r  r  r  r-   r=   r  r
  s   `   @@r   test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_array	  s]     "T"6*	3 HHRL b"((2,& 	C#J	r!   c                      t          t        d            d fd	}t        j                  g       }d|_        |dt        j                  g       fD ]
  } ||        y )NTr9  c                 N     | |      } | |      }j                  ||       y r   r<  r  s       r   r  z<TestNPFunctions.test_argpartition_empty_array.<locals>.check	  r  r!   r  r  r  )r!  r   r   r5  r  r  s   `   @@r   test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_array	  s]     "T"6*	3 HHRL b"((2,& 	C#J	r!   c           	      p   t         } t        d      |      }t        j                  g       } ||d      }| j	                  ||       t        j
                  d      } ||d      }| j	                  ||       t        j                  g d      }|j                         } |t        j                  d      |       | j	                  ||       ddgddgddgfD ]f  }t        j                  |      }t        j                  |      }dD ]5  }	| j	                   |||	      |	   ||	          | j                  ||||	       7 h g d	g d
g dg dg dg dg dg dfD ]f  }t        j                  |      }t        j                  |      }dD ]5  }	| j	                   |||	      |	   ||	          | j                  ||||	       7 h t        j
                  d      }| j	                   ||d      |       t        j                  d      }dD ]2  }	| j                   |||	      |	   |	       | j                  ||||	       4 t        j                  d      d d d   }||j                         t        |j                               fD ]  }
| j                   ||
d      d   d       | j                   ||
d      d   d       | j	                   ||
d       ||
d             | j	                   ||
d       ||
d             | j                  |||d        t        j                  d      }t        j                  ||j                  dz        }|j                  dz  dz   }| j                   |||      |   |       t        j                  d      }t        j                  ||j                  dz  dz         }|j                  dz  dz   }| j                   |||      |   |       t        j
                  d      }d |d<   | j                   ||d!      d   d        | j                   ||d!      d   d       t        j                  |d<   t        j                    ||d!      d         sJ t        j                  d      d"z  }t        j                  t        j                  d      d"z        }| j"                  j%                  |       t'        |j                        D ]5  }| j                   |||      |   ||          | j                  ||||       7 t        j                  g d#      }g d$}| j                  t         |||      |         d%       t        j(                  t        j*                  fD cg c]  }d&D ]  }||f  }}}|D ]  \  }}t        j                  ||'      }| j"                  j%                  |       t        j,                  t        j                  ||'      d(      }t/        | j"                  j$                  |       t'        |j                        D ]  } |||      }| j                  ||   |       t        j0                  j3                  |d | ||          t        j0                  j3                  ||   ||dz   d         | j                  ||||        ! y c c}}w ))NTr9  r   rn  r  rK  r%  (   r'  r   rn  r  r'  rn  r  r'  rn  r  r'  r  rn  rn  rn  rn  r  r'  r'  rn  rn  r'  rn  r   rn  r'  rG  1   r%  rK  /   r  rI  r  r  )      @B AB rF  r  r'  r  r  r   rn  r'  r  r  r%  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r     rH  r   r  r  r  r  r  r9  r  rn  )r  r   r   r5  r	  r  r  rN  rW  rH  rx  rM  rN  r1  rL  r  isnanr  rm  rU  r  r  tilemapr  assert_array_less)r  r
  r  rQ  r  r  okthrr  rS  r   r-   r   midrZ  dtstdd1r  s                      r   test_partition_basicz$TestNPFunctions.test_partition_basic
  s    "T"6*HHRLAqk3'GGAJAqk3' hh{#xxzbiimS!T*a&1a&1a&) 	AAA''!*C A''aAA?++FE1a@A	A Y	9Y	9> 	AAA''!*C A''aAA?++FE1a@A		A GGBKaQ/ IIbM 	=AU1a[^Q/''q!<	=
 IIbM$B$AHHJahhj 11 	?AU1a[^Q/U1b\"-r2##E!RL%2,?##E!SM5B<@''q#>	? IIgGGAqvv{#ffkAoq#s+S1IIgGGAqvv{Q'ffkAoq#s+S1 GGBK!q'*2.2q'*1-q1vv!xxa)"-... IIbMAggbiima'(qvv 	=AU1a[^SV4''q!<	= HH ( )uQ}S12LA!#2:: 6H"H1r1gHgHH 	AEB		!2&AHHQ1B/8B  "%166] A!QK  1q)

,,QrUAaD9

,,QqT1QUV9=++FE1a@A	A Is   8Z2c           	      "   t         } t        d      |      }t        j                  g t        j                        } ||d      } ||d      }| j                  ||       t        j                  dt        j                        } ||d      } ||d      }| j                  ||       t        j                  g d      }|j                         } |t        j                  d      |       | j                  ||       ddgddgddgfD ]l  }t        j                  |      }t        j                  |      }	d	D ];  }
| j                  | |||
      |
      ||	|
             | j                  ||||
       = n g d
g dg dg dg dg dg dg dfD ]l  }t        j                  |      }t        j                  |      }	dD ];  }
| j                  | |||
      |
      ||	|
             | j                  ||||
       = n t        j                  d      }| j                  | ||d         |       t        j                  d      }dD ]2  }
| j                   |||
      |
   |
       | j                  ||||
       4 t        j                  d      d d d   }||j                         t        |j                               fD ]  }| j                   ||d      d   d       | j                   ||d      d   d       | j                   ||d       ||d             | j                   ||d       ||d             | j                  |||d        t        j                  d      }t        j                  ||j                   dz        }|j                   dz  dz   }| j                  | |||      |      |       t        j                  d       }t        j                  ||j                   dz  dz         }|j                   dz  dz   }| j                  | |||      |      |       t        j                  d!      }d"|d<   | j                  | ||d#      d      d"       | j                  | ||d#      d      d       t        j"                  |d<   t        j$                  | ||d#      d            sJ t        j                  d      d$z  }t        j&                  t        j                  d      d$z        }	| j(                  j+                  |       t-        |j                         D ]8  }| j                  | |||      |      |	|          | j                  ||||       : t        j                  g d%      }g d&}| j                  t        | |||      |            d'       t        j.                  t        j0                  fD cg c]  }d(D ]  }||f  }}}|D ]!  \  }}t        j                  ||      }| j(                  j+                  |       t        j2                  t        j                  ||      d)      }t5        | j(                  j*                  |       t-        |j                         D ]  }| |||         }| j                  ||   |       t        j6                  j9                  |d | ||          t        j6                  j9                  ||   ||dz   d         | j                  ||||        $ y c c}}w )*NTr9  r9  r   rn  r  r  r'  r  r  r  r  r  r  r  r  r  r  rG  r  r  r  r  rI  r  r  r  r  r  r  r  r  rF  r  r  r  r  r  r  r  r  )r!  r   r   r5  r  r	  r  r  rN  rV  rJ  rx  rH  rM  rN  r1  rL  r  r  rW  r  rm  rU  r  r  r  r  r  r  )r  r
  r  rQ  r  r  r  r  rr  rS  r   r-   r   r  rZ  r  r  r  r  r  s                       r   test_argpartition_basicz'TestNPFunctions.test_argpartition_basick
  sS    "T"6*HHRrxx(!Q<Aqk#.GGARXX&!Q<Aqk#. hh{#xxzbiimS!T*a&1a&1a&) 	DAA**Q-C D''%1+a.(91SV9E..vuaCD	D Y	9Y	9> 	DAA**Q-C D''%1+a.(91SV9E..vuaCD		D GGBK%1+2 IIbM 	=AU1a[^Q/''q!<	=
 IIbM$B$AHHJahhj 11 	BAU1a[^R0U1b\"-r2##E!RL%2,?##E!SM5B<@**65!SA	B IIgGGAqvv{#ffkAo5C=-.4IIgGGAqvv{Q'ffkAo5C=-.4 GGBK!5G,R01155G,Q/0!4vv!xx%7+B/0111 IIbMAggbiima'(qvv 	@AQuQ{1~.A7**65!Q?	@ HH ( )qq#s!345|D!#2:: 6H"H1r1gHgHH 	DEB		!2&AHHQ1B/8B  "%166] DeAqkN  1q)

,,QrUAaD9

,,QqT1QUV9=..vuaCD	D Is   \c           	      0   d}t        j                  |      D ]|  }t         j                  j                  ||| ||   d|z         | j	                  ||d  ||   k\  j                         d|||d  ||   fz         |dz   }| j                  ||||       ~ y Nr   zkth %d)err_msgzkth %d, %r not greater equal %dr  rn  )r   rW  r  r  r  allrH  r  r
  r  rQ  r  prevr   s          r   assert_partitionedz"TestNPFunctions.assert_partitioned
  s     	=AJJ((4AaD19A ) ?OOQqrUad]//1"&)*AabE1Q4(8"9  ; q5D''q!<	=r!   c           	      0   d}t        j                  |      D ]|  }t         j                  j                  ||| ||   d|z         | j	                  ||d  ||   k\  j                         d|||d  ||   fz         |dz   }| j                  ||||       ~ y r  )r   rW  r  r  r  r  rJ  r  s          r   assert_argpartitionedz%TestNPFunctions.assert_argpartitioned
  s     	@AJJ((4AaD19A ) ?OOQqrUad]//1"&)*AabE1Q4(8"9  ; q5D**65!Q?	@r!   c                 
   t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      } ||d      } ||d        ||t	        j                  |d         d       | j                  | ||d             t	        j                  d      }| j                  j                  |       | j                  t	        j                  d       ||t        t        |j                                           t	        j                  d      }| j                  j                  |       t	        j
                  g d      }| j                  j                  |        |||      } |||       | j                  j                  |       | j                   |||      |       t	        j                  d      d d d	   } | ||d
gdz        d
g        | ||d
gdz  ddgz         d
gdz  ddgz          y NTr9  )r  r  r'  rn  )r   r  )r  r  r7  )rn  r  r  r  rH  r  r%  r  rI  rJ  )r  r   r   r  r   r5  r!  r	  rN  r  rm  r  rU  rL  )r  r
  r  r  rQ  r  keyss          r   test_partition_iterativez(TestNPFunctions.test_partition_iterative
  s    "T"6*$T%<%<feLHH\"!V1f%1R__Q78&A5H#56IIbM		"uQU166]8K/LM IIbMxx&!TN1d#a2 IIbM$B$5QC!G,qc25QC!Gq"g$56a1b'8IJr!   c                 4   t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      }| ||d         } ||d        ||t	        j                   |d         d       | j                  || ||d                t	        j                  d      }| j                  j                  |       | j                  t	        j                  d      | ||t        t        |j                                              t	        j                  d      }| j                  j                  |       t	        j
                  g d      }| j                  j                  |       | |||         } |||       | j                  j                  |       | j                  | |||         |       t	        j                  d      d d d	   } || ||d
gdz           d
g        || ||d
gdz  ddgz            d
gdz  ddgz          y r  )r!  r   r   r  r   r5  r	  rN  r  rm  r  rU  rL  )r  r
  r  r  rQ  r  r  s          r   test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterative
  s    "T"6* '(B(B(.(-!/ HH\"eAva(a6 :;VD1U1h%7#89IIbM		"qq$uQVV}:M1N/OP IIbMxx&eAtna&%4. 115 IIbM$B$aa!q 12QC8aa!qAr7): ;<qcAgB>OPr!   c                 `    t          t        d             fd}d }t        j                  ddd      }t        j                  |dd	 t        j
                   |d
<   t        j
                  |d<   |j                  d      } ||      D ]  }t        dd      D ]  } |||         y )NTr9  c           	          | |      } | |      }j                  |d d d d |f   |d d d d |f          t        j                  |j                  d d       D ]  }j                  t        j                  ||   d |       t        j                  ||   d |              j                  t        j                  ||   |d        t        j                  ||   |d                y Nr  )r	  r   ndindexr  r  )r-   r  r  r  r  r  r
  r  s        r   r  z7TestNPFunctions.test_partition_multi_dim.<locals>.check2  s    a~H3-C##HQ3Y$7Q3YHZZs 34 A''		(1+ds2C(D(*		#a&#,(?A''		(1+cd2C(D(*		#a&,(?AAr!   c              3   ,  K   |  | j                    t        j                  |        t        j                  | t        j                         t        j                  | t        j
                         ddt        j
                   dfff y wNrO  r  r  r  r  r   r  	full_liker  r  rG   s    r   a_variationsz>TestNPFunctions.test_partition_multi_dim.<locals>.a_variations=  j     G##I##A&&,,qRVV44,,qRVV44%"&&!,.00   BBrn  rF  0   r  r  r  r  r  r  r  r  r  )r  r   r   r  r  r  r  rU  r  r  r  r-   r=   r   r  r
  s   `     @@r   test_partition_multi_dimz(TestNPFunctions.test_partition_multi_dim.  s    "T"6*		A	1 KK2r"!Aw!vv!IIi ? 	C2q\ c1	r!   c                 `    t          t        d             fd}d }t        j                  ddd      }t        j                  |dd	 t        j
                   |d
<   t        j
                  |d<   |j                  d      } ||      D ]  }t        dd      D ]  } |||         y )NTr9  c           
          | |      } | |      }t        j                  |       } t        j                  | j                  d d       }|D ],  }j	                  | |   ||   |      | |   ||   |             . t        j                  |j                  d d       D ]  }j	                  t        j
                  | |   ||   d |          t        j
                  | |   ||   d |                 j	                  t        j
                  | |   ||   |d           t        j
                  | |   ||   |d                   y r  )r   r5  r  r  r	  r  )	r-   r  r  r  rR  r  r  r
  r  s	         r   r  z:TestNPFunctions.test_argpartition_multi_dim.<locals>.checkT  sD   a~H3-C

1A**QWWSb\*C ;''!Xa[-=(>()!SVC[(9;; ZZs 34 G''		!A$x{4C7H2I(J(*		!A$s1vds|2D(EG''		!A$x{347H2I(J(*		!A$s1vcd|2D(EGGr!   c              3   ,  K   |  | j                    t        j                  |        t        j                  | t        j                         t        j                  | t        j
                         ddt        j
                   dfff y wr  r  rG   s    r   r  zATestNPFunctions.test_argpartition_multi_dim.<locals>.a_variationsc  r  r  rn  rF  r  r  r  r  r  r  r  r  )r!  r   r   r  r  r  r  rU  r  s   `     @@r   test_argpartition_multi_dimz+TestNPFunctions.test_argpartition_multi_dimP  s    "T"6*	G	1 KK2r"!Aw!vv!IIi ? 	C2q\ c1	r!   c                     t         } t        d      |      }t        j                  ddd      t        j                  d      fD ]  }dD ]  }| j                  ||||         y NTr9  rn  rF  r7  TFT)TFr  r   rn  )r  r   r   r  r5  rH  r  r
  r  rQ  r  s        r   test_partition_boolean_inputsz-TestNPFunctions.test_partition_boolean_inputsv  sj    "T"6*QB'2E)FF 	CA, C++FE1cBC	Cr!   c                     t         } t        d      |      }t        j                  ddd      t        j                  d      fD ]  }dD ]  }| j                  ||||         y r  )r!  r   r   r  r5  rJ  r  s        r    test_argpartition_boolean_inputsz0TestNPFunctions.test_argpartition_boolean_inputs~  sj    "T"6*QB'2E)FF 	FA, F..vuaEF	Fr!   c                 @   t         } t        d      |      }| j                          t        j                  ddgddgddgg      j
                  }t        j                  d      dfD ]J  }| j                         5 } |||       d d d        | j                  d	t        j                               L t        j                  t        j                  fD ]O  }| j                  t              5 } |||       d d d        | j                  d
t        j                               Q dD ]O  }| j                  t              5 } |||       d d d        | j                  dt        j                               Q y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   IxY w)NTr9  r   r'  rn  r                @)r'  z)ddof must be a real numerical scalar typez)Cannot convert non-finite ddof to integer)r  gffffffzddof must be integral value)r#  r   r?  r   r5  r  rN  r  r=  r;  r>  r  r  r<  r  )r  r
  r  r   r'  rA  s         r   test_cov_invalid_ddofz%TestNPFunctions.test_cov_invalid_ddof  sx   "T"6* 	!HHq!fq!fq!f-.00IIaL"$ 	1D'') $Vad#$MMEf../1	1 FFBFFN 	1D"":. $&ad#$MMEf../1	1  	PD"":. $&ad#$MM7V=M=M9NO	P$ $$ $$ $s$   ;E<-FF<F	F	F	c                       t        d      |      }t         j                  ||d      } fd} |       D ]  } |||i        y )NTr9  +=r  c               3     K   t        j                  ddgddgddgg      j                    j                  j	                  d      j                  dd       t        j                  t        j                  ddgddgddgg      j                          j                  j	                  d      j                  dd      d d d d df    t        j                  g d       t        j                  dd	
       t        j                  t         j                  dt         j                   ddg       t        j                  ddd      j                  dd       d d d d g d d ddg d d t        j                  g        t        j                  g       j                  dd       t        j                  g       j                  dd       d y w)Nr   r'  rn  r  r%  rH  )g&S:?o_?g#~j?甇ZӼ?Q|?rC  TrO  r  r  r  r  r  !   )皙?皙?g)\(?gRQ?)g
ףp=
?gzG?)r  r  )y        
ףp=
?y        zG?g r  g333333@r  r  )r  r  r  r  )rn  r  r'  r  ))r  皙@rl  r  )r   r5  r  r  randnr  r  rX  r  r  r  r  s   r   input_variationsz=TestNPFunctions.corr_corrcoef_basic.<locals>.input_variations  s    ((QFQFQF34666((..%--a44##BHHq!fq!fq!f-E$F$H$HII((..%--a4Q!V<<((CDD''&T22((BFFFRVVGVVDEE++b!R(00Q77 ;:<<!!OO44i((K$$ ((2,((2,&&q!,,((2,&&q!,,Hs   G2G5)r   r   r  )r  r
  first_arg_namer  r  r  	input_arrs   `      r   corr_corrcoef_basicz#TestNPFunctions.corr_corrcoef_basic  sP    "T"6*++VUEJ	: *+ 	0INI./	0r!   c                 6    t         }| j                  |d       y )Nr   r  )r)  r  r  r
  s     r   test_corrcoef_basicz#TestNPFunctions.test_corrcoef_basic  s       <r!   c                 6    t         }| j                  |d       y )Nr   r  )r#  r  r  s     r   test_cov_basiczTestNPFunctions.test_cov_basic  s       <r!   c                 D   t         } t        d      |      }t        | j                  ||d      }| j                  j                  d      j                  dd      }d |d d d   f}d	}d	}d
}t        j                  ||||      }	|	D ]  \  }
}}}||
|||d} ||        y )NTr9  r  r  i   rK  r  r  FT)Nr  r   rn  r  T)r   r$  r'  r&  r%  )	r#  r   r   r  r  r  r  r`  r   )r  r
  r  r  r   	y_choicesrowvar_choicesbias_choicesddof_choiceproductsr$  r%  r&  r'  r  s                  r   test_cov_explicit_argumentsz+TestNPFunctions.test_cov_explicit_arguments  s    "T"6*++VUEJHHNN3''A.!DbD'M	$"/$$Y%1;@%- 	!AvtT1d"f6F6N	r!   c                 ,   t         } t        d      |      }t        | j                  ||d      }| j                  j                  d      j                  dd      }d |d d d   f}d	}t        j                  ||      D ]  \  }}|||d
}	 ||	        y )NTr9  r  r  r  rK  r  r  r  r*  )	r)  r   r   r  r  r  r  r`  r   )
r  r
  r  r  r   r	  r
  r$  r%  r  s
             r    test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_arguments  s    "T"6*++VUEJHHNN3''A.!DbD'M	$"**9nE 	IAv17F6N	r!   c                     t        d      |      }t        | j                  ||d      }t        j                  g d      }t        j                  g d      }||d|i} ||       t        j                  g d      }t        j                  g d	g      }||d|i} ||       t        j                  g d      }d	}||d|i} ||       ||d|i} ||       t        j                  g d      }d
}||d|i} ||       ||d|i} ||       t        j                  g       }t        j                  g       }||d|i} ||       d}d}||d|i} ||       | j
                  j                  dd      }t        j                  g d      j                  dd      dz  }||d|i} ||       t        j                  g d      }t        j                  g dg dg      }||d|i} ||       dD ]W  }t        j                  g d      }t        j                  g dg dg dg      }||d|d|i} ||       ||d|d|i} ||       Y y )NTr9  r  r  r  )r  r  Q?r$  r  r+  r  r  )r+  r  r  r  r  rF  r  rn  r  )r  r  r  r%  )r   r   r  r   r5  r  r  r  )	r  r
  r  r  r  r   r$  r  r%  s	            r   cov_corrcoef_edge_casesz'TestNPFunctions.cov_corrcoef_edge_cases  s:   "T"6*++VUEJ HH_%HH^$ !S!,vHHYHHl^$ !S!,vHHY !S!,v !S!,vHHY !S!,v !S!,vHHRLHHRL !S!,v !S!,vHHNN2q!HH_%--a3b8 !S!,vHH_%HHnn56 !S!,v! 	F)A...IJA$aa6BF6N$aa6BF6N	r!   c                     t         }| j                  |d        t        d      |      }t        | j                  ||d      }t
        j                  t
        j                   ddfD ]  }d|i} ||        y )	Nr   r  Tr9  r  r  r  r   )r)  r  r   r   r  r   r  r  r  r
  r  r  r   r  s         r   test_corrcoef_edge_casesz(TestNPFunctions.test_corrcoef_edge_cases-  ss    $$VC$@"T"6*++VUEJ&&266'5!, 	A1XF6N	r!   c                     t         } t        d      |      }t        | j                  ||d      }d}d|i} ||       y )NTr9  r  r  ))r  }Ô%IT)r  r  r   )r)  r   r   r  r  s         r   &test_corrcoef_edge_case_extreme_valuesz6TestNPFunctions.test_corrcoef_edge_case_extreme_values9  sE    "T"6*++VUEJ /qvr!   c                     t         }| j                  |d        t        d      |      }t        | j                  ||d      }t        j                  ddgd	d	gddgg      j                  }|d
d} ||       y )Nr   r  Tr9  r  r  r   r'  rn  r%  )r   r'  )r#  r  r   r   r  r   r5  r  )r  r
  r  r  r   r  s         r   test_cov_edge_casesz#TestNPFunctions.test_cov_edge_casesD  s{    $$VC$@"T"6*++VUEJ HHq!fq!fq!f-.00!$vr!   c                     t         } t        d      |       j                           fd}t        j                  d      } ||       d} ||       g dgg} ||        fd}t        j                  d      }t        j                  d      } |||       t        j
                  d      }d	} |||       t        j                  d
      }t        j                  d      } j                  t              5 } ||       d d d         j                  dt        j                               t        j
                  g d      j                  dd
      } j                  t              5 } |       d d d         j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)NTr9  c                     j                         5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nzm has more than 2 dimensionsr  )r   rA  r  r  s     r   _check_mz5TestNPFunctions.test_cov_exceptions.<locals>._check_mY  sG    '') VaMM8#f>N>N:OP s   	A		Ar%  rI  r  )))r  r  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY w)NrI  zy has more than 2 dimensionsr  )r   r$  rA  r  r  s      r   _check_yz5TestNPFunctions.test_cov_exceptions.<locals>._check_yg  sI    '') Va1MM8#f>N>N:OP r  r	  )r  r  r  )))r  r  ry  r  r  rI  z$m and y have incompatible dimensionsr  rn  z/2D array containing a single row is unsupported)r#  r   r?  r   r  r5  rN  r<  r  r=  r;  r>  r  RuntimeError)r  r
  r  r   r"  r$  rA  r  s   `      @r   test_cov_exceptionsz#TestNPFunctions.test_cov_exceptionsQ  ss   "T"6* 	!	Q
 GGI([M	Q
 GGFOGGIAHH_%!AIIaLIIaLz* 	f!qM	<&**+	-
 HH_%--a3|, 	!H	G&**+	-	 		 	s   >F)2	F5)F25F>c                 N   t         } t        d      |      }t        | j                  ||      }d }d } |t	        j
                  ddd            D ]P  }d|i} ||        ||      D ]7  }||d	} ||       ||d
} ||        ||      D ]  }	|||	d} ||        9 R y )NTr9  c              3   ^   K   d  |  | j                  t        j                         y wr   )r   r   r  rG   s    r   to_variationsz9TestNPFunctions.test_ediff1d_basic.<locals>.to_variations  s#     JG((288$$s   +-c              3      K   |  | j                  ddd       | j                  t        j                         y w)Nr  r'  )r  r   r   r  rG   s    r   ary_variationsz:TestNPFunctions.test_ediff1d_basic.<locals>.ary_variations  s1     G))Aq!$$((288$$s   <>r  r  r  r-  )r-  r/  )r-  r.  )r-  r/  r.  )r,  r   r   r  r   r  )
r  r
  r  r  r'  r)  r-  r  r-   r.   s
             r   test_ediff1d_basicz"TestNPFunctions.test_ediff1d_basic  s    "T"6*++VU;	%
	%
 ""++b!R"89 	#CS\F6N"3' 	#!$!4v!$2v&s+ #A%(a1EF6N#	#		#r!   c                 
   t         } t        d      |      }| j                          | j                         5 } |t	        j
                  d             d d d        d}|t        j                        v sJ y # 1 sw Y   %xY w)NTr9  )TTFz+Boolean dtype is unsupported (as per NumPy))r,  r   r?  r  r   r5  r;  r>  )r  r
  r  r  r  s        r   test_ediff1d_exceptionsz'TestNPFunctions.test_ediff1d_exceptions  sy    "T"6* 	!##% 	1"((./0	1 <c!++&&&&		1 	1s   A99Bc                 f   t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & | j                  t              5 } |d       d d d        | j                  dt        j                  z  t        j                               y # 1 sw Y   @xY w)NTr9  c               3      K   t        j                  d      j                  dd       t        j                  d      j                  ddd       d ddgddgf y w)	NrF  r%  r'  rH  rn  r'  rn  r  r  r  r  r!   r   r  z7TestNPFunctions.test_fliplr_basic.<locals>.a_variations  sV     ))B-''1--))B-''1a00Oq6Aq6##s   AA!rB  zCannot np.fliplr on %s type)
r   r   r	  r<  r   r=  r	   unicode_typer;  r>  r  r
  r  r  r-   r  r  rA  s           r   test_fliplr_basicz!TestNPFunctions.test_fliplr_basic  s    "T"6*	$  	3AayH(C##Hc2	3
 {+ 	v%L	 	3e6H6HH&**+	-	 	   	B''B0c                 r   t         } t        d      |      }| j                          | j                  t              5 } |t        j                  d             d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NTr9  r  cannot index arrayzwith 2 indices)
r   r   r?  r<  r   r   rN  r=  r;  r>  r@  s       r   test_fliplr_exceptionz%TestNPFunctions.test_fliplr_exception  s    "T"6* 	!{+ 	 v"))A,	  	*C0@0@,AB&F,<,<(=>		  	 s   B--B6c                 f   t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & | j                  t              5 } |d       d d d        | j                  dt        j                  z  t        j                               y # 1 sw Y   @xY w)NTr9  c               3      K   dg t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       d ddgddgf y w)	Nrn  rF  r%  r'  rH  r/  r  r  r  r  r!   r   r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variations  sk     #I))B-))B-''1--))B-''1a00Oq6Aq6##s   A;A=rB  zCannot np.flipud on %s type)
r   r   r	  r<  r   r=  r	   r1  r;  r>  r2  s           r   test_flipud_basicz!TestNPFunctions.test_flipud_basic  s    "T"6*	$  	3AayH(C##Hc2	3
 {+ 	v%L	 	3e6H6HH&**+	-	 	r4  c                 L   t         } t        d      |      }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NTr9  rn  r6  zwith 1 indices)r   r   r?  r<  r   r=  r;  r>  r@  s       r   test_flipud_exceptionz%TestNPFunctions.test_flipud_exception  s    "T"6* 	!{+ 	v!H	 	*C0@0@,AB&F,<,<(=>		 	s   	BB#c                 D   t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & | j                  t              5 } |d       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)NTr9  c               3     K   t        j                  d       t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)Nrn  rF  r%  r'  rH  r  r  r!   r   r  z5TestNPFunctions.test_flip_basic.<locals>.a_variations  sZ     ((1+))B-))B-''1--))B-''1a00s   A?Br  zCannot np.flip on UniTuple)r   r   r	  r<  r   r=  r;  r>  r2  s           r   test_flip_basiczTestNPFunctions.test_flip_basic  s    "T"6*	1  	3AayH(C##Hc2	3
 {+ 	v)	 	2C8H8H4IJ	 	s   	BBc                     d }t         } t        d      |      } |       D ]3  \  }}t        j                  j	                   |||       |||             5 y )Nc               3     K   d d d d d d d d d	t         j                  f d	t         j                  f t        d
k  r	t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f y y wN)rn  r  )r  r  )r  r  rC  )r  r  r        N@      Nr   )r   rF  r!  r'  r   rn  r'  r  r        ?       @      @      @      ?             @                   @r   r  pir   r  r  r!   r   r>  z4TestNPFunctions.test_logspace2_basic.<locals>.inputs
      KLMMLOrtt)Oruu*v%ll1or||A66ll2&R(888ll1or||B'777ll6*BLL,@@@ll6*BLL,@@@ll7+R\\&-AAA &   EETr9  )r   r   r   r  assert_allcloser  r>  r
  r  r   r   s         r   test_logspace2_basicz$TestNPFunctions.test_logspace2_basic  Y    	B( "T"6*!8 	PKE4JJ&&veT':E%<NO	Pr!   c                     t        d      t              }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NTr9  rB  r%  +The first argument "start" must be a number+The second argument "stop" must be a number)r   r   r?  r<  r   r=  r;  r>  r  r  rA  s      r   test_logspace2_exceptionz(TestNPFunctions.test_logspace2_exception$  s    "T"9-!{+ 	v%O	C&**+	- {+ 	v!UO	C&**+	-	 	
	 	s   
C 
C C	Cc                     d }t         } t        d      |      } |       D ]3  \  }}t        j                  j	                   |||       |||             5 y )Nc               3     K   d d d d d d d d d	t         j                  f d	t         j                  f t        d
k  r	t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f y y wrB  rO  r  r!   r   r>  z4TestNPFunctions.test_logspace3_basic.<locals>.inputs5  rQ  rR  Tr9  r   r   r   r  rS  rT  s         r   test_logspace3_basicz$TestNPFunctions.test_logspace3_basic3  rV  r!   c           	          d }t         } t        d      |      } |       D ]6  \  }}}t        j                  j	                   ||||       ||||             8 y )Nc               3     K   d d d d d d d d d	t         j                  d
f d	t         j                  df t        dk  rt        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df y y w)N)rn  r  rH  )r  r  r  )rC  r  r  r  rC  rG  )r  r  r  r  rF  F   rH  r   P   )r   rF  Z   r!  rH  r  rI  rn  r'  r  r  r  rG  r  rJ  rK  rd  rL  rM  rf  rN  rg  rO  r  r!   r   r>  z=TestNPFunctions.test_logspace3_with_num_basic.<locals>.inputsQ  s    O!!  rttR-ruub. v%ll1or||A::ll2&R(8"<<ll1or||B'7;;ll6*BLL,@"DDll6*BLL,@"DDll7+R\\&-A2EE &s   E%E'Tr9  r^  r  r>  r
  r  r   r   r   s          r   test_logspace3_with_num_basicz-TestNPFunctions.test_logspace3_with_num_basicO  sd    	F( "T"6* & 	@E4JJ&&veT3'?',UD#'>@	@r!   c                 b    t        d      t              }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |ddd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)	NTr9  rB  r%  rX  rY  r   z+The third argument "num" must be an integer)r   r   r?  r<  r   r=  r;  r>  rZ  s      r   test_logspace3_exceptionz(TestNPFunctions.test_logspace3_exceptionl  s   "T"9-!{+ 	v%O	C&**+	- {+ 	v!UO	C&**+	- {+ 	v!Q	C&**+	-	 	
	 	
	 	s#   
D
DD%DD"%D.c                     d }t         } t        d      |      } |       D ]'  \  }}| j                   |||       |||      d       ) y )Nc               3     K   d d d d d d d dt        j                  d	      f t        j                  d	      df d
t        j                  d	      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d	      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f y w)NrD  rE  rG  )rn  r  )r  rn  )rn     )r  r  r  r   r+               @@r)  r(  rn  r'  r  rJ  rK  rL  rM  rN  r   r  r  r!   r   r>  z5TestNPFunctions.test_geomspace2_basic.<locals>.inputs  sK    MOMMLObll2&&&,,r"B&&R(((,,r"BLL$777,,w'f)===,,q/2<<?22,,r"BLL$444,,q/2<<#333,,v&V(<<<,,v&V(<<<,,w'f)===s   G	GTr9  g-q=r  )r   r   r	  rT  s         r   test_geomspace2_basicz%TestNPFunctions.test_geomspace2_basic  s]    	>* "T"6*!8 	3KE4##F5$$7$)%$6,1 $ 3	3r!   c                     t        d      t              }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   TxY w)	NTr9  rB  r%  %The argument "start" must be a number$The argument "stop" must be a numberr   &Geometric sequence cannot include zero)	r   r   r?  r<  r   r=  r;  r>  r  rZ  s      r   test_geomspace2_exceptionz)TestNPFunctions.test_geomspace2_exception  sQ   "T":.!{+ 	v%O	=&**+	- {+ 	v!UO	<&**+	- z* 	f!QK	>&**+	- z* 	f!QK	>&**+	-#	 	
	 	
	 	
	 	s/   
E
E%
E1 
E=E"%E.1E:=Fc           	          d }t         } t        d      |      } |       D ]*  \  }}}| j                   ||||       ||||      d       , y )Nc               3     K   d d d d d d d d d	t        j                  d
      df t        j                  d
      d	df dt        j                  d
      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d
      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      d f t        j                  d!      t        j                  d      d"f y w)#Nrb  rc  re  )rn  r  r  )rn  r  r  )r  rn  r  )rn  rn  r  )ro  r  r  r  r  rF  rH  r   r  r+  rp  r  r)  r(  r%  rn  r'  r  r  rG  r  rJ  rK  rd  rL  rM  rf  rN  rg  rq  r  r!   r   r>  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs  sl    !!Obll2&**,,r"B**R(",,,,r"BLL$7::,,w'f)=q@@,,q/2<<?B66,,r"BLL$4b88,,q/2<<#3R77,,v&V(<b@@,,v&V(<b@@,,w'f)=rAAs   GGTr9  r  r  )r   r   r	  rh  s          r   test_geomspace3_basicz%TestNPFunctions.test_geomspace3_basic  se    	B, "T"6* & 	3E4##F5$$<$)%s$;,1 $ 3	3r!   c                     t        d      t              }| j                          | j                  t              5 } |ddd       d d d        | j                  dt        j                               | j                  t              5 } |ddd       d d d        | j                  dt        |j                               | j                  t              5 } |ddd       d d d        | j                  dt        |j                               | j                  t              5 } |d	dd       d d d        | j                  d
t        |j                               | j                  t              5 } |dd	d       d d d        | j                  d
t        |j                               y # 1 sw Y   dxY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w)NTr9  rB  r%  rF  rt  ru  z%The argument "num" must be an integerr   rv  )	r   r   r?  r<  r   r=  r;  r>  r  rZ  s      r   test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exception  s   "T":.!{+ 	 v%B	 =&**+	- {+ 	 v!UB	 <&**+	- {+ 	 v!R	 =&**+	- z* 	f!QN	>&**+	- z* 	f!QN	>&**+	--	  	 
	  	 
	  	 
	 	
	 	s;   F)	F6G#G0G)F36G GGG$c                 	    t        d      t              } t        d      t              }t        } |dd      }| j                  t	        |      d        |ddd      }| j                  |d   d	        |ddd
      }| j                  | |ddd
              |ddd      }| j                  | |ddd             | j                  |j                  D cg c]  }|dk(  	 c}        |ddd      }| j                  | |ddd             | j                  |j                  D cg c]  }|dk(  	 c}        |ddd      }| j                  | |ddd             | j                  |j                  D cg c]  }|dk(  	 c}       d}d} |||d      }| j                  |d   |        |||d      }| j                  |d   |       | j                  |d   |       t        j                  d      5   |ddd      }d d d        | j                  |d   d       | j                  t        j                  |dd       j                                | j                  |d   d        |ddd      }| j                  | |ddd      d       | j                  |j                  D cg c]  }|dk(  	 c}        |ddd      }| j                  | |ddd      d       | j                  |j                  D cg c]  }|dk(  	 c}        |d d!d      }| j                  | |d d!d      d        |d"d#d      }| j                  | |d"d#d      d       t        d$k  r& |d%d&d      }| j                  | |d%d&d              |d'd(d      }| j                  | |d'd(d      d)        |d'd*d      }| j                  | |d'd*d      d)        |d(d+d      }| j                  | |d(d+d      d)        |d'd(d      }| j                  | |d'd(d      d)        |d,d-d
      }| j                  | |d,d-d
      d        |d'd.d      }| j                  | |d'd.d              |d.d'd      }| j                  | |d.d'd             y c c}w c c}w c c}w # 1 sw Y   xY wc c}w c c}w )/NTr9  rn  r  rG  r  r   r  r  r  r  r'  r  r   ir  gL4@ignore)invalidr  r  g      r  r+  y              0@r%  r  r  y             y            @tvIh%<=r  y     @@     @@y            ?y     @     @@rI  r)  r(  r  y              gV瞯<y      @        y              y             y      @      @r&  )r   r   r   rx  r4  r	  r  imagr   errstater  r  realr   )r  cfunc2cfunc3pfunc3r$  r   r   r   s           r   test_geomspace_numpyz$TestNPFunctions.test_geomspace_numpy  s   #d#J/#d#J/ 1cNQ$1cs#2(1cq!6!CQ#781aQ6!QA#670Aa012t#6"d#:;0Aa014#6$#:;0Aa01 5$A&!e,5$A&!e,"t, [[* 	%r1!$A	% 	!d+1R)--/0!c* 2s"6"cq#95I0Aa0131%6#u!#<eL0Aa016<Q/ &v| C(- 	  	/ 7Mq1 &w1 E(- 	  	/
 6!wA.A##Avgv1'EF67A&6&'1#=uM661%6&&!#<eL7FA&6'61#=uM67A&6&'1#=uM7FA&6'61#=uM2r16"b!#452r16"b!#45I 1 1 1	% 	% 1 1s*   R#.R( R-R26R?
S2R<c                     t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & y )NTr9  c               3      K   t        j                  d      j                  dd       t        j                  d      j                  ddd       t        j                  d      j                  dddddd       y wNrF  r%  r'  rH  r  r  r  r!   r   r  z6TestNPFunctions.test_rot90_basic.<locals>.a_variationsP  a     ))B-''1--))B-''1a00))B-''1aAq99   A<A>)r   r   r	  )r  r
  r  r  r-   r  r  s          r   test_rot90_basicz TestNPFunctions.test_rot90_basicL  sR    "T"6*	:
  	3AayH(C##Hc2	3r!   c                     t         } t        d      |      }d } |       D ]7  }t        dd      D ]&  } |||      } |||      }| j                  ||       ( 9 y )NTr9  c               3      K   t        j                  d      j                  dd       t        j                  d      j                  ddd       t        j                  d      j                  dddddd       y wr  r  r  r!   r   r  z=TestNPFunctions.test_rot90_with_k_basic.<locals>.a_variations^  r  r  r&  rI  )r   r   rU  r	  )r  r
  r  r  r-   r   r  r  s           r   test_rot90_with_k_basicz'TestNPFunctions.test_rot90_with_k_basicZ  sk    "T"6*	:
  	7A2q\ 7!!Q<Aqk''#67	7r!   c                    t         } t        d      |      }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      j                  dd      d       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d	             d d d        | j                  d
t        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)NTr9  rB  z'The first argument "m" must be an arrayr  r'  r  z*The second argument "k" must be an integerr  zInput must be >= 2-d.)r   r   r?  r<  r   r=  r;  r>  r   rN  r  r@  s       r   test_rot90_exceptionz$TestNPFunctions.test_rot90_exceptioni  s)   "T"6* 	!{+ 	v%L	 	?&**+	- {+ 	7v"))A,&&q!,6	7 	B&**+	- {+ 	 v"))A,	  	-s63C3C/DE	 		7 	7	  	 s#   	E	.E9EEEE$c                     |} t        d      |      }d } |       D ]5  } || } || }t        j                  j                  |t	        |             7 y )NTr9  c               3     K   t        j                  d      } | df | ddf | g df t        |       g df t        |       g df | g ddf t        |       g ddf t        |       g ddf t        j                  d      j	                  ddd      } | df | ddf | ddf | g df | g ddf | g ddf | dd	gf | dd	gdf | dd	gdf | dgd
f | dgdf | dgdf | t        j
                  g t         j                        df t        j                  d      j	                  dd
      } | df | ddf | dgdf | ddf | t        j                  ddd      df | df | t        j                  d      dff t        j
                  g       } | df | df | ddf | ddf t        j
                  g g      } | df | ddf | ddf | ddf y w)Nr  r'  r   )rn  r  H   r  r  rn  )r'  rn  r%  r  r  r  r  r9  rG  rF  rn  r  )r   rN  r  rN  r  r5  r  r  rG   s    r   args_variationsz5TestNPFunctions._check_split.<locals>.args_variations  s?    		#AQ$JQ'MZ-q':%%(J&&Z""q':q(((J))		"%%aA.AQ$JQ'MQ'MY,Y/!Y/!aV)OaVQ,aVQ,aS"*aS"*aS"*RXXb1144		#&&q"-AQ$JQ'MaS!)OR(NRYYr2r*A--T'Mbhhqk2&&&AQ$JQ$JVQ,Q'M"AQ$JVQ,Q'MQ'Ms   H	Hr   r   r  assert_equalr  r  r  r
  r  r  rk   r  r  s           r   _check_splitzTestNPFunctions._check_split  s\    "T"6*-	^ $% 	9Dt}H,CJJ##Hd3i8		9r!   c                     |} t        d      |      }d } |       D ]5  } || } || }t        j                  j                  |t	        |             7 y )NTr9  c               3     K   t        j                  d      df t        t        j                  d            df t        t        j                  d            df t        j                  d      j	                  dd      df y w)Nr  r  r  r  r'  r%  )r   rN  r  rN  r  r  r!   r   r  z;TestNPFunctions._check_array_split.<locals>.args_variations  sh     ))A,/!ryy|$a''		!%q(())B-''A.11s   BB
r  r  s           r   _check_array_splitz"TestNPFunctions._check_array_split  s[    "T"6*	2 $% 	9Dt}H,CJJ##Hd3i8		9r!   c                 X    | j                  t               | j                  t               y r   )r  r   r  r  s    r   test_array_split_basicz&TestNPFunctions.test_array_split_basic  s    +&,r!   c                 4   | j                  t               | j                          | j                  t              5 } t        t              t        j                  d      d       d d d        | j                  dt        j                               | j                  t              5 } t        t              t        j                  d      dgd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nr%  r'  z0array split does not result in an equal divisionr  r  r:   z%np.split: Argument axis out of bounds)r  r   r?  r<  r  r   r   r  r=  r;  r>  )r  rA  s     r   test_split_basicz TestNPFunctions.test_split_basic  s    % !z* 	'fDK
A&	'>  !	

 z* 	2fDK
QCb1	2=&**+	-	' 	'	2 	2s   *D'-DDDc           
          d }d }d } |        |        |       g}t         ddft        ddft        dd	ffD ]T  \  }}}|}t        |      }	t	        |d
      D ]2  }
||
dz
     D ]%  \  }}| j                   |||       |	||             ' 4 V y )Nc               3   x   K   t        j                  g d      df t        j                  g d      df y w)Nr  r'  r  rD  r        @r  r  r!   r   inputs1Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs1D  s/     ((<(!++((+,a//s   8:c               3   R  K   t        j                  g dg dg      df t        j                  g dg dg      df t        j                  d      j                  dd      df t        j                  d      j                  dd      t        j                  ddg      f t        j                  d      j                  dd      ddgf t        j                  d      j                  dd      df t        j                  d	      j                  ddd      df y w)
Nr  r'  r        0@r  r  rI  r  rI  r  r  r  r!   r   inputs2Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs2D  s     ((L,78!;;((,.>?@!CC))D/))!Q/22))D/))!Q/1a&1AAA))D/))!Q/!Q77))D/))!Q/77))C.((Aq1144s   D%D'c               3   (  K   t        j                  g dg dgg dg dgg      df t        j                  d      j                  ddd      df t        j                  d      j                  ddd      t        j                  ddg      f t        j                  d      j                  ddd      ddgf t        j                  d      j                  ddd      df t        j                  d      j                  ddd      df y w)	Nr  r'  r  r  r  rI  r  r  r  r  r!   r   inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3D  s     HH|#%##%& ' )** ))D/))!Q2A55))D/))!Q2BHHaV4DDD))D/))!Q2QF::))D/))!Q2F::))C.((Aq1144s   DDr'  r   rn  r   r  r   r  )r   r   r   r   rU  r	  )r  r  r  r  r>  fmindimnamer
  r  rZ  r-   r   s                r   test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basic  s    	0
	5
	5 *hj(*5#)1h"7#)1h"7#)1h"7"9 	BQ FLE61% B%+AE] BMAz++F1j,A,1!Z,@BBB	Br!   c           	         t         ddft        ddft        ddffD ]  \  }}} t        d      |      }| j	                          | j                  t              5 } |dd       d d d        | j                  d	t        j                               | j                  t              5 } |d
d       d d d        | j                  d	t        |j                               | j                  t              5 } |t        j                  g dg dg      d
       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      d       d d d        | j                  |dz   t        |      z   dz   t        |j                                y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w)Nr'  r   rn  r   r  r   Tr9  z#The argument "ary" must be an arrayrB  r  z:The argument "indices_or_sections" must be int or 1d-arrayz only works on arrays of z or more dimensions)r   r   r   r   r?  r<  r   r=  r;  r>  r   r5  r  )r  r  r  r  r  rA  s         r   test_vhdsplit_exceptionz'TestNPFunctions.test_vhdsplit_exception
  s   #)1h"7#)1h"7#)1h"7"9 	1Q 'C&q)E##%"";/ 6aMM?f../1"";/  6eQ MM?f../1"";/ E6bhhl;<eDEMM &f../1 "":. &&bhhqk1%&MM$!<<s6{J/0f../1)	1
    E E
& &s0   
F7&
G2#GG7G	G	G	G&	c                     t         } t        d      |      }d }d } |       D ]2  } |       D ]&  } |||      } |||      }| j                  ||       ( 4 y )NTr9  c               3     K   t        j                  d       t        j                  d      j                  ddd       g d d d d d	 t        j                  t        j                  d
t         j
                  gt         j                  dgg             t        j                  g        d y w)Nr  r  r  r  r%  )r  r  rn  r  F)r  r  g333333@r  )r   rN  r  r  r5  r  r  r  r!   r   r  z5TestNPFunctions.test_roll_basic.<locals>.a_variations(  s     ))A,))I&..q!Q77!!%%KGJ##BHHsBFFmbffc]-K$LMM((2,Hs   B>C c                  X    t         j                  j                  dt        dd      f      S )Nr  r  rF  r  r  r!   r   shift_variationsz9TestNPFunctions.test_roll_basic.<locals>.shift_variations4  s,    ??00-27R.2B C Cr!   )r1  r   r	  )	r  r
  r  r  r  r-   r2  r  r  s	            r   test_roll_basiczTestNPFunctions.test_roll_basic$  so    "T"6*
		C  	7A)+ 7!!U+Auo''#67	7r!   c                    t         } t        d      |      }| j                          dD ]R  }| j                         5 } |t	        j
                  d      |       d d d        d}|t        j                        v rRJ  y # 1 sw Y   'xY w)NTr9  )r  r0  rF  zshift must be an integer)r1  r   r?  r  r   rN  r;  r>  )r  r
  r  r2  r  r  s         r   test_roll_exceptionsz$TestNPFunctions.test_roll_exceptions>  s    "T"6* 	!  	+E'') ,QbiimU+, -C#akk****	+, ,s   BB
	c           	         t         } t        d      |      }t        | j                  ||      }t	        j
                  d      }| j                  j                  |       t        dd      D ]  }||kD  } |||d        t	        j
                  d      j                  dd	d
      }|dkD  } |||d       d}t	        j                  d
      j                         } |||d       g d}g d} |||d       t	        j                  ddd      }ddt        j                  ddddddf	}t        j                  |d      D ];  } |||d        |t	        j                   |      j                  dd      |d       = t	        j                   g d      }t	        j                   g       } |||d       t	        j                   g d      }t	        j                   g d      } |||d       t	        j                   g dg dg      }g d} |||d       t	        j                   g dg dg      }t	        j                   g d      j                  ddd      } |||d       t	        j"                  t	        j
                  d      j                  d
dd	            }t	        j$                  dd      } |||d        |||d d d   d       t	        j                   d      }dD ]  } |||d        d}d} |||d       t	        j                   d      }t	        j                   ddg      } |||d       t	        j
                  d      }t	        j                   g d       j                  dd
      d!z  } |||d       y )"NTr9  rF  r  rJ  rD  r  r  r%  r  gffffff&@)r  r  r  r%  r  )r  r  rn  ri  r{  r  rI  Fr  r   g333333rn  r  y              ?r'  r  )rn  r   rn  r   r  )rn  r   rn  r   rn  r   )rn  r   rn  r   rn  r   r   r   r  r  )rn  r   rn  r   r   r   r+  )rC  r   r   r  r   rN  r  rm  rU  r  eyeflattenr  r  r`  combinations_with_replacementr5  r  ro  )r  r
  r  r  r-   	thresholdr  rY  s           r   test_extract_basicz"TestNPFunctions.test_extract_basicL  s   "T"6*++VU;IIbMr2 	2Iy=Da01	2 IIbM!!!Q*4xT!,--vvay  "T!,- T!,-KKB"eRVVRtQTJ;;L!L 	JDa01$!7!71!=aHI	J HHYxx|T!,-HHYxx%T!,-HHi+,!T!,-HHi+,xx0199!QBT!,-biim33Aq!<=yy$T!,-T!DbD'23HHQK 	2Da01	2 T!,-HHQKxxu&T!,-IIaLxx*+33Aq9B>T!,-r!   c                 @    t         } t        d      |       j                          t        j                  g       }t        j                  g d      } j                  t              5 } ||       d d d         j                  dt        j                                fd}t        j                  g dg dg      }g d} |||       t        j                  g d      }t        j                  g d      } |||       t        j                  d      }d	} |||       t        j                  d
      }t        j                  g d      } |||       t        j                  d
      }t        j                  g d      } |||       y # 1 sw Y   xY w)NTr9  r  z"Cannot extract from an empty arrayc                     d}j                  t              5 } | |       d d d        j                  |t        j                               y # 1 sw Y   /xY w)Nz+condition shape inconsistent with arr shaperv  )r  r-   r  r  r  r  s       r   r  z7TestNPFunctions.test_extract_exceptions.<locals>._check  sM    ?C"":. !dAMM#s1;;/0 s   
AA)rn  r   rn  r   rn  r   rn  )rn  r   rn  r   rn  r  r  r  )TFFFT)TFTFFTF)rC  r   r?  r   r5  r<  r  r=  r;  r>  rN  )r  r
  r-   r  r  r  r  s   `     @r   test_extract_exceptionsz'TestNPFunctions.test_extract_exceptions  s:   "T"6* 	!HHRLxx	"z* 	a$N	:C<LM	1 HHi+,$tQHHYxx(tQHHRLtQIIaLxx9:tQIIaLxxFGtQ9	 	s   ,
FFzNew in numpy 2.0+c                 0    | j                  t               y N)r
  )test_np_trapz_basicrZ  r  s    r   test_np_trapezoid_basicz'TestNPFunctions.test_np_trapezoid_basic  s       5r!   c                 d    t        d      |      }t        | j                  ||      }g d} |d|i       d} |d|i       t        j                  d      j                  dd      } |d|i       t        j                  d	d
d      j                  ddd      } |d|id       | j                  j                  |        |d|id       t        j                  g       } |d|i       t        j                  dt        j                  t        j                  t        j                   dg      } |d|i       t        j                  d      t        j                  dd
d      dz  z   } |d|i       t        j                  g t        j                        } |d|i       d} |d|i       y )NTr9  r  r$  )r  rn  r'  r'  r'  rK  r  r%  r  rF  r  r  r  r  r  rH  r   r+  r9  r  )r   r   r  r   rN  r  r  r  rm  r5  r  r  r6  r  r
  r  r  r$  s        r   r  z#TestNPFunctions.test_np_trapz_basic  sk   "T"6*++VU;QxQxIIbM!!!Q'QxKKR$,,Q15Qx'Qx'HHRLQxHHeRVVRVVbffWa89QxIIbMBKK2r2R77QxHHRr}}-QxQxr!   c                 0    | j                  t               y r  )test_np_trapz_x_basicr\  r  s    r   test_np_trapezoid_x_basicz)TestNPFunctions.test_np_trapezoid_x_basic  s    ""."9r!   c                     t        d      |      }t        | j                  ||      }g d}g d} |||d       g d}d} |||d       d}g d} |||d       t        j                  g d      }d	d	g} |||d       t        j                  g       }t        j                  d
dg      } |||d       d}d } |||d       t        j
                  d      j                  dd	      }t        j                  d	dg      } |||d       t        j
                  d      j                  dd	      }t        j                  g d      } |||d       t        j
                  d      j                  dd	d      }t        j                  d	dg      } |||d       t        j
                  d      j                  dd	d      }t        j                  g d      } |||d       t        j
                  d      j                  dd	d      }| j                  j                  |       |dz   }| j                  j                  |        |||d       t        j
                  d      }|t        j                  ddd      dz  z   } |||d       t        j                  g d      }t        j                  ddg      } |||d       y )NTr9  r  r  rI  r  rL  r  )r  rI  r  r%  rI  r  r  r  r'  r  rH  r%  r  r  )r  r%  r  r  r   rF  r+  r  rJ  )
r   r   r  r   r5  rN  r  r  rm  r  )r  r
  r  r  r$  r   s         r   r  z%TestNPFunctions.test_np_trapz_x_basic  sm   "T"6*++VU;QQ QQ QQ HH_%FQQ HHRLHHaVQQ QQ IIbM!!!Q'HHaVQQ IIbM!!!Q'HH\"QQ IIbM!!!Q*HHaVQQ IIbM!!!Q*HHYQQ IIbM!!!Q*GQQ IIbMAr2&++QQ HHYHHff%&QQ r!   c                 0    | j                  t               y r  )test_trapz_numpy_questionablerZ  r  s    r   !test_trapezoid_numpy_questionablez1TestNPFunctions.test_trapezoid_numpy_questionable  s    **,*?r!   zNumPy behaviour questionablec                      t        d      |      }t        | j                  ||      }t        j                  g d      j                  t              } |d|i       t        j                  g d      } |d|i       y )NTr9  )TFTTr$  )r   r   r  r   r5  r   r  r  s        r   r  z-TestNPFunctions.test_trapz_numpy_questionable  sn     #T"6*++VU; HH./66s;Qx HH./Qxr!   c                 0    | j                  t               y r  )test_np_trapz_dx_basicr_  r  s    r   test_np_trapezoid_dx_basicz*TestNPFunctions.test_np_trapezoid_dx_basic,  s    ##?#;r!   c                 j    t        d      |      }t        | j                  ||      }g d}d} |||d       g d}g d} |||d       g d}g d} |||d       t        j                  dd	d
      }t        j
                  } |||d       t        j                  dd	d
      }t        j                  } |||d       t        j                  dd	d
      }t        j                  dd	d      } |||dd       t        j                  d      j                  dd	d      dz  }t        j                  d      j                  dd	d      } |||d       t        j                  dd
d      } |t        j                  d|dz  z        t        j                  dt        j                  z        z  d      }t        j                  j                  |dd       t        j                  d      }d} |||d       t        j                  d      }t        j                  d	g      } |||d       y )NTr9  r  r'  rR  r  )rn  r  r%  rI  r  r%  rF  r  r  r  r  r  r  r+  r  r  r  r$  rP  rn  r  rH  )r   r   r  r   r  r  r  rN  r  expr-  rP  r  assert_almost_equalr5  )r  r
  r  r  r$  rQ  r   rr  s           r   r  z&TestNPFunctions.test_np_trapz_dx_basic0  s   "T"6*++VU;Qb!"Qb!"Qb!"KKAr"VVQb!"KKAr"VVQb!"KKAr"[[Q"Qb!51IIbM!!!Q*R/YYr]""1a+Qb!"IIc2r""&&qAv&RUU);;D


&&q!Q/IIbMQb!"IIbMXXqc]Qb!"r!   c                 0    | j                  t               y r  )test_np_trapz_x_dx_basicra  r  s    r   test_np_trapezoid_x_dx_basicz,TestNPFunctions.test_np_trapezoid_x_dx_basic]  s    %%->%?r!   c                     t        d      |      }t        | j                  ||      }d dt        j                  g d      fD ]  }g d}g d} ||||d       g d}dd	g} ||||d       g d}g d
} ||||d       t        j
                  d      j                  ddd      }| j                  j                  |       |dz  }t        j                  |d<    ||||d        y )NTr9  r'  r  r  r  rU  r  rI  r  r  r%  r  r  r  )
r   r   r  r   r5  rN  r  r  rm  r  )r  r
  r  r  rQ  r$  r   s          r   r  z(TestNPFunctions.test_np_trapz_x_dx_basica  s    "T"6*++VU; BHH_56 	/BAA"-.AAA"-.AA"-.		"%%aA.AHHQCAAgJ"-.#	/r!   c                 0    | j                  t               y r  )test_np_trapz_x_dx_exceptionsra  r  s    r   !test_np_trapezoid_x_dx_exceptionsz1TestNPFunctions.test_np_trapezoid_x_dx_exceptionsy  s    **2C*Dr!   c                 t     t        d      |       j                           fd}g d}g dg dfD ]  } |||df        t        j                  d      j	                  d	d
d      }t        j                  d      j	                  d	d
d	      } |||df       t        j                  d      j	                  d	d
d      }t        j
                  g d      } |||df       g d}t        j
                  ddg      } ||d |f       t        j                  d      j	                  d	d
d      }t        j                  d      j	                  d	d
d      } ||d |f        j                         5 }t        j
                  d
      } ||d df       d d d         j                  dt        j                               ddt        j                  fD ]J  } j                         5 } |d d       d d d         j                  dt        |j                               L y # 1 sw Y   xY w# 1 sw Y   =xY w)NTr9  c                     j                  t              5 } |   d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nzunable to broadcastrv  )r  r  r  r  s     r   check_not_okzCTestNPFunctions.test_np_trapz_x_dx_exceptions.<locals>.check_not_ok  sI    "":. !v MM/Q[[1AB s   AAr  )r  r%  rI  r  r  r  r  r  r  r  r  r%  $   r  rD  zy cannot be 0DFzy cannot be a scalar)r   r?  r   rN  r  r5  r  r=  r;  r>  r  )r  r
  r  r$  r   rQ  r  r  s   `      @r   r  z-TestNPFunctions.test_np_trapz_x_dx_exceptions}  s   "T"6* 	!	C #Y. 	&A!Q%	& IIbM!!!Q*IIbM!!!Q*aC[!IIbM!!!Q*HH\"aC[!XXsCj!ar]#IIbM!!!Q*YYr]""1a+ar]###% 	)A!T3(	) 	&AKK(89E266! 	DA'') $Qas#$ MM0#akk2BC		D	) 	)$ $s   3!H"'H."H+.H7	c                     d}t         j                  j                  |      dz  }t         j                  j                  |      dz  }t        j                  |      }t         j                  j                  |      dkD  }t         j                  j                  |      dkD  }t         j                  j	                  d|      }t         j                  j	                  d|      }d}	d}
d}t         j                  j                  |	|
|      dz  }t         j                  j                  |	|
|      dz  }t        } t        d      |       j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   ||       |      d
        j                   ||       |      d
        fd} |||	        fd} fd}t        j                  d      j                  d      }t        j                  ddg      } |||	        ||d|       y )Nr  r#  e   r  rG  rM  Tr9  rS   rF  )placesc                     j                  t              5 } | |       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)NrS   z)Weights sum to zero, can't be normalized.)r<  ZeroDivisionErrorr>  rx  r;  datarT   r  errr  r  s       r   test_weights_zero_sumz;TestNPFunctions.test_average.<locals>.test_weights_zero_sum  sT    ""#45 -dG,-++CSXHJ- -   AAc                     j                  t              5 } | |       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)NrS   zCNumba does not support average when shapes of a and weights differ.r<  	TypeErrorr>  rx  r;  r  s       r   test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weights  sT    ""9- -dG,-++CSX56- -r  c                     j                  t              5 } | ||       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)Nrf  z)Numba does not support average with axis.r  )r  r;   rT   r  r  r  r  s        r   test_1D_weights_axisz:TestNPFunctions.test_average.<locals>.test_1D_weights_axis  sU    ""9- 7dg67++CSXHJ7 7s   AArI  r  g      ?g      ?rn  rf  )r   r  ranfr  rR  rP  rh  r   assertAlmostEqualrN  r  r5  )r  r   r-   rU   w0a_boolw_boola_intw_intd0r  d2a_3dw_3dr
  r  r  r  r  r  s   `                  @r   test_averagezTestNPFunctions.test_average  s    IINN1#IINN1#XXa[ "S("S( 		!!#A!.		!!#A!. yy~~bB'#-yy~~bB'#-"T"6* 	q 3 %a 22 	 	?tD 9 %d4 8 	 	E
 	uU ; %eE :2 	 	G 	q 8 %a 7 	 	Dva 8 %fQ 7 	 	Dvv > %ff =b 	 	J 	vay%(2>vd|U4[D	J 	a,	6	J yy|##G,JJ'( 	a( 	T15r!   c           
         t         } t        d      |      }t        j                  t        j                        j
                  }t        j                  |gt        j                        }t        j                  ddg      t        j                  ddg      ft        j                  ddg      t        j                  ddg      ft        j                  ddg      t        j                  d	dg      ft        j                  dg      t        j                  d	dg      fd
t        j                  t        j                  dg      t        j                  dt        j                  g      f||fg}|D ])  \  }} |||      } |||      }| j                  ||       + t        j                  dt        j                  g      }t        j                  dt        j                  g      }| j                   |||             | j                   |||d       |||d             t        j                  t        j                  dg      }| j                   |||       |||             g d}	t        j                  d      }
t        j                  j                  d      }|	D ]  }|	D ]  }|	D ]	  } ||
|||      } ||
|||      }| j                  ||        |||
||      } |||
||      }| j                  ||        |t        j                  |g      |
||      } |t        j                  |g      |
||      }| j                  ||        ||||z   ||      } ||||z   ||      }| j                  ||        |||z   |||      } |||z   |||      }| j                  ||          y )NTr9  r9  r  r	  r  r  r
  r  )r  r  rn  r   r  r   )r  r  g{Gz?gMbP?-C6?r  gư>r!  )rM  r  )r   r   )rd  r   r   r   int_r  r5  r5  r  rx  r  assertFalser  r  r  )r  r
  r  min_intr-   simple_datar.   	py_resultc_resultnoise_levels
zero_arraynoiser   r   s                 r   test_allclosezTestNPFunctions.test_allclose  s]   "T"6*((277#''HHgYbgg. ZZt%rzz:t2D'EFZZt%rzz:t2D'EFZZt%rzz9d2C'DEZZY,=!>?XXrvvqk"BHHa[$9:F
   	2DAqq!IQ{HY1	2
 JJRVV}%JJRVV}%q!%15q!t4	6 JJ}%1uQ{3EXXg&
IINN7#! 	:E$ :( :D &z5,0t!=I$Z*.T ;H$$Y9 &uj,0t!=I$UJ*.T ;H$$Y9 &rzz5'':J,0t!=I$RZZ%8**.T ;H$$Y9 &q!e)$T JI$QE	4HH$$Y9 &q5y!$T JI$QY4HH$$Y93::	:r!   c                 >   t         } t        d      |      }t        j                  ddg      }t        j                  d      j                  t        j                        j                  d      }d}d	}t        j                  d
dg      t        j                  d
dg      ft        j                  |g      t        j                  dg      ft        j                  dg      t        j                  d
|z   |z   g      f||||z  z   f||||z  z   |dz  z   f||||z  z   ft        j                  t        j                  ft        j                  t        j                  t        j                  g      fg}|D ]%  \  }}	| j                   |||	       |||	             ' y )NTr9  g      Y@g     @@}   r9  r%  r%  r%  r  r  rn  r   r!  r  r'  )rd  r   r   r5  rN  r   r3  r  r5  r  rx  )
r  r
  r  r=   r  r   r   
numpy_datar   r$  s
             r   test_ip_allclose_numpyz&TestNPFunctions.test_ip_allclose_numpy>  sf   "T"6*hhv'yy~$$2::$6>>yI ZZAQF!34ZZSE!23ZZ

AHtO+< =>#d
"##d
"TAX-.4$+%&VVRVVVVRZZ)*	

 ! 	8FQVAq\5A;7	8r!   c                    t         } t        d      |      }t        j                  d      j	                  t        j
                        j                  d      }d}d}t        j                  t        j                  dg      t        j                  d	t        j                  g      ft        j                  t        j                  dg      t        j                  d	dg      ft        j                  t        j                  t        j                  g      t        j                  d	t        j                  g      ft        j                  t        j                  t        j                  g      t        j                  d	d
g      ft        j                  t        j                   d
g      t        j                  t        j                  d
g      ft        j                  t        j                  d
g      t        j                  t        j                  d
g      ft        j                  |dz  g      t        j                  d
g      ft        j                  d	g      t        j                  d|z   |dz  z   g      f||||z  z   |dz  z   ft        j                  t        j                  d	g      t        j                  d
t        j                  g      fg
}|D ]%  \  }}| j                   |||       |||             ' y )NTr9  r  r9  r  r  r  r   r  r!  r'  rn  )rd  r   r   rN  r   r3  r  r5  r  r  r5  rx  )	r  r
  r  r  r   r   r  r   r$  s	            r   test_ip_not_allclose_numpyz*TestNPFunctions.test_ip_not_allclose_numpyW  s    "T"6*yy~$$2::$6>>yI ZZ$bjj#rvv&?@ZZ$bjj#q&:;ZZ()2::sBFFm+DEZZ()2::sCj+ABZZ"&&#'RVVSM)BCZZ&

BFFC=(ABZZ
#RZZ%67ZZ

AHtax,?+@ AB4$+%q01XXrvvsm$bhhRVV}&=>

 ! 	8FQVAq\5A;7	8r!   c                     t         } t        d      |      } G d dt        j                        } |dg      }| j	                  t         |||            t        u        y )NTr9  c                       e Zd Zd Zy)?TestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Fooc                 J    t        j                  |i |j                  |       S r   )r   r5  rQ  )clsrk   r  s      r   __new__zGTestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Foo.__new__y  s!    xx0055c::r!   N)__name__
__module____qualname__r  r  r!   r   Foor  x  s    ;r!   r  rn  )rd  r   r   ndarrayr  r  r  )r  r
  r  r  r-   s        r   "test_return_class_is_ndarray_numpyz2TestNPFunctions.test_return_class_is_ndarray_numpyr  sS     "T"6*	;"** 	; HU1a[)T12r!   c                     t         } t        d      |      }t        j                  dt        j                  g      }| j                   |||d       |||d             y )NTr9  r  r  )rd  r   r   r5  r  rx  )r  r
  r  r   s       r   test_equalnan_numpyz#TestNPFunctions.test_equalnan_numpy  sS    "T"6*HHc266]#15q!t4	6r!   c                    t         } t        d      |      }t        j                  t        j                  dg      }t        j                  dt        j                  g      } |||       t        j
                  j                  |t        j                  t        j                  dg             t        j
                  j                  |t        j                  dt        j                  g             y )NTr9  rn  r   )rd  r   r   r5  r  r  r  )r  r
  r  r   r$  s        r   $test_no_parameter_modification_numpyz4TestNPFunctions.test_no_parameter_modification_numpy  s     "T"6*HHbffa[!HHa[!a


%%a2661+)>?


%%a1bff+)>?r!   c                    t         } t        d      |      }t        j                  t        j                        j
                  }t        j                  |gt        j                        }| j                   |||       |||             y )NTr9  r9  )rd  r   r   r   r  r  r5  rx  )r  r
  r  r  r-   s        r   test_min_int_numpyz"TestNPFunctions.test_min_int_numpy  sd     "T"6*((277#''HHgYbgg.1uQ{3r!   c                    | j                          t        } t        d      |      }t        j                  ddt        j
                  g      t        j                  ddg      dddd	t        fd
dddddt        fdd
ddddt        fddddddt        fddddddt        fddddddt        fg}|D ]1  \  }}}}}}	}
| j                  |
|	      5   ||||||       d d d        3 y # 1 sw Y   >xY wr  )	r?  rd  r   r   r5  r  r  r   r  r  s              r   test_allclose_exceptionz'TestNPFunctions.test_allclose_exception  s9   !"T"6* ZZtRVV,-ZZD)*E5L	
 au8 u9 5%A 5%B 5%?%
. :> 	35Aq$i#''W5 3aD$	23 3	33 3s   C##C,	c                    t         } t        d      |      }t        | j                  ||d      }t	        j
                  ddd      }t	        j                  dd	      }|d
z   } ||||d       | j                  j                  |        ||||d       | j                  j                  |        ||||d       t        j                  |d d t        j                  |dd  | j                  j                  |        ||||d       t        j                  |d d t        j                   |dd  | j                  j                  |        ||||d       t	        j                  dd	      }|dz   }|dz   } ||||d       d}d}d} ||||d       d}t	        j
                  ddd      }t	        j                  dd      } ||||d       t	        j                  dt        j                  t        j                  t        j                   ddg      }|j                  ddd      }t	        j
                  ddd      }t	        j                  dd      } ||||d       t        dd      D ]  }g d}d} ||||d        t	        j                  g       }g d}d} ||||d       t	        j
                  ddd      j                  ddd      }t	        j                  d       }|dz
  } ||||d       t        j                  }t	        j                  d      }t	        j                  dt        j                        } ||||d       t        j                  }dg}dg} ||||d       t	        j                  dd	      }|}|} ||||d       dd!g}t	        j                  dd	      }|} ||||d       t        j                   d"dd#t        j                  g}t	        j                  dd	      }|d$z  } ||||d       t	        j
                  d%dd      }t	        j                  t        j                   d"dd#t        j                  g      }|d$z  } ||||d       | j                  j                  d&      }t	        j
                  d'dd&      }t	        j                  d&d()      } ||||d       d*D ]1  }t	        j                  g d      |z  }ddg}ddg} ||||d       3 d}dg}dg} ||||d       t	        j
                  ddd      }t	        j
                  ddd      }t	        j
                  ddd+      }	 ||	||      }
t        j                   j#                  |
|	       t	        j                  g d,      }t	        j                  g d,      }t	        j                  g d-      } ||||d       dg}t        j                  g} |d||d       t	        j                  g d.      }t	        j                  g d,      }t	        j                  ddt        j                  dg      } ||||d       t	        j                  g d/      }t	        j                  g d0      }t	        j                  t        j                  dt        j                  dt        j                  g      } ||||d       t	        j                  g d.      }t	        j                  g d,      }t	        j                  ddt        j                  dg      } ||||d       t	        j                  dd
t        j                  d1t        j                   dd2dt        j                  dd3g      }t	        j                  g d4      }t	        j                  ddt        j                  ddt        j                  g      } ||||d       t	        j                  g d5      }t	        j
                  ddd6      }t	        j$                  |d7z        } ||||d       | j                  j'                  ddt        j(                  z  d8      }t	        j
                  ddt        j(                  z  d9      }t	        j*                  |      }t	        j*                  |      } ||||      }t        j                   j-                  ||d:;       | j                  j                  d      }t	        j
                  d%dd9      }t	        j.                  |      } ||||d       | j                  j                  d9      }t	        j
                  d%dd      }t	        j.                  |      } ||||d       y )<NTr9  r  r  r&  r%  rM  r  r  rl  rk  )r  rn  r'  r  rn  g      r'  r  r  r   )r+  )r  ?r  r  rF  gffffff?r!  g333333"r  r  r  r  r  r  r   r  rH  Fr   r  r  r  r  r  r  rO  )rn  r  rG  r  )rn  r'  gGz@r  )rn  r'        @r  r  )	rn  rl  r'  r.  r  r  r  r%  g      @r  r.  r  r  rn  r'  r  r  r%  rI  )g~@g<ԛ@g3@i!N  rD  )r  r  r  )r   )rj  r   r   r  r   r  rN  r  rm  r  r  r5  r  rU  rX  r  r  r  sinuniformrP  cosrS  	ones_like)r  r
  r  r  r   rl  rm  factorr$  x0r   exactr  s                r   test_interp_basicz!TestNPFunctions.test_interp_basic  s   "T"6*++VUEJKKAr"YYr1#XARr23ARr23ARr23"1"#ARr232A66'23ARr23IIb!UUARr23ARr23/[[Q#YYr1ARr23HHc266266BFF7C>?IIa#I&[[Q#YYr1ARr23r1 	8ABB267	8
 HHRLARr23KK2r"**1a3YYr]"WARr23FFYYq\WWQARr23FFSSARr23IIb!ARr235MYYr1ARr23ffWdCbff-YYr1#XARr23KKR$XXwc378#XARr23HHNN3[[Q$WWSU+ARr23 	8F#f,AQBQB267		8 SVARr23KK1a KK1a [[Ar"B1o


&&sB/HH\"XXl#XXo&ARr23SffXARr23HH&'XXl#XXq!RVVQ'(Qb+,HH89XXo&XXrvvq"&&!RVV45Qb+,HH&'XXl#XXq!RVVQ'(Qb+,HHabffcBFF7AsArvvq!LMXX()XXq!RVVQ26623Qb+,HH89[[B	*VVBHQb+,HHQBEE	62[[AIt,VVBZq	Ar2


""5#D"9 HHNN2[[b$'\\"Qb+, HHNN4 [[b"%\\"Qb+,r!   c                    |j                   dz  }t        j                  || j                  j	                  t        |j                         |d      t        j                         t        j                  || j                  j	                  t        |j                         |d      t        j                          t        j                  || j                  j	                  t        |j                         |d      t        j                         y )Nr  F)replace)rL  r   putr  rV  rU  r  r  )r  r-   r  s      r   _make_some_values_non_finitez,TestNPFunctions._make_some_values_non_finitef  s    FFcM
q$((//%-E/BBFFK
q$((//%-E/BRVVGL
q$((//%-E/BBFFKr!   c           	   #     K   t        j                  ddd|dz  z          t        j                  ddd|z          t        j                  ddd|dz  z          t        j                  ddd|dz  z          t        j                  d	d
d|dz  z          t        j                  ddd|z         dz   t        j                  ddd|dz  z         dz   t        j                  ddd|z         dz   t        j                  ddd|dz  z         dz   t        j                  ddd|dz  z         dt        j                  t        j                  d|dz  z         t         j                  z  d|dz  z   z        z  z    t        j                  ddd|z         | j
                  j                  d|z   d|z        z    t        j                  ddd|z         | j
                  j                  d|z   d|z        z    t        j                  ddd|z         | j
                  j                  d|z   d|z        z    t        j                  ddd|z         | j
                  j                  d|z   d|z        z    t        j                  ddd|z         | j
                  j                  d|z   d|z        z    t        j                  ddd|z         | j
                  j                  d|z   d|z        z    | j
                  j                  d|z         dz  dz    | j
                  j                  d|dz  z         dz  dz    y w)NrD        @rn  r%  r  g333333@r'  g      @r  rj  g@g333333@gq=
ףp?g @gQ?r  r#  )rL  scale      @g      4@g      I@g      i@rl  g333333?r  r-  )r   r  r0  rN  rP  r  normalrP  )r  ndatas     r   r  zTestNPFunctions.arraysl  s7    kk#sA	M22kk#sAI..kk#sA
N33kk#sA
N33kk#sA
N33kk#sAI.55kk#sA
N3d::kk#sAI.55kk#sA
N3d::kk#sA
N3cBFFIIa%!)m$ruu,EAI>=@ 7@ @ 	@ kk#sAI.U#+ 2A 2/ / 	/ kk#sAI.U#+ 2A 2/ / 	/ kk#sAI.U#+ 2A 2/ / 	/ kk#sAI.U$, 2A 20 0 	0 kk#sAI.U$, 2A 20 0 	0 kk#sAI.U%%- 2A 21 1 	1 hhmmAI&,s22hhmmA	M*S0366s   MMc                    t         } t        d      |      }d}t        j                  ddd|z         }t        j                  |dz        }| j                  |      D ]  }d} ||||      } ||||      }	| j                  ||	|	       | j                  j                  |        ||||      } ||||      }	| j                  ||	|	       | j                  j                  |        ||||      } ||||      }	| j                  ||	|	       | j                  j                  |        ||||      } ||||      }	| j                  ||	|	       | j                  |        ||||      } ||||      }	| j                  ||	|	       | j                  |        ||||      } ||||      }	| j                  ||	|	       | j                  |        ||||      } ||||      }	| j                  ||	|	        y )
NTr9  i N  r   rF  rn  rD  r  r  )
rj  r   r   r  r0  r  r	  r  rm  r;  )
r  r
  r  rA  rl  rm  r   r   r  r  s
             r   test_interp_stress_testsz(TestNPFunctions.test_interp_stress_tests  s    "T"6*[[BE	*VVBHU# '	AADaR(H2r"C##Hc4#@
 HHQaR(H2r"C##Hc4#@HHR aR(H2r"C##Hc4#@HHR aR(H2r"C##Hc4#@ --a0aR(H2r"C##Hc4#@--b1aR(H2r"C##Hc4#@--b1aR(H2r"C##Hc4#@O'	Ar!   zNEP 50 interaction issue.c                    t         } t        d      |      }d}t        j                  ddd|z         }t        j                  |dz        }| j
                  j                  t        j                  t        j                   t        j                  gd      |d d | j
                  j                  |       t        j                  |dz        }| j
                  j                  t        j                  t        j                   t        j                  gd      |d d | j
                  j                  |       |d	|z  z   }| j                  |      D ]  } ||||      }	 ||||      }
t        j                  j                  |	|
d
       | j
                  j                  |       | j
                  j                  |       | j
                  j                  |       t        j                  j                  |	|
d
        y )NTr9  i  r   rF  rn  rD     r+  r  )rj  r   r   r  r0  r  rV  r  r  rm  r2  r  r  rS  )r  r
  r  rA  rl  r  r  rm  r   r  r  s              r    test_interp_complex_stress_testsz0TestNPFunctions.test_interp_complex_stress_tests  s   "T"6*[[BE	*vvb3hXX__bffrvvgrvv%>DTc
vvb3hXX__bffrvvgrvv%>DTc
BIU# 	FAaR(H2r"CJJ&&x&EHHQHHR HHR JJ&&x&E	Fr!   c                 6   t         } t        d      |      }| j                          t        j                  g d      }t        j                  g       }t        j                  g       }| j                  t              5 } ||||       d d d        d}| j                  |t        j                               d}t        j                  g d      }t        j                  ddg      }| j                  t              5 } ||||       d d d        d}| j                  |t        |j                               d}t        j                  d      j                  d	d      }t        j                  d      }| j                         5 } ||||       d d d        d
}| j                  |t        |j                               d}t        j                  d      }t        j                  d      j                  d	d      }| j                         5 } ||||       d d d        d}| j                  |t        |j                               d}t        j                  d      }t        j                  d      }| j                         5 } ||||       d d d        d}| j                  |t        |j                               d}t        j                  d      dz   j                  t        j                        }t        j                  d      }| j                         5 } ||||       d d d        | j                  |t        |j                               y # 1 sw Y   xY w# 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   xY w# 1 sw Y   oxY w)NTr9  r  zarray of sample points is emptyrn  r'  z#fp and xp are not of the same size.rI  r  zxp must be 1Dzfp must be 1Dr  z:Cannot cast array data from complex dtype to float64 dtyper+  )rj  r   r?  r   r5  r<  r  r=  r;  r>  rN  r  r  r   r  )	r  r
  r  r   rl  rm  r  r  complex_dtype_msgs	            r   test_interp_exceptionsz&TestNPFunctions.test_interp_exceptions  s   "T"6* 	!HHYXXb\XXb\z* 	a!R	 0c3q{{+,XXi XXq!fz* 	a!R	 4c3q{{+,YYq\!!!Q'YYq\##% 	!R	 c3q{{+,YYq\YYq\!!!Q'##% 	!R	 c3q{{+,YYq\YYq\##% 	!R	 	 	'Q[[)9:iilR''5YYq\##% 	!R	 	'Q[[)9:q	 		 		 		 		 		 	sH   ?M>MM)
M6 NNMM&)M36N NNc                 *   t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      }t	        j
                  t        j                   ddt        j                  g      }t	        j
                  ddg      }|||d} ||       t	        j
                  t        j                   d	d
t        j                  g      }t	        j
                  g d      }t	        j
                  ddg      }|||d} ||       y )NTr9  )r   rn  r  rF  r  ?r  rj  rk  rn  r  )r   r  rK  rn  )rj  r   r   r  r   r5  r  )r  r
  r  r  rl  rm  r   r  s           r   "test_interp_non_finite_calibrationz2TestNPFunctions.test_interp_non_finite_calibration+  s     "T"6*++VU;XXm$XXwS"&&12HHc3Z "-vXXw1bff-.XX&'HHc3Z "-vr!   c                 F   t         } t        d      |      }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        j                  g dt              }
|
d d d   }t        j                  j                  ||
       t        j                  j                  |	|        t        j                  ddd	      }t        j                  ddd	      }d}t        j                  j                   ||||      |       d
}t        j                  j                   ||||      |       t        j                  d
      }t        j                  j                   ||||      |       t        j                  d
      }t        j                  j                   ||||      |       t        j                  }t        j                  j                   ||||      |       t        j                  ddd	      }t        j                  ddd	      }t        j                  d
      }t        j                  j                   ||||      |       t        j                  ddd      }t        j                  |      }t        j                  j                   |t        j                   ||      d       y )NTr9  rn  rF  r9  r  r   r  r%  r  r  r!  )rj  r   rU  r   rN  r   r  r5  rJ  r  r  r  r  r3  r  r0  rP  )r  r
  r  rL  rl  ypincptsdecptsincresdecresinctgtdectgtr   r$  r5  rm  s                   r   test_interp_supplemental_testsz.TestNPFunctions.test_interp_supplemental_tests>  sR    "T"6*!RL 	;D4ryy1BRYY/BXXr1dQh5RYYGFDbD\F62r*F62r*FXXl%8FDbD\FJJ**66:JJ**66:	; KK1a KK1a 


&&uRA;


&&uRA;ZZ_


&&uRA;ZZ_


&&uRA;VV


&&uRA;KK1a KK1a XXc]


&&uRA;YYq"f%VVBZ


&&uRUUB';SAr!   c                 6   t         } t        d      |      }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        j                  j                   ||||      |       y )NTr9  r   rn  r%  r+  r  )rj  r   r   r  r  r  )r  r
  r  r   r$  r5  y0s          r   &test_interp_supplemental_complex_testsz6TestNPFunctions.test_interp_supplemental_complex_testsg  s     "T"6*KK1a KK1a AAq!(<$<#DD1r6T/!


&&uRA;r!   c                    t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  g}t        j                  |d      D ]r  }|\  }}}t        j                  d|      }|dz  j                  |      }	t        j                  ddd|      }
 ||
||	      } ||
||	      }| j                  ||       t y )NTr9  r  rF  r9  r'  )rj  r   r   r  r3  r  r  r`  r  rN  r   r  r	  )r  r
  r  dtypescomboxp_dtypefp_dtypex_dtyperl  rm  r   r  r  s                r   -test_interp_float_precision_handled_per_numpyz=TestNPFunctions.test_interp_float_precision_handled_per_numpys  s    "T"6***bjj"((BHH=<<VQG 	3E*/'Hh2X.B'!!(+BAq"G4AaR(H2r"C##Hc2	3r!   c                     d }t         } t        d      |      } |       D ]T  } ||      } ||      }t        |t        j                        r| j                  |||f       B| j                  |||       V y )Nc               3     K   t        j                  d       t        j                  d       t        j                  dd       t        j                  dd       t        j                  d       t        j                  dd       t        j                  dd       dD ]>  } t        j                  g dd	| z  
       t        j                  g dd| z  
       @ y w)Nz
2016-01-01NaTmsnsz2038-01-19T03:14:07"   )r  r   WDhr   r  rc  usrd  psfsas){   irb  z<datetime64[%s]r9  z<timedelta64[%s])r   r  r  r5  )units    r   r>   z*TestNPFunctions.test_isnat.<locals>.values  s     ------&&--t,,--t,,-- 566..--..T**1 @ hh1%6%=? ?hh1%7$%>@ @@s   C*C,Tr9  )r   r   r  r   r   r	  rx  r  s          r   
test_isnatzTestNPFunctions.test_isnat  sw    	@$ "T"6* 	3AayH(C!RZZ(''#t<  32	3r!   c                 :    d } fd}t         t        fD ]  } t        d      |      }t         j                  ||      } |       D ]  }d|i}d|j
                  v r%d t        j                  fD ]  }||d<    ||        n ||       t        j                  dt        j                  	      }d|i}d|j
                  v rJd |d<    ||d|       t        j                  |d<    ||d
|       t        j                  |d<    ||d|        ||d|         y )Nc               3     K   d d d d g d ddg d d g dg df t        j                  g        t        j                  d       t        j                  d      j                  d	d       t        j                  d      j                  d	d      j                   d
 }  | d        | d        | d        | d       yw)a}  
            To quote from: https://docs.scipy.org/doc/numpy/reference/generated/numpy.asarray.html    # noqa: E501
            Input data, in any form that can be converted to an array.
            This includes:
            * lists
            * lists of tuples
            * tuples
            * tuples of tuples
            * tuples of lists
            * ndarrays
            r+  r  Frn  r  r  r  r  r  c                 J    t               }| D ]  }|j                  |        |S r   r
   r<   )r>   r-   rZ  s      r   	make_listzITestNPFunctions.test_asarray.<locals>.input_variations.<locals>.make_list  s(    F  AHHQK r!   )r  rD  r  r  r  N)r   r5  rN  r  r  )rt  s    r   r  z6TestNPFunctions.test_asarray.<locals>.input_variations  s      HIKGOi((O((i((((2,))A,))B-''1--))B-''1-///
 I&&O,,L))/00s   C!C#c                      | di |}|rj                  ||d   u        y j                  ||d   u       t        j                  j                  ||d          j                  |j                  |d   k(         y )Nr-   r:  r  )r  r   r  rS  r:  )jittedexpect_samer  returnedr  s       r   check_pass_throughz8TestNPFunctions.test_asarray.<locals>.check_pass_through  sn    ''HF3K 78s ;<

**8VC[A&/ ABr!   Tr9  r-   kwsr:  rF  r9  F)
r5  r<  r   r   r  r  r   r6  rN  r  )	r  r  ry  r
  r  r  r   r  r  s	   `        r   test_asarrayzTestNPFunctions.test_asarray  s    #	1P	C , 	<F&C&v.ET//?F%' <qFOO+#R]]3 '*,wv' 6N IIb

3qFOO+&*F7O&udF;&(mmF7O&ueV<&(jjF7O&udF;&udF;)<		<r!   c                     d }d }d }d }||||g}|D ]4  } t        d      |      } |       } |       }	| j                  ||	       6 y )Nc                  ,    t        j                  d      S Nr  r4  r  r!   r   case1z3TestNPFunctions.test_asarray_literal.<locals>.case1  s    ::m,,r!   c                  0    d} t        j                  |       S r~  r4  r  s    r   case2z3TestNPFunctions.test_asarray_literal.<locals>.case2  s    A::a= r!   c                  0    d} t        j                  |       S )Nu+   大处 着眼，小处着手。大大大处r4  r  s    r   case3z3TestNPFunctions.test_asarray_literal.<locals>.case3  s    =A::a= r!   c                  0    d} t        j                  |       S )N r4  r  s    r   case4z3TestNPFunctions.test_asarray_literal.<locals>.case4  s    A::a= r!   Tr9  )r   r	  )
r  r  r  r  r  funcsr
  r  r  r  s
             r   test_asarray_literalz$TestNPFunctions.test_asarray_literal  sd    	-	!	!	! ue, 	3F&C&v.ExH'C##Hc2		3r!   c                       j                           t        d      t               fd}d }d }d }d } | |               | |               | |               | |              y )NTr9  c                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz?asarray support for List is limited to Boolean and Number types)r<  r   r=  r;  r>  )alistr  r  r  s     r   test_rejectzQTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.test_reject  sL    "";/ 1eMM.AKK " r  c                  <    t               } | j                  d        | S r   rs  )ls    r   make_none_typed_listzZTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_none_typed_list  s    AHHTNHr!   c                  r    t               } t               }|j                  d       | j                  |       | S )Nrn  rs  )r  r   s     r   make_nested_listzVTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list  s+    AAHHQKHHQKHr!   c                  Z    t               } t               }d|d<   | j                  |       | S )Nr-   rn  )r
   r   r<   )r  rQ  s     r   make_nested_list_with_dictz`TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list_with_dict   s)    AAAaDHHQKHr!   c                  J    t               } dD ]  }| j                  |        | S )N)r-   bcdefrs  )r  rZ  s     r   make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list'  s(    A' Hr!   )r?  r   r5  )r  r  r  r  r  r  r  s   `     @r   ,test_asarray_rejects_List_with_illegal_dtypez<TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype  sk    !"T"7+	"	
			 	(*+$&'.01%'(r!   c                    d }t         } t        d      |      } |       D ]  \  }}| ||      } ||      }n |||      } |||      }| j                  ||       | j                  t	        j
                  |j                  t        j                        |j                          t        } t        d      |      }t	        j                  g d      } ||      } ||      }| j                  ||       | j                  t	        j
                  |j                  t        j                        |j                         y )Nc               3   
  K   t        j                  g d      d f t        j                  ddgt         j                        t         j                  f t        j                  ddgt         j                        t         j                  f t        j                  ddgt         j                        t         j                  f t        j                  ddgt         j                        t         j
                  f y w)Nr  r'  r  r9  )r   r5  r  r!  r  r6  r  r!   r   r>  z-TestNPFunctions.test_asfarray.<locals>.inputs4  s     ((9%t++((Aq64bjj@@((Aq61277::((Aq612<<??((Aq612==@@s   DDTr9  r9  r  )
r?  r   r	  r  r   r  r:  inexactrA  r5  )r  r>  r
  r  r=   r  r  r  s           r   test_asfarrayzTestNPFunctions.test_asfarray2  s   	A "T"6*x 		MGCz!#;Cj!#R0Cr*##Hc2OOBMM#))RZZ@#))L		M ("T"6*hhy!#;Cj#.cii<ciiHr!   c           	      8    t         }t        |      }t        }t        |      }||f||ffD ]i  \   fd}t        j                  d      t        j
                  d      t        j                  ddgddgg      t        j                  g       t        j                  g g g      g}t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  g}d t        j                   ||      D        }ddd	d
g ddg}	t        j"                  ||	      D ]4  }
 ||
d        ||
d        ||
d        ||
d        ||
d       6 t        j
                  d      }dgdgdgfD ])  }
 |||
        ||t        j                  |
             + t        j
                  d      }ddgddgddgddgddgddgddgfD ])  }
 |||
        ||t        j                  |
             +  ||t        j                  ddgt        j                                |t        j
                  d      t        j
                  d             l y )Nc                 F    j                   | |       | |             y r   r<  )r-   rq  nbfuncr
  r  s     r   r  z*TestNPFunctions.test_repeat.<locals>.check^  s!    ''q'(:F1g<NOr!   rn  r  r   r'  r  c              3   P   K   | ]  \  }}t        j                  ||          yw)r9  Nr  ).0r-   ts      r   	<genexpr>z.TestNPFunctions.test_repeat.<locals>.<genexpr>u  s(      #J31Q288AA#6#6 #Js   $&r  Tr+  r  )rq  r  r9  rF  )rr  r   rt  r   r  rN  r5  uint32r  uint64r  r  r3  r  r6  r`  r   r  )r  r  r  array_pyfuncarray_nbfuncr  target_numpy_valuestarget_numpy_typestarget_numpy_inputstarget_non_numpy_inputsrZ  onetwor  r
  s   `            @@r   test_repeatzTestNPFunctions.test_repeatR  sZ   	O	 $L) )95 ,l;= :	8NFFP
 
		$1a&1a&)*"b"# 				



	"#J#,#4#45H5G$I#J
 '# __%8%<> &a#a#a#a#a%& ))A,CcA3_ 0c1%c288A;/0 ))A,C!fq!fq!fq!fq!fq!fq!fM 0c1%c288A;/0 #rxxAbhh?@"))B-27u:	8r!   c           	         t         }t        |      }t        }t        |      }| j                          ||f||ffD ]  \  }}| j	                  t
              5 } |t        j                  d      d       d d d        | j                  dt        j                               | j	                  t              5 } |t        j                  d      d       d d d        | j                  dt        |j                               | j	                  t
              5 } |t        j                  d      t        j                  ddg             d d d        | j                  dt        |j                               | j	                  t
              5 } |t        j                  d      t        j                  g d             d d d        | j                  dt        |j                               | j	                  t
              5 } |t        j                  d	      t        j                  g d
             d d d        | j                  dt        |j                               | j	                  t              5 } |t        j                  d      ddg       d d d        | j                  dt        |j                               dD ]<  }| j	                  t              5   |t        j                  d      |       d d d        >  y # 1 sw Y   xY w# 1 sw Y   >xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   	xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nrn  r  z#negative dimensions are not allowedr  zIThe repeats argument must be an integer or an array-like of integer dtyper'  r  z(operands could not be broadcast togetherr%  r  )Tr-   rQ  )rr  r   rt  r?  r<  r  r   r  r=  r;  r>  r   r5  )	r  r  r  r  r  r
  r  r  reps	            r   test_repeat_exceptionz%TestNPFunctions.test_repeat_exception  s   	O	 $L)! )95 ,l;= -	,NFF "":. '!rwwqz2&'MM?akk*, "";/ (1rwwqz3'(MM4AKK " "":. 6!rwwqz288QG#456MM?akk*, "":. 8!rwwqz288I#678MMDakk*, "":. ;!rwwqz288L#9:;MMDakk*, "";/ /1rwwqzC:./MM4AKK "
 ( ,&&{3 ,2771:s+, ,,W-	,' '( (6 68 8; ;/ /, ,sT   L6L2L	2L)=2L61MML	L	L&	)L3	6M 	M	Mc                 4   t         }t        t               }t        j                  g d      t        j                  g d      t        j                  g d      gt        j                  g d      t        j                  g d      t        j                  g d      gdft        j                  dg      t        j                  d	g      gt        j                  d
g      t        j                  dg      gdft        j                  d	g      gdz  t        j                  d
g      gdz  dft        j                  t        j                  d
ddt        j
                  ddg            gdz  t        j                  d
ddt        j
                  ddg      gdz  dft        j                  t        j                  d
ddt        j
                  ddgg            gdz  t        j                  d
ddt        j
                  ddgg      gdz  dft        j                  t        j                  d
ddt        j
                  ddg            gdz  t        j                  d
ddt        j
                  ddg      gdz  dfg}t        j                  d      t        j                  d      j                  d      fD ]  }|j                  |dk  |dkD  g||dz  gdf       |j                  |dk  |dkD  f||dz  fdf       |j                  |dk  |dkD  g||dz  fdf       |j                  |dk  |dkD  f||dz  gdf        |D ](  \  }}}| j                   ||||       ||||             * t        }t        t              }	| j                   |       |	||             y )NFFFFTF)FFTr  r  r  g.@TFrn  r'  r   r  r  r%  r  y      @       @rF  )r%  r'  )r{  r   r   r5  r  r  rN  r  r<   r	  r}  )
r  r  r  
test_casesr   ry  rz  rv  np_pyfunc_defaultsnp_nbfunc_defaultss
             r   test_selectzTestNPFunctions.test_select  sU   	O	 hh,-hh+,hh+,. hhy!hhy!hhy!#$(* hhvhhw!#%88QC="((A3-"@!E hhw 3&1##(=qAhhrxxAq"&&!Q 789:Q>hh1aA./014a9 hhrxx!Q2661a!8 9:;<q@hhAq"&&!Q/012Q6; hhrxxAvrvvq! <=>?!Chh1fbffa34591>/

6 ))B-2!6!6v!>? 	@AAq1u~16{A>?Aq1u~16{A>?Aq1u~16{A>?Aq1u~16{A>?	@ /9 	N*Hz7##Ih
G$L$-h
G$LN	N 0!"45 28Z H 28Z H	Jr!   c                 v   t        t              }t        j                  d      }| j	                          t        j
                  d      t        j
                  g d      gt        j
                  d      t        j                  d      j                  dd      gdt        d	ft        j
                  d      t        j
                  d
      gt        j
                  dg      t        j
                  dg      gdt        dft        j
                  dg      t        j
                  d
g      gt        j
                  dgg      t        j
                  dgg      gdt        dft        j
                  d      t        j
                  d
      gt        j
                  d      t        j
                  d      gdt        d	ft        j                  t        j
                  dddt        j                  ddg            t        j
                  dddt        j                  ddg      dt        dfdgdgdgt        df|dk  j                  t              |dkD  j                  t              g||dz  gdt        df|dkD  |dkD  |dkD  |dkD  g||dz  |gdt        dfdgdz  t        j
                  dg      gdz  dt        dft        j
                  d
g      gdz  dgdz  dt        dff
D ]Q  \  }}}}}| j                  |      5 } ||||       d d d        | j                  |t        j                                S y # 1 sw Y   1xY w)NrF  Tr  rn  r  r  r  r   z/condlist arrays must be of at least dimension 1Fr'  zHcondlist and choicelist elements must have the same number of dimensionsr%  r  z"condlist must be a List or a Tuplezdefault must be a scalarz%condlist arrays must contain booleansr  r  rI  z7list of cases must be same length as list of conditionsrh  r  z items of condlist must be arraysr  z"items of choicelist must be arrays)r   r{  r   rN  r?  r5  r  r   r  r  r   r  r  r<  r=  r;  r>  )	r  r  r   ry  rz  rv  expected_errorexpected_textr  s	            r   test_select_exceptionz%TestNPFunctions.test_select_exception  s   O	IIbM! hhtnbhh';<=hhqk299R=00A67KM hhtnbhhuo.1#!0N 9: hhv% 12hhuorxx!/K)*
 hhtnbhhuo.!bhhqk0JAKM XXbhh1aA678XXq!Q1-.;13 VaS1#{') 1unnS!AE>>##67!Q!VaAC !eQUAE1q5)Aq!tQ<JFH Z#!4a/1 hhw 3&a13Y.M
 1	;HHj'>=^ "">2 9a(J89MM-Q[[)9:c1	;^9 9s   4L//L8	c                      fd} |t                 |t                |t                |t               t        }t        t              }dD ]b  }dD ][  } |||      } |||      }t        st        j                         dv r j                  ||dd       G j                  ||dd       ] d dD ]N  } j                  t              5 } ||d	       d d d         j                  d
t        j                               P dD ]N  } j                  t              5 } |d|       d d d         j                  dt        j                               P y # 1 sw Y   xY w# 1 sw Y   =xY w)Nc                 2   | }t        |       }dD ]&  } ||      } ||      }j                  ||d       ( dD ]M  }j                  t              5 } |d       d d d        j	                  dt        j                               O y # 1 sw Y   1xY w)Nr   rn  r%  r  r   )r  r-   r  r+  r  M must be an integer)r   r	  r<  r   r=  r;  r>  )r  r  r  r   r  r  rA  r  s          r   check_windowz4TestNPFunctions.test_windowing.<locals>.check_window<  s    IT
I" F$Q<l''#H'EF
 $ M&&{3 #vcN#4c&:J:J6KLM# #s   	BB	r  )r!  r?  g      ,@)ppc64leaarch64r   r'  r  r  r  r  )r-   r+  r%  z beta must be an integer or float)r  r  r  r  r  r   r   platformmachiner	  r<  r   r=  r;  r>  )	r  r  r  r  r   r  r  r  rA  s	   `        r   test_windowingzTestNPFunctions.test_windowing;  sy   	M 	[![!Z Z  	O	 
	4A( 	4$Q-4( 0 0 26L L++H,/hQ , H ++Hc12 , 4	4
	4   	IA"";/ "6!S!"MM0#f6F6F2GH	I
  	1D"";/ #6!T"#MM<f../1	1	" "
# #s   
E 
E&E#	&E/	c                    t         } t        d      |      }t        j                  g dg dg      t        j                  g dg dg      ft        j                  g dg dg      dft        j                  g dt        j                        t        j                  g dt        j
                        fdt        j                  dd	g      t        j                  g d      ft        j                  g d      t        j                  g dg dg      ft        j                  g dg dg      t        j                  g d      ft        j                  d
      j                  dd	d      t        j                  d      j                  d	d	      fg}|D ])  \  }} |||      } |||      }| j                  ||       + y )NTr9  r  r  rC  r0  r9  )r  r  rn  r'  r  rI  r  r  )	r  r   r   r5  r  r3  rN  r  r	  r  r
  r  pairsr   r$  r  r  s           r   
test_crosszTestNPFunctions.test_crossj  st   "T"6* )Y/0)Y/0 )Y/0  "((3"**5
 !Q # #)Y/0 )Y/0# 		"%%aA.		!$$Q*K)
V  	3DAqa|H1+C##Hc2	3r!   c                     t         } t        d      |      }| j                          | j                  t              5 } |t        j                  d      t        j                  d             d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      t        j                  d             d d d        | j                  dt        |j                               | j                  d	t        |j                               | j                  t              5 } |t        j                  d
      j                  d      t        j                  d      d d d   j                  d             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d
      j                  d      t        j                  d
      d d d   j                  d             d d d        | j                  dt        |j                               | j                  t              5 } |t        g d      t        g d             d d d        | j                  dt        |j                               y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   xY w# 1 sw Y   bxY w)NTr9  r  r  z)Incompatible dimensions for cross productr0  r  z Dimensions for both inputs is 2.z+`cross2d(a, b)` from `numba.np.extensions`.r  r'  r  rI  r  r  )r  r'  zDimensions for both inputs is 2r  r  Inputs must be array-like.)r  r   r?  r<  r  r   rN  r=  r;  r>  r5  r  r   setr@  s       r   test_cross_exceptionsz%TestNPFunctions.test_cross_exceptions  sp   "T"6*! z* 	f		!		!	
 	7  !	
 z* 	f  	
 	.  !	

 	9  !	
 z* 	f		!$$V,		!TrT"**62	
 	7  !	
 z* 	f		!$$V,		!TrT"**62	
 	-  !	
 {+ 	vII	
 	(  !	
m	 		 	 	 		 		 	s=   0K00KAKAK(3 K4KKK%(K14K=c                 $   t         }t        t              }t        j                  ddgddgg      t        j                  ddgddgg      ft        j                  ddgddgg      dft        j                  ddgt        j
                        t        j                  ddgt        j                        fdt        j                  ddg      t        j                  ddgddgg      ft        j                  ddgddgg      t        j                  ddg      ft        j                  d      j                  d	d
d      t        j                  d	      j                  d
d      fg}|D ])  \  }} |||      } |||      }| j                  ||       + y )Nrn  r'  r  r%  r  r9  )r0  rC  r  rI  r  )
r  r   r  r   r5  r  r3  rN  r  r	  r  s           r   test_cross2dzTestNPFunctions.test_cross2d  s   Z  1a&1a&)*1a&1a&)* 1a&1a&)*  !Qrxx0!Qrzz2
 !Q 1a&1a&)* 1a&1a&)*!Q  		"%%aA.		!$$Q*A$
L  	3DAqa|H1+C##Hc2	3r!   c                 `   t        t              }| j                          | j                  t              5 } |t        j                  d      t        j                  d             d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      j                  d      t        j                  d      d d d   j                  d             d d d        | j                  dt        |j                               | j                  t              5 } |t        ddg      t        d	d
g             d d d        | j                  dt        |j                               y # 1 sw Y   (xY w# 1 sw Y   xY w# 1 sw Y   HxY w)Nr  r  z,Incompatible dimensions for 2D cross productrI  r  r  rn  r'  r  r%  r  )r   r  r?  r<  r  r   r5  r=  r;  r>  rN  r  r   r  rZ  s      r   test_cross2d_exceptionsz'TestNPFunctions.test_cross2d_exceptions  se   Z ! z* 	f##	
 	:  !	
 z* 	f		!$$V,		!TrT"**62	
 	:  !	
 {+ 	vQFQF	
 	(  !	
7	 		 		 	s$   0F'AF= F$FF!$F-c                    d }d }t         } t        d      |      } |       D ]$  } ||      } ||      }| j                  ||       &  |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   t        j                  g        t        j                  d       t        j                  d       t        j                  g d       t        j                  g d       t        j                  dddt         j                  dg       t        j                  g d       y w)	Nr%  rn  r  r  r!  r  rD  )0Helloworld)r   r5  r  r  r  r!   r   r  z/TestNPFunctions.test_trim_zeros.<locals>.arrays3  s|     ((2,((1+((1+((9%%((<((((BB344((233s   B<B>c               3     K   t        j                  g d      df t        j                  g d      df t        j                  t         j                  ddddg      df t        j                  g d	      d
f t        dk  r6t        j                  g d      df t        j                  g d      df t        j                  g d      d
f y w)N)r   rn  r'  r   r   FBr  Br!  r  ry  r.   )r   r   rn  r'  r%  r  r  )r   rn  r'  r   abf)r   r  r   rQ  ) rQ  rR  )r   r5  r  r   r  r!   r   explicit_trimz6TestNPFunctions.test_trim_zeros.<locals>.explicit_trim<  s     ((?+T11((9%s**((BFFBS"56;;((?+S00v%hh|,e33hhy)3..((+,c11s   CCTr9  )r  r   r	  )	r  r  r  r
  r  r=   r  r  r  s	            r   test_trim_zeroszTestNPFunctions.test_trim_zeros1  s    	4
	2 "T"6*8 	3Cc{H*C##Hc2	3
 ' 	3ICc4(HT"C##Hc2	3r!   c                    t        j                  g d      }|j                  t              }|j                  t              }|||g}t         j
                  dd }|D ]"  }t        |      }| j                  |||          $ t         j
                  d d }|D ]$  }t        |d      }| j                  |||          & t         j
                  dd  }|D ]$  }t        |d      }| j                  |||          & |D ]]  }t        j                  ||j                        }t        |d      }	t        |	      d	k(  sJ t        |d
      }
t        |
      d	k(  r]J  t        j                  d	      }t        |      }| j                  ||       t        j                  g d      t        j                  g d      t        j                  g d      fD ]5  }t         j
                  dd }t        |      }| j                  |||          7 t        j                  g d      }t        |      }| j                  ||       t        |j                               }t        |t              sJ y )N)r   r   rn  r   r'  r  r  r   r'  r  r.   )r  r  r9  r  r   r  )r   l            r   )r   l            r   )r   l            r   rn  )Nrn  N)r   r5  r   rJ  ra  s_r  r	  
zeros_liker:  r4  r  rM  r  r  )r  r-   r.   r  r>   slcr=   res_arrres1res2s              r   test_trim_zeros_numpyz%TestNPFunctions.test_trim_zeros_numpyU  s*   HH-.HHUOHHWQ eeAbk 	3C$C##CS2	3
 eeCRj 	3C#.C##CS2	3
 eeABi 	3C#.C##CS2	3
  	"D--DJJ7C 3/Dt9>!> 3/Dt9>!>	" hhqkC S) HH]+RXXm-DHH]+- 	3C%%!*C$C##CS2		3 hh'C S) AHHJ'#t$$$r!   c                 l   | j                           t        d      t              }| j                  t              5 } |t        j                  g dg dg             d d d        | j                  dt        j                               | j                  t              5 } |d       d d d        | j                  dt        |j                               | j                  t              5 } |h d       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  g d	      d
       d d d        | j                  dt        |j                               y # 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   TxY w)NTr9  r  r  zarray must be 1Dr  z#The first argument must be an array>   r   rn  r'  r  rn  z$The second argument must be a string)
r?  r   r  r<  r   r   r5  r=  r;  r>  rZ  s      r   test_trim_zeros_exceptionsz*TestNPFunctions.test_trim_zeros_exceptions  se   !"T"=1{+ 	4v"((Iy123	4  !	

 {+ 	v!H	1  !	

 {+ 	v)	1  !	

 {+ 	*v"((9%q)	*2  !	
/	4 	4	 		 		* 	*s/   "F 	F+F8F*FFF'*F3c           	         t         } t        d      |      }t        j                  g d      t        j                  g d      ft        j                  g dg dg      t        j                  g d      ft        j                  dd      j                  ddd	      t        j                  g d
      ft        j                  dd      j                  dd	      t        j                  dd      j                  dd	d      ft        j                  g d      t        j                  g d      fg}|D ])  \  }} |||      } |||      }| j                  ||       + y )NTr9  r  r,  )r'  r%  rI  r   rH  r'  r%  )rn  rH     rF  )FTr  )r  r   r   r5  rN  r  r	  )r  r
  r  r  r-   r.   r  r  s           r   test_union1dzTestNPFunctions.test_union1d  s,   "T"6* ## )Y/0# 		!R ((1Q/% 		!R ((1-		!R ((1Q/ )*#-
8  	3DAqa{H!*C##Hc2	3r!   c                     t        d      t              }| j                          | j                  t              5 } |dt        j                  ddg             d d d        | j                  dt        j                               | j                  t              5 } |t        j                  ddg      d       d d d        | j                  dt        |j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  dd	g      t        j                  d
dg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      t        j                  ddg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      t        j                  ddg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      t        j                  ddg             d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   xY w# 1 sw Y   |xY w)NTr9  r  rn  r'  z.The arguments to np.union1d must be array-likeWorldr}  r  r-   r.   z/For Unicode arrays, arrays must have same dtyper  rQ  r  barr  r.  )
r   r  r?  r<  r   r   r5  r=  r;  r>  rZ  s      r   test_union1d_exceptionsz'TestNPFunctions.test_union1d_exceptions  s   "T":.! {+ 	,v'288QqE?+	,<  !	
 {+ 	,v"((Aa5/7+	,<  !	
 {+ 	$v'7#	$<  !	
 {+ 	Fv"((GW-.#s0DE	F=  !	
 {+ 	Bv"((C:&%(@A	B=  !	
 {+ 	:v"((C:&!Q(89	:=  !	
 {+ 	>v"((C:&#s(<=	>=  !	
Q	, 	,	, 	,	$ 	$	F 	F	B 	B	: 	:	> 	>sS   LL>
L(
4L5 4M64M,4MLL%(L25L?MMM$c                 0   t         } t        d      |      }| j                          t        j                  g d      t        j
                  ft        j                  g d      fg dft        j                  ddgddgg      t        j
                  fd	t        j                  ft        j                  ddgt        j                  
      ft        j                  d      j                  ddd      fg}|D ]  } || } || }| j                  ||         y )NTr9  r  r  rn  r'  r  r  )r0  r  r9  r  rI  )
r  r   r?  r   r5  r  r  rN  r  r	  )r  r
  r  r  pairr  r  s          r   test_asarray_chkfinitez&TestNPFunctions.test_asarray_chkfinite  s   %"T"6*!
 #

 #
 
 1a&1a&)*

 ! !Qrxx0
 		"%%aA.; 
D  	3Dt}H,C##Hc2	3r!   c           	          t        d      t              }| j                          | j                  t              5 } |d       d d d        d}| j                  |t        j                               | j                  t              5 } |t        j                  ddt        j                  dg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddt        j                  dg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  g d	      d
       d d d        | j                  dt        |j                               y # 1 sw Y   sxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   UxY w)NTr9  r'  z7The argument to np.asarray_chkfinite must be array-liker  r%  z#array must not contain infs or NaNsrn  r  r  z!dtype must be a valid Numpy dtype)r   r  r?  r<  r   r=  r;  r>  r  r   r5  r  r  )r  r  r  r  s       r   !test_asarray_chkfinite_exceptionsz1TestNPFunctions.test_asarray_chkfinite_exceptions0  sv   "T"#78! {+ 	q!H	Gc3q{{+, z* 	/a"((Aq"&&!,-.	/;S=MN z* 	/a"((Aq"&&!,-.	/;S=MN {+ 	5q"((<()4	593q{{;KL%	 		/ 	/
	/ 	/
	5 	5s/   	F6	.G9.G)G6G GGG%c           	      h   t         }t        |      }t        }t        |      }t        }t        |      }t        }t        |      }d }	 |	       D ]   }
| j                   ||
       ||
             " t        j                  g d      }t        j                  |d      fd}| j                   |dd       |dd              |       D ]'  \  }
}| j                   ||
|       ||
|             ) fd} |       D ]*  \  }
}}| j                   ||
||	       ||
||	             , y )
Nc               3     K   t        j                  dddt         j                  z  z   g       t        j                  dt         j                  d      } | dd xxx t         j                  z  ccc |  t        j                  d      j                  d       t        j                  d	d
      j                  d       t        j                  dd
      j                  d       y w)Nrn  r'  r   r%  r   r  r  )r  r     rF  )step   r,  )r   r5  rP  r  rN  r  )phases    r   inputs1z2TestNPFunctions.test_unwrap_basic.<locals>.inputs1Z  s     ((Aq1ruu9}-..KK255a0E!"IIK))B-''..))Cb)11%88))Cb)11'::s   C+C-)r   K         r  i     c               3      K   t        j                  ddg      df t        j                  g d      df t        j                  g d      df t        j                  g d      df  df y w)	Nrn  i     )r   r  r  r  r  )r   rn  r'  r  r   r  )r'  r  r  r%  r'  r  r  r%  r  r  wrap_unevens   r   inputs13z3TestNPFunctions.test_unwrap_basic.<locals>.inputs13j  si     ((Aw<(#--((12C77((+,a//((34a77s""s   A4A7r  )r;   r  r  c               3      K    ddf y w)Nr     r  r  s   r   	inputs123z4TestNPFunctions.test_unwrap_basic.<locals>.inputs123z  s     sC''s   	r  )	r  r   r  r  r  r	  r   r5  mod)r  r
  r  rl  cfunc1pyfunc13cfunc13	pyfunc123cfunc123r   r  
uneven_seqr	  r  r  r  r  s                   @r   test_unwrap_basicz!TestNPFunctions.test_unwrap_basicI  s;   Vgx.		?	;  	;A##GAJq	:	; XX9:
ffZ-	# 	{C H %k3 G	I " 	?IAv##HQv$>$+Af$=?	?
	( #,+ 	?Avw##Ia6=%?$,Qv5<%>?	?r!   c                 j   t        t              }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  ddg      d       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      dd	       d d d        | j                  d
t        |j                               | j                  t              5 } |t        j                  ddg      dd	       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w)NrB  z#The argument "p" must be array-likern  r'  z'The argument "discont" must be a scalarr  r  z&The argument "period" must be a scalarr:   z&The argument "axis" must be an integerz*Value for argument "axis" is not supported)r   r  r?  r<  r   r=  r;  r>  r   r5  r  )r  r  r  s      r   test_unwrap_exceptionz%TestNPFunctions.test_unwrap_exception  s   V!{+ 	q%L	;!++&	( {+ 	+q"((Aq6"E*	+?!++&	( {+ 	5q"((Aq6"Ae4	5>!++&	( {+ 	3q"((Aq6"AE2	3>!++&	( z* 	/a"((Aq6"AA.	/B!++&	(-	 	
	+ 	+
	5 	5
	3 	3
	/ 	/s;   	G6 H!!H!H'!H)6H HHH&)H2c                 6   t         } t        d      |      }d } |       D ]t  }t        |j                   |j                        D ]N  }t        |j                   |j                        D ](  } ||||      } ||||      }| j	                  ||       * P v y )NTr9  c               3      K   t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)NrF  r'  r%  r  r  r  r  r  r!   r   r  z9TestNPFunctions.test_swapaxes_basic.<locals>.a_variations  sL     ))B-))B-''1--))B-''1a00s   A(A*)r  r   rU  ndimr	  )	r  r
  r  r  r-   r  r  r  r  s	            r   test_swapaxes_basicz#TestNPFunctions.test_swapaxes_basic  s    "T"6*	1
  	;AQVVGQVV, ;0 ;B%aR0H2r*C++Hc:;;	;r!   c                    t         } t        d      |      }| j                          | j                  t              5 } |ddd       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      d	d       d d d        | j                  d
t        |j                               | j                  t              5 } |t        j                  d      j                  dd      dd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w)NTr9  rB  r   z'The first argument "a" must be an arrayr  z.The second argument "axis1" must be an integerz-The third argument "axis2" must be an integerrn  z)np.swapaxes: Argument axis1 out of boundsr  r'  r  z)np.swapaxes: Argument axis2 out of bounds)r  r   r?  r<  r   r=  r;  r>  r   rN  r  r  r@  s       r   test_swapaxes_exceptionz'TestNPFunctions.test_swapaxes_exception  s   "T"6* 	!{+ 	v%A	 	?&**+	- {+ 	*v"))A,q)	* 	F&**+	- {+ 	*v"))A,5)	* 	E&**+	- z* 	&f"))A,1%	& 	A&**+	- z* 	5f"))A,&&q!,a4	5 	A&**+	-7	 		* 	*	* 	*	& 	&	5 	5s;   HH+H!H.+.H:HH!H+.H7:Ic                    t        j                  d      j                  d      }t        d        }t        j                  ddgt         j
                        }| j                   |||      |j                  ||             d }t        d|j                        D ]J  } ||      }t        j                  ||	      }| j                   |||      |j                  ||             L y )
Nr  )r  rn  r  r'  c                 2    t        j                  | |d       S r9   r   take_along_axis)r-   rZ  s     r   	axis_nonez7TestNPFunctions.test_take_along_axis.<locals>.axis_none  s    %%a66r!   rn  r'  r9  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r  r-   rZ  r;   s     r   implz?TestNPFunctions.test_take_along_axis.<locals>.gen.<locals>.impl      ))!Q55r!   r   r;   r%  s   ` r   genz1TestNPFunctions.test_take_along_axis.<locals>.gen      6 6Kr!   r  r:   )r   rN  r  r   r5  r  r	  r  rU  r  rV  )r  r-   r!  r   r)  rZ  jfuncais           r   test_take_along_axisz$TestNPFunctions.test_take_along_axis  s    IIbM!!,/ 
	7 
	7 ((Aq63	!W 5 ) 1 1!W =	?	 r166" 	HAFEAA&B##E!RL%--22FG	Hr!   c                 .   t        j                  d      }t        j                  dt         j                        }d }dD ]S  } ||      }|j                  ||      } |||      }| j	                  ||       | j                  |j                  d       U y )N)r  r  rn  )rn  r'  r%  r9  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r  r$  s     r   r%  zLTestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen.<locals>.impl  r&  r!   r'  r(  s   ` r   r)  z>TestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen  r*  r!   )rn  r  )r  r'  r%  )r   r  intpr  r	  rx  r  )r  r=   r,  r)  rZ  r  r  actuals           r   !test_take_along_axis_broadcastingz1TestNPFunctions.test_take_along_axis_broadcasting  s    
 ggi WWYbgg.	  	6AFE}}S"-H3^F##Hf5V\\95	6r!   c                 >	   t        j                  d      j                  dd      }t        j                  ddgt         j                        }t        j
                  dt         j                        }d }| j                  t              5 }  |d	      ||       d d d        | j                  d
t        j                               | j                  t              5 }  |d      ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d      ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d       d|       d d d        | j                  dt        |j                               | j                  t              5 }  |d       |d       d d d        | j                  dt        |j                               | j                  t              5 }  |d       |t        j                  ddg             d d d        | j                  dt        |j                               t        d        }| j                  t              5 } |||d       d d d        | j                  dt        |j                               | j                  t              5 }  |d      |t        j                  ddgt         j                               d d d        | j                  dt        |j                               | j                  t              5 }  |d       ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d      |t        j
                  dt         j                               d d d        | j                  dt        |j                               | j                          y # 1 sw Y   xY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr  r'  r  r   rn  r9  r  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r  r$  s     r   r%  zJTestNPFunctions.test_take_along_axis_exceptions.<locals>.gen.<locals>.impl  r&  r!   r'  r(  s   ` r   r)  z<TestNPFunctions.test_take_along_axis_exceptions.<locals>.gen
  r*  r!   r-   zaxis must be an integerr  zaxis is out of boundsr  z"arr" must be an arrayr%  z"indices" must be an arrayr!  r  z#indices array must contain integersc                 0    t        j                  | ||      S r   r  r$  s      r   not_literal_axiszITestNPFunctions.test_take_along_axis_exceptions.<locals>.not_literal_axis+  s    %%aD11r!   zaxis must be a literal valuez'must have the same number of dimensionsr  zdimensions don't match)r   rN  r  r5  r  r  r<  r   r=  r;  r>  r   r  r?  )r  arr2dindices_noner   r)  rA  r8  s          r   test_take_along_axis_exceptionsz/TestNPFunctions.test_take_along_axis_exceptions  s   		!$$Q*xxAbii8''&		2	 {+ 	%vCHUG$	%/V5E5E1FG{+ 	$vCGE7#	$-s63C3C/DE{+ 	#vCF5'"	#-s63C3C/DE{+ 	(vCIb,'	(.F4D4D0EF{+ 	 vCIeQ	 2C8H8H4IJ{+ 	3vCIeRXXsCj12	31  !	

 
	2 
	2 {+ 	0vUGQ/	04c&:J:J6KL{+ 	=vCF5"((Aq6;<	=?&**+	- {+ 	$vCIeU#	$?&**+	- z* 	<fCF5"''&		:;	<.F4D4D0EF!e	% 	%	$ 	$	# 	#	( 	(	  	 	3 	3	0 	0	= 	=	$ 	$
	< 	<sx   
PP+.P8 QQ$%QQ,$5Q9R-3RP(+P58QQQQ),Q69RRRc                 @   t         j                  dddt        t         j                   t         j                        t        t         j                  t         j                        t        j                  dgt
              t        j                  t        t         j                   t         j                        t        dt         j                        t        t         j                  d      t        t         j                  t         j                         g      t        j                  g d      t        j                  g d      t        j                  g dg dg      t        j                  dt         j                  d	g      t        j                  dt         j                  d	gt         j                  d
dgg      t        j                  t         j                   t         j                  t         j                  g      t        j                  t         j                   t         j                  t         j                  gt         j                        g}ddg}t        }t        t              }t        ||      D ]+  \  }} |||      } |||      }| j                  ||       - y )Nrn  r  r  r9  )r  r  皙?r  )r=  r  r  r  r=  r  r  r!  rF  )r  )r   r  ra  r  r5  r  r  r  r   r   r	  )	r  r>   r\  r
  r  valuer  r  r  s	            r   test_nan_to_numzTestNPFunctions.test_nan_to_numD  s    FFRVVGRVV$BFFBFF#HHaS$HHgrvvgrvv.2660Bbffa('"&&266'*BD EHH_%HHYHHo78HHc2663'(HHsBFFC(2663*<=>HHrvvgrvvrvv./HHrvvgrvvrvv.bjjA!
$ RyZ !&$/ 	3JE3e-H3'C##Hc2	3r!   c                 n   t        t              }t        j                  ddt        j                  g      }d} ||d|       | j                  |d   |       t        j                  ddt        t        j                  t        j                        g      } ||d|       | j                  |d   d       y )Nr  r=  r  Fr  r  r  )r   r  r   r5  r  r	  ra  )r  r  r   r  	x_complexs        r   test_nan_to_num_copy_falsez*TestNPFunctions.test_nan_to_num_copy_falsec  s    Z HHc3'(ae*"x0HHc3(?@A	ie2	"x8r!   c                     t        t              }| j                         5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Ninvalid_inputz4The first argument must be a scalar or an array-like)r   r  r  r=  r;  r>  rZ  s      r    test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argumentp  sT    Z ##% 	#/"	#L&**+	-	# 	#s   	AA c                     t         }t        |      }t        }t        |      }d } |       D ]C  \  }}| j                   ||       ||             | j                   |||       |||             E y )Nc               3     K   t        j                  ddg      df t        j                  ddgddgg      df t        j                  d      j                  d      df ddgdf t        j                  g       df y w)Nrn  r'  r  r  r  r  r  r  r  r!   r   r>  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs~  sz     ((Aa5/1$$((QqE1Q%=)2--))A,&&w/22a&!)O((2,/!s   BB)r  r   r  r	  )r  rl  r  rm  r  r>  r^   r   s           r   test_diagflat_basicz#TestNPFunctions.test_diagflat_basicx  sp    gg	" H 	ADAq##GAJq	:##GAqM6!Q<@	Ar!   c                     t         }t        |      }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)NrB  #The argument "v" must be array-like)r  r   r?  r<  r   r=  r;  r>  r@  s       r   test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exception  se    V!{+ 	v%L	;&**+	-	 	s   	A..A7c                 ^   t         }t        |      }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |ddgd       d d d        | j                  dt        |j                               | j                  t              5 } |ddgd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)NrB  r'  rJ  rn  z#The argument "k" must be an integerr  )r  r   r?  r<  r   r=  r;  r>  r@  s       r   test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exception  s   V!{+ 	v%O	;&**+	- {+ 	!v1a&% 	!;&**+	- {+ 	v1a&#	;&**+	-	 	
	! 	!
	 	s#   
DDD#DD #D,c               #     K   t        j                  t        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf g dg df ddgddgf g dg df g dddgf g dg d	f g dg d
f g dg df y w)Nrn  r'  r  r'  r'  r  r  r'  r  r  r   r  r  r  )rI  r%  r  )rn  r  r'  r  r/  r  r  r!   r   _setxor_arrayszTestNPFunctions._setxor_arrays  s     u}}-u}}-/ 	/c4??5==111ooemm,qc11cA3hcA3h!fqck!Q""!fq!fn""QF"" O++""...s   DDc                 |     t         t               fd} j                         D ]  \  }} |||        y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | |      } | |      }j                  ||d|  d|        y Nzar1=z, ar2=r  r  r  r
   r	  ar1ar2r  r  r  r  r  s       r   r  z.TestNPFunctions.test_setxor1d_2.<locals>.check  c    #t$3i#t$3i c*HC%C##HccU&7N#Or!   )r  r   rQ  r  r  r-   r.   r  r  s   `   @@r   test_setxor1d_2zTestNPFunctions.test_setxor1d_2  s>    !	O		P '') 	DAq!QK	r!   c                 >    t         t              d fd	} j                         D ]n  \  }} |||       t        t	        j
                  |            t        |      k(  s:t        t	        j
                  |            t        |      k(  se |||d       p y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | ||      } | ||      }j                  ||d|  d|        y rT  rU  rW  rX  r6   r  r  r  r  r  s        r   r  z.TestNPFunctions.test_setxor1d_3.<locals>.check  g    #t$3i#t$3i c=9HCm4C##HccU&7N#Or!   Trh  )r  r   rQ  r4  r   r  rZ  s   `   @@r   test_setxor1d_3zTestNPFunctions.test_setxor1d_3  s{    !	O		P '') 	"DAq!QK299Q< CF*s299Q</@CF/JaD!	"r!   c                    t         }t        |      }t        j                  dg      }t        j                  dg      }| j	                          | j                  t              5   |||d       d d d        | j                  t              5   |d|d       d d d        | j                  t              5   ||dd       d d d        y # 1 sw Y   ZxY w# 1 sw Y   >xY w# 1 sw Y   y xY wr  )r  r   r   r5  r?  r<  r   r  s        r   test_setxor1d_errorsz$TestNPFunctions.test_setxor1d_errors  r  r  c               #     K   t        j                  t        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf g dg df ddgddgf g dg df g dddgf t	        j
                  g d      t	        j
                  g d	      f t	        j                  d
      t	        j                  d      f t	        j
                  g d      t	        j
                  g d      f y w)Nrn  r'  r  rO  r  rP  r  )rI  r%  r  r  rn  r'  r  r  )r'  r  r  r  r'  rn  r%  r  r  r  )r  r%  r'  )r
   r  r	   r3  r   r5  rN  r  r!   r   _setdiff_arrayszTestNPFunctions._setdiff_arrays  s2    u}}-u}}-/ 	/c4??5==111ooemm,qc11cA3hcA3h!fqck!Q""!fq!fn""QF"" xx01xx-.0 	0iimRYYr]**hhy!288I#666s   E1E3c                 |     t         t               fd} j                         D ]  \  }} |||        y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | |      } | |      }j                  ||d|  d|        y rT  rU  rV  s       r   r  z/TestNPFunctions.test_setdiff1d_2.<locals>.check  rY  r!   )r  r   rd  rZ  s   `   @@r   test_setdiff1d_2z TestNPFunctions.test_setdiff1d_2  s>    "	O		P ((* 	DAq!QK	r!   c                 >    t         t              d fd	} j                         D ]n  \  }} |||       t        t	        j
                  |            t        |      k(  s:t        t	        j
                  |            t        |      k(  se |||d       p y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | ||      } | ||      }j                  ||d|  d|        y rT  rU  r^  s        r   r  z/TestNPFunctions.test_setdiff1d_3.<locals>.check  r_  r!   Trh  )r  r   rd  r4  r   r  rZ  s   `   @@r   test_setdiff1d_3z TestNPFunctions.test_setdiff1d_3  s{    "	O		P ((* 	"DAq!QK299Q< CF*s299Q</@CF/JaD!	"r!   c                    t         }t        |      }t        j                  dg      }t        j                  dg      }| j	                          | j                  t              5   |||d       d d d        | j                  t              5   |d|d       d d d        | j                  t              5   ||dd       d d d        y # 1 sw Y   ZxY w# 1 sw Y   >xY w# 1 sw Y   y xY wr  )r  r   r   r5  r?  r<  r   r  s        r   test_setdiff1d_errorsz%TestNPFunctions.test_setdiff1d_errors$  s    "	O	HHaSMHHaSM!{+ 	#aE"	#{+ 	&eQ%	&{+ 	&a%	& 	&		# 	#	& 	&	& 	&r  c               #   f  K   t        j                  t        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf g dg df ddgddgf g dg df g dddgf ddgt	        j
                  d      f ddgt	        j                  t	        j
                  d	      d
      f y w)Nrn  r'  r  rO  r  rP  r  rH  r%  r  )r
   r  r	   r3  r   rN  r  r  r!   r   _in1d_arrayszTestNPFunctions._in1d_arrays2  s    u}}-u}}-/ 	/c4??5==111ooemm,qc11cA3hcA3h!fqck!Q""!fq!fn""QF""!fbiim##!fbggbiilA...s   D/D1c                 |     t         t               fd} j                         D ]  \  }} |||        y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | |      } | |      }j                  ||d|  d|        y rT  rU  rV  s       r   r  z*TestNPFunctions.test_in1d_2.<locals>.checkG  rY  r!   )r  r   rn  rZ  s   `   @@r   test_in1d_2zTestNPFunctions.test_in1d_2C  >    	O		P %%' 	DAq!QK	r!   c                 @    t         t              d fd	} j                         D ]o  \  }} |||       t        t	        j
                  |            t        |      k(  s:t        t	        j
                  |            t        |      k(  se |||d       q y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | ||      } | ||      }j                  ||d|  d|        y rT  rU  r^  s        r   r  z+TestNPFunctions.test_in1d_3a.<locals>.checkW  r_  r!   Tr  rh  )r  r   rn  r4  r   r  rZ  s   `   @@r   test_in1d_3azTestNPFunctions.test_in1d_3aS  s{    	O		P %%' 	0DAq!QK299Q< CF*s299Q</@CF/Ja$/	0r!   c                      t         t              d fd	} j                         D ]  \  }} |||d        |||d        y )NFc                     t        | t              rt        |       } t        |t              rt        |      } | ||      } | ||      }j                  ||d|  d|        y rT  rU  rW  rX  r  r  r  r  r  r  s        r   r  z+TestNPFunctions.test_in1d_3b.<locals>.checki  sg    #t$3i#t$3i c62HCf-C##HccU&7N#Or!   r  Trh  )r  r   rn  rZ  s   `   @@r   test_in1d_3bzTestNPFunctions.test_in1d_3be  M    	O		P %%' 	%DAq!Qu%!Qt$	%r!   c                 t    t         t              d fd	} j                         D ]  \  }} |||d        |||d       t        t	        j
                  |            t        |      k(  sGt        t	        j
                  |            t        |      k(  sr |||dd        |||dd        y )NFc                     t        | t              rt        |       } t        |t              rt        |      } | |||      } | |||      }j                  ||d|  d|        y rT  rU  	rW  rX  r6   r  r  r  r  r  r  s	         r   r  z*TestNPFunctions.test_in1d_4.<locals>.checkz  sk    #t$3i#t$3i c=&AHCmV<C##HccU&7N#Or!   r  Tr6   r  FF)r  r   rn  r4  r   r  rZ  s   `   @@r   test_in1d_4zTestNPFunctions.test_in1d_4v  s    	O		P %%' 	=DAq!Qu%!Qt$299Q< CF*s299Q</@CF/Ja$u=a$t<	=r!   c                    t         }t        |      }t        j                  dg      }t        j                  dg      } |||      }| j	                  |t        j                  dg             | j                          | j                  t              5   |||dd       d d d        | j                  t              5   |||dd       d d d        | j                  t              5   |d|dd       d d d        | j                  t              5   ||ddd       d d d        t               d        }| j                  t              5   |||d        d d d        | j                  t              5   |||d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   y xY w)	Nrn  r'  Fr  Tc                 2    t        j                  | ||      S Nkindr  r-   r.   r  s      r   np_in1d_kindz6TestNPFunctions.test_in1d_errors.<locals>.np_in1d_kind      771ad++r!   r  table)r  r   r   r5  r	  r?  r<  r   )r  r  r  r-   r.   r   r  s          r   test_in1d_errorsz TestNPFunctions.test_in1d_errors  s   	O	HHaSMHHaSMaO288UG#45!{+ 	*aE5)	*{+ 	*aE5)	*{+ 	-eQe,	-{+ 	-ae,	- 
	, 
	, {+ 	*AD)	*{+ 	-AG,	- 	-	* 	*	* 	*	- 	-	- 	-	* 	*	- 	-H   F;F$FF(F4/G FFF%(F14F= G	c               #   v  K   t        j                  t        j                        t        j                  t        j                        f t	        j
                  dt        j                        t        j                  t        j                        f t	        j
                  dt        j                        t        j                  t        j                        f t	        j
                  dt        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf g dg df ddgddgf dd	gt	        j                  d
      f dd	gt	        j                  t	        j                  d      d      f t	        j                  d      j                  dd	d      g df t	        j                  d      j                  g d      } t	        j                  g dg dg dg      }| |f t	        j                  d	      |f | t	        j                  d	      f t	        j                  d	      t	        j                  d	      f d|f | df d t        j                  t        j                        |f | t        j                  t        j                        f t        t        j                  t        j                  fD ]  }|t        j                  t        j                  hv rt	        j                  g d|      }n |t        hv rt	        j                  g d      }t	        j                  g |      }|f ||f ||f  dD ]  }g dg d|z  f g dg d|z  f g dg d|z  f g d} | g d|z  f | g d|z  g d|z  z   f t	        j                  g d      t	        j                  g d|z        f t	        j                  g d      t	        j                  g d|z        f t	        j                  ddg      t	        j                  ddg|z        f  t	        j                  dg      t	        j                  dg      f t	        j                  d d!g      t	        j                  g d"      f t        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  ffD ]}  \  }}t	        j                   |t        j"                        }t	        j                  g d#|      }	|rt	        j                  g d$|      }
nt	        j                  g d%|      }
|	|
f  t        j$                  d&   D ]D  }t	        j                  g dt              } t	        j                  g d'|      }| |f || f F y w)(N)rn  r   r9  )r   r   r  rn  r'  r  rO  r  rH  r%  r  r  )r%  r  rF  rK  r  r,  )rF  rH  r  r#  )r     r  rI  r	  )TFF)rn  rF  r  r  )r  r  rn  r'  )r  r  rn  r  )r%  r  r%  r  r  r  r  r  r  r%  r'  rn  r%  r%  )r%  r%  r  )r%  r  rn  rn  r'  )r'  r  r  r  rn  r%  TFr  )r   r   rn  rn  )ir      )r  r   r  
AllInteger)r   r   r   r   )r
   r  r	   r3  r   r  r  rN  r  r  r5  r  r!  r  rS  uint16r  signedinteger	typecodes)r-   r.   r:  arempty_arraymultdtype1dtype2is_dtype2_signedrW  rX  s              r   _isin_arrayszTestNPFunctions._isin_arrays  s    u}}-u}}-/ 	/xxbhh/u{{+- 	-xxbhh/u{{+- 	-xxbhh/u{{+- 	-c4??5==111ooemm,qc11cA3hcA3h!fqck!Q""!fq!fn!fbiim##!fbggbiilA...iim##Aq!,n<< IIbM!!),HHlI|<=d
hhqk1n!nhhqk288A;&&d
d

ooekk*A-----BHHbjj1 
	+E2::..XXl%84&XX23((2U3Kr/!k/!{**
	+  		<D$ 666$ 666$ 666:AY%%%Y%	D(8888((<("((?T3I*JJJ((?+RXX6H46O-PPP((Aq6"BHHaVd]$;;;		< hhsmRXXqc]**hhe}%rxx0E'FFF WWbhhXXrwwXXryy!YY!XXrxx XXrxx 
 	NFF  "}}VR5E5EF((<v6Chh~V<hh}F;s(N!	$ \\,/ 	E-T:AU3AQ$JQ$J		s   Z7Z9c                 |     t         t               fd} j                         D ]  \  }} |||        y )Nc                      | |      }t        | t              rt        |       } t        |t              rt        |      } | |      }j                  ||d|  d|        y rT  rU  rV  s       r   r  z*TestNPFunctions.test_isin_2.<locals>.check   sc     c*H#t$3i#t$3iC%C##HccU&7N#Or!   )r  r   r  rZ  s   `   @@r   test_isin_2zTestNPFunctions.test_isin_2  rr  r!   c                     t         t              d fd	} j                         D ]u  \  }} |||       	 t        |      }	 t        |      }t        t        j                  |            |k(  sIt        t        j                  |            |k(  sk |||d       w y # t        $ r d}Y kw xY w# t        $ r d}Y pw xY w)Nc                      | ||      }t        | t              rt        |       } t        |t              rt        |      } | ||      }j                  ||d|  d|        y rT  rU  r^  s        r   r  z+TestNPFunctions.test_isin_3a.<locals>.check  sg     c=9H#t$3i#t$3iCm4C##HccU&7N#Or!   rn  Tr  rh  )r  r   r  r4  r  r   r  r  r  r-   r.   len_alen_br  r  s   `     @@r   test_isin_3azTestNPFunctions.test_isin_3a  s    	O		P %%' 	0DAq!QKAA 299Q< E)c"))A,.?5.Ha$/	0
    s#   B&	B7&B43B47CCc                      t         t              d fd	} j                         D ]  \  }} |||d        |||d        y )NFc                      | ||      }t        | t              rt        |       } t        |t              rt        |      } | ||      }j                  ||d|  d|        y rT  rU  rx  s        r   r  z+TestNPFunctions.test_isin_3b.<locals>.check+  sg     c62H#t$3i#t$3iCf-C##HccU&7N#Or!   r  Trh  )r  r   r  rZ  s   `   @@r   test_isin_3bzTestNPFunctions.test_isin_3b'  rz  r!   c                     t         t              d fd	} j                         D ]  \  }} |||d        |||d       	 t        |      }	 t        |      }t        t        j                  |            |k(  sVt        t        j                  |            |k(  sx |||dd        |||dd        y # t        $ r d}Y xw xY w# t        $ r d}Y }w xY w)NFc                      | |||      }t        | t              rt        |       } t        |t              rt        |      } | |||      }j                  ||d|  d|        y rT  rU  r}  s	         r   r  z*TestNPFunctions.test_isin_4.<locals>.check<  sk     c=&AH#t$3i#t$3iCmV<C##HccU&7N#Or!   r  Trn  r~  r  )r  r   r  r4  r  r   r  r  s   `     @@r   test_isin_4zTestNPFunctions.test_isin_48  s    	O		P %%' 	=DAq!Qu%!Qt$AA 299Q< E)c"))A,.?5.Ha$u=a$t<	=    s$   
C C CCCCc                    t         }t        |      }t        j                  dg      }t        j                  dg      } |||      }| j	                  |t        j                  dg             | j                          | j                  t              5   |||dd       d d d        | j                  t              5   |||dd       d d d        | j                  t              5   |d|dd       d d d        | j                  t              5   ||ddd       d d d        t               d        }| j                  t              5   |||d        d d d        | j                  t              5   |||d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   y xY w)	Nrn  r'  Fr  Tc                 2    t        j                  | ||      S r  r  r  s      r   np_isin_kindz6TestNPFunctions.test_isin_errors.<locals>.np_isin_kindh  r  r!   r  r  )r  r   r   r5  r	  r?  r<  r   )r  r  r  r-   r.   r   r  s          r   test_isin_errorsz TestNPFunctions.test_isin_errorsU  s   	O	HHaSMHHaSMaO288UG#45!{+ 	*aE5)	*{+ 	*aE5)	*{+ 	-eQe,	-{+ 	-ae,	- 
	, 
	, {+ 	+AT*	+{+ 	-AG,	- 	-	* 	*	* 	*	- 	-	- 	-	+ 	+	- 	-r  c                 D   t        t              }t        t              }t        t              }t        t              }t        j                  g d      }t        j                  g d      } |||      } |||      } |||      }	 ||	|      }
| j                  ||
       y )N)r%  r  rn  r'  r  )r  r  r'  r  r  rn  r%  )r   r  r3   r  r  r   r5  r	  )r  nb_setxor1dnb_intersect1d
nb_union1dnb_setdiff1dr-   r.   c1aux1aux2c2s              r   test_setops_manywaysz$TestNPFunctions.test_setops_manywaysq  s    =)m,*%
N+HH_%HH*+Aa#!Q$%B'r!   )NNFNr   rg  )r  r  r  __doc__r  r  r7  rB  rd  ro  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r&  r)  r.  r0  r5  r9  rL  r]  rc  rs  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  staticmethodr  r
  r  r  r  r  r  r  r  r!  r&  r(  r+  r.  r2  r5  r7  r9  r;  r@  rD  rH  rJ  rT  rW  rb  re  rp  rs  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r$  r*  r,  r3  r7  r:  r<  r?  rU  r[  r_  ri  rk  rr  rw  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr   r  rJ  r  r  rM  r  r  skipr  r  rS  r  r  rV  r  r  r  r  r  r  r  r!  r#  r%  r'  r)  r7  r;  r  rC  skipIfr   rF  rI  rL  rU  rX  r_  ro  r{  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r3  r;  r?  rB  rE  rH  rK  rM  rQ  r[  r`  rb  rd  rg  rj  rl  rn  rq  ru  ry  r  r  r  r  r  r  r  r  r  __classcell__)r  s   @r   r  r    s   - EIKO+CZ7)r	"68p%!N, 	"34	
3@ 7D&3&3$"B3<!"F	7"*/.7@7&7(D?L3<3"	7-&
7-&Un@D&8P'>R4<#|: !F6B1C*<0;@
3!j!F.,%#N
II" ' '>	I	4



8<I$I45@P45@P?-*Q9E0H0**,(,(  >>&&cAJeDN	=	@ KD"QH D$LCF P P4"0H = = = =  $  ;z 	 	   
 
 /- /-b#<'-*?-.?K(P8-P8@:-(3>-23@-<T6l37F089t9"-- (BT1474+@.D&P X%896 :6 *2  D X%89: :: ,6 8!t X%89@ :@ X]]123;  3 X%89< :< -8 +#Z X%89@ :@ /< /0 X%89E :E 4A *DXS6j>:@828636@	43Bb-HL+7Z/Ab X__Z2N4OPF QF6C;J&'BR
<3 3<L<\32()T I I>C8J8,t1Jf5;n-1^13f?
B,3\#
J"3H7%r
@"3H0
d*3XM28?t(:; #-JH.6,@"D3>9-A"	--* / /& "$& 7 7( "$& / /  0$%"=(-8 S Sj 06%"=:-8(r!   r  c                   (    e Zd ZdZd Zd Zd Zd Zy)TestNPMachineParametersz0
def foo():
    ty = np.%s
    return np.%s(ty)
c                     |} t        d      |      } || } || }|D ](  }| j                  t        ||      t        ||             * y r$  )r   r	  getattr)	r  r  attrsrk   r
  r  r  r  attrs	            r   r  zTestNPMachineParameters.check  s\    "T"6*4=Tl  	8D##GHd$;$+C$68	8r!   c                     |j                   }|j                   }| j                  ||fz  }i }t        t        |dd      t	               |       |d   S )Nz<string>execr  )r  templater  compileglobals)r  basefunctytystrbasestrfuncstrdcts          r   create_harcoded_variantz/TestNPMachineParameters.create_harcoded_variant  sQ     ##--5'"22WWj&179cB5zr!   c                    t         j                  t         j                  t         j                  t         j                  g}d}|D ]Q  }| j                  t        | |d             | j                  t         j                  |      }| j                  ||       S | j                  t              5 } t        d      t              } |d       d d d        d}| j                  |t        j                               | j                         5   t        d      t              } |t        j                   d             d d d        y # 1 sw Y   {xY w# 1 sw Y   y xY w)N)r  epsnegiexpmachepr3  maxexpnegepnexpnmant	precision
resolutiontinybitsrn  Tr9  r=  z(Unknown attribute 'machar' of type finfor  )r   r  r3  r  r6  r  r   r  r<  r   r   r   r=  r;  r>  r  r  )r  r	   r  r  hc_funcrA  r  r  s           r   
test_finfoz"TestNPMachineParameters.test_finfo  s   RZZr}}EN 	'BJJueRU+22288R@GJJw&	' {+ 	v&C&|4E"I	 9c3v//01 ##% 	&C&u-E"((1+	 		 		 	s   ,E
2EEEc                 T   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  g}d}|D ]Q  }| j                  t        | |d             | j                  t         j                  |      }| j                  ||       S | j                         5   t        d      t              } |t        j                  d             d d d        y # 1 sw Y   y xY w)N)r  r3  r  rn  Tr9  r  )r   r!  r  r  r  rS  r  r  r  r  r   r  r  r   r3  )r  r	   r  r  r  r  s         r   
test_iinfoz"TestNPMachineParameters.test_iinfo  s    "((BHHbhh"))BII'' 	'BJJueRU+22288R@GJJw&	' ##% 	!&C&u-E"**Q- 	! 	! 	!s   #2DD'N)r  r  r  r  r  r  r  r  r  r!   r   r  r    s    H
8*!r!   r  c                       e Zd Zd Zy)TestRegistryImportsc                     t        d      }t        |      \  }}| j                  d|j                                | j                  d|j                         d| d       y )Nz
            import numba
            import numpy as np
            @numba.njit
            def foo():
                np.array([1 for _ in range(1)])
            foo()
            print("OK")
        s   OKr!   z
--ERROR--

r  )r   r   rx  strip)r  coderesulterrors       r   test_unsafe_import_in_registryz2TestRegistryImports.test_unsafe_import_in_registry  s]        *$//ekkm;ugR1HIr!   N)r  r  r  r  r  r!   r   r  r    s    Jr!   r  __main__rh  )Nr   r   )r  r  F)rG  r  r  )r  )rX  )r   N)NF)NTFN)NT)NN)fb)Nr  g-DT!@)Tr!  r  )r`  r,  r  	functoolsr   r   textwrapr   numpyr   r  r   r   r   
numba.corer	   numba.typedr
   r   numba.np.numpy_supportr   numba.core.errorsr   numba.core.configr   numba.core.utilsr   numba.np.extensionsr   numba.tests.supportr   r   r   r   r   r   r   r  r   r%   r)   r+   r3   r7   r<   r@   rB   rH   rK   rP   rV   rY   r\   rd   rg   ri   rm   rp   rr   ru   rx   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r!  r#  r)  r,  r1  r5  r<  r3  r?  rA  rC  rJ  rM  rS  rV  rZ  r\  r_  ra  rd  rh  rj  rr  rt  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  mainr  r!   r   <module>r     s$          # #  " 0 ) ' ( '1 1 1   /-,%(!./3"$-%.1+$$$)(!#$%(!#$%(' #,%-& jj '&""45 !)<+"*6'8"0",-6(06(0`a(ox `a(FCA!h A!HJ( J( zHMMO r!   