
    pi                       d dl Z d dlZd dlZd dlZd dlmZ d dl mZ d dlmZ d dl	Z
d dlmZmZmZ d dlmZ d dl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 m!Z!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 Z0d Z1d Z2d Z3d Z4d Z5d Z6ddZ7d Z8d Z9d Z:d Z;d  Z<d! Z=d" Z>d# Z?d$ Z@d% ZAd& ZBdd'ZCdd(ZDdd)ZEd* ZFd+ ZGd, ZHd- ZId. ZJd/ ZKd0 ZLd1 ZMdd2ZNd3 ZOdd4ZPd5 ZQdd6ZRdd7ZSdd8ZTd9 ZUd: ZVd; ZWdd<ZXdd=ZYd> ZZdd?Z[dd@Z\ddAZ]dB Z^ddCZ_dD Z`ddEZaddFZbddGZcdH ZdddIZedJ ZfddKZgdL ZhddMZiddNZjddOZkdP ZlddQZmddRZndS ZodT ZpddUZqddVZrddWZsdX ZtdY ZudZ Zve
j                  fd[Zxd\ Zyd] Zzd^ Z{d_ Z|d` Z}da Z~db Zdc Zdd Zde ZddfZddg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)j`                          yy)    N)partial)product)dedent)jitnjittypeof)types)ListDict)numpy_version)TypingErrorNumbaDeprecationWarning)	IS_32BITS)pysignaturecross2d)	TestCaseMemoryLeakMixin
needs_blasrun_in_subprocessskip_if_numpy_2
IS_NUMPY_2IS_MACOS_ARM64REDUCED_TESTINGskip_if_reduced_testingc                 ,    t        j                  |       S N)npsincxs    _/opt/services/ai/voice_agent/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_2r6   -   r2   r$   c                 0    t        j                  | ||      S r   r4   r0   r1   assume_uniques      r"   intersect1d_3r:   1   s    >>!Q..r$   c                 2    t        j                  | ||      S Naxis)r   append)arrvaluesr>   s      r"   r?   r?   5   s    99S&t,,r$   c                 0    t        j                  | |      S r<   )r   count_nonzero)r@   r>   s     r"   rC   rC   9   s    Cd++r$   c                 .    t        j                  | |      S r   )r   delete)r@   objs     r"   rE   rE   =   s    99S#r$   c                 ,    t        j                  |       S r   r   diffr0   s    r"   diff1rK   A   r#   r$   c                 .    t        j                  | |      S r   rH   )r0   ns     r"   diff2rN   E       771a=r$   c                 ,    t        j                  |       S r   r   bincountrJ   s    r"   	bincount1rS   I       ;;q>r$   c                 0    t        j                  | |      S )NweightsrQ   )r0   ws     r"   	bincount2rY   M   s    ;;q!$$r$   c                 0    t        j                  | ||      S r   rQ   )r0   rX   	minlengths      r"   	bincount3r\   Q   s    ;;q!Y''r$   c                 .    t        j                  | |      S r   r   searchsortedr0   vs     r"   r_   r_   U       ??1a  r$   c                 2    t        j                  | |d      S )Nleftsider^   r`   s     r"   searchsorted_leftrg   Y   s    ??1af--r$   c                 2    t        j                  | |d      S )Nrightre   r^   r`   s     r"   searchsorted_rightrj   ]   s    ??1ag..r$   c                  &    t        j                  |  S r   )r   digitizeargss    r"   rl   rl   a   s    ;;r$   c                  &    t        j                  |  S r   )r   	histogramrm   s    r"   rp   rp   e   s    <<r$   c                  *    t        j                         S r   )r   MachArrm   s    r"   macharrs   i   s    99;r$   c                 ,    t        j                  |       S r   )r   	iscomplexr    s    r"   ru   ru   m       <<?r$   c                 ,    t        j                  |       S r   )r   iscomplexobjr    s    r"   rx   rx   q       ??1r$   c                 ,    t        j                  |       S r   )r   isscalarr    s    r"   r{   r{   u   rT   r$   c                 ,    t        j                  |       S r   )r   isrealr    s    r"   r}   r}   y       99Q<r$   c                 ,    t        j                  |       S r   )r   	isrealobjr    s    r"   r   r   }   rv   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r0   r1   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   iinform   s    r"   r   r          88T?r$   c                  &    t        j                  |  S r   )r   finform   s    r"   r   r      r   r$   c                  :    t        j                  |  j                  S r   )r   r   rs   rm   s    r"   finfo_macharr      s    88T?!!!r$   c                 ,    t        j                  |       S r   r   fliplrrJ   s    r"   r   r      r~   r$   c                 ,    t        j                  |       S r   r   flipudrJ   s    r"   r   r      r~   r$   c                 ,    t        j                  |       S r   )r   fliprJ   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   rot90rJ   s    r"   r   r      r)   r$   c                 .    t        j                  | |      S r   r   )r0   ks     r"   rot90_kr          88Aq>r$   c                 2    t        j                  | ||      S r<   )r   array_splitr0   indicesr>   s      r"   r   r      s    >>!W400r$   c                 2    t        j                  | ||      S r<   )r   splitr   s      r"   r   r      s    88AwT**r$   c                 .    t        j                  | |      S r   )r   vsplitr0   
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r0   ra   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      rO   r$   c                 ,    t        j                  |       S r   r   tril_indicesrM   s    r"   tril_indices_nr      ry   r$   c                 .    t        j                  | |      S r   r   rM   r   s     r"   tril_indices_n_kr      rb   r$   c                 0    t        j                  | |      S Nr   r   rM   r   s     r"   tril_indices_n_mr          ??1""r$   c                 0    t        j                  | ||      S r   r   rM   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
    rO   r$   c                 ,    t        j                  |       S r   r   triu_indicesr   s    r"   triu_indices_nr    ry   r$   c                 .    t        j                  | |      S r   r  r   s     r"   triu_indices_n_kr    rb   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r0   kths     r"   r   r   1  s    <<3r$   c                 .    t        j                  | |      S r   )r   argpartitionr!  s     r"   r$  r$  5  s    ??1c""r$   c                 4    t        j                  | ||||      S r   )r   cov)r   yrowvarbiasddofs        r"   r&  r&  9  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/  A  s    ::c68,,r$   c                 .    t        j                  | |      S r   )r   roll)r0   shifts     r"   r4  r4  E  s    771er$   c                 ,    t        j                  |       S r   r   asarrayrJ   s    r"   r8  r8  I      ::a=r$   c                 0    t        j                  | |      S Ndtyper7  r0   r=  s     r"   asarray_kwsr?  M  s    ::au%%r$   c                 0    t        j                  | |      S r;  r   asfarrayr>  s     r"   rB  rB  Q  s    ;;q&&r$   c                 ,    t        j                  |       S r   rA  rJ   s    r"   asfarray_default_kwargrD  U  rT   r$   c                 .    t        j                  | |      S r   )r   extract	conditionr@   s     r"   rF  rF  Y  s    ::i%%r$   c                 ,    t        j                  |       S r   r   trapzr'  s    r"   np_trapzrM  ]  r)   r$   c                 .    t        j                  | |      S r   rJ  r'  r!   s     r"   
np_trapz_xrP  a  r   r$   c                 0    t        j                  | |      S NdxrJ  r'  rT  s     r"   np_trapz_dxrV  e  s    88A"r$   c                 0    t        j                  | ||      S r   rJ  r'  r!   rT  s      r"   np_trapz_x_dxrY  i  s    88Aq"r$   c                 ,    t        j                  |       S r   r   	trapezoidrL  s    r"   np_trapezoidr]  m  rv   r$   c                 .    t        j                  | |      S r   r[  rO  s     r"   np_trapezoid_xr_  q      <<1r$   c                 0    t        j                  | |      S rR  r[  rU  s     r"   np_trapezoid_dxrb  u  s    <<b!!r$   c                 0    t        j                  | ||      S r   r[  rX  s      r"   np_trapezoid_x_dxrd  y  s    <<1b!!r$   c                 4    t        j                  | ||||      S r   )r   allcloser   s        r"   np_allcloserg  }  s    ;;q!T433r$   c                 2    t        j                  | ||      S )Nr>   rW   )r   average)r0   r>   rW   s      r"   
np_averagerk    s    ::adG44r$   c                 0    t        j                  | ||      S r   )r   interpr!   xpfps      r"   rm  rm    s    99QBr$   c                 .    t        j                  | |      S r   )r   repeatr0   repeatss     r"   	np_repeatru    s    99Q  r$   c                 J    t        j                  |       j                  |      S r   )r   r8  rr  rs  s     r"   array_repeatrw    s    ::a=((r$   c                 2    t        j                  | ||      S )N)defaultr   select)condlist
choicelistry  s      r"   	np_selectr~    s    99Xz7;;r$   c                 .    t        j                  | |      S r   rz  )r|  r}  s     r"   np_select_defaultsr    s    99Xz**r$   c                 ,    t        j                  |       S r   )r   bartlettr   s    r"   np_bartlettr    rT   r$   c                 ,    t        j                  |       S r   )r   blackmanr  s    r"   np_blackmanr    rT   r$   c                 ,    t        j                  |       S r   )r   hammingr  s    r"   
np_hammingr    r9  r$   c                 ,    t        j                  |       S r   )r   hanningr  s    r"   
np_hanningr    r9  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)r0   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   rJ   s    r"   flip_lrr    r~   r$   c                 ,    t        j                  |       S r   r   rJ   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    )r0   keys     r"   array_containsr    s    !8Or$   c                 0    t        j                  | ||      S r   )r   swapaxes)r0   a1a2s      r"   r  r    s    ;;q"b!!r$   c                 6    t        j                  | ||||      S )Ncopynanposinfneginf)r   
nan_to_num)Xr  r  r  r  s        r"   r  r    s    ==3vfMMr$   c                 ,    t        j                  |       S r   )r   r   )
dimensionss    r"   
np_indicesr    s    ::j!!r$   c                 ,    t        j                  |       S r   r   diagflat)ra   s    r"   	diagflat1r    rT   r$   c                 .    t        j                  | |      S r   r  )ra   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  r8   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  r8   s      r"   np_setdiff1d_3r    s    <<1m,,r$   c                 .    t        j                  | |      S r   r   in1dr/   s     r"   	np_in1d_2r    rO   r$   c                 2    t        j                  | ||      S Nr9   r  r8   s      r"   
np_in1d_3ar        771a}55r$   c                 2    t        j                  | ||      S Ninvertr  r0   r1   r  s      r"   
np_in1d_3br  	      771a''r$   c                 2    t        j                  | |||      S r   r  r0   r1   r9   r  s       r"   	np_in1d_4r        771a//r$   c                 .    t        j                  | |      S r   r   isinr/   s     r"   	np_isin_2r    rO   r$   c                 2    t        j                  | ||      S r  r  r8   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 Zed        Ze?d        Ze?d        Zd Zed        Zed        Zed        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                    	 dd	t          	fd}g d}t        rt        j                  gnt        j                  t        j                  g}|t        |      t        |      z  dz   z  } |||       t        j                  |t        j                        g}|D cg c]  }t        |       }} |||       g d}t        rt        j                  gnt        j                  t        j                  g}|t        |      t        |      z  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>.checks  s)    DNN67H %/3S%#%r$   )
      ?                           ?         g#B;g#B   r<  )      ?                                      r/                ?y                    ?                            ?      ?                  @      @            y#B;        y#B        y        #B;y        #B   )ulpsN)r   r   r	   float64r  lenr   arrayr   
