
    qiV                       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~ 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)jb                          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    O/opt/pipecat/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                 0    t        j                  | ||      S r   )r   moveaxis)r0   sourcedestinations      r"   r  r    s    ;;q&+..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                   J
    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        Z ej:                  edk\  d      efd       Z ej4                  ed      d        Z ej:                  edk\  d      efd       Z ej4                  ed      d        Z ej:                  edk\  d       ejJ                  d      efd              Z ej4                  ed      d        Z ej:                  edk\  d      efd       Z ej4                  ed      d        Z ej:                  edk\  d      efd       Z ej4                  ed      d        Z ej:                  edk\  d      efd       Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej:                  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ڄ Zdۄ Zd܄ Ze?d݄        Zdބ Zd߄ Zd Ze?d        Zd Zd Zd Ze?d        Z ej:                  edk\  d      d        Z ej:                  edk\  d      d        Z ej:                  edk\  d      d        Z ej:                  edk\  d      d        Z ej:                  edk\  d      d        Zed        Ze?d        Ze?d        Zd Zed        Zed        Zed        Zd Zd Z  xZS )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>.checkw  s)    DNN67H %/3S%#%r$   )
      ?                           ?         g#B;g#B   r<  )      ?                                      r3                ?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_sinc[  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   assertInrG  	exceptiondisable_leak_checkr  r  r  raisess       r"   test_sinc_exceptionsz$TestNPFunctions.test_sinc_exceptions  so    "T"6*{+ 	v%L	C&**+	- 	!	 	   	A55A>c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3   t  K   t        j                  dd      } d}| |f t        j                  d      }d}||f t        j                  dg      }d}d}||f ||f t        j                  g       }||f t        j                  ddg      }|df ||f t         j                  j                  d       t         j                  j                  d      }	t         j                  j                  d       t         j                  j                         }
|	d	   }|	|
f |	|f |	j                  t         j                        }||d	   f ||
f t         j                  j                  d       t         j                  j                  dd
t         j                        }|df |df y w)N
   2            TFr;  r      )sizer=  r.     )r   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TrE  )r  r   r  )r  rn  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/  r0  r<  )r1  r2  r3  r3  r4  y             r5  r6  r7  r8  r9  r:  N)r(   r,   r   r	   r=  r  r>  r   r?  r   r@  r  )	r  r'  r  rA  r  ra   rB  rx  ry  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)  r1  r:  )f4f8c8c16r<  TrE  )r  r   r?  r   assertEqual)r  r~  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)NTrE  helloz0Argument "z" must be a complex or Array[complex])r(   r   rH  r   rI  rG  rJ  rK  rL  s       r"   test_angle_exceptionsz%TestNPFunctions.test_angle_exceptions  so    "T"6*{+ 	v'N	H&**+	- 	!	 	rO  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)Nr0  r;  rR  r.     r0  r;     r  r;  r;  )r  r;  )TTTF)Tr;  )Tr0  )Fr   r   r?  rZ  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	TrE  )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)NTrE     r     z3Both arguments to "array_equals" must be array-like)
r.   r   rH  r   r   rZ  r  rI  rG  rJ  rL  s       r"   test_array_equal_exceptionz*TestNPFunctions.test_array_equal_exceptionA  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	Nr0  r;  r0  r;  r;  r  r.     r0  r;  r;  r  r  r0  r.  )r.  r.  r  r0  r;  )r;  r0  r  r  r  r0  r.  r
   
empty_listr	   r=  r  r$   r"   r  z2TestNPFunctions.test_intersect1d_2.<locals>.arraysN       ??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'TrE  )r6   r   
isinstancelistr
   r  r  r  r  r  r0   r1   r  r  s           r"   test_intersect1d_2z"TestNPFunctions.test_intersect1d_2L  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>.arraysn  r  r  TrE  Fr  )	r:   r   r  r  r
   r  r>  r   uniquer  s           r"   test_intersect1d_3z"TestNPFunctions.test_intersect1d_3l  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Nr0  r;  fooT)r:   r   r   r?  rK  rH  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)
NrR  r<  r   <   r  r  r.  r  r0  )r   r?  zerosrZ  onesru  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TrE  )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)r;  r;  NrR  r  r.  r;  r  r  r.  rU  r     	   r   r0  r   rZ  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$TrE  )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)NTrE  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?  rH  r   rI  rG  rJ  rK  )r  r  r  r@   rA   r>   rM  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r0  r;  r  r  r.  r  r;  rR  )r  r.  rU  )r;  r  r  r.  r  r  r.  )r.  r     r  r0  r;  r  r  r0  )r   rZ  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  TrE  )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)NTrE  r0  r;  gQ	@zobj should be of Integer dtyperR  )g      @gffffff@g@r  z)arr must be either an Array or a Sequencez"obj must be less than the len(arr))rE   r   rK  rH  r   rI  rG  rJ  r   rZ  
IndexErrorrL  s       r"   test_delete_exceptionsz&TestNPFunctions.test_delete_exceptions   sw   "T"6*!{+ 	 v1a&$	 ,  !	

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

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

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

 	!9	  	 	2 	2	 		 	s/   FF-
F9F(FFF%(F1c              #      K   t        j                  d      dz  }| |j                  d      }| t        j                  d      j                  d      dz  }| yw)z0
        Some test arrays for np.diff()
        r  r  r  r     )r  r;  r  Nr   rZ  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)NTrE  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 )	NTrE  r   r0  r;  r  i  )rN   r   r  shaper  )r  r  r  r@   rX  rM   r  r  s           r"   
test_diff2zTestNPFunctions.test_diff2;  s    "T"6*##% 	7C99R=DAq$(D$(C@ 7!#q>Cm''#67	7r$   c                    t         } t        d      |      }| j                          t        j                  d      }| j                         5   ||d       d d d        t        j                  d      }dD ]N  }| j                  t              5 } |||       d d d        | j                  dt        j                               P | j                          y # 1 sw Y   xY w# 1 sw Y   MxY w)NTrE  r  r0  rR  )r  izorder must be non-negative)rN   r   rK  r   r?  r  rZ  rH  
ValueErrorrI  rG  rJ  )r  r  r  r@   rM   rM  s         r"   test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptionsE  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                @numbarR  i90  gV-@TYnatr0  )r   r8  intint16timedelta64
datetime64r  r$   r"   rA   z-TestNPFunctions.test_isscalar.<locals>.values[  s     G**aS/!JHMb'M((5/!KJJ..S))--&&--3''s   B!B#TrE  )r{   r   r  r  rA   r  r  r!   r  r  s          r"   test_isscalarzTestNPFunctions.test_isscalarZ  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)Nr0  r1  )r  r1  Thello worldr7  r  r$   r"   rA   z4TestNPFunctions.test_isobj_functions.<locals>.valuesr  s&     GL**.//s   ')TrE  c                     |r| nd } ||      S r   r  )r!   condr  r'  s       r"   optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fnx  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_functionsq  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)      ?      ?r1        @r  r;                 @r  r  y              (@      ?      @y      $@        )r         @        r0  r;  r  r.  rU  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-TrE  )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*  r0  r<  r  r  )r   infr8  r  ru  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$TrE  )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  r;  r;  r;  )r   r   c               3     K   ddi f dt         j                  i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  dt         j                  g      t        j                  dt         j                  g      i f t        j                  dt         j                  g      t        j                  dt         j                  g      d	d
if t        j                  t         j                  t         j                  g      t        j                  dt         j                  g      d	d
if t        j                  ddg      t        j                  ddg      ddif t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      ddif t        j                  dt         j                  dg      t        j                  dt         j                  dg      f t        j                  t         j                  t         j                   t         j                  g      t        j                  dg      f t        j                  t         j                  t         j                   t         j                  g      df dt        j                  t         j                  t         j                   t         j                  g      f t        j                  ddg      t        j                  ddg      f f t        j                  dg      t        j                  dz   z   g      f z  z   f z  z   z   f    z  z   f t         j                  t         j                  f t         j                   t         j                  f t         j                  t        j                  t         j                  g      f t        j                  t         j                  t         j                   g      t        j                  t         j                  t         j                   g      f t        j                  t         j                  dg      t        j                  dt         j                  g      f t        j                  t         j                  t         j                   g      t        j                  ddg      f t        j                  t         j                  t         j                  g      t        j                  dt         j                   g      f t        j                  t         j                  t         j                  g      t        j                  ddg      f t        j                  t         j                  dg      t        j                  t         j                  t         j                   g      f t        j                  dz  g      t        j                  dg      f t        j                  dg      t        j                  dz   dz  z   g      f   dz   z  z   dz  z   f t        j                  t        j                  t         j                  dg            t        j                  t        j                  dt         j                  g            f t        j                  t         j                  dg      t        j                  dz  dz  g      f t        j                  t         j                  dg      t        j                  t         j                  dz  g      f t        j                  ddddz  z   z  z   g      t        j                  dt         j                  dg      f t        j                  d      t        j                  g d      f t         j                  t        j                  t         j                  t         j                  t         j                  g      f t        j                  dg      t        j                  t         j                  t         j                   t         j                  g      f dt        j                  t         j                  t         j                   t         j                  g      f y w)N    _B   UkBr  Hz>r*  &.>   2٠Br(  r   T0.++r   绽|=g#B;g=|=r0  r;  r  r  r   皙?    .A)r   r0   @)r   r  r?  r
  rZ  )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TrE  )r   r?  rZ  r  r   r   r  ru  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NTrE  r  r  r  r  r  Fz=shape mismatch: objects cannot be broadcast to a single shaper  r  z)The first argument "a" must be array-likez*The second argument "b" must be array-liker;  z2The third argument "rtol" must be a floating pointz3The fourth argument "atol" must be a floating pointr0  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()
        )r0  r;  r.  r;  r  rT  )r.  r  r  r.  r   r  ,  rX  )r   r?  r  r^  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 NTrE  )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)NTrE  r;  r  #first argument must be non-negative)rS   r   rK  rH  r  rI  rG  rJ  rL  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 NTrE  r;  )rY   r   r/  mathsqrtr   r?  r  )	r  r  r  r2  r!   rX   rW   r  r  s	            r"   test_bincount2zTestNPFunctions.test_bincount2<  s    "T"6***, 	7C+./a1!/A/rxx{C#? 7!#w/C)''#67	7/s   B)c                    t         } t        d      |      }| j                          | j                  t              5 } |ddgddg       d d d        | j                  dt        j                               | j                  t              5 } |ddgdg       d d d        | j                  dt        |j                               y # 1 sw Y   ~xY w# 1 sw Y   ;xY w)NTrE  r;  r  r   r5  z+weights and list don't have the same length)rY   r   rK  rH  r  rI  rG  rJ  rL  s       r"   test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptionsG  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 r8  )r\   r   r/  maxr  r>  r  )r  r  r  r2  a_maxr[   r  r  s           r"   test_bincount3zTestNPFunctions.test_bincount3Z  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)