complex128r  )
r  r#  r  
real_typesr  ra   complex_typesr!  r  r"  s
   `      @@@r"   	test_sinczTestNPFunctions.test_sincW  sJ     	% I( }}o!MM5==9 	 HZ @1 DEgx  HHXRZZ89&./6!9//gx  ,  **+$0@0@A 	  3x=C4F#F#JKgxa( HHXR]];<&./6!9//gxa(% 0" 0s   "E,E1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   assertInrC  	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            TFr7  r      )sizer=  r*     )r   aranger8  r;  r  seedrandviewr<  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TrA  )r  r   r  )r  rj  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        rt        j                  gnt        j
                  t        j                  g}|t        |      t        |      z  dz   z  } |||       t        j                  |t        j                        g}|D cg c]  }t        |       }} |||       g d}t        rt        j                  gnt        j                  t        j                  g}|t        |      t        |      z  dz   z  } |||       t        j                  |      }t        rt        j                  gn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_r:  )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,  r<  )r-  r.  r/  r/  r0  y             r1  r2  r3  r4  r5  r6  N)r(   r,   r   r	   r9  r  r:  r   r;  r   r<  r  )	r  r#  r  r=  r  ra   r>  rt  ru  s	   `      @@r"   
test_anglezTestNPFunctions.test_angle  sD   
 	9 :( }}o!MM5==9 	 HZ @1 DEgx  HHXRZZ89&./6!9//gx A ,  **+$0@0@A 	  3x=C4F#F#JKgx  88H%% $$%%*:*:; 	 	gx # 0s   "E6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-  r6  )f4f8c8c16r<  TrA  )r
  r   r;  r   assertEqual)r  rz  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)NTrA  helloz0Argument "z" must be a complex or Array[complex])r(   r   rD  r   rE  rC  rF  rG  rH  s       r"   test_angle_exceptionsz%TestNPFunctions.test_angle_exceptions  so    "T"6*{+ 	v'N	H&**+	- 	!	 	rK  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)Nr,  r7  rN  r*     r,  r7     r  r7  r7  )r  r7  )TTTF)Tr7  )Tr,  )Fr   r   r;  rV  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	TrA  )r.   r   r  r  r  r  r  r@   rF   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)NTrA     r     z3Both arguments to "array_equals" must be array-like)
r.   r   rD  r   r   rV  r  rE  rC  rF  rH  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	Nr,  r7  r,  r7  r7  r  r*     r,  r7  r7  r  r  r,  r*  )r*  r*  r  r,  r7  )r7  r,  r  r  r  r,  r*  r
   
empty_listr	   r9  r  r$   r"   r  z2TestNPFunctions.test_intersect1d_2.<locals>.arraysJ       ??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'TrA  )r6   r   
isinstancelistr
   r  r  r  r  r  r0   r1   r  r  s           r"   test_intersect1d_2z"TestNPFunctions.test_intersect1d_2H  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>.arraysj  r  r  TrA  Fr  )	r:   r   r  r  r
   r  r:  r   uniquer  s           r"   test_intersect1d_3z"TestNPFunctions.test_intersect1d_3h  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Nr,  r7  fooT)r:   r   r   r;  rG  rD  r   r  	np_pyfunc	np_nbfuncr0   r1   s        r"   test_intersect1d_errorsz'TestNPFunctions.test_intersect1d_errors      !	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)
NrN  r<  r   <   r  r  r*  r  r,  )r   r;  zerosrV  onesrq  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TrA  )rC   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)r7  r7  NrN  r  r*  r7  r  r  r*  rQ  r     	   r   r,  r   rV  r  r;  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$TrA  )r?   r   r  )	r  r  r  r  r@   rF   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)NTrA  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   r;  rD  r   rE  rC  rF  rG  )r  r  r  r@   rA   r>   rI  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r,  r7  r  r  r*  r  r7  rN  )r  r*  rQ  )r7  r  r  r*  r  r  r*  )r*  r     r  r,  r7  r  r  r,  )r   rV  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  TrA  )rE   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)NTrA  r,  r7  gQ	@zobj should be of Integer dtyperN  )g      @gffffff@g@r  z)arr must be either an Array or a Sequencez"obj must be less than the len(arr))rE   r   rG  rD  r   rE  rC  rF  r   rV  
IndexErrorrH  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  r7  r  Nr   rV  r  r  r0   r1   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)NTrA  r  )rK   r   r  r  r   r;  assertTypingError)r  r  r  r@   r  r  r0   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 )	NTrA  r   r,  r7  r  i  )rN   r   r  shaper  )r  r  r  r@   rT  rM   r  r  s           r"   
test_diff2zTestNPFunctions.test_diff27  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)NTrA  r  r,  rN  )r  izorder must be non-negative)rN   r   rG  r   r;  r  rV  rD  
ValueErrorrE  rC  rF  )r  r  r  r@   rM   rI  s         r"   test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptionsA  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                @numbarN  i90  gV-@TYnatr,  )r   r8  intint16timedelta64
datetime64r  r$   r"   rA   z-TestNPFunctions.test_isscalar.<locals>.valuesW  s     G**aS/!JHMb'M((5/!KJJ..S))--&&--3''s   B!B#TrA  )r{   r   r  r  rA   r  r  r!   r  r  s          r"   test_isscalarzTestNPFunctions.test_isscalarV  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)Nr,  r-  )r  r-  Thello worldr7  r  r$   r"   rA   z4TestNPFunctions.test_isobj_functions.<locals>.valuesn  s&     GL**.//s   ')TrA  c                     |r| nd } ||      S r   r  )r!   condr  r'  s       r"   optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fnt  s    tA8Or$   Fr  )r   rx   r   r  py_funcr:  
signatures)r  rA   r  pyfuncsr  r  r!   r  r  expected_optionalgot_optionalexpected_nonegot_nones                r"   test_isobj_functionsz$TestNPFunctions.test_isobj_functionsm  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  r7                 @r  r  y              (@      ?      @y      $@        )r          @        r,  r7  r  r*  rQ  r  r  r   r;  r  r$   r"   rA   z7TestNPFunctions.test_is_real_or_complex.<locals>.values  sg     ((:;;((9%%GILM""((QFQFQFQF;<<s   A+A-TrA  )ru   r}   r   r  )r  rA   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&  r,  r<  r  r  )r   infr8  r  rq  emptyr  r$   r"   rA   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$TrA  )r   r   r   r  )	r  rA   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  r7  r7  r7  )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=|=r,  r7  r  r  r   皙?    .A)r   r,   @)r   r  r;  r  rV  )aranr@   r   kwr   s   r"   rA   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TrA  )r   r;  rV  r  r   r   r  rq  r  
assertTruer.   )r  rA   r  r  r0   r1   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NTrA  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-liker7  z2The third argument "rtol" must be a floating pointz3The fourth argument "atol" must be a floating pointr,  z0The fifth argument "equal_nan" must be a boolean)r   r   r   r8  r  r  r   assertRaisesRegexr  r  r  inpsr0   r1   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()
        )r,  r7  r*  r7  r  rP  )r*  r  r  r*  r   r  ,  rT  )r   r;  r   rZ  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 NTrA  )rS   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)NTrA  r7  r  #first argument must be non-negative)rS   r   rG  rD  r  rE  rC  rF  rH  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 NTrA  r7  )rY   r   r+  mathsqrtr   r;  r  )	r  r  r  r.  r!   rX   rW   r  r  s	            r"   test_bincount2zTestNPFunctions.test_bincount28  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)NTrA  r7  r  r   r1  z+weights and list don't have the same length)rY   r   rG  rD  r  rE  rC  rF  rH  s       r"   test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptionsC  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 r4  )r\   r   r+  maxr  r:  r  )r  r  r  r.  a_maxr[   r  r  s           r"   test_bincount3zTestNPFunctions.test_bincount3V  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)
NTrA  r7  r  r   r1     &   z 'minlength' must not be negative)r\   r   rG  rD  r  rE  rC  rF  rH  s       r"   test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptionsb  s    "T"6* 	! z* 	#f1b'Aq6"	#;&**+	- z* 	&f2r(D"%	&8&**+	-	# 	#	& 	&r:  c                    	
 t          t        d            t         t        d            	t         t        d            
	
 fd}t        rVt        j                  g d      }t        j                  g d      } |||d           |||        |t        |      |       y 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)NTrA  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r  r0   ra   r  r  r  
cfunc_leftcfunc_rightr  pyfunc_leftpyfunc_rightr  s       r"   r#  z0TestNPFunctions.test_searchsorted.<locals>.check  y    a|H1+C##Hc2"1a(HQ"C##Hc2#Aq)Ha#C##Hc2r$   )r   r,  r  )r   r7  r*  r   r*  r7  rP  r,  r  r*  r  r         @r(  c                 2    t        j                  | |d      S )Nnonsensere   r^   r`   s     r"   bad_sidez3TestNPFunctions.test_searchsorted.<locals>.bad_side  s    ??1aj99r$   c                 2    t        j                  | ||      S )Nre   r^   )r0   ra   rf   s      r"   nonconst_sidez8TestNPFunctions.test_searchsorted.<locals>.nonconst_side  s    ??1ad33r$   ri   re   )r,  r7  r   r  rQ  r  )	r  r,  r  r7  r   r  r  rQ  r  rN  r  )rd   )r_   r   rg   rj   r   r   r;  r  rV  r  r9  floatr  )r  r#  binsrA   r0   ra   rP  rR  r  rG  rH  r  rI  rJ  s   `       @@@@@@r"   test_searchsortedz!TestNPFunctions.test_searchsortedu  s   "T"6*''S$'4
)(c4(6	3 	3 88I&DXXi(F $q	"$$t*f% 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   ?K9KKK$c                 R   	
 t          t        d            	t         t        d            
t         t        d            	
 fd}t        rTt        j                  g d      }t        j                  g d      } |||        |t        j                  |      |       y 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                  gt
        j"                        }t        j                  t
        j                  g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 )NTrA  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   rE  rF  s       r"   r#  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.check  rK  r$   )r,  r  r*  )r   r7  r  rQ  r+  rO  r*  r  r  )r*  rN  rU  r,  
fill_valuer  r<  r   )FFTTFr  )123r[  4)r_   r   rg   rj   r   r   r;  sortr  ranger  r  r   choicer  fullr:  r  rV  )r  r#  r0   ra   element_poolisample_sizer  nansr  rG  rH  r  rI  rJ  s   `        @@@@@@r"   test_searchsorted_supplementalz.TestNPFunctions.test_searchsorted_supplemental  sn   "T"6*''S$'4
)(c4(6	3 	3 #A&A!QK"''!*a 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 HHa[

3HHbffXRZZ0a IIaLIIaLa HH/0HHeT]#a a HH_%HHc3Z ar$   c                    	
 t          t        d            	t         t        d            
t         t        d            	
 fd}t        rTt        j                  g d      }t        j                  ddg      } |||        |t        j                  |      |       y 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 )NTrA  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   rE  rF  s       r"   r#  z8TestNPFunctions.test_searchsorted_complex.<locals>.check0  rK  r$   )r-  y       @      ?      @        r  r  r   r,  r  r  r*  r7  r`   )r_   r   rg   rj   r   r   r;  r^  r  	itertoolsr   complexr_  r   r`  r:  rV  )r  r#  r0   ra   poolr  rb  rc  rd  r  rG  rH  r  rI  rJ  s   `        @@@@@@r"   test_searchsorted_complexz)TestNPFunctions.test_searchsorted_complex&  so   "T"6*''S$'4
)(c4(6	3 	3 12A&&)*A!QK"''!*a 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    F?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 )NTrA  c                  >     |  } |  }j                  ||       y r   rE  rn   r  r  r  r  r  s      r"   r#  z,TestNPFunctions.test_digitize.<locals>.checkZ  %    t}H,C##Hc2r$   r   Gz?r,  皙@r  r  r  r        #@r  z-infr  r  r,  r  r  r  r  rN  r  r  r        ?)rl   r   r   r9  rS  r:  r   shuffler  r^  r  r;  r  )r  r#  rA   bins1bins2bins3all_binsxsrT  r!   ri   r  r  s   `          @@r"   test_digitizezTestNPFunctions.test_digitizeV  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 )
NTrA  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rD  r  rE  rC  rF  )rn   fnrI  r  r  r  r  s       r"   check_errorzETestNPFunctions.test_digitize_non_monotonic_bins.<locals>.check_error  sc    uo :&&z2 fI Lc3v'7'7#89: s   AA	r,  rv  ffffff@r  r   r,  r7  )r   r   r,  r   r,  r,  r   r,  )rG  rl   r   r   r;  r  )r  r  r!   rT  r  r  s   `   @@r"    test_digitize_non_monotonic_binsz0TestNPFunctions.test_digitize_non_monotonic_bins  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 )NTrA  c                  >     |  } |  }j                  ||       y r   rE  rp  s      r"   r#  z9TestNPFunctions.test_digitize_supplemental.<locals>.check  rq  r$   r*  r+  r  rN  )r,  r*  r  rN  r     r   )r,  r*  rN  r  r  )r   r   r,  )r,  r,  r   r,  r,  r,  r,  l          r,  )	rl   r   r   rV  r   rX  linspaceminr<  )r  r#  r!   rT  r  r  s   `   @@r"   test_digitize_supplementalz*TestNPFunctions.test_digitize_supplemental  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)NTrA  r  )r$        @r         @zx may not be complex)	rG  rl   r   r   r;  r  rE  rC  rF  )r  r  r  r!   r'  r  funcrI  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 )NTrA  c                  t     |  \  }} |  \  }}j                  ||       j                  ||dd       y )Nr  r7  r  r8  rE  )rn   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 )Nru  r  r  )r$  g      +@)r   r9  r  )rA   rT  r#  s     r"   check_valuesz4TestNPFunctions.test_histogram.<locals>.check_values  sS     ::n-D&$&..($/ &! &![) &Mr$   )r   rr  r,  rs  r  r  r  r  rt  g     @E@r%  r'  r  )rp   r   r   r9  r:  r   rw  )r  r  rA   r  r#  r  s   `  @@@r"   test_histogramzTestNPFunctions.test_histogram  se    "T"6*	J	   7 86{b    Vr$   c                      t        d             fd}t        r1d}t        j                  t        j                  g}ddg} ||||       y d}t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  g}g d} ||||       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)NTrA  c                    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                  |
|        y )Nr<  r0  r   )rj  r   r   rV  
issubdtypecomplexfloatingr)  r  )lengthsdtsmodesdt1dt2rM   r   r   r0   ra   r  r  r  r  r  s               r"   r#  z7TestNPFunctions._test_correlate_convolve.<locals>.check  s    (1(9(9S'7E) 7$S!Q IIas+IIas+==b&8&89R!V++C0A==b&8&89R!V++C0A!!QT2Aqt,''#67r$   r,  r7  ra  valid)r,  r7  r  r  )ra  r  samer  r  r  zonly supported on 1D arrays)r   r   r   r9  r<  r*  int32int64r  r  rV  r  rD  r   rE  rC  rF  )r  r  r#  r  r  r  _a_br!   r'  rI  r  r  s   ``          @r"   _test_correlate_convolvez(TestNPFunctions._test_correlate_convolve
  s*   "T"6*	7" G::r}}-CW%E'3&ww"((BJJ

||R]],)gsE"YYr]""1a(YYr]"XBx( 	6DAq"";/ 6a/CMM#s6#3#345		6 s   ,
E((E1	c                 .    | j                  t               y r   )r  r   r  s    r"   test_correlatezTestNPFunctions.test_correlate6  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*  TrA  r   z'a' cannot be emptyz'v' cannot be emptyzinvalid moder   zInvalid 'mode')rG  r   r  rV  r   rD  r  r:  rE  rC  rF  )r  r  r  r  r  r!   r'  rI  s           r"   #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions9  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_exceptionsN  s    00;r$   c                 .    | j                  t               y r   )r  r   r  s    r"   test_convolvezTestNPFunctions.test_convolveR  s    %%h/r$   c                 .    | j                  t               y r   )r  r   r  s    r"   test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptionsU  s    00:r$   c                 L     |di |} |di |}| j                  |||       y )Nr	  r  rE  )r  r  r  paramsr	  r  r  s          r"   _check_outputzTestNPFunctions._check_outputX  s/    #F#ofo#w?r$   c                 (   t         } t        d      |      }t        | j                  ||      fd}t        rC |t        j                  g d              |t        j                  g               |g d       y  |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 )NTrA  c                     t         rg d}dg}ng d}ddg}d| i} |       |D ]  }| |d} |        t         s1|D ]  }| |d} |        |D ]  }|D ]  }| ||d} |         y y )	N)Nr,  r7  F)Nr   r,  r7  r  r  Tr!   )r!   r   )r!   r  r  )r   )r!   	n_choicesincreasing_choicesr  rM   r  r  s         r"   _checkz1TestNPFunctions.test_vander_basic.<locals>._checkb  s    (	&+W"1	&*E]" 1XF&!  & q)f%& #"4 *J#$J?F!&)*
 # .A&8 .
'(q
!K%f-.. #r$   r  r   r,  r7  )r,  r7  r  r*  r        %@r  rN  r*  333333?r+  333333?Fr  r<  r   r,  r7  r  r  r*  rQ  r  )r&  r$  rM  r  )r  g-@A`"	@)TFr  )r  r   r   r  r   r   r;  rV  r  r  r  r  r  r  r9  )r  r  r  r  r=  r  s        @r"   test_vander_basicz!TestNPFunctions.test_vander_basic]  s   "T"6* 2 2FEB	.: 288I&'288B< 9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)NTrA  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  rE  rC  rF  )r   rI  r  r  r!   s     r"   _check_nz8TestNPFunctions.test_vander_exceptions.<locals>._check_n  sL    '') Va1MMHf../1    AAr  r,  r7  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.)rD  r  r  rC  rF  )r!   rI  r  r  s     r"   	_check_1dz9TestNPFunctions.test_vander_exceptions.<locals>._check_1d  sN    "":. &aM !1!124    	AAr  )r  r  r  )r7  r  rL  )r  r   rG  r   rV  r  rD  r  rE  rC  rF  r  )r  r  r  r   rI  r  r  r!   s   `     @@r"   test_vander_exceptionsz&TestNPFunctions.test_vander_exceptions  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 )NTrA  c                  .    t        j                  dd      S Nr  r   rV  r  r$   r"   n_variationsz6TestNPFunctions.test_tri_n_basic.<locals>.n_variations      99R##r$   r   )r   r   r   r  )r  r  r  r  r  rM   r  s          r"   test_tri_n_basicz TestNPFunctions.test_tri_n_basic  sT    "T"6*++VU;	$  	A1XF6N	r$   c                     t         } t        d      |      }t        | j                  ||      }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }||d} ||         y )NTrA  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  rj  chainfrom_iterabler_  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  rM   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 )NTrA  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 NrN  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  rM   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 )
NTrA  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  rM   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 )NTrA  c                     j                         5 } dd|        d d d        dt        j                        v sJ y # 1 sw Y   #xY w)Nr*  rQ  r   k must be an integer)r  rC  rF  )r   rI  r  r  s     r"   r  z3TestNPFunctions.test_tri_exceptions.<locals>._check)  sK    '') !Vaa !)S1A1A-BBBB! !s   A  A	rv  r,  r7  )r   r   rG  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 )NTrA  c                      |       } |       }j                  |j                  |j                         t        j                  j	                  ||       y r   )r  r=  r   testingassert_array_equal)r@   r  r  r  r  r  s      r"   r  z:TestNPFunctions._triangular_matrix_tests_m.<locals>._check4  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_m1  s0    "T"6*	9 224HHr$   c                 `      t        d             fd} j                   |      S )NTrA  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  rN  r   )	rj  r  r  r_  r  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  r,  r  r  r  Tr0   r  s    r"   	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_oddQ  s?    1I		&!A1I		,'A1I133Kr$   c                      |        | j                  d      }  |        | j                  d      }  |         | j                         y )N)r     r  r7  r7  r  r  r	  s    r"   
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_evenY  s?    1I		'"A1I		,'A1I133Kr$   ?   r  @   ih  r  r  r*  rQ  r  )r  r  r  Forderr  )r   rV  r  r;  asfortranarray)r  r  r  r
  r  r@   s     `   r"   r  z.TestNPFunctions._triangular_matrix_tests_innerN  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)NTrA  r*  rQ  rv  r  r  )r   rG  r   r  r  rE  rC  rF  )r  r  r  r0   rI  s        r"   _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptionsn  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   r  typer:  r
  r   r  r  )	r  r  rn   r  r!   r  r  egs	            r"   _triangular_indices_tests_basez.TestNPFunctions._triangular_indices_tests_basey  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 )NrN  r  r_  )r  r  rM   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 )NrN  r,  r7  r  )r  r  rM   r   s       r"   _triangular_indices_tests_n_kz-TestNPFunctions._triangular_indices_tests_n_k  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 )NrN  r7  r  )r  r  rM   r   s       r"   _triangular_indices_tests_n_mz-TestNPFunctions._triangular_indices_tests_n_m  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 )NrN  r,  r7  TrA  )r  r_  r   )r  r  rM   r   r   r  s         r"   _triangular_indices_tests_n_k_mz/TestNPFunctions._triangular_indices_tests_n_k_m  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 )NTrA  rN  r   r  rS  boolrj  r   r_  r   r  r  r  r:  r
  r  r  )r  r  r  r=  rM   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 )NTrA  rN  r  r'  )r  r  r  r=  rM   r   r@   r   r  r  r  r  s               r"   $_triangular_indices_from_tests_arr_kz4TestNPFunctions._triangular_indices_from_tests_arr_k  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)NTrA  r$  zn must be an integerr   r,  r  r  r   r   zm must be an integer)r   r   
parametersr  rE  rC  rF  )r  r  r  r-  rI  s        r"   _triangular_indices_exceptionsz.TestNPFunctions._triangular_indices_exceptions  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)	NTrA  r   r,  r  r*  zinput array must be 2-dr(  r  r  )r   r   r  r  rE  rC  rF  )r  r  test_kr  ndimsr0   rI  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  r3  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  r6  r$   c                 .    | j                  t               y r   )r  r
  r  s    r"   test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions  r9  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 r>  )r)  r  r+  r  r3  r  s    r"   test_triu_indices_fromz&TestNPFunctions.test_triu_indices_from	  r@  r$   c                     t         }t        t               }d } |       D ]   }| j                   ||       ||             " y )Nc               3   ,   K   d d d d y w)N)r  r  )r  r  )r7  r7  r  r*  r  r  r$   r"   inputsz2TestNPFunctions.test_indices_basic.<locals>.inputs	  s     LJJs   )r  r   r  )r  r  r  rK  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)rM  r  )r7  r  )r   r  rG  rD  r   rE  rC  rF  )r  r  errmsgrI  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  r0   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   rS  rT  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        rdnd}t        | }|D ]e  }t        rdt	        d|dz
        fnd|dz
  f}t        | }|D ]6  }t        j                  |      }	| j                  j                  |	       |	| j                  j                  dd      z  }	| j                  j                  |	j                        }
d	|
||dz   |
 | g}t        j                  |	      |   }| j                   ||	|      |   |       t        s]| j                   ||	j                         |      |   |       | j                   |t        |	j                               |      |   |       |D ]  }| j                  |||	|        9 h y 
NTrA  )rN  rS  )rN  r  r,  r*  r7  r  r   )r   r   r   r_  r  r   rV  r   rw  rZ  rT  r^  r  tolisttuplerU  r  r  r  j_range_argsj_rangeji_range_argsi_rangerc  didxr"  tgtr   s                 r"   test_partition_fuzzz#TestNPFunctions.test_partition_fuzzK	  s    "T"6*$3& 	EA. Aq1u."#QU  \*G EIIaL  #((B//hh&&qvv.#q!a%#r2ggajo''ac(:(+- '++E!((*c,B3,G,/1++E%
2CS,I#,N,/1  EA//q!DE!E	Er$   c                 R   t         } t        d      |      }t        rdnd}t        | }|D ]w  }t        rdt	        d|dz
        fnd|dz
  f}t        | }|D ]H  }t        j                  |      }	| j                  j                  |	       |	| j                  j                  dd      z  }	| j                  j                  |	j                        }
d	|
||dz   |
 | g}t        j                  |	      |   }| j                  |	 ||	|      |      |	|          t        si| j                  |	 ||	j                         |      |      |	|          | j                  |	 |t        |	j                               |      |      |	|          |D ]  }| j                  |||	|        K z y rY  )r$  r   r   r_  r  r   rV  r   rw  rZ  rT  argsortr  rZ  r[  rW  r\  s                 r"   test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzzk	  s    "T"6*$3& 	HA. Aq1u."#QU  \*G HIIaL  #((B//hh&&qvv.#q!a%#r2jjmC(''%3-*<(=()#0 '++AeAHHJ.DS.I,J,-cF4++%ahhj 137<=#   HA2265!QGH#H	Hr$   c                      t         } t        d      |       j                          t        j                  d      } fd} ||d        ||d        ||d       y )NTrA  rN  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rD  r  rC  rF  r0   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   rG  r   rV  r  r  r0   r  r  s   `   @r"   %test_partition_exception_out_of_rangez5TestNPFunctions.test_partition_exception_out_of_range	  s[     "T"6* 	! IIbM	;
 	q"q#q'r$   c                      t         } t        d      |       j                          t        j                  d      } fd} ||d        ||d        ||d       y )NTrA  rN  c                     j                  t              5 } | |       d d d        t        j                        dk(  sJ y # 1 sw Y   $xY wrk  rl  rm  s      r"   r  zHTestNPFunctions.test_argpartition_exception_out_of_range.<locals>._check	  rn  ro  rp  rq  )r$  r   rG  r   rV  rr  s   `   @r"   (test_argpartition_exception_out_of_rangez8TestNPFunctions.test_argpartition_exception_out_of_range	  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 )	NTrA  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNzPartition index must be integerr  r0   r"  rI  r  r  s      r"   r  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._check	  L    '') VaMM;f../1    
A

ArN        "@ffffff
@rs  r,  r7  )r   r   rG  r   rV  r;  r  r  r  r  r0   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 )	NTrA  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wry  r  rz  s      r"   r  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check	  r{  r|  rN  r}  r~  r,  r7  )r$  r   rG  r   rV  r;  r  r  s   `   @r"   +test_argpartition_exception_non_integer_kthz;TestNPFunctions.test_argpartition_exception_non_integer_kth	  sm     "T"6* 	!	1 IIbMq#q*q"((Aq"&&>*+r$   c                      t         } t        d      |       j                           fd} |dd        |dd       y )NTrA  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  rz  s      r"   r  zITestNPFunctions.test_partition_exception_a_not_array_like.<locals>._check	  L    '') VaMMDf../1 r|  r  r   Sausages)r   r   rG  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 )NTrA  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  rz  s      r"   r  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check	  r  r|  r  r   r  )r$  r   rG  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 )NTrA  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  rz  s      r"   r  zCTestNPFunctions.test_partition_exception_a_zero_dim.<locals>._check
  L    '') VaMMOf../1 r|  r,  r   )r   r   rG  r   r;  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 )NTrA  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  rz  s      r"   r  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check
  r  r|  r,  r   )r$  r   rG  r   r;  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 )	NTrA  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-Dr  rz  s      r"   r  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._check#
  K    "":. &aMM5s6;K;K7LM    