NTrE  r;  r  r   r5     &   z 'minlength' must not be negative)r\   r   rK  rH  r  rI  rG  rJ  rL  s       r"   test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptionsf  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)NTrE  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   r0  r  )r   r;  r.  r   r.  r;  rT  r0  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   )r0  r;  r   r  rU  r  )	r  r0  r  r;  r   r  r  rU  r  rR  r  )rd   )r_   r   rg   rj   r   r   r?  r  rZ  r  r=  floatr  )r  r'  binsrA   r0   ra   rT  rV  r  rK  rL  r  rM  rN  s   `       @@@@@@r"   test_searchsortedz!TestNPFunctions.test_searchsortedy  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 )NTrE  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   rI  rJ  s       r"   r'  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.check  rO  r$   )r0  r  r.  )r   r;  r  rU  r/  rS  r.  r  r  )r.  rR  rY  r0  
fill_valuer  r<  r   )FFTTFr  )123r_  4)r_   r   rg   rj   r   r   r?  sortr  ranger  r
  r  choicer  fullr>  r  rZ  )r  r'  r0   ra   element_poolisample_sizer  nansr  rK  rL  r  rM  rN  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 )NTrE  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   rI  rJ  s       r"   r'  z8TestNPFunctions.test_searchsorted_complex.<locals>.check4  rO  r$   )r1  y       @      ?      @        r  r  r   r0  r  r  r.  r;  r`   )r_   r   rg   rj   r   r   r?  rb  r  	itertoolsr   complexrc  r  rd  r>  rZ  )r  r'  r0   ra   poolr  rf  rg  rh  r  rK  rL  r  rM  rN  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 )NTrE  c                  >     |  } |  }j                  ||       y r   rI  rn   r  r  r  r  r  s      r"   r'  z,TestNPFunctions.test_digitize.<locals>.check^  %    t}H,C##Hc2r$   r   Gz?r0  皙@r  r  r  r        #@r
  z-infr  r  r0  r  r  r  r  rR  r  r  r        ?)rl   r   r   r=  rW  r>  r  shuffler  rb  r  r?  r  )r  r'  rA   bins1bins2bins3all_binsxsrX  r!   ri   r  r  s   `          @@r"   test_digitizezTestNPFunctions.test_digitizeZ  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 )
NTrE  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rH  r  rI  rG  rJ  )rn   fnrM  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	r0  rz  ffffff@r  r   r0  r;  )r   r   r0  r   r0  r0  r   r0  )rK  rl   r   r   r?  r  )r  r  r!   rX  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 )NTrE  c                  >     |  } |  }j                  ||       y r   rI  rt  s      r"   r'  z9TestNPFunctions.test_digitize_supplemental.<locals>.check  ru  r$   r.  r/  r  rR  )r0  r.  r  rR  r     r   )r0  r.  rR  r  r  )r   r   r0  )r0  r0  r   r0  r0  r0  r0  l          r0  )	rl   r   r   rZ  r  r\  linspaceminr@  )r  r'  r!   rX  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)NTrE  r  )r(        @r         @zx may not be complex)	rK  rl   r   r   r?  r  rI  rG  rJ  )r  r  r  r!   r'  r  funcrM  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 )NTrE  c                  t     |  \  }} |  \  }}j                  ||       j                  ||dd       y )Nr	  r;  r
  r<  rI  )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 )Nry  r  r  )r(  g      +@)r   r=  r  )rA   rX  r'  s     r"   check_valuesz4TestNPFunctions.test_histogram.<locals>.check_values  sS     ::n-D&$&..($/ &! &![) &Mr$   )r   rv  r0  rw  r  r  r  r  rx  g     @E@r)  r+  r  )rp   r   r   r=  r>  r  r{  )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)NTrE  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<  r4  r   )rn  r   r   rZ  
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$   r0  r;  re  valid)r0  r;  r  r  )re  r  samer  r  r  zonly supported on 1D arrays)r   r   r   r=  r@  r.  int32int64r  r  rZ  r  rH  r   rI  rG  rJ  )r  r  r'  r  r  r  _a_br!   r'  rM  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_correlate:  s    %%i0r$   c                    | j                          t        j                  d      }t        j                  d      } t	        d      |      }||f||ffD ]  \  }}| j                  t              5 } |||       d d d        t        |      dk(  r&| j                  dt        j                               a| j                  dt        j                                | j                  t              5 } |||d	
       | j                  dt        |j                               d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   )r  r.  TrE  r   z'a' cannot be emptyz'v' cannot be emptyzinvalid moder   zInvalid 'mode')rK  r   r  rZ  r   rH  r  r>  rI  rG  rJ  )r  r  r  r  r  r!   r'  rM  s           r"   #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions=  s"   ! WW4 YYq\"T"2&"XBx( 	LDAq"":. &a1v{3S9I9I5JK3S9I9I5JK	L z* 	Cf"b~.MM*C0@0@,AB	C 	C 	C 	Cs   1
D-31D9-D6	9Ec                 .    | j                  t               y r   )r  r   r  s    r"   test_correlate_exceptionsz)TestNPFunctions.test_correlate_exceptionsR  s    00;r$   c                 .    | j                  t               y r   )r  r   r  s    r"   test_convolvezTestNPFunctions.test_convolveV  s    %%h/r$   c                 .    | j                  t               y r   )r  r   r  s    r"   test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptionsY  s    00:r$   c                 L     |di |} |di |}| j                  |||       y )Nr  r  rI  )r  r  r  paramsr  r  r  s          r"   _check_outputzTestNPFunctions._check_output\  s/    #F#ofo#w?r$   c                 (   t         } t        d      |      }t        | j                  ||      fd}t        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 )NTrE  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)Nr0  r;  F)Nr   r0  r;  r  r  Tr!   )r!   r   )r!   r  r  )r   )r!   	n_choicesincreasing_choicesr  rM   r  r  s         r"   _checkz1TestNPFunctions.test_vander_basic.<locals>._checkf  s    (	&+W"1	&*E]" 1XF&!  & q)f%& #"4 *J#$J?F!&)*
 # .A&8 .
'(q
!K%f-.. #r$   r  r   r0  r;  )r0  r;  r  r.  r        %@r  rR  r.  333333?r/  333333?Fr  r<  r   r0  r;  r  r  r.  rU  r  )r*  r(  rQ  r  )r  g-@A`"	@)TFr  )r  r   r   r  r   r   r?  rZ  r  r  r
  r  r  r  r=  )r  r  r  r  r=  r  s        @r"   test_vander_basicz!TestNPFunctions.test_vander_basica  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)NTrE  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  rI  rG  rJ  )r   rM  r  r  r!   s     r"   _check_nz8TestNPFunctions.test_vander_exceptions.<locals>._check_n  sL    '') Va1MMHf../1    AAr  r0  r;  r  r   z#Negative dimensions are not allowedc                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz.x must be a one-dimensional array or sequence.)rH  r  r  rG  rJ  )r!   rM  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  )r;  r  rP  )r  r   rK  r   rZ  r
  rH  r  rI  rG  rJ  r  )r  r  r  r   rM  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 )NTrE  c                  .    t        j                  dd      S Nr  r   rZ  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 )NTrE  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  rn  chainfrom_iterablerc  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 )NTrE  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 NrR  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 )