AArN  rQ  r  r7  r"  )r   r   rG  r   rV  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 )	NTrA  c                     j                  t              5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  rz  s      r"   r  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._check1
  r  r  rN  rQ  r  r7  r  )r$  r   rG  r   rV  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 )NTrA  c                 N     | |      } | |      }j                  ||       y r   rE  r0   r"  r  r  r  r  r  s       r"   r#  z9TestNPFunctions.test_partition_empty_array.<locals>.check>
  )    a~H3-C##Hc2r$   r  r7  r,  r   r  r  )r   r   r   r;  r  r  r#  r0   r@   r  r  s   `   @@r"   test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_array8
  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 )NTrA  c                 N     | |      } | |      }j                  ||       y r   rE  r  s       r"   r#  z<TestNPFunctions.test_argpartition_empty_array.<locals>.checkQ
  r  r$   r  r  r  )r$  r   r   r;  r  r  s   `   @@r"   test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_arrayK
  s]     "T"6*	3 HHRL b"((2,& 	C#J	r$   c           	         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        rd}nd}t        j                  |      }t        j                  ||j                  dz        }|j                  dz  dz   }| j                   |||      |   |       t        j                  |dz         }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        rt        j                  d"      d#z  }t        j                  t        j                  d"      d#z        }| j$                  j'                  |       t)        d|j                  d#      D ]5  }| j                   |||      |   ||          | j                  ||||       7 nt        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*      }t1        | j$                  j&                  |       t)        |j                        D ]  } |||      }| j                  ||   |       t        j2                  j5                  |d | ||          t        j2                  j5                  ||   ||dz   d         | j                  ||||        ! y c c}}w )+NTrA  r   r,  r  rS  r*  (   r7  r   r,  r  r7  r,  r  r7  r,  r  r7  r  r,  r,  r,  r,  r  r7  r7  r,  r,  r7  r,  r  rO  1   r*  rS  /   r  rQ  r  r  )      r  @B rN  r  r7  r  rS  r  r  r   r,  r7  r  r  r*  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r     rP  r   r  r  r  r  r  r<  r  r,  )r   r   r   r;  r  r  r  rV  r^  rU  r  rZ  r[  r   r4  rT  r  isnanr   rw  r_  r  r  tilemapr  assert_array_less)r  r  r  rb  r  r"  okthry  rd  r   r0   SIZEr!   midrc  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#>	? DDIIdOGGAqvv{#ffkAoq#s+S1IIdQhGGAqvv{Q'ffkAoq#s+S1 GGBK!q'*2.2q'*1-q1vv!xxa)"-... 		"!A''"))B-!+,CHHQ1affa( A  q!QQ8++FE1a@A 		"!A''"))B-!+,CHHQ166] A  q!QQ8++FE1a@A 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   :]4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        rd}nd }t        j                  |      }t        j                   ||j"                  dz        }|j"                  dz  dz   }| j                  | |||      |      |       t        j                  |dz         }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        j0                  t        j2                  fD cg c]  }d(D ]  }||f  }}}|D ]!  \  }}t        j                  ||      }| j*                  j-                  |       t        j4                  t        j                  ||      d)      }t7        | j*                  j,                  |       t/        |j"                        D ]  }| |||         }| j                  ||   |       t        j8                  j;                  |d | ||          t        j8                  j;                  ||   ||dz   d         | j                  ||||        $ y c c}}w )*NTrA  r<  r   r,  r  r  r7  r  r  r  r  r  r  r  r  r  r  rO  r  r  r  r  rQ  r  r  r  r  r  r  r  r  rN  r  r  r  r  r  r  r  r  )r$  r   r   r;  r  r  r  r  rV  rg  rW  r  rU  rZ  r[  r   r4  rT  r  r  r^  r   rw  r_  r  r  r  r  r  r  )r  r  r  rb  r  r  r"  r  ry  rd  r   r0   r  r!   r  rc  r  r  r  r  r  s                        r"   test_argpartition_basicz'TestNPFunctions.test_argpartition_basic
  sc    "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 DDIIdOGGAqvv{#ffkAo5C=-.4IIdQh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  r,  )r   r^  r  r  r  allrU  r  r  r  rb  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   r^  r  r  r  r  rW  r  s          r"   assert_argpartitionedz%TestNPFunctions.assert_argpartitionedI  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 NTrA  )r  r  r7  r,  )r   r  )r  r  r@  )r,  r  r  r  rP  r  r*  r  rQ  rR  )r   r   r   r  r   r;  r$  r  rV  r   rw  r  r_  rT  )r  r  r  r  rb  r  keyss          r"   test_partition_iterativez(TestNPFunctions.test_partition_iterativeT  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   r;  r  rV  r   rw  r  r_  rT  )r  r  r  r  rb  r  r  s          r"   test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterativev  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 )NTrA  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  )r0   r"  r  r  r  r  r  r  s        r"   r#  z7TestNPFunctions.test_partition_multi_dim.<locals>.check  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NrX  r$  r  r  r  r   r  	full_liker  r  rJ   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r,  rN  0   r  r  r  r  r  r  r  r  r  )r   r   r   r  r  r  r  r_  r  r#  r  r0   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 )NTrA  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   r8  r  r  r  r  )	r0   r"  r  r  rc  r  r  r  r  s	         r"   r#  z:TestNPFunctions.test_argpartition_multi_dim.<locals>.check  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  rJ   s    r"   r  zATestNPFunctions.test_argpartition_multi_dim.<locals>.a_variations  r  r  r,  rN  r  r  r  r  r  r  r  r  )r$  r   r   r  r  r  r  r_  r  s   `     @@r"   test_argpartition_multi_dimz+TestNPFunctions.test_argpartition_multi_dim  s    "T"6*	G	1 KK2r"!Aw!vv!IIi ? 	C2q\ c1	r$   c                     t         } t        d      |      }d}t        dk  rd|z   }t        j                  ddd      t        j
                  d	      fD ]  }|D ]  }| j                  ||||         y 
NTrA  )r  r   r,  r  r  r,  rN  r@  TFT)r   r   r   r   r  r;  rU  r  r  r  kthsrb  r"  s         r"   test_partition_boolean_inputsz-TestNPFunctions.test_partition_boolean_inputs  s    "T"6*6! 4'DQB'2E)FF 	CA C++FE1cBC	Cr$   c                     t         } t        d      |      }d}t        dk  rd|z   }t        j                  ddd      t        j
                  d	      fD ]  }|D ]  }| j                  ||||         y r  )r$  r   r   r   r  r;  rW  r  s         r"    test_argpartition_boolean_inputsz0TestNPFunctions.test_argpartition_boolean_inputs  s    "T"6*6! 4'D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)NTrA  r   r7  r,  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   rG  r   r;  r  rV  r  rE  rC  rF  r  r  rD  r  )r  r  r  r   r*  rI  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 )NTrA  +=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   r7  r,  r  r*  rP  )g&S:?o_?g#~j?甇ZӼ?Q|?rL  TrX  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
  )r,  r  r7  r  ))r  皙@rv  r  )r   r;  r  r   randnr  r  ra  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_basic7  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 )NTrA  r  r  i   rS  r  r  FT)Nr  r   r,  r  T)r   r'  r*  r)  r(  )	r&  r   r   r  r   r  r  rj  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_argumentsA  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 )NTrA  r  r  r  rS  r  r  r  r-  )	r,  r   r   r  r   r  r  rj  r   )
r  r  r  r  r!   r  r  r'  r(  r  s
             r"    test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_argumentsT  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 )NTrA  r  r  r	  )r  r  Q?r'  r  r0  r  r  )r0  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  r(  s	            r"   cov_corrcoef_edge_casesz'TestNPFunctions.cov_corrcoef_edge_casesb  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  TrA  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 )NTrA  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_values  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  TrA  r  r  r   r7  r,  r*  )r   r*  )r&  r%  r   r   r  r   r;  r  )r  r  r  r  r   r  s         r"   test_cov_edge_casesz#TestNPFunctions.test_cov_edge_cases  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)NTrA  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   rI  r  r  s     r"   _check_mz5TestNPFunctions.test_cov_exceptions.<locals>._check_m  sG    '') VaMM8#f>N>N:OP s   	A		Ar*  rQ  r  )))r  r  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY w)NrL  zy has more than 2 dimensionsr  )r   r'  rI  r  r  s      r"   _check_yz5TestNPFunctions.test_cov_exceptions.<locals>._check_y  sI    '') Va1MM8#f>N>N:OP r  r  )r  r  r  )))r  r  r  r  r  rL  z$m and y have incompatible dimensionsr	  r,  z/2D array containing a single row is unsupported)r&  r   rG  r   r  r;  rV  rD  r  rE  rC  rF  r  RuntimeError)r  r  r0  r   r3  r'  rI  r  s   `      @r"   test_cov_exceptionsz#TestNPFunctions.test_cov_exceptions  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                 b   t         } t        d      |      }t        | j                  ||      }d }d }t        rdnd} |t        j                  dd|            D ]P  }d	|i} ||        ||      D ]7  }	||	d
} ||       ||	d} ||        ||      D ]  }
||	|
d} ||        9 R y )NTrA  c              3   l   K   d  |  t         s"| j                  t        j                         y y wr   )r   r)  r   r  rJ   s    r"   to_variationsz9TestNPFunctions.test_ediff1d_basic.<locals>.to_variations  s+     JG"hhrxx(( #s   24c              3      K   |  t         s7| j                  ddd       | j                  t        j                         y y w)Nr  r7  )r   r  r)  r   r  rJ   s    r"   ary_variationsz:TestNPFunctions.test_ediff1d_basic.<locals>.ary_variations  s9     G"ii1a((hhrxx(( #s   AArQ  r  r  r  r0  )r0  r2  )r0  r1  )r0  r2  r1  )r/  r   r   r  r   r   r  )r  r  r  r  r8  r:  
array_sizer0  r  r0   r1   s              r"   test_ediff1d_basicz"TestNPFunctions.test_ediff1d_basic  s    "T"6*++VU;	)	) *Qr
!"++b!Z"@A 	#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)NTrA  )TTFz+Boolean dtype is unsupported (as per NumPy))r/  r   rG  r  r   r;  rC  rF  )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)NTrA  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)	NrN  r*  r7  rP  r  r,  r  r  r  r  r$   r"   r  z7TestNPFunctions.test_fliplr_basic.<locals>.a_variations)  sV     ))B-''1--))B-''1a00Oq6Aq6##   AA!rO  zCannot np.fliplr on %s type)
r   r   r  rD  r   rE  r	   unicode_typerC  rF  r  r  r  r  r0   r  r  rI  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)NTrA  r  cannot index arrayzwith 2 indices)
r   r   rG  rD  r   r   rV  rE  rC  rF  rH  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)NTrA  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)	Nr,  rN  r*  r7  rP  rA  r  r  r  r  r$   r"   r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variationsK  sk     #I))B-))B-''1--))B-''1a00Oq6Aq6##s   A;A=rO  zCannot np.flipud on %s type)
r   r   r  rD  r   rE  r	   rC  rC  rF  rD  s           r"   test_flipud_basicz!TestNPFunctions.test_flipud_basicG  s    "T"6*	$  	3AayH(C##Hc2	3
 {+ 	v%L	 	3e6H6HH&**+	-	 	rF  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)NTrA  r,  rH  zwith 1 indices)r   r   rG  rD  r   rE  rC  rF  rH  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)NTrA  c               3     K   t        j                  d       t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)Nr,  rN  r*  r7  rP  r  r  r$   r"   r  z5TestNPFunctions.test_flip_basic.<locals>.a_variationso  sZ     ((1+))B-))B-''1--))B-''1a00s   A?Br  zCannot np.flip on UniTuple)r   r   r  rD  r   rE  rC  rF  rD  s           r"   test_flip_basiczTestNPFunctions.test_flip_basick  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)r,  r  )r  r  )r  r  rU  )r  r  r$        N@      Nr%  )r%  rX  r&  r7  r   r,  r7  r  r        ?       @      @      @      ?             @                   @r   r  pir   r  r  r$   r"   rK  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TrA  )r   r   r   r  assert_allcloser  rK  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)NTrA  rO  r*  +The first argument "start" must be a number+The second argument "stop" must be a number)r   r   rG  rD  r   rE  rC  rF  r  r  rI  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rT  ra  r  r$   r"   rK  z4TestNPFunctions.test_logspace3_basic.<locals>.inputs  rc  rd  TrA  r   r   r   r  re  rf  s         r"   test_logspace3_basicz$TestNPFunctions.test_logspace3_basic  rh  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)r,  r  rP  )r  r  r  )rU  r  r  r  rU  rO  )r  r  r  r$  rX  F   rZ  r%  P   )r%  rX  Z   r&  rP  r  r[  r,  r7  r  r  r  rO  r  r\  r]  rv  r^  r_  rx  r`  ry  ra  r  r$   r"   rK  z=TestNPFunctions.test_logspace3_with_num_basic.<locals>.inputs  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'TrA  rp  r  rK  r  r  r   r   r   s          r"   test_logspace3_with_num_basicz-TestNPFunctions.test_logspace3_with_num_basic  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)	NTrA  rO  r*  rj  rk  r   z+The third argument "num" must be an integer)r   r   rG  rD  r   rE  rC  rF  rl  s      r"   test_logspace3_exceptionz(TestNPFunctions.test_logspace3_exception  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)NrV  rW  rY  )r,  r  )r  r,  )r,     )r  r  r  r%  r0               @@r.  r-  r,  r7  r  r\  r]  r^  r_  r`  r   r  r  r$   r"   rK  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TrA  g-q=r  )r   r   r  rf  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)	NTrA  rO  r*  %The argument "start" must be a number$The argument "stop" must be a numberr   &Geometric sequence cannot include zero)	r   r   rG  rD  r   rE  rC  rF  r  rl  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)#Nrt  ru  rw  )r,  r  r  )r,  r  r  )r  r,  r  )r,  r  r  )r  r  r  r  r  rN  rP  r%  r  r0  r  r  r.  r-  r*  r,  r7  r  r  rO  r  r\  r]  rv  r^  r_  rx  r`  ry  r  r  r$   r"   rK  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs1  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TrA  r  r  )r   r   r  rz  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)NTrA  rO  r*  rN  r  r  z%The argument "num" must be an integerr   r  )	r   r   rG  rD  r   rE  rC  rF  r  rl  s      r"   test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exceptionO  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 )/NTrA  r,  r  rO  r  r   r  r  r  r  r7  r  r   ir  gL4@ignore)invalidr  r  g      r  r0  y              0@r*  r  r  y             y            @tvIh%<=r  y     @@     @@y            ?y     @     @@r[  r.  r-  r  y              gV瞯<ri  y              y             y      @      @r+  )r   r   r   r  r:  r  r  imagr   errstater  r  realr   )r  cfunc2cfunc3pfunc3r'  r!   r   r   s           r"   test_geomspace_numpyz$TestNPFunctions.test_geomspace_numpym  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 )NTrA  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NrN  r*  r7  rP  r  r  r  r$   r"   r  z6TestNPFunctions.test_rot90_basic.<locals>.a_variations  a     ))B-''1--))B-''1a00))B-''1aAq99   A<A>)r   r   r  )r  r  r  r  r0   r  r  s          r"   test_rot90_basicz TestNPFunctions.test_rot90_basic  sR    "T"6*	:
  	3AayH(C##Hc2	3r$   c                     t         } t        d      |      }d } |       D ]7  }t        dd      D ]&  } |||      } |||      }| j                  ||       ( 9 y )NTrA  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+  rQ  )r   r   r_  r  )r  r  r  r  r0   r   r  r  s           r"   test_rot90_with_k_basicz'TestNPFunctions.test_rot90_with_k_basic  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)NTrA  rO  z'The first argument "m" must be an arrayr  r7  r  z*The second argument "k" must be an integerr  zInput must be >= 2-d.)r   r   rG  rD  r   rE  rC  rF  r   rV  r  rH  s       r"   test_rot90_exceptionz$TestNPFunctions.test_rot90_exception  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 )NTrA  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  r7  r   )r,  r  H   r  r  r,  )r7  r,  r*  r  r  r  r  r<  rO  rN  r,  r  )r   rV  r  r[  r  r;  r  r  rJ   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  rn   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 )NTrA  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  r7  r*  )r   rV  r  r[  r  r  r$   r"   r  z;TestNPFunctions._check_array_split.<locals>.args_variations7  sh     ))A,/!ryy|$a''		!%q(())B-''A.11s   BB
r  r  s           r"   _check_array_splitz"TestNPFunctions._check_array_split2  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_basicC  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*  r7  z0array split does not result in an equal divisionr  r  r=   z%np.split: Argument axis out of bounds)r  r   rG  rD  r  r   r   r  rE  rC  rF  )r  rI  s     r"   test_split_basicz TestNPFunctions.test_split_basicG  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  r7  r$  rM  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  r7  r        0@r  r  rQ  r  rQ  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  r7  r  r  r  rQ  r  r  r  r  r$   r"   inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3Dj  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r7  r   r,  r   r  r   r  )r   r   r   r   r_  r  )r  r  r  r  rK  fmindimnamer  r  rc  r0   r   s                r"   test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basicW  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)Nr7  r   r,  r   r  r   TrA  z#The argument "ary" must be an arrayrO  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   rG  rD  r   rE  rC  rF  r   r;  r  )r  r  r  r  r  rI  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 )NTrA  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  r  r  F)r  r  g333333@r  )r   rV  r  r  r;  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  rN  r  r  r$   r"   shift_variationsz9TestNPFunctions.test_roll_basic.<locals>.shift_variations  s,    ??00-27R.2B C Cr$   )r4  r   r  )	r  r  r  r  r  r0   r5  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)NTrA  )r  r  rN  zshift must be an integer)r4  r   rG  r  r   rV  rC  rF  )r  r  r  r5  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        rt        dd      nt        dd      }|D ]  }||kD  } |||d        t        r&t	        j
                  d	      j                  d
d      }n&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        r_t        j                   t        j"                  |d
      d      D ]1  } |||d d
 d        |t	        j$                  |      |d d
 d       3 nTt        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 )#NTrA  rN  r  r*  r  rR  rG  r  r  r  r  g@)r  r  r  r*  r  )r  r  r  rs  r  r  rQ  Fr%  g333333r,  r$  y              ?r7  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   r0  )rF  r   r   r  r   rV  r   rw  r   r_  r  eyeflattenr  r  rj  islicecombinations_with_replacementr;  r  rr  )	r  r  r  r  r0   threshold_range	thresholdr  rb  s	            r"   test_extract_basicz"TestNPFunctions.test_extract_basic  s   "T"6*++VU;IIbM*9%A,uR}( 	2Iy=Da01	2 		"%%a+A		"%%aA.A3wT!,--vvay  "T!,- T!,-KKB"eRVVRtQTJ!((;;L!L D T!BQ%89RXXd^AbqEBC	D "?? !% NT!45RXXd^%;%;Aq%A!LMN
 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)NTrA  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 shaper  )r  r0   r  r  r  r  s       r"   r  z7TestNPFunctions.test_extract_exceptions.<locals>._check   sM    ?C"":. !dAMM#s1;;/0 s   