NTrE  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 )NTrE  c                     j                         5 } dd|        d d d        dt        j                        v sJ y # 1 sw Y   #xY w)Nr.  rU  r   k must be an integer)r  rG  rJ  )r   rM  r  r  s     r"   r  z3TestNPFunctions.test_tri_exceptions.<locals>._check-  sK    '') !Vaa !)S1A1A-BBBB! !s   A  A	rz  r0  r;  )r   r   rK  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 )NTrE  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>._check8  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_m5  s0    "T"6*	9 224HHr$   c                 `      t        d             fd} j                   |      S )NTrE  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  rR  r   )	rn  r  r  rc  r  r=  r   r   r  )r@   r   r  r  r  r  r  r  s        r"   r  z<TestNPFunctions._triangular_matrix_tests_m_k.<locals>._checkD  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_kA  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  r0  r  r  r  Tr0   r  s    r"   	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_oddU  s?    1I		&!A1I		,'A1I133Kr$   c                      |        | j                  d      }  |        | j                  d      }  |         | j                         y )N)r     r  r;  r;  r  r  r  s    r"   
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_even]  s?    1I		'"A1I		,'A1I133Kr$   ?   r  @   ih  r  r  r.  rU  r  )r  r  r  Forderr  )r   rZ  r  r?  asfortranarray)r  r  r  r  r  r@   s     `   r"   r  z.TestNPFunctions._triangular_matrix_tests_innerR  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)NTrE  r.  rU  rz  r  r  )r   rK  r   r  r  rI  rG  rJ  )r  r  r  r0   rM  s        r"   _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptionsr  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 r1  )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_base}  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 )NrR  r   rc  )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 )NrR  r0  r;  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 )NrR  r;  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 )NrR  r0  r;  TrE  )r   rc  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 )NTrE  rR  r   r  rW  boolrn  r   rc  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 )NTrE  rR  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)NTrE  r(  zn must be an integerr   r0  r  r  r   r   zm must be an integer)r   r   
parametersr  rI  rG  rJ  )r  r  r  r1  rM  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)	NTrE  r   r0  r  r.  zinput array must be 2-dr,  r  r  )r   r   r  r  rI  rG  rJ  )r  r  test_kr  ndimsr0   rM  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   r2  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  r7  r  s    r"   test_tril_indices_fromz&TestNPFunctions.test_tril_indices_from  B    //0EF112IJ001FN001H$Or$   c                 X    | j                  t               | j                  t               y r   )r  r  r  r
  r  s    r"   test_triu_basiczTestNPFunctions.test_triu_basic  r:  r$   c                 .    | j                  t               y r   )r  r
  r  s    r"   test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions  r=  r$   c                 T   | j                  t               | j                  t               | j	                  t
               | j                  t               | j                  t               | j                  t               | j                  t
               | j                  t               y r   )	r#  r  r%  r  r'  r  r)  r  r2  r  s    r"   test_triu_indicesz!TestNPFunctions.test_triu_indices 	  r@  r$   c                     | j                  t               | j                  t               | j	                  t        d       | j	                  t        d       y rB  )r-  r  r/  r  r7  r  s    r"   test_triu_indices_fromz&TestNPFunctions.test_triu_indices_from
	  rD  r$   c                     t         }t        t               }d } |       D ]   }| j                   ||       ||             " y )Nc               3   ,   K   d d d d y w)N)r  r  )r  r  )r;  r;  r  r.  r  r  r$   r"   inputsz2TestNPFunctions.test_indices_basic.<locals>.inputs	  s     LJJs   )r  r   r  )r  r  r  rO  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)rQ  r  )r;  r  )r   r  rK  rH  r   rI  rG  rJ  )r  r  errmsgrM  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_check3	  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   rW  rX  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 
NTrE  )rR  rW  )rR  r  r0  r.  r;  r  r   )r   r   r   rc  r  r   rZ  r  r{  r^  rX  rb  r  tolisttuplerY  r  r  r  j_range_argsj_rangeji_range_argsi_rangerg  didxr"  tgtr   s                 r"   test_partition_fuzzz#TestNPFunctions.test_partition_fuzzO	  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 r]  )r$  r   r   rc  r  r   rZ  r  r{  r^  rX  argsortr  r^  r_  r[  r`  s                 r"   test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzzo	  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 )NTrE  rR  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rH  r  rG  rJ  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   rK  r   rZ  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 )NTrE  rR  c                     j                  t              5 } | |       d d d        t        j                        dk(  sJ y # 1 sw Y   $xY wro  rp  rq  s      r"   r  zHTestNPFunctions.test_argpartition_exception_out_of_range.<locals>._check	  rr  rs  rt  ru  )r$  r   rK  r   rZ  rv  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 )	NTrE  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"  rM  r  r  s      r"   r  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._check	  L    '') VaMM;f../1    
A

ArR        "@ffffff
@rw  r0  r;  )r   r   rK  r   rZ  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 )	NTrE  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr}  r  r~  s      r"   r  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check	  r  r  rR  r  r  r0  r;  )r$  r   rK  r   rZ  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 )NTrE  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  r~  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   rK  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 )NTrE  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  r~  s      r"   r  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check	  r  r  r  r   r  )r$  r   rK  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 )NTrE  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  r~  s      r"   r  zCTestNPFunctions.test_partition_exception_a_zero_dim.<locals>._check	
  L    '') VaMMOf../1 r  r0  r   )r   r   rK  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 )NTrE  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  r~  s      r"   r  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check
  r  r  r0  r   )r$  r   rK  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 )	NTrE  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  r~  s      r"   r  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._check'
  K    "":. &aMM5s6;K;K7LM    
AArR  rU  r  r;  r"  )r   r   rK  r   rZ  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 )	NTrE  c                     j                  t              5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  r  r~  s      r"   r  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._check5
  r  r  rR  rU  r  r;  r  )r$  r   rK  r   rZ  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       }|j	                  d      }|dt        j                  g       fD ]
  } ||        y )NTrE  c                 N     | |      } | |      }j                  ||       y r   rI  r0   r"  r  r  r  r  r  s       r"   r'  z9TestNPFunctions.test_partition_empty_array.<locals>.checkB
  )    a~H3-C##Hc2r$   r  r;  r0  r   r  r  )r   r   r   r?  r  r  r'  r0   r@   r  r  s   `   @@r"   test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_array<
  sd     "T"6*	3 HHRLIIl# b"((2,& 	C#J	r$   c                      t          t        d            d fd	}t        j                  g       }|j	                  d      }|dt        j                  g       fD ]
  } ||        y )NTrE  c                 N     | |      } | |      }j                  ||       y r   rI  r  s       r"   r'  z<TestNPFunctions.test_argpartition_empty_array.<locals>.checkU
  r  r$   r  r  r  )r$  r   r   r?  r  r  s   `   @@r"   test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_arrayO
  sd     "T"6*	3 HHRLIIl# 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 )+NTrE  r   r0  r  rW  r.  (   r;  r   r0  r  r;  r0  r  r;  r0  r  r;  r  r0  r0  r0  r0  r  r;  r;  r0  r0  r;  r0  r  rS  1   r.  rW  /   r  rU  r  r  )      r  @B rR  r  r;  r  rW  r  r  r   r0  r;  r  r  r.  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r     rT  r   r  r  r  r  r  r<  r  r0  )r   r   r   r?  r  r  r  rZ  rb  rY  r  r^  r_  r   r4  rX  r  isnanr  r{  rc  r  r  tilemapr   assert_array_less)r  r  r  rf  r  r"  okthr}  rh  r   r0   SIZEr!   midrg  dtstdd1r  s                       r"   test_partition_basicz$TestNPFunctions.test_partition_basicb
  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 )*NTrE  r<  r   r0  r  r  r;  r  r  r  r  r  r  r  r  r  r  rS  r  r  r  r  rU  r  r  r  r  r  r  r  r  rR  r  r  r  r  r  r  r  r  )r$  r   r   r?  r  r  r  r  rZ  rk  r[  r  rY  r^  r_  r   r4  rX  r  r  rb  r  r{  rc  r  r  r  r  r   r  )r  r  r  rf  r  r  r"  r  r}  rh  r   r0   r  r!   r  rg  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  r0  )r   rb  r   r  r   allrY  r  r  r  rf  r"  prevr   s          r"   assert_partitionedz"TestNPFunctions.assert_partitionedB  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   rb  r   r  r   r  r[  r  s          r"   assert_argpartitionedz%TestNPFunctions.assert_argpartitionedM  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 NTrE  )r  r  r;  r0  )r   r  )r  r  rD  )r0  r  r  r  rT  r  r.  r  rU  rV  )r   r   r   r  r   r?  r$  r  rZ  r  r{  r  rc  rX  )r  r  r  r  rf  r  keyss          r"   test_partition_iterativez(TestNPFunctions.test_partition_iterativeX  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  rZ  r  r{  r  rc  rX  )r  r  r  r  rf  r  r  s          r"   test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterativez  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 )NTrE  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Nr\  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r0  rR  0   r  r  r  r  r  r  r  r  r  )r   r   r   r  r  r
  r  rc  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 )NTrE  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  rg  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  r0  rR  r  r  r  r  r  r  r  r  )r$  r   r   r  r  r
  r  rc  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 
NTrE  )r  r   r0  r  r  r0  rR  rD  TFT)r   r   r   r   r  r?  rY  r  r  r  kthsrf  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?  r[  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)NTrE  r   r;  r0  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   rK  r   r?  r  rZ  r  rI  rG  rJ  r  r
  rH  r  )r  r  r  r   r*  rM  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 )NTrE  +=r  c               3     K   t        j                  ddgddgddgg      j                    j                  j	                  d      j                  dd       t        j                  t        j                  ddgddgddgg      j                          j                  j	                  d      j                  dd      d d d d df    t        j                  g d       t        j                  dd	
       t        j                  t         j                  dt         j                   ddg       t        j                  ddd      j                  dd       d d d d g d d ddg d d t        j                  g        t        j                  g       j                  dd       t        j                  g       j                  dd       d y w)Nr   r;  r0  r  r.  rT  )g&S:?o_?g#~j?甇ZӼ?Q|?rP  Tr\  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  )r0  r  r;  r  ))r  皙@rz  r  )r   r?  r  r  randnr  r  re  r  r
  r  r  s   r"   input_variationsz=TestNPFunctions.corr_corrcoef_basic.<locals>.input_variations  s    ((QFQFQF34666((..%--a44##BHHq!fq!fq!f-E$F$H$HII((..%--a4Q!V<<((CDD''&T22((BFFFRVVGVVDEE++b!R(00Q77 ;:<<!!OO44i((K$$ ((2,((2,&&q!,,((2,&&q!,,Hs   G2G5)r   r   r  )r  r  first_arg_namer  r  r  	input_arrs   `      r"   corr_corrcoef_basicz#TestNPFunctions.corr_corrcoef_basic  sP    "T"6*++VUEJ	: *+ 	0INI./	0r$   c                 6    t         }| j                  |d       y )Nr!   r  )r,  r  r  r  s     r"   test_corrcoef_basicz#TestNPFunctions.test_corrcoef_basic;  s       <r$   c                 6    t         }| j                  |d       y )Nr   r  )r&  r  r  s     r"   test_cov_basiczTestNPFunctions.test_cov_basic@  s       <r$   c                 D   t         } t        d      |      }t        | j                  ||d      }| j                  j                  d      j                  dd      }d |d d d   f}d	}d	}d
}t        j                  ||||      }	|	D ]  \  }
}}}||
|||d} ||        y )NTrE  r  r  i   rW  r  r  FT)Nr  r   r0  r  T)r   r'  r*  r)  r(  )	r&  r   r   r  r  r  r  rn  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_argumentsE  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 )NTrE  r  r  r  rW  r  r  r  r-  )	r,  r   r   r  r  r  r  rn  r   )
r  r  r  r  r!   r  r  r'  r(  r  s
             r"    test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_argumentsX  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 )NTrE  r  r  r  )r  r  Q?r'  r  r4  r  r  )r4  r  r  r  r  rR  r  r0  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_casesf  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  TrE  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 )NTrE  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  TrE  r  r  r   r;  r0  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)NTrE  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   rM  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.  rU  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'  rM  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  r0  z/2D array containing a single row is unsupported)r&  r   rK  r   r  r?  rZ  rH  r  rI  rG  rJ  r  RuntimeError)r  r  r4  r   r7  r'  rM  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 )NTrE  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  r;  )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rU  r  r  r  r0  )r0  r2  )r0  r1  )r0  r2  r1  )r/  r   r   r  r   r   r  )r  r  r  r  r<  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)NTrE  )TTFz+Boolean dtype is unsupported (as per NumPy))r/  r   rK  r  r   r?  rG  rJ  )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)NTrE  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)	NrR  r.  r;  rT  r  r0  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!rS  zCannot np.fliplr on %s type)
r   r   r  rH  r   rI  r	   unicode_typerG  rJ  r  r  r  r  r0   r  r  rM  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)NTrE  r  cannot index arrayzwith 2 indices)
r   r   rK  rH  r   r   rZ  rI  rG  rJ  rL  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)NTrE  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)	Nr0  rR  r.  r;  rT  rE  r  r  r  r  r$   r"   r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variationsO  sk     #I))B-))B-''1--))B-''1a00Oq6Aq6##s   A;A=rS  zCannot np.flipud on %s type)
r   r   r  rH  r   rI  r	   rG  rG  rJ  rH  s           r"   test_flipud_basicz!TestNPFunctions.test_flipud_basicK  s    "T"6*	$  	3AayH(C##Hc2	3
 {+ 	v%L	 	3e6H6HH&**+	-	 	rJ  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)NTrE  r0  rL  zwith 1 indices)r   r   rK  rH  r   rI  rG  rJ  rL  s       r"   test_flipud_exceptionz%TestNPFunctions.test_flipud_exceptionb  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)NTrE  c               3     K   t        j                  d       t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)Nr0  rR  r.  r;  rT  r  r  r$   r"   r  z5TestNPFunctions.test_flip_basic.<locals>.a_variationss  sZ     ((1+))B-))B-''1--))B-''1a00s   A?Br  zCannot np.flip on UniTuple)r   r   r  rH  r   rI  rG  rJ  rH  s           r"   test_flip_basiczTestNPFunctions.test_flip_basico  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)r0  r  )r  r  )r  r  rY  )r  r  r(        N@      Nr)  )r)  r\  r*  r;  r   r0  r;  r  r         ?       @      @      @      ?             @                   @r   r  pir   r  r  r$   r"   rO  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TrE  )r   r   r   r   assert_allcloser  rO  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)NTrE  rS  r.  +The first argument "start" must be a number+The second argument "stop" must be a number)r   r   rK  rH  r   rI  rG  rJ  r  r  rM  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rX  re  r  r$   r"   rO  z4TestNPFunctions.test_logspace3_basic.<locals>.inputs  rg  rh  TrE  r   r   r   r   ri  rj  s         r"   test_logspace3_basicz$TestNPFunctions.test_logspace3_basic  rl  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)r0  r  rT  )r  r  r  )rY  r  r  r  rY  rS  )r  r  r  r(  r\  F   r^  r)  P   )r)  r\  Z   r*  rT  r  r_  r0  r;  r  r  r   rS  r  r`  ra  rz  rb  rc  r|  rd  r}  re  r  r$   r"   rO  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'TrE  rt  r  rO  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)	NTrE  rS  r.  rn  ro  r   z+The third argument "num" must be an integer)r   r   rK  rH  r   rI  rG  rJ  rp  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)NrZ  r[  r]  )r0  r  )r  r0  )r0     )r  r  r  r)  r4               @@r2  r1  r0  r;  r   r`  ra  rb  rc  rd  r   r  r  r$   r"   rO  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TrE  g-q=r  )r   r   r  rj  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)	NTrE  rS  r.  %The argument "start" must be a number$The argument "stop" must be a numberr   &Geometric sequence cannot include zero)	r   r   rK  rH  r   rI  rG  rJ  r  rp  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)#Nrx  ry  r{  )r0  r  r  )r0  r  r  )r  r0  r  )r0  r  r  )r  r  r  r  r  rR  rT  r)  r  r4  r  r  r2  r1  r.  r0  r;  r  r   rS  r  r`  ra  rz  rb  rc  r|  rd  r}  r  r  r$   r"   rO  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs5  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TrE  r  r  )r   r   r  r~  s          r"   test_geomspace3_basicz%TestNPFunctions.test_geomspace3_basic3  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)NTrE  rS  r.  rR  r  r  z%The argument "num" must be an integerr   r  )	r   r   rK  rH  r   rI  rG  rJ  r  rp  s      r"   test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exceptionS  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 )/NTrE  r0  r  rS  r  r   r  r  r  r  r;  r  r   ir  gL4@ignore)invalidr  r  g      r  r4  y              0@r.  r  r  y             y            @tvIh%<=r  y     @@     @@y            ?y     @     @@r_  r2  r1  r  y              gV瞯<rm  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_numpyq  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 )NTrE  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NrR  r.  r;  rT  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 )NTrE  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/  rU  )r   r   rc  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)NTrE  rS  z'The first argument "m" must be an arrayr  r;  r  z*The second argument "k" must be an integerr  zInput must be >= 2-d.)r   r   rK  rH  r   rI  rG  rJ  r   rZ  r  rL  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 )NTrE  c               3     K   t        j                  d      } | df | ddf | g df t        |       g df t        |       g df | g ddf t        |       g ddf t        |       g ddf t        j                  d      j	                  ddd      } | df | ddf | ddf | g df | g ddf | g ddf | dd	gf | dd	gdf | dd	gdf | dgd
f | dgdf | dgdf | t        j
                  g t         j                        df t        j                  d      j	                  dd
      } | df | ddf | dgdf | ddf | t        j                  ddd      df | df | t        j                  d      dff t        j
                  g       } | df | df | ddf | ddf t        j
                  g g      } | df | ddf | ddf | ddf y w)Nr  r;  r   )r0  r  H   r  r  r0  )r;  r0  r.  r  r  r  r  r<  rS  rR  r0  r  )r   rZ  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 )NTrE  c               3     K   t        j                  d      df t        t        j                  d            df t        t        j                  d            df t        j                  d      j	                  dd      df y w)Nr  r  r  r  r;  r.  )r   rZ  r  r_  r  r  r$   r"   r  z;TestNPFunctions._check_array_split.<locals>.args_variations;  sh     ))A,/!ryy|$a''		!%q(())B-''A.11s   BB
r  r  s           r"   _check_array_splitz"TestNPFunctions._check_array_split6  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_basicG  s    +&,r$   c                 4   | j                  t               | j                          | j                  t              5 } t        t              t        j                  d      d       d d d        | j                  dt        j                               | j                  t              5 } t        t              t        j                  d      dgd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nr.  r;  z0array split does not result in an equal divisionr  r  r=   z%np.split: Argument axis out of bounds)r  r   rK  rH  r  r   r   r  rI  rG  rJ  )r  rM  s     r"   test_split_basicz TestNPFunctions.test_split_basicK  s    % !z* 	'fDK
A&	'>  !	

 z* 	2fDK
QCb1	2=&**+	-	' 	'	2 	2s   *D'-DDDc           
          d }d }d } |        |        |       g}t         ddft        ddft        dd	ffD ]T  \  }}}|}t        |      }	t	        |d
      D ]2  }
||
dz
     D ]%  \  }}| j                   |||       |	||             ' 4 V y )Nc               3   x   K   t        j                  g d      df t        j                  g d      df y w)Nr  r;  r(  rQ  r        @r  r  r$   r"   inputs1Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs1D_  s/     ((<(!++((+,a//s   8:c               3   R  K   t        j                  g dg dg      df t        j                  g dg dg      df t        j                  d      j                  dd      df t        j                  d      j                  dd      t        j                  ddg      f t        j                  d      j                  dd      ddgf t        j                  d      j                  dd      df t        j                  d	      j                  ddd      df y w)