AA)r,  r   r,  r   r,  r   r,  )r,  r   r,  r   r,  r  r  r  )TFFFT)TFTFFTF)rF  r   rG  r   r;  rD  r  rE  rC  rF  rV  )r  r  r0   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_basicr]  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 )NTrA  r  r'  )r  r,  r7  r7  r7  rS  r  r*  r  rN  r  r  r  r  r  rP  r   r0  r<  r  )r   r   r  r   rV  r  r  r   rw  r;  r  r  r<  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 )NTrA  r  r  rQ  r  rO  r  )r  rQ  r  r*  rQ  r  r  r  r7  r  rP  r*  r  r  )r  r*  r  r  r   rN  r0  r  r\  )
r   r   r  r   r;  rV  r  r   rw  r  )r  r  r  r  r'  r!   s         r"   r  z%TestNPFunctions.test_np_trapz_x_basicd  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_questionabler]  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 )NTrA  )TFTTr'  )r   r   r  r   r;  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_basicrb  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 )NTrA  r  r7  rU  r  )r,  r  r*  rQ  r  r*  rN  r  r  r  r  r  r  r0  r  r  r  r)  rS  r,  r  rP  )r   r   r  r   r  r  r  rV  r  expr6  rb  r  assert_almost_equalr;  )r  r  r  r  r'  rT  r!   ry  s           r"   r  z&TestNPFunctions.test_np_trapz_dx_basic  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_basicrd  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 )NTrA  r7  r  r  r  rX  r  rQ  r  r  r*  r  r  r  )
r   r   r  r   r;  rV  r  r   rw  r  )r  r  r  r  rT  r'  r!   s          r"   r  z(TestNPFunctions.test_np_trapz_x_dx_basic  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_exceptionsrd  r  s    r"   !test_np_trapezoid_x_dx_exceptionsz1TestNPFunctions.test_np_trapezoid_x_dx_exceptions  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)NTrA  c                     j                  t              5 } |   d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nzunable to broadcastr  )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*  rQ  r  r  r  r  r$  r  r  r  r*  $   r  rM  zy cannot be 0DFzy cannot be a scalar)r   rG  r   rV  r  r;  r  rE  rC  rF  r  )r  r  r  r'  r!   rT  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} fd}t        j                  d      j                  d      }t        j                  ddgg      } ||d        |||	        ||d|       y )Nr  r(  e   r(  rO  rU  TrA  rV   rN  )placesc                     j                  t              5 } | |       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)NrV   z)Weights sum to zero, can't be normalized.)rD  ZeroDivisionErrorrF  r  rC  datarW   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)NrV   z81D weights expected when shapes of a and weights differ.rD  	TypeErrorrF  r  rC  r  s       r"   test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weightsi  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)Nri  )Numba does not support average with axis.r  )r   r>   rW   r  r  r  r  s        r"   test_1D_weights_axisz:TestNPFunctions.test_average.<locals>.test_1D_weights_axisq  sU    ""9- 8dw78++CSXHJ8 8s   AAc                     j                  t              5 } | |       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)Nr=   r	  r  )r   r>   r  r  r  r  s       r"   	test_axisz/TestNPFunctions.test_average.<locals>.test_axisx  sS    ""9- 'd&'++CSXHJ' 'r  rQ  r  g      ?g      ?r,  r=   ri  )r   r  ranfr  rZ  rX  rk  r   assertAlmostEqualrV  r  r8  )r  r   r0   rX   w0a_boolw_boola_intw_intd0r  d2a_3dw_3dr  r  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	J yy|##G,JJ()* 	$Q 	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 )NTrA  r<  r  r  r  r  r  r  )r$  r$  r,  r   r$  r   )r$  r  g{Gz?gMbP?-C6?r
  gư>r&  )rU  r  )r   r   )rg  r   r   r   int_r  r;  r8  r  r  r  assertFalser  r  r  )r  r  r  min_intr0   simple_datar1   	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 )NTrA  g      Y@     @@}   r<  r*  r*  r*  r  r
  r,  r   r&  r$  r7  )rg  r   r   r;  rV  r)  r9  r  r8  r  r  )
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 )NTrA  r(  r<  r)  r  r
  r   r$  r&  r7  r,  )rg  r   r   rV  r)  r9  r  r8  r  r  r;  r  )	r  r  r  r  r   r   r*  r!   r'  s	            r"   test_ip_not_allclose_numpyz*TestNPFunctions.test_ip_not_allclose_numpy  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 )NTrA  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   r;  rY  )clsrn   r  s      r"   __new__zGTestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Foo.__new__  s!    xx0055c::r$   N)__name__
__module____qualname__r3  r  r$   r"   Foor0    s    ;r$   r7  r,  )rg  r   r   ndarrayr  r  r(  )r  r  r  r7  r0   s        r"   "test_return_class_is_ndarray_numpyz2TestNPFunctions.test_return_class_is_ndarray_numpy   sS     "T"6*	;"** 	; HU1a[)T12r$   c                     t         } t        d      |      }t        j                  dt        j                  g      }| j                   |||d       |||d             y )NTrA  r$  r  )rg  r   r   r;  r  r  )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 )NTrA  r,  r   )rg  r   r   r;  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 )NTrA  r<  )rg  r   r   r   r  r  r;  r  )r  r  r  r  r0   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  )	rG  rg  r   r   r8  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 )<NTrA  r  r  r+  r*  rU  r  r  rv  rn  )r  r,  r7  r  r  g      r7  r  r  r1  )rC  )r  ?r  r  rN  gffffff?r&  g333333"r  r  r  r  r  r  r   r  rP  Fr%  r$  r  r  r  r  r  rX  )r,  r  rO  r  )r,  r7  gGz@r  )r,  r7        @r  r  )	r,  rv  r7  rF  r  r  r  r*  g      @r  rF  r  r  r,  r7  r  r  r*  rQ  )g~@g<ԛ@g3@i!N  rM  )r  r  r
  )r   )rm  r   r   r  r   r  rV  r   rw  r  r  r;  r  r_  ra  r  r  r  sinuniformrb  cosre  	ones_like)r  r  r  r  r!   ro  rp  factorr'  x0r   exactr  s                r"   test_interp_basicz!TestNPFunctions.test_interp_basicP  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)rT  r   putr   r`  r_  r  r  )r  r0   r  s      r"   _make_some_values_non_finitez,TestNPFunctions._make_some_values_non_finite  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)NrM        @r,  r*  r  g333333@r7  g      @r  rt  g@g333333@gq=
ףp?g @gQ?r  r(  )rT  scale      @g      4@g      I@g      i@r}  g333333?r  rE  )r   r  rH  rV  rb  r   normalrX  )r  ndatas     r"   r  zTestNPFunctions.arrays  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 )
NTrA  i N  r   rN  r,  rM  r  r  )
rm  r   r   r  rH  r  r  r   rw  rS  )
r  r  r  rY  ro  rp  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 )NTrA  i  r   rN  r,  rM     r0  r  )rm  r   r   r  rH  r   r`  r  r  rw  rJ  r  r  re  )r  r  r  rY  ro  r  r  rp  r!   r  r  s              r"    test_interp_complex_stress_testsz0TestNPFunctions.test_interp_complex_stress_testsX  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)NTrA  r  zarray of sample points is emptyr,  r7  z#fp and xp are not of the same size.rQ  r  zxp must be 1Dzfp must be 1Dr  z:Cannot cast array data from complex dtype to float64 dtyper0  )rm  r   rG  r   r;  rD  r  rE  rC  rF  rV  r  r  r)  r  )	r  r  r  r!   ro  rp  r  r  complex_dtype_msgs	            r"   test_interp_exceptionsz&TestNPFunctions.test_interp_exceptionst  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 )NTrA  )r   r,  r  rN  r  ?r  rt  rn  r,  r  )r   r  rc  r,  )rm  r   r   r  r   r;  r  )r  r  r  r  ro  rp  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 )NTrA  r,  rN  r<  r  r   r  r*  r  r  r&  )rm  r   r_  r   rV  r  r  r;  rS  r  r  r  r  r9  r  rH  rb  )r  r  r  rT  ro  ypincptsdecptsincresdecresinctgtdectgtr!   r'  rM  rp  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 )NTrA  r   r,  r*  r0  r  )rm  r   r   r  r  r  )r  r  r  r!   r'  rM  y0s          r"   &test_interp_supplemental_complex_testsz6TestNPFunctions.test_interp_supplemental_complex_tests  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 )NTrA  r  rN  r<  r7  )rm  r   r   r  r9  r  r  rj  r  rV  r)  r  r  )r  r  r  dtypescomboxp_dtypefp_dtypex_dtypero  rp  r!   r  r  s                r"   -test_interp_float_precision_handled_per_numpyz=TestNPFunctions.test_interp_float_precision_handled_per_numpy  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  r{  usr|  psfsas){   irz  z<datetime64[%s]r<  z<timedelta64[%s])r   r  r  r;  )units    r"   rA   z*TestNPFunctions.test_isnat.<locals>.values  s     ------&&--t,,--t,,-- 566..--..T**1 @ hh1%6%=? ?hh1%7$%>@ @@s   C*C,TrA  )r   r   r  r   r8  r  r  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
            r0  r  Fr,  r  r  r  r  r  c                 J    t               }| D ]  }|j                  |        |S r   r
   r?   )rA   r0   rc  s      r"   	make_listzITestNPFunctions.test_asarray.<locals>.input_variations.<locals>.make_listL  s(    F  AHHQK r$   )r$  rM  r  r$  r  N)r   r;  rV  r  r  )r  s    r"   r  z6TestNPFunctions.test_asarray.<locals>.input_variations1  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 )Nr0   r=  r  )r  r   r  re  r=  )jittedexpect_samer  returnedr  s       r"   check_pass_throughz8TestNPFunctions.test_asarray.<locals>.check_pass_throughY  sn    ''HF3K 78s ;<

**8VC[A&/ ABr$   TrA  r0   kwsr=  rN  r<  F)
r8  r?  r   r   r  r4  r   r<  rV  r  )	r  r  r  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  r7  r  r$   r"   case1z3TestNPFunctions.test_asarray_literal.<locals>.case1  s    ::m,,r$   c                  0    d} t        j                  |       S r  r7  r  s    r"   case2z3TestNPFunctions.test_asarray_literal.<locals>.case2  s    A::a= r$   c                  0    d} t        j                  |       S )Nu+   大处 着眼，小处着手。大大大处r7  r  s    r"   case3z3TestNPFunctions.test_asarray_literal.<locals>.case3  s    =A::a= r$   c                  0    d} t        j                  |       S )N r7  r  s    r"   case4z3TestNPFunctions.test_asarray_literal.<locals>.case4  s    A::a= r$   TrA  )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 )NTrA  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)rD  r   rE  rC  rF  )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   r  )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 )Nr,  r  )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 )Nr0   r,  )r
   r   r?   )r  rb  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)r0   bcdefr  )r  rc  s     r"   make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list  s(    A' Hr$   )rG  r   r8  )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  r7  r  r<  )r   r;  r  r*  r  r<  r  r$   r"   rK  z-TestNPFunctions.test_asfarray.<locals>.inputs  s     ((9%t++((Aq64bjj@@((Aq61277::((Aq612<<??((Aq612==@@s   DDTrA  r<  r  )
rB  r   r  r  r   r  r=  inexactrD  r;  )r  rK  r  r  r@   r  r  r  s           r"   test_asfarrayzTestNPFunctions.test_asfarray  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           	          t         }t        |      }t        }t        |      }||f||ffD ]  \   fd}t        rct	        j
                  d      t	        j                  d      t	        j                  g       g}t        j                  t        j                  g}g d}nt	        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}g d	}d
 t!        j"                  ||      D        }	t        rdg dg}
n
ddddg ddg}
t!        j$                  |	|
      D ]  }|D ]  } |||         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              y )Nc                 F    j                   | |       | |             y r   rE  )r0   rt  nbfuncr  r  s     r"   r#  z*TestNPFunctions.test_repeat.<locals>.check  s!    ''q'(:F1g<NOr$   r,  rN  r  r  r   r7  r  )r   r,  r7  r  r  c              3   P   K   | ]  \  }}t        j                  ||          yw)r<  Nr  ).0r0   ts      r"   	<genexpr>z.TestNPFunctions.test_repeat.<locals>.<genexpr>  s(      #J31Q288AA#6#6 #Js   $&r$  Tr0  )rt  r<  )ru  r   rw  r   r   r  rV  r;  r9  r<  uint32r  uint64r  r  r  rj  r   r  )r  r  r  array_pyfuncarray_nbfuncr#  target_numpy_valuestarget_numpy_typesrepeats_valuestarget_numpy_inputstarget_non_numpy_inputsrc  rt  onetwor  r  s   `              @@r"   test_repeatzTestNPFunctions.test_repeat  s   	O	 $L) )95 ,l;= L	8NFFP  GGAJIIbMHHRL'# JJMM&" "+ GGAJIIdOHHq!fq!f-.HHRLHHb"X&'# IIHHIIHHJJJJLLMM	&" "3#J#,#4#45H5G$I#J +' +' __%8%<> .- .G!W-.. ))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7YL	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)Nr,  r  z#negative dimensions are not allowedr$  zIThe repeats argument must be an integer or an array-like of integer dtyper7  r  z(operands could not be broadcast togetherr*  r  )Tr0   rZ  )ru  r   rw  rG  rD  r  r   r  rE  rC  rF  r   r;  )	r  r  r  r  r  r  r  r  reps	            r"   test_repeat_exceptionz%TestNPFunctions.test_repeat_exception7  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.@TFr,  r7  r   r  r  r*  r  y      @       @rN  )r*  r7  )r~  r   r   r;  r  r  rV  r  r?   r  r  )