Nr  r;  r        0@r  r  rU  r  rU  r  r  r  r$   r"   inputs2Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs2Dd  s     ((L,78!;;((,.>?@!CC))D/))!Q/22))D/))!Q/1a&1AAA))D/))!Q/!Q77))D/))!Q/77))C.((Aq1144s   D%D'c               3   (  K   t        j                  g dg dgg dg dgg      df t        j                  d      j                  ddd      df t        j                  d      j                  ddd      t        j                  ddg      f t        j                  d      j                  ddd      ddgf t        j                  d      j                  ddd      df t        j                  d      j                  ddd      df y w)	Nr  r;  r  r  r  rU  r  r  r  r  r$   r"   inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3Dn  s     HH|#%##%& ' )** ))D/))!Q2A55))D/))!Q2BHHaV4DDD))D/))!Q2QF::))D/))!Q2F::))C.((Aq1144s   DDr;  r   r0  r   r  r   r  )r   r   r   r   rc  r  )r  r  r  r  rO  fmindimnamer  r  rg  r0   r   s                r"   test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basic[  s    	0
	5
	5 *hj(*5#)1h"7#)1h"7#)1h"7"9 	BQ FLE61% B%+AE] BMAz++F1j,A,1!Z,@BBB	Br$   c           	         t         ddft        ddft        ddffD ]  \  }}} t        d      |      }| j	                          | j                  t              5 } |dd       d d d        | j                  d	t        j                               | j                  t              5 } |d
d       d d d        | j                  d	t        |j                               | j                  t              5 } |t        j                  g dg dg      d
       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      d       d d d        | j                  |dz   t        |      z   dz   t        |j                                y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w)Nr;  r   r0  r   r  r   TrE  z#The argument "ary" must be an arrayrS  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   rK  rH  r   rI  rG  rJ  r   r?  r  )r  r  r  r  r  rM  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 )NTrE  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   rZ  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  rR  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)NTrE  )r  r  rR  zshift must be an integer)r4  r   rK  r  r   rZ  rG  rJ  )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 )#NTrE  rR  r  r.  r  rV  rG  r  r  r  r  g@)r  r  r  r.  r  )r  r  r  rw  r  r  rU  Fr)  g333333r0  r(  y              ?r;  r  )r0  r   r0  r   r  )r0  r   r0  r   r0  r   )r0  r   r0  r   r0  r   r   r   r  r  )r0  r   r0  r   r   r   r4  )rF  r   r   r  r   rZ  r  r{  r   rc  r  eyeflattenr  r  rn  islicecombinations_with_replacementr?  r  rr  )	r  r  r  r  r0   threshold_range	thresholdr  rf  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)NTrE  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)r0  r   r0  r   r0  r   r0  )r0  r   r0  r   r0  r  r  r  )TFFFT)TFTFFTF)rF  r   rK  r   r?  rH  r  rI  rG  rJ  rZ  )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$   r;  r  znp.trapz removed in NumPy 2.4+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 )NTrE  r  r'  )r  r0  r;  r;  r;  rW  r  r.  r  rR  r  r  r  r  r  rT  r   r4  r<  r  )r   r   r  r   rZ  r  r  r  r{  r?  r  r
  r@  r  r  r  r  r'  s        r"   r  z#TestNPFunctions.test_np_trapz_basicB  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_basice  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 )NTrE  r  r  rU  r  rO  r  )r  rU  r  r.  rU  r  r  r  r;  r  rT  r.  r  r  )r  r.  r  r  r   rR  r4  r  r`  )
r   r   r  r   r?  rZ  r  r  r{  r  )r  r  r  r  r'  r!   s         r"   r  z%TestNPFunctions.test_np_trapz_x_basici  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 )NTrE  )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 )NTrE  r  r;  rU  r  )r0  r  r.  rU  r  r.  rR  r  r  r  r  r  r  r4  r  r  r
  r-  rS  r0  r  rT  )r   r   r  r   r  r  r
  rZ  r  expr:  rf  r   assert_almost_equalr?  )r  r  r  r  r'  rT  r!   r}  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 )NTrE  r;  r  r  r  rX  r  rU  r  r  r.  r  r  r  )
r   r   r  r   r?  rZ  r  r  r{  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)NTrE  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.  rU  r  r  r  r  r(  r  r  r  r.  $   r  rQ  zy cannot be 0DFzy cannot be a scalar)r   rK  r   rZ  r  r?  r  rI  rG  rJ  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,  rS  rY  TrE  rV   rR  )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.)rH  ZeroDivisionErrorrJ  r  rG  datarW   r  errr  r  s       r"   test_weights_zero_sumz;TestNPFunctions.test_average.<locals>.test_weights_zero_sumi  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.rH  	TypeErrorrJ  r  rG  r  s       r"   test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weightss  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_axis{  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_axis  sS    ""9- 'd&'++CSXHJ' 'r  rU  r  g      ?g      ?r0  r=   ri  )r   r  ranfr  r^  r\  rk  r   assertAlmostEqualrZ  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_average7  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 )NTrE  r<  r  r  r  r  r  r  )r(  r(  r0  r   r(  r   )r(  r
  g{Gz?gMbP?-C6?r  gư>r*  )rY  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 )NTrE  g      Y@     @@}   r<  r.  r.  r.  r  r  r0  r   r*  r(  r;  )rg  r   r   r?  rZ  r-  r=  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 )NTrE  r-  r<  r.  r  r  r   r(  r*  r;  r0  )rg  r   r   rZ  r-  r=  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 )NTrE  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?  r]  )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__r8  r  r$   r"   Foor5    s    ;r$   r<  r0  )rg  r   r   ndarrayr   r  r,  )r  r  r  r<  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 )NTrE  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 )NTrE  r0  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 )NTrE  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#  )	rK  rg  r   r   r8  r  r  r   r$  r%  s              r"   test_allclose_exceptionz'TestNPFunctions.test_allclose_exception9  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 )<NTrE  r  r  r/  r.  rY  r  r  rz  rn  )r  r0  r;  r  r  g      r;  r  r  r5  )rH  )r  ?r  r  rR  gffffff?r*  g333333"r  r  r  r  r  r  r   r  rT  Fr)  r(  r  r  r  r  r  r\  r0  r  rS  r  )r0  r;  gGz@r  )r0  r;        @r  r  )	r0  rz  r;  rL  r  r  r  r.  g      @r  rL  r  r  r0  r;  r  r  r.  rU  )g~@g<ԛ@g3@i!N  rQ  )r  r  r  )r   )rm  r   r   r  r   r  rZ  r  r{  r  r
  r?  r  rc  re  r  r   r  sinuniformrf  cosri  	ones_like)r  r  r  r  r!   ro  rp  factorr'  x0r   exactr  s                r"   test_interp_basicz!TestNPFunctions.test_interp_basicZ  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)rX  r   putr  rd  rc  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)NrQ        @r0  r.  r  g333333@r;  g      @r  rx  g@g333333@gq=
ףp?g @gQ?r  r,  )rX  scale      @g      4@g      I@g      i@r  g333333?r  rJ  )r   r  rN  rZ  rf  r  normalr\  )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 )
NTrE  i N  r   rR  r0  rQ  r  r  )
rm  r   r   r  rN  r  r  r  r{  rY  )
r  r  r  r_  ro  rp  r!   r   r  r  s
             r"   test_interp_stress_testsz(TestNPFunctions.test_interp_stress_tests1  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 )NTrE  i  r   rR  r0  rQ     r4  r  )rm  r   r   r  rN  r  rd  r
  r  r{  rP  r  r   ri  )r  r  r  r_  ro  r  r  rp  r!   r  r  s              r"    test_interp_complex_stress_testsz0TestNPFunctions.test_interp_complex_stress_testsb  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)NTrE  r  zarray of sample points is emptyr0  r;  z#fp and xp are not of the same size.rU  r  zxp must be 1Dzfp must be 1Dr  z:Cannot cast array data from complex dtype to float64 dtyper4  )rm  r   rK  r   r?  rH  r  rI  rG  rJ  rZ  r  r  r-  r  )	r  r  r  r!   ro  rp  r  r  complex_dtype_msgs	            r"   test_interp_exceptionsz&TestNPFunctions.test_interp_exceptions~  s   "T"6* 	!HHYXXb\XXb\z* 	a!R	 0c3q{{+,XXi XXq!fz* 	a!R	 4c3q{{+,YYq\!!!Q'YYq\##% 	!R	 c3q{{+,YYq\YYq\!!!Q'##% 	!R	 c3q{{+,YYq\YYq\##% 	!R	 	 	'Q[[)9:iilR''5YYq\##% 	!R	 	'Q[[)9:q	 		 		 		 		 		 	sH   ?M>MM)
M6 NNMM&)M36N NNc                 *   t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      }t	        j
                  t        j                   ddt        j                  g      }t	        j
                  ddg      }|||d} ||       t	        j
                  t        j                   d	d