r  r  r  
test_casesr!   r|  r}  ry  np_pyfunc_defaultsnp_nbfunc_defaultss
             r"   test_selectzTestNPFunctions.test_selectq  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)NrN  Tr  r,  r  r  r  r   z/condlist arrays must be of at least dimension 1Fr7  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  rQ  z7list of cases must be same length as list of conditionsrp  r  z items of condlist must be arraysr  z"items of choicelist must be arrays)r   r~  r   rV  rG  r;  r  r   r  r  r)  r  r  rD  rE  rC  rF  )	r  r  r!   r|  r}  ry  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   r,  r*  r  r  )r  r0   r  r0  r  M must be an integer)r   r  rD  r   rE  rC  rF  )r  r  r  r   r  r  rI  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&  rW  g      ,@)ppc64leaarch64r  r7  r  r  r$  r  )r0   r0  r*  z beta must be an integer or float)r  r  r  r  r  r   r   platformmachiner  rD  r   rE  rC  rF  )	r  r  r  r  r   r  r  r  rI  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 )NTrA  r  r  rL  r  r<  )r  r  r,  r7  r  rQ  r  r  )	r  r   r   r;  r  r9  rV  r  r  r  r  r  pairsr!   r'  r  r  s           r"   
test_crosszTestNPFunctions.test_cross
  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)NTrA  r  r  z)Incompatible dimensions for cross productr  r  z Dimensions for both inputs is 2.z+`cross2d(a, b)` from `numba.np.extensions`.r  r7  r  rQ  r  r  )r  r7  zDimensions for both inputs is 2r  r  Inputs must be array-like.)r  r   rG  rD  r  r   rV  rE  rC  rF  r;  r  r   setrH  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 )Nr,  r7  r  r*  r  r<  )r  rL  r  rQ  r  )
r  r   r  r   r;  r  r9  rV  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 productrQ  r  r  r,  r7  r  r*  r  )r   r  rG  rD  r  r   r;  rE  rC  rF  rV  r  r   r  rl  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*  r,  r  r  r&  r$  rM  )0Helloworld)r   r;  r  r  r  r$   r"   r  z/TestNPFunctions.test_trim_zeros.<locals>.arrays  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   r,  r7  r   r   FBr  Br&  r  r  r1   )r   r   r,  r7  r*  r  r  )r   r,  r7  r   abf)r   r  r   rb  ) rZ  r[  )r   r;  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TrA  )r  r   r  )	r  r  r  r  r  r@   r  r  r  s	            r"   test_trim_zeroszTestNPFunctions.test_trim_zeros  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   r,  r   r7  r  r  r   r7  r  r1   )r  r  r<  r  r   r  )r   l            r   )r   l            r   )r   l            r   r,  )Nr,  N)r   r;  r)  rS  rk  s_r  r  
zeros_liker=  r:  r  rZ  r  r  )r  r0   r1   r  rA   slcr@   res_arrres1res2s              r"   test_trim_zeros_numpyz%TestNPFunctions.test_trim_zeros_numpy  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)NTrA  r  r  zarray must be 1Dr  z#The first argument must be an array>   r   r,  r7  r  r,  z$The second argument must be a string)
rG  r   r  rD  r   r   r;  rE  rC  rF  rl  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 )NTrA  r  rD  )r7  r*  rQ  r   rP  r7  r*  )r,  rP     rN  )FTr  )r  r   r   r;  rV  r  r  )r  r  r  r  r0   r1   r  r  s           r"   test_union1dzTestNPFunctions.test_union1dN  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)NTrA  r  r,  r7  z.The arguments to np.union1d must be array-likeWorldr  r  r0   r1   z/For Unicode arrays, arrays must have same dtyper  rb  r  barr  rF  )
r   r  rG  rD  r   r   r;  rE  rC  rF  rl  s      r"   test_union1d_exceptionsz'TestNPFunctions.test_union1d_exceptionsr  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 )NTrA  r  r  r,  r7  r  r  )r  r  r<  r  rQ  )
r  r   rG  r   r;  r  r  rV  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)NTrA  r7  z7The argument to np.asarray_chkfinite must be array-liker  r*  z#array must not contain infs or NaNsr,  r  r  z!dtype must be a valid Numpy dtype)r   r  rG  rD  r   rE  rC  rF  r  r   r;  r  r  )r  r  r  r  s       r"   !test_asarray_chkfinite_exceptionsz1TestNPFunctions.test_asarray_chkfinite_exceptions  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)Nr,  r7  r   r*  r   r  r  )r  r     rN  )step   rD  )r   r;  rb  r  rV  r  )phases    r"   inputs1z2TestNPFunctions.test_unwrap_basic.<locals>.inputs1  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)	Nr,  i     )r   r  r  r  r'  )r   r,  r7  r  r   r  )r7  r  r  r*  r7  r  r  r*  r  r  wrap_unevens   r"   inputs13z3TestNPFunctions.test_unwrap_basic.<locals>.inputs13
  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>.inputs123  s     sC''s   	r  )	r  r   r  r  r  r  r   r;  mod)r  r  r  rt  cfunc1pyfunc13cfunc13	pyfunc123cfunc123r  r  
uneven_seqr"  r  r%  r  r!  s                   @r"   test_unwrap_basicz!TestNPFunctions.test_unwrap_basic  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)NrO  z#The argument "p" must be array-liker,  r7  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  rG  rD  r   rE  rC  rF  r   r;  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 )NTrA  c               3      K   t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)NrN  r7  r*  r  r  r  r  r  r$   r"   r  z9TestNPFunctions.test_swapaxes_basic.<locals>.a_variationsD  sL     ))B-))B-''1--))B-''1a00s   A(A*)r  r   r_  ndimr  )	r  r  r  r  r0   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)NTrA  rO  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 integerr,  z)np.swapaxes: Argument axis1 out of boundsr  r7  r  z)np.swapaxes: Argument axis2 out of bounds)r  r   rG  rD  r   rE  rC  rF  r   rV  r  r  rH  s       r"   test_swapaxes_exceptionz'TestNPFunctions.test_swapaxes_exceptionP  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  r,  r  r7  c                 2    t        j                  | |d       S r<   r   take_along_axis)r0   rc  s     r"   	axis_nonez7TestNPFunctions.test_take_along_axis.<locals>.axis_noney  s    %%a66r$   r,  r7  r<  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r8  r0   rc  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   rV  r  r   r;  r  r  r  r_  r2  rg  )r  r0   r:  r   rB  rc  jfuncais           r"   test_take_along_axisz$TestNPFunctions.test_take_along_axisu  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  r,  )r,  r7  r*  r<  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r8  r=  s     r"   r>  zLTestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen.<locals>.impl  r?  r$   r@  rA  s   ` r"   rB  z>TestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen  rC  r$   )r,  r  )r  r7  r*  )r   r  intpr  r  r  r  )r  r@   rE  rB  rc  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  r7  r  r   r,  r<  r  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r8  r=  s     r"   r>  zJTestNPFunctions.test_take_along_axis_exceptions.<locals>.gen.<locals>.impl  r?  r$   r@  rA  s   ` r"   rB  z<TestNPFunctions.test_take_along_axis_exceptions.<locals>.gen  rC  r$   r0   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   r8  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   rV  r  r;  r  r  rD  r   rE  rC  rF  r   r  rG  )r  arr2dindices_noner   rB  rI  rQ  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}d dg}d dg}t        }t        t              }t        ||||      D ]1  \  }}}	}
 ||||	|
      } ||||	|
      }| j                  ||       3 y )Nr,  r  r  r<  )r  r$  皙?r  )rV  r  r  r  rV  r  r  r&  rN  r'       @)r  r  r  )r   r  rk  r  r;  r  r  r  r   r   r  )r  rA   re  posinfsneginfsr  r  valuer  r  r  r  r  s                r"   test_nan_to_numzTestNPFunctions.test_nan_to_num  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 *1D'7+
 	3&E3 eVFKH3vfEC##Hc2	3r$   c           
         t        t              }t        j                  ddt        j                  t        j
                  t        j
                   g      }t        j                  g d      } ||d|d   |d   |d          | j                  |d	d  |       t        j                  ddt        t        j                  t        j                        t        t        j
                  t        j                        t        t        j                  t        j
                         g      } ||d|d   |d   |d          | j                  |d	d  t        j                  g d
             y )Nr  rV  )r$  r'  rW  Fr   r,  r7  r  r  )r  y     @@      ?y      ?     @)r   r  r   r;  r  r  r  rk  )r  r  r!   r  	x_complexs        r"   test_nan_to_num_copy_falsez*TestNPFunctions.test_nan_to_num_copy_false  s   Z HHc3898823A;A;	
 	"#1HH''(
	 	A;A;	
 	bcNHH78	