t        j                  g      }t	        j
                  g d      }t	        j
                  ddg      }|||d} ||       y )NTrE  )r   r0  r  rR  r
  ?r  rx  rn  r0  r  )r   r
  ri  r0  )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 )NTrE  r0  rR  r<  r  r   r  r.  r  r   r*  )rm  r   rc  r   rZ  r	  r  r?  rW  r   r  r  r  r=  r  rN  rf  )r  r  r  rX  ro  ypincptsdecptsincresdecresinctgtdectgtr!   r'  rS  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 )NTrE  r   r0  r.  r4  r  )rm  r   r   r  r   r  )r  r  r  r!   r'  rS  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 )NTrE  r  rR  r<  r;  )rm  r   r   r  r=  r  r  rn  r  rZ  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){   ir  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,TrE  )r   r   r  r   r=  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
            r4  r  Fr0  r  r  r  r  r  c                 J    t               }| D ]  }|j                  |        |S r   r
   r?   )rA   r0   rg  s      r"   	make_listzITestNPFunctions.test_asarray.<locals>.input_variations.<locals>.make_listV  s(    F  AHHQK r$   )r(  rQ  r  r(  r  N)r   r?  rZ  r  r  )r  s    r"   r  z6TestNPFunctions.test_asarray.<locals>.input_variations;  s      HIKGOi((O((i((((2,))A,))B-''1--))B-''1-///
 I&&O,,L))/00s   C!C#c                      | di |}|rj                  ||d   u        y j                  ||d   u       t        j                  j                  ||d          j                  |j                  |d   k(         y )Nr0   r=  r  )r   r   r   ri  r=  )jittedexpect_samer  returnedr  s       r"   check_pass_throughz8TestNPFunctions.test_asarray.<locals>.check_pass_throughc  sn    ''HF3K 78s ;<

**8VC[A&/ ABr$   TrE  r0   kwsr=  rR  r<  F)
r8  r?  r   r   r  r9  r   r@  rZ  r  )	r  r  r  r  r  r  r!   r  r  s	   `        r"   test_asarrayzTestNPFunctions.test_asarray9  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$   TrE  )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 )NTrE  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)rH  r   rI  rG  rJ  )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 )Nr0  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   r0  )r
   r   r?   )r  rf  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  rg  s     r"   make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list  s(    A' Hr$   )rK  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  r;  r  r<  )r   r?  r  r.  r  r@  r  r$   r"   rO  z-TestNPFunctions.test_asfarray.<locals>.inputs  s     ((9%t++((Aq64bjj@@((Aq61277::((Aq612<<??((Aq612==@@s   DDTrE  r<  r  )
rB  r   r  r   r   r  r=  inexactrD  r?  )r  rO  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   rI  )r0   rt  nbfuncr  r  s     r"   r'  z*TestNPFunctions.test_repeat.<locals>.check  s!    ''q'(:F1g<NOr$   r0  rR  r  r  r   r;  r  )r   r0  r;  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(  Tr4  )rt  r<  )ru  r   rw  r   r   r  rZ  r?  r=  r@  uint32r  uint64r  r  r  rn  r   r  )r  r  r  array_pyfuncarray_nbfuncr'  target_numpy_valuestarget_numpy_typesrepeats_valuestarget_numpy_inputstarget_non_numpy_inputsrg  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)Nr0  r  z#negative dimensions are not allowedr(  zIThe repeats argument must be an integer or an array-like of integer dtyper;  r  z(operands could not be broadcast togetherr.  r  )Tr0   r^  )ru  r   rw  rK  rH  r  r   r  rI  rG  rJ  r   r?  )	r  r  r  r  r  r  r  r  reps	            r"   test_repeat_exceptionz%TestNPFunctions.test_repeat_exceptionA  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.@TFr0  r;  r   r  r  r.  r  y      @       @rR  )r.  r;  )r~  r   r   r?  r  r  rZ  r  r?   r  r  )
r  r  r  
test_casesr!   r|  r}  ry  np_pyfunc_defaultsnp_nbfunc_defaultss
             r"   test_selectzTestNPFunctions.test_select{  sU   	O	 hh,-hh+,hh+,. hhy!hhy!hhy!#$(* hhvhhw!#%88QC="((A3-"@!E hhw 3&1##(=qAhhrxxAq"&&!Q 789:Q>hh1aA./014a9 hhrxx!Q2661a!8 9:;<q@hhAq"&&!Q/012Q6; hhrxxAvrvvq! <=>?!Chh1fbffa34591>/

6 ))B-2!6!6v!>? 	@AAq1u~16{A>?Aq1u~16{A>?Aq1u~16{A>?Aq1u~16{A>?	@ /9 	N*Hz7##Ih
G$L$-h
G$LN	N 0!"45 28Z H 28Z H	Jr$   c                 v   t        t              }t        j                  d      }| j	                          t        j
                  d      t        j
                  g d      gt        j
                  d      t        j                  d      j                  dd      gdt        d	ft        j
                  d      t        j
                  d
      gt        j
                  dg      t        j
                  dg      gdt        dft        j
                  dg      t        j
                  d
g      gt        j
                  dgg      t        j
                  dgg      gdt        dft        j
                  d      t        j
                  d
      gt        j
                  d      t        j
                  d      gdt        d	ft        j                  t        j
                  dddt        j                  ddg            t        j
                  dddt        j                  ddg      dt        dfdgdgdgt        df|dk  j                  t              |dkD  j                  t              g||dz  gdt        df|dkD  |dkD  |dkD  |dkD  g||dz  |gdt        dfdgdz  t        j
                  dg      gdz  dt        dft        j
                  d
g      gdz  dgdz  dt        dff
D ]Q  \  }}}}}| j                  |      5 } ||||       d d d        | j                  |t        j                                S y # 1 sw Y   1xY w)NrR  Tr  r0  r  r  r  r   z/condlist arrays must be of at least dimension 1Fr;  zHcondlist and choicelist elements must have the same number of dimensionsr.  r  z"condlist must be a List or a Tuplezdefault must be a scalarz%condlist arrays must contain booleansr  r  rU  z7list of cases must be same length as list of conditionsrt  r  z items of condlist must be arraysr  z"items of choicelist must be arrays)r   r~  r   rZ  rK  r?  r  r   r  r  r-  r  r  rH  rI  rG  rJ  )	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   r0  r.  r  r	  )r
  r0   r  r4  r  M must be an integer)r   r  rH  r   rI  rG  rJ  )r  r  r  r   r  r  rM  r  s          r"   check_windowz4TestNPFunctions.test_windowing.<locals>.check_window  s    IT
I" F$Q<l''#H'EF
 $ M&&{3 #vcN#4c&:J:J6KLM# #s   	BB	r  )r*  r]  g      ,@)ppc64leaarch64r	  r;  r  r  r(  r  )r0   r4  r.  z beta must be an integer or float)r  r  r  r  r  r   r   platformmachiner  rH  r   rI  rG  rJ  )	r  r  r  r  r   r  r  r  rM  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 )NTrE  r  r  rP  r  r<  )r  r  r0  r;  r  rU  r  r  )	r  r   r   r?  r  r=  rZ  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)NTrE  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  r  rU  r  r  )r  r;  zDimensions for both inputs is 2r  r  Inputs must be array-like.)r  r   rK  rH  r  r   rZ  rI  rG  rJ  r?  r  r   setrL  s       r"   test_cross_exceptionsz%TestNPFunctions.test_cross_exceptionsG  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 )Nr0  r;  r  r.  r  r<  )r  rP  r  rU  r  )
r  r   r  r   r?  r  r=  rZ  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 productrU  r  r  r0  r;  r  r.  r  )r   r  rK  rH  r  r   r?  rI  rG  rJ  rZ  r  r   r  rp  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.  r0  r  r  r*  r(  rQ  )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   r0  r;  r   r   FBr  Br*  r  r  r1   )r   r   r0  r;  r.  r  r  )r   r0  r;  r   abf)r   r  r   rf  ) r^  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TrE  )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   r0  r   r;  r  r  r   r;  r  r1   )r  r  r<  r  r   r  )r   l            r   )r   l            r   )r   l            r   r0  )Nr0  N)r   r?  r-  rW  ro  s_r  r  
zeros_liker=  r>  r  r^  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)NTrE  r  r  zarray must be 1Dr  z#The first argument must be an array>   r   r0  r;  r  r0  z$The second argument must be a string)
rK  r   r  rH  r   r   r?  rI  rG  rJ  rp  s      r"   test_trim_zeros_exceptionsz*TestNPFunctions.test_trim_zeros_exceptions8  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 )NTrE  r  rI  )r;  r.  rU  r   rT  r;  r.  )r0  rT     rR  )FTr  )r  r   r   r?  rZ  r  r  )r  r  r  r  r0   r1   r  r  s           r"   test_union1dzTestNPFunctions.test_union1dX  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)NTrE  r  r0  r;  z.The arguments to np.union1d must be array-likeWorldr  r  r0   r1   z/For Unicode arrays, arrays must have same dtyper  rf  r  barr  rL  )
r   r  rK  rH  r   r   r?  rI  rG  rJ  rp  s      r"   test_union1d_exceptionsz'TestNPFunctions.test_union1d_exceptions|  s   "T":.! {+ 	,v'288QqE?+	,<  !	
 {+ 	,v"((Aa5/7+	,<  !	
 {+ 	$v'7#	$<  !	
 {+ 	Fv"((GW-.#s0DE	F=  !	
 {+ 	Bv"((C:&%(@A	B=  !	
 {+ 	:v"((C:&!Q(89	:=  !	
 {+ 	>v"((C:&#s(<=	>=  !	
Q	, 	,	, 	,	$ 	$	F 	F	B 	B	: 	:	> 	>sS   LL>
L(
4L5 4M64M,4MLL%(L25L?MMM$c                 0   t         } t        d      |      }| j                          t        j                  g d      t        j
                  ft        j                  g d      fg dft        j                  ddgddgg      t        j
                  fd	t        j                  ft        j                  ddgt        j                  
      ft        j                  d      j                  ddd      fg}|D ]  } || } || }| j                  ||         y )NTrE  r  r  r0  r;  r  r  )r  r  r<  r  rU  )
r  r   rK  r   r?  r  r  rZ  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)NTrE  r;  z7The argument to np.asarray_chkfinite must be array-liker  r.  z#array must not contain infs or NaNsr0  r  r  z!dtype must be a valid Numpy dtype)r   r  rK  rH  r   rI  rG  rJ  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)Nr0  r;  r   r.  r   r  r  )r  r     rR  )step   rI  )r   r?  rf  r  rZ  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)	Nr0  i     )r   r  r   r!  r+  )r   r0  r;  r  r   r  )r;  r  r  r.  r;  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  rx  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)NrS  z#The argument "p" must be array-liker0  r;  z'The argument "discont" must be a scalarr  r  z&The argument "period" must be a scalarr=   z&The argument "axis" must be an integerz*Value for argument "axis" is not supported)r   r  rK  rH  r   rI  rG  rJ  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 )NTrE  c               3      K   t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)NrR  r;  r.  r  r  r  r  r  r$   r"   r  z9TestNPFunctions.test_swapaxes_basic.<locals>.a_variationsN  sL     ))B-))B-''1--))B-''1a00s   A(A*)r  r   rc  ndimr  )	r  r  r  r  r0   r  r  r  r  s	            r"   test_swapaxes_basicz#TestNPFunctions.test_swapaxes_basicJ  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)NTrE  rS  r   'The first argument "a" must be an arrayr  z.The second argument "axis1" must be an integerz-The third argument "axis2" must be an integerr0  z)np.swapaxes: Argument axis1 out of boundsr  r;  r  z)np.swapaxes: Argument axis2 out of bounds)r  r   rK  rH  r   rI  rG  rJ  r   rZ  r  r  rL  s       r"   test_swapaxes_exceptionz'TestNPFunctions.test_swapaxes_exceptionZ  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         } t        d      |      }t        j                  d      j	                  ddddd      }d	D ]+  \  }} ||||      } ||||      }| j                  ||       - y )
NTrE  x   r0  r;  r  r  r.  ))r   r  )r0  r  )r  )r  r  )r  )r  r  )r0  r  )r  r  )r  r   r   rZ  r  r  )r  r  r  r0   r  r  r  r  s           r"   test_moveaxis_basicz#TestNPFunctions.test_moveaxis_basic  s|    "T"6*IIcN""1aAq1$
 		3FK a5H6;/C##Hc2		3r$   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                               | j                  t              5 } |t        j                  d      j                  d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   DxY w# 1 sw Y   xY w# 1 sw Y   |xY w)NTrE  rS  r   r0  r:  r  z7second argument "source" must be an integer or sequencez;third argument "destination" must be an integer or sequencez*np.moveaxis: Argument source out of boundsr  r;  r  r>  z/np.moveaxis: Argument destination out of boundsr   r   z-np.moveaxis: repeated axis in source argumentrK  z2np.moveaxis: repeated axis in destination argument)r  r   rK  rH  r   rI  rG  rJ  r   rZ  r  r  rL  s       r"   test_moveaxis_exceptionz'TestNPFunctions.test_moveaxis_exception  s   "T"6* 	!{+ 	v%A	 	?&**+	- {+ 	*v"))A,q)	* 	E  !	# {+ 	*v"))A,5)	* 	I  !	# z* 	&f"))A,1%	& 	B&**+	- z* 	@f"))A,&&q!,fh?	@ 	G&**+	- z* 	>f"))A,&&q!,ff=	> 	E&**+	- z* 	?f"))A,&&q!,fg>	? 	J&**+	-S	 		* 	*	* 	*	& 	&	@ 	@	> 	>	? 	?sS   K'K4+LL+.L.L(.L4'K14K>LLL%(L14L=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  r0  r  r;  c                 2    t        j                  | |d       S r<   r   take_along_axis)r0   rg  s     r"   	axis_nonez7TestNPFunctions.test_take_along_axis.<locals>.axis_none  s    %%a66r$   r0  r;  r<  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   rE  r0   rg  r>   s     r"   implz?TestNPFunctions.test_take_along_axis.<locals>.gen.<locals>.impl      ))!Q55r$   r   r>   rK  s   ` r"   genz1TestNPFunctions.test_take_along_axis.<locals>.gen      6 6Kr$   r  r=   )r   rZ  r  r   r?  r  r  r  rc  r7  rk  )r  r0   rG  r   rO  rg  jfuncais           r"   test_take_along_axisz$TestNPFunctions.test_take_along_axis  s    IIbM!!,/ 
	7 
	7 ((Aq63	!W 5 ) 1 1!W =	?	 r166" 	HAFEAA&B##E!RL%--22FG	Hr$   c                 .   t        j                  d      }t        j                  dt         j                        }d }dD ]S  } ||      }|j                  ||      } |||      }| j	                  ||       | j                  |j                  d       U y )N)r  r  r0  )r0  r;  r.  r<  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   rE  rJ  s     r"   rK  zLTestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen.<locals>.impl  rL  r$   rM  rN  s   ` r"   rO  z>TestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen  rP  r$   )r0  r  )r  r;  r.  )r   r  intpr  r  r  r  )r  r@   rR  rO  rg  r'  r  actuals           r"   !test_take_along_axis_broadcastingz1TestNPFunctions.test_take_along_axis_broadcasting  s    
 ggi WWYbgg.	  	6AFE}}S"-H3^F##Hf5V\\95	6r$   c                 >	   t        j                  d      j                  dd      }t        j                  ddgt         j                        }t        j
                  dt         j                        }d }| j                  t              5 }  |d	      ||       d d d        | j                  d
t        j                               | j                  t              5 }  |d      ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d      ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d       d|       d d d        | j                  dt        |j                               | j                  t              5 }  |d       |d       d d d        | j                  dt        |j                               | j                  t              5 }  |d       |t        j                  ddg             d d d        | j                  dt        |j                               t        d        }| j                  t              5 } |||d       d d d        | j                  dt        |j                               | j                  t              5 }  |d      |t        j                  ddgt         j                               d d d        | j                  dt        |j                               | j                  t              5 }  |d       ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d      |t        j
                  dt         j                               d d d        | j                  dt        |j                               | j                          y # 1 sw Y   xY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr  r;  r  r   r0  r<  r  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   rE  rJ  s     r"   rK  zJTestNPFunctions.test_take_along_axis_exceptions.<locals>.gen.<locals>.impl  rL  r$   rM  rN  s   ` r"   rO  z<TestNPFunctions.test_take_along_axis_exceptions.<locals>.gen  rP  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   rE  rJ  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   rZ  r  r?  r  r  rH  r   rI  rG  rJ  r   r  rK  )r  arr2dindices_noner   rO  rM  r^  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 )Nr0  r  r  r<  )r
  r(  皙?r  )rc  r  r  r
  rc  r  r  r*  rR  r,       @)r  r  r  )r   r  ro  r
  r?  r  r  r  r   r   r  )r  rA   ri  posinfsneginfsr  r  valuer  r  r  r  r  s                r"   test_nan_to_numzTestNPFunctions.test_nan_to_num2  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
  rc  )r(  r,  rd  Fr   r0  r;  r  r  )r  y     @@      ?y      ?     @)r   r  r   r?  r  r
  r  ro  )r  r  r!   r  	x_complexs        r"   test_nan_to_num_copy_falsez*TestNPFunctions.test_nan_to_num_copy_falseU  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  rI  rG  rJ  rp  s      r"    test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argumenty  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)Nr0  r;  r  r  r  r  r  r  r  r$   r"   rO  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs  sz     ((Aa5/1$$((QqE1Q%=)2--))A,&&w/22a&!)O((2,/!s   BB)r  r   r  r  )r  rx  r,  ry  r  rO  ra   r   s           r"   test_diagflat_basicz#TestNPFunctions.test_diagflat_basic  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)NrS  #The argument "v" must be array-like)r  r   rK  rH  r   rI  rG  rJ  rL  s       r"   test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exception  se    V!{+ 	v%L	;&**+	-	 	s   	A..A7c                 ^   t         }t        |      }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |ddgd       d d d        | j                  dt        |j                               | j                  t              5 } |ddgd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)NrS  r;  rs  r0  z#The argument "k" must be an integerr  )r  r   rK  rH  r   rI  rG  rJ  rL  s       r"   test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exception  s   V!{+ 	v%O	;&**+	- {+ 	!v1a&% 	!;&**+	- {+ 	v1a&#	;&**+	-	 	
	! 	!
	 	s#   
DDD#DD #D,c               #     K   t        j                  t        j                        t        j                  t        j                        f dgt        j                  t        j                        f t        j                  t        j                        dgf dgdgf dgdgf ddgdgf g dddgf g dg df ddgddgf g dg df g dddgf g dg d	f g dg d
f g dg df y w)Nr0  r;  r  r;  r;  r  r  r;  r  r  r   r  r  r  )rU  r.  r  )r0  r  r;  r  rM  r  r  r$   r"   _setxor_arrayszTestNPFunctions._setxor_arrays  s     u}}-u}}-/ 	/c4??5==111ooemm,qc11cA3hcA3h!fqck!Q""!fq!fn""QF"" O++""...s   DDc                 |     t         t               fd} j                         D ]  \  }} |||        y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | |      } | |      }j                  ||d|  d|        y Nzar1=z, ar2=r  r  r  r
   r  ar1ar2r  r  r  r  r  s       r"   r'  z.TestNPFunctions.test_setxor1d_2.<locals>.check  c    #t$3i#t$3i c*HC%C##HccU&7N#Or$   )r  r   rz  r  r'  r0   r1   r  r  s   `   @@r"   test_setxor1d_2zTestNPFunctions.test_setxor1d_2  s>    !	O		P '') 	DAq!QK	r$   c                 >    t         t              d fd	} j                         D ]n  \  }} |||       t        t	        j
                  |            t        |      k(  s:t        t	        j
                  |            t        |      k(  se |||d       p y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | ||      } | ||      }j                  ||d|  d|        y r}  r~  r  r  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$   Trt  )r  r   rz  r>  r   r  r  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?  rK  rH  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)Nr0  r;  r  rx  r  ry  r  )rU  r.  r  r  r0  r;  r  r  )r;  r  r  r  r;  r0  r.  r  r  r  )r  r.  r;  )r
   r  r	   r=  r   r?  rZ  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 r}  r~  r  s       r"   r'  z/TestNPFunctions.test_setdiff1d_2.<locals>.check  r  r$   )r  r   r  r  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 r}  r~  r  s        r"   r'  z/TestNPFunctions.test_setdiff1d_3.<locals>.check  r  r$   Trt  )r  r   r  r>  r   r  r  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?  rK  rH  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)Nr0  r;  r  rx  r  ry  r  rT  r.  r  )r
   r  r	   r=  r   rZ  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znp.in1d removed in NumPy 2.4+c                 |     t         t               fd} j                         D ]  \  }} |||        y )Nc                     t        | t              rt        |       } t        |t              rt        |      } | |      } | |      }j                  ||d|  d|        y r}  r~  r  s       r"   r'  z*TestNPFunctions.test_in1d_2.<locals>.checkQ  r  r$   )r  r   r  r  s   `   @@r"   test_in1d_2zTestNPFunctions.test_in1d_2L  s>    	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 r}  r~  r  s        r"   r'  z+TestNPFunctions.test_in1d_3a.<locals>.checkb  r  r$   Tr  rt  )r  r   r  r>  r   r  r  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 r}  r~  r  r  r  r  r  r  r  r  s        r"   r'  z+TestNPFunctions.test_in1d_3b.<locals>.checku  sg    #t$3i#t$3i c62HCf-C##HccU&7N#Or$   r  Trt  )r  r   r  r  s   `   @@r"   test_in1d_3bzTestNPFunctions.test_in1d_3bp  M    	O		P %%' 	%DAq!Qu%!Qt$	%r$   c                 t    t         t              d fd	} j                         D ]  \  }} |||d        |||d       t        t	        j
                  |            t        |      k(  sGt        t	        j
                  |            t        |      k(  sr |||dd        |||dd        y )NFc                     t        | t              rt        |       } t        |t              rt        |      } | |||      } | |||      }j                  ||d|  d|        y r}  r~  	r  r  r9   r  r  r  r  r  r  s	         r"   r'  z*TestNPFunctions.test_in1d_4.<locals>.check  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  r  s   `   @@r"   test_in1d_4zTestNPFunctions.test_in1d_4  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)	Nr0  r;  Fr  Tc                 2    t        j                  | ||      S Nkindr  r0   r1   r  s      r"   np_in1d_kindz6TestNPFunctions.test_in1d_errors.<locals>.np_in1d_kind      771ad++r$   r  table)r  r   r   r?  r  rK  rH  r   )r  r  r  r0   r1   r!   r  s          r"   test_in1d_errorsz TestNPFunctions.test_in1d_errors  s   	O	HHaSMHHaSMaO288UG#45!{+ 	*aE5)	*{+ 	*aE5)	*{+ 	-eQe,	-{+ 	-ae,	- 
	, 
	, {+ 	*AD)	*{+ 	-AG,	- 	-	* 	*	* 	*	- 	-	- 	-	* 	*	- 	-H   F;F$FF(F4/G FFF%(F14F= G	c                 N    t         r| j                         S | j                         S r   )r   _isin_arrays_reduced_isin_arrays_full)r7  s    r"   _isin_arrayszTestNPFunctions._isin_arrays  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)Nr0  r;  r  r  r  r/   s     r"   r  z$TestNPFunctions._isin_arrays_reduced  sm      cA3hcA3h!fq!fn IIaL  !Q(HHaVd
rF  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)r0  r   r<  rA  r  r0  r;  r  rx  r  rT  r.  r  r  )r.  r  rR  rW  r  rI  )rR  rT  r  r4  )r     r  rU  r  )TFF)r0  rR  r  r  )r  r  r0  r;  )r  r  r0  r  )r.  r  r.  r  r  r  r  r  r  r.  r;  r0  r.  r.  )r.  r.  r  )r.  r  r0  r0  r;  )r;  r  r  r  r0  r.  TFr  )r   r   r0  r0  )ir      )r  r   r$  
AllInteger)r   r   r   r   )r
   r  r	   r=  r   r  r  rZ  r  r  r?  r,  r.  r  r_  uint16r  signedinteger	typecodes)r0   r1   r=  arempty_arraymultdtype1dtype2is_dtype2_signedr  r  s              r"   r  z!TestNPFunctions._isin_arrays_full  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 r}  r~  r  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  r  s   `   @@r"   test_isin_2zTestNPFunctions.test_isin_2  s>    	O		P %%' 	DAq!QK	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 r}  r~  r  s        r"   r'  z+TestNPFunctions.test_isin_3a.<locals>.check2  sg     c=9H#t$3i#t$3iCm4C##HccU&7N#Or$   r0  Tr  rt  )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 r}  r~  r  s        r"   r'  z+TestNPFunctions.test_isin_3b.<locals>.checkN  sg     c62H#t$3i#t$3iCf-C##HccU&7N#Or$   r  Trt  )r  r   r  r  s   `   @@r"   test_isin_3bzTestNPFunctions.test_isin_3bI  r  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 r}  r~  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  Tr0  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)	Nr0  r;  Fr  Tc                 2    t        j                  | ||      S r  r  r  s      r"   np_isin_kindz6TestNPFunctions.test_isin_errors.<locals>.np_isin_kind  r  r$   r  r  )r  r   r   r?  r  rK  rH  r   )r  r  r  r0   r1   r!   r  s          r"   test_isin_errorsz TestNPFunctions.test_isin_errorsy  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  r0  r;  r  )r  r  r;  r  r  r0  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_manyways  s    =)m,*%