r$   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  rE  rC  rF  rl  s      r"    test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argument+  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)Nr,  r7  r  r  r  r  r  r  r  r$   r"   rK  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs9  sz     ((Aa5/1$$((QqE1Q%=)2--))A,&&w/22a&!)O((2,/!s   BB)r  r   r  r  )r  rt  r'  ru  r  rK  ra   r   s           r"   test_diagflat_basicz#TestNPFunctions.test_diagflat_basic3  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)NrO  #The argument "v" must be array-like)r  r   rG  rD  r   rE  rC  rF  rH  s       r"   test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exceptionD  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)NrO  r7  rf  r,  z#The argument "k" must be an integerr  )r  r   rG  rD  r   rE  rC  rF  rH  s       r"   test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exceptionO  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)Nr,  r7  r  r7  r7  r  r  r7  r  r  r   r  r  r  )rQ  r*  r  )r,  r  r7  r  rG  r  r  r$   r"   _setxor_arrayszTestNPFunctions._setxor_arraysd  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   rm  r  r#  r0   r1   r  r  s   `   @@r"   test_setxor1d_2zTestNPFunctions.test_setxor1d_2x  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 rp  rq  rs  rt  r9   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$   Trp  )r  r   rm  r:  r   r  rv  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   r;  rG  rD  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)Nr,  r7  r  rk  r  rl  r  )rQ  r*  r  r  r,  r7  r  r  )r7  r  r  r  r7  r,  r*  r  r  r  )r  r*  r7  )r
   r  r	   r9  r   r;  rV  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 rp  rq  rr  s       r"   r#  z/TestNPFunctions.test_setdiff1d_2.<locals>.check  ru  r$   )r  r   r  rv  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 rp  rq  rz  s        r"   r#  z/TestNPFunctions.test_setdiff1d_3.<locals>.check  r{  r$   Trp  )r  r   r  r:  r   r  rv  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   r;  rG  rD  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)Nr,  r7  r  rk  r  rl  r  rP  r*  r  )r
   r  r	   r9  r   rV  r  r  r$   r"   _in1d_arrayszTestNPFunctions._in1d_arrays  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 rp  rq  rr  s       r"   r#  z*TestNPFunctions.test_in1d_2.<locals>.check  ru  r$   )r  r   r  rv  s   `   @@r"   test_in1d_2zTestNPFunctions.test_in1d_2  >    	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 rp  rq  rz  s        r"   r#  z+TestNPFunctions.test_in1d_3a.<locals>.check  r{  r$   Tr  rp  )r  r   r  r:  r   r  rv  s   `   @@r"   test_in1d_3azTestNPFunctions.test_in1d_3a  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 rp  rq  rs  rt  r  r  r  r  r  r  s        r"   r#  z+TestNPFunctions.test_in1d_3b.<locals>.check$  sg    #t$3i#t$3i c62HCf-C##HccU&7N#Or$   r  Trp  )r  r   r  rv  s   `   @@r"   test_in1d_3bzTestNPFunctions.test_in1d_3b   sM    	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 rp  rq  	rs  rt  r9   r  r  r  r  r  r  s	         r"   r#  z*TestNPFunctions.test_in1d_4.<locals>.check5  sk    #t$3i#t$3i c=&AHCmV<C##HccU&7N#Or$   r  Tr9   r  FF)r  r   r  r:  r   r  rv  s   `   @@r"   test_in1d_4zTestNPFunctions.test_in1d_41  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)	Nr,  r7  Fr  Tc                 2    t        j                  | ||      S Nkindr  r0   r1   r  s      r"   np_in1d_kindz6TestNPFunctions.test_in1d_errors.<locals>.np_in1d_kindX      771ad++r$   r  table)r  r   r   r;  r  rG  rD  r   )r  r  r  r0   r1   r!   r  s          r"   test_in1d_errorsz TestNPFunctions.test_in1d_errorsE  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                 N    t         r| j                         S | j                         S r   )r   _isin_arrays_reduced_isin_arrays_full)r2  s    r"   _isin_arrayszTestNPFunctions._isin_arraysa  s#    ++--((**r$   c               #      K   dgdgf dgdgf ddgddgf t        j                  d      j                  ddg      } t        j                  ddg      }| |f y w)Nr,  r7  r  r  r  r/   s     r"   r  z$TestNPFunctions._isin_arrays_reducedh  sm      cA3hcA3h!fq!fn IIaL  !Q(HHaVd
rB  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)r,  r   r<  )r   r   r  r,  r7  r  rk  r  rP  r*  r  r  )r*  r  rN  rS  r  rD  )rN  rP  r  r0  )r     r  rQ  r  )TFF)r,  rN  r  r  )r  r  r,  r7  )r  r  r,  r  )r*  r  r*  r  r  r  r  r  r  r*  r7  r,  r*  r*  )r*  r*  r  )r*  r  r,  r,  r7  )r7  r  r  r  r,  r*  TFr  )r   r   r,  r,  )ir      )r  r   r  
AllInteger)r   r   r   r   )r
   r  r	   r9  r   r  r  rV  r  r  r;  r(  r*  r  r[  uint16r  signedinteger	typecodes)r0   r1   r=  arempty_arraymultdtype1dtype2is_dtype2_signedrs  rt  s              r"   r  z!TestNPFunctions._isin_arrays_fullt  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 rp  rq  rr  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  rv  s   `   @@r"   test_isin_2zTestNPFunctions.test_isin_2  r  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 rp  rq  rz  s        r"   r#  z+TestNPFunctions.test_isin_3a.<locals>.check  sg     c=9H#t$3i#t$3iCm4C##HccU&7N#Or$   r,  Tr  rp  )r  r   r  r:  r  r   r  r  r#  r0   r1   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 rp  rq  r  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  Trp  )r  r   r  rv  s   `   @@r"   test_isin_3bzTestNPFunctions.test_isin_3b  sM    	O		P %%' 	%DAq!Qu%!Qt$	%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 rp  rq  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  Tr,  r  r  )r  r   r  r:  r  r   r  r  s   `     @@r"   test_isin_4zTestNPFunctions.test_isin_4  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)	Nr,  r7  Fr  Tc                 2    t        j                  | ||      S r  r  r  s      r"   np_isin_kindz6TestNPFunctions.test_isin_errors.<locals>.np_isin_kind9  r  r$   r  r  )r  r   r   r;  r  rG  rD  r   )r  r  r  r0   r1   r!   r  s          r"   test_isin_errorsz TestNPFunctions.test_isin_errors&  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  r,  r7  r  )r  r  r7  r  r  r,  r*  )r   r  r6   r  r  r   r;  r  )r  nb_setxor1dnb_intersect1d
nb_union1dnb_setdiff1dr0   r1   c1aux1aux2c2s              r"   test_setops_manywaysz$TestNPFunctions.test_setops_manywaysB  s    =)m,*%
N+HH_%HH*+Aa#!Q$%B'r$   )NNFNr   ro  )r4  r5  r6  __doc__r  r  r?  rJ  rl  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r+  r/  r2  r7  r9  r>  rB  rU  rf  rm  r}  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.  r3  r5  r8  r;  r?  rB  rD  rF  rH  rM  rQ  rU  rW  re  rh  rs  rv  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-  r5  r<  r>  rE  rI  rL  rN  rQ  rg  rm  rq  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr   r  rM  r  r  rP  r  r  skipr  r  rV  r  r  rY  r  r  r  r  r%  r+  r-  r9  r;  r=  r?  rA  rO  rS  r  r[  skipIfr   r^  ra  rd  rm  rp  rw  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  r5  rF  rL  rT  r[  r^  ra  rd  rg  ri  rm  rw  r|  r~  r  r  r  r  r  r  r  r  r  r  classmethodr  r  r  r  r   r  r  r  r  r  __classcell__)r  s   @r"   r  r  !  ss   - EIKO+CZ=)~	"68p-!^, 	"34	
3@ 7D&3&3$"B3<!"F	7"*/.7@7&7(D?L3<3"	7-&
7-&`DM^.8`'>R4<#|: !F*6X1C*<0;@
?!B!F.,%#N
II" ' '>	I	4



8<I$I45@P45@P?-*Q9E@HB**,(,(  >>&&qAfkDZ	=	@ KD"QH D$L	C	F P P4"0H = = = =  $  ;z 	 	   
 
 /- /-b!#F'-*?-.?K(P8-P8@:-(3>-23@-<T6l37F089t9"-- (BT1474+M.^&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]6~>:@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>U8n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!3F"
H-A"	--* / /& "$& 7 7( "$& / /  0$%"=(-8 + + 	 	 S Sj  0 06 % %" = =:-8(r$   r  c                       e Zd ZdZd Zd Z ej                  edk\  d      d        Z	d Z
d Z ej                  edk  d	      ej                  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  attrsrn   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  )r4  templater  compileglobals)r  basefunctytystrbasestrfuncstrdcts          r"   create_harcoded_variantz/TestNPMachineParameters.create_harcoded_varianth  sQ     ##--5'"22WWj&179cB5zr$   )r,  r  zNumPy < 1.24 requiredc                 4    d}| j                  t        |       y )N)ibetaitmachepr  negepepsnegiexpminexpxminmaxexpxmaxirndngrdepsilontinyhuge	precision
resolution)r#  rs   )r  r  s     r"   test_MachArz#TestNPMachineParameters.test_MachArr  s    H 	

65!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  r  r  r  r<  r  r  nexpnmantr   r  r  bitsr,  TrA  rU  z(Unknown attribute 'machar' of type finfor  )r   r  r9  r  r<  r#  r   r  rD  r   r   r   rE  rC  rF  r  r  )r  r	   r  r  hc_funcrI  r  r  s           r"   
test_finfoz"TestNPMachineParameters.test_finfoy  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  r<  r  r,  TrA  r  )r   r*  r  r  r  r[  r  r  r  r#  r   r  r  r   r9  )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'zNeeds NumPy < 1.24c                 X   d}t        j                  d      5 }t        j                  d       t        j                  d|t               t        d       } |        d d d        | j                  t              d       | j                  d	t        |d
                y # 1 sw Y   CxY w)Nz*.*`np.MachAr` is deprecated \(NumPy 1.22\)T)recordr  always)messagecategoryc                  >    t        j                         j                  S r   )r   rr   r  r  r$   r"   <lambda>zJTestNPMachineParameters.test_np_MachAr_deprecation_np122.<locals>.<lambda>  s    biikoo r$   r,  z`np.MachAr` is deprecatedr   )
warningscatch_warningssimplefilterfilterwarningsr   r   r  r:  rE  rC  )r  r  rX   r  s       r"    test_np_MachAr_deprecation_np122z8TestNPMachineParameters.test_np_MachAr_deprecation_np122  s     <$$D1 	Q!!(+##Hc-DG-.AC	 	Q#13qt9=	 	s   AB  B)N)r4  r5  r6  r  r#  r  r  r  r   r  r  r
  r  r   run_test_in_subprocessr  r  r$   r"   r  r  S  s}    H
8 X__]g-/FG" H"*! X02FG$$> % H>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   r  strip)r  coderesulterrors       r"   test_unsafe_import_in_registryz2TestRegistryImports.test_unsafe_import_in_registry  s]        *$//ekkm;ugR1HIr$   N)r4  r5  r6  r   r  r$   r"   r  r    s    Jr$   r  __main__rp  )Nr   r   )r
  r  F)rO  r  r  )r  )ra  )r   N)NF)NTFN)NT)NN)fb)Nr  g-DT!@)Tr&  NNr  )rj  r5  r  r  	functoolsr   r   textwrapr   numpyr   r  r   r   r   
numba.corer	   numba.typedr
   r   numba.np.numpy_supportr   numba.core.errorsr   r   numba.core.configr   numba.core.utilsr   numba.np.extensionsr   numba.tests.supportr   r   r   r   r   r   r   r   r   r  r   r(   r,   r.   r6   r:   r?   rC   rE   rK   rN   rS   rY   r\   r_   rg   rj   rl   rp   rs   ru   rx   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&  r,  r/  r4  r8  r?  r9  rB  rD  rF  rM  rP  rV  rY  r]  r_  rb  rd  rg  rk  rm  ru  rw  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  r4  mainr  r$   r"   <module>r/     s(           # #  " 0 D ' ( ': : :
   /-,%(!./3"$-%.1+$$$)(!#$%(!#$%(' #,%-& jj '&""45 !)<+"*6'8"N",-6(06(0od(ox od(dI\>h \>~J( J( zHMMO r$   