N+HH_%HH*+Aa#!Q$%B'r$   )NNFNr   rs  (  r9  r:  r;  __doc__r  r!  rC  rN  rp  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r)  r/  r3  r6  r;  r=  rB  rF  rY  rj  rq  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/  r2  r7  r9  r<  r?  rC  rF  rH  rJ  rL  rQ  rU  rY  r[  ri  rl  rw  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r#  r%  r)  r,  r/  r1  r9  r@  rB  rI  rM  rP  rR  rU  rk  rq  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr   r  skipIfr   rM  r  r  rP  r  r  skipr  r  rV  r  r  rY  r  r  r  r  r*  r0  r2  r>  r@  rB  rD  rF  rU  rY  r  ra  r   rd  rg  rj  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  r2  r4  r8  r;  r?  rB  rS  rY  ra  rh  rk  rn  rq  rt  rv  rz  r  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  %  s   - 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 X__]f,.NO)1   P D X%89: :: X__]f,.NO+5 8! P8!t X%89@ :@ X__]f,.NOX]]123;  3 P X%89< :< X__]f,.NO,7 +# P+#Z X%89@ :@ X__]f,.NO.; / P/0 X%89E :E X__]f,.NO3@ *D P*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3"1-fH.6,@"D!3F"
H-A"	--* / /& "$& 7 7( "$& / /  X__]f,.MN O  X__]f,.MN0 O0$ X__]f,.MN% O%" X__]f,.MN= O=( X__]f,.MN- O-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 r1  )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  )r9  templater  compileglobals)r  basefunctytystrbasestrfuncstrdcts          r"   create_harcoded_variantz/TestNPMachineParameters.create_harcoded_variant  sQ     ##--5'"22WWj&179cB5zr$   )r0  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_MachAr  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  bitsr0  TrE  r[  z(Unknown attribute 'machar' of type finfor  )r   r  r=  r  r@  r'  r   r  rH  r   r   r   rI  rG  rJ  r  r  )r  r	   r  r  hc_funcrM  r  r  s           r"   
test_finfoz"TestNPMachineParameters.test_finfo  s   RZZr}}EN 	'BJJueRU+22288R@GJJw&	' {+ 	v&C&|4E"I	 9c3v//01 ##% 	&C&u-E"((1+	 		 		 	s   ,E
2EEEc                 T   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  g}d}|D ]Q  }| j                  t        | |d             | j                  t         j                  |      }| j                  ||       S | j                         5   t        d      t              } |t        j                  d             d d d        y # 1 sw Y   y xY w)N)r  r@  r  r0  TrE  r  )r   r.  r  r  r  r_  r  r  r  r'  r   r  r  r   r=  )r  r	   r  r  r  r  s         r"   
test_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$   r0  z`np.MachAr` is deprecatedr   )
warningscatch_warningssimplefilterfilterwarningsr   r   r  r>  rI  rG  )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)r9  r:  r;  r  r'  r  r  r  r   r  r  r  r  r   run_test_in_subprocessr#  r  r$   r"   r  r    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)r9  r:  r;  r-  r  r$   r"   r&  r&    s    Jr$   r&  __main__rt  )Nr   r   )r  r  F)rS  r  r  )r  )re  )r   N)NF)NTFN)NT)NN)fb)Nr  g-DT!@)Tr*  NNr  )rn  r9  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?  r=  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  r&  r9  mainr  r$   r"   <module>r<     s-           # #  " 0 D ' ( ': : :
   /-,%(!./3"$-%.1+$$$)(!#$%(!#$%(' #,%-& jj '&""45 !)<+"*6'8"/N",-6(06(0~e(ox ~e(BL\>h \>~J( J( zHMMO r$   