
    wi                       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/ ZHd0 ZId1 ZJd2 ZKd3 ZLd4 ZMdd6ZNd7 ZOdd8ZPd9 ZQdd;ZRdd<ZSdd=ZTd> ZUd? ZVd@ ZWddBZXddDZYdE ZZddFZ[ddGZ\ddHZ]dI Z^ddJZ_dK Z`ddLZaddMZbddNZcdO ZdddPZedQ ZfddRZgdS ZhddTZiddUZjddVZkdW ZlddXZmddYZndZ Zod[ Zpdd]Zqdd^Zrdd_Zsd` Ztda Zudb Zve
jw        fdcZxdd Zyde Zzdf Z{dg Z|dh Z}di Z~dj Zdk Zdl Zdm ZddnZddoZdp Zdq Zdr ZddsZdt Zdu Zdv Zdw Zdx Zdy Zdz Zdd|Zd} Zd~ Zd Zd ZddZdd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)j                     dS dS )    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    m/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/numba/tests/test_np_functions.pyr   r          71::    c                 *    t          j        |           S r   r   angler    s    r"   angle1r(   !       8A;;r$   c                 ,    t          j        | |          S r   r&   )r!   degs     r"   angle2r,   %   s    8As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$   Fc                 .    t          j        | ||          S r   r4   r0   r1   assume_uniques      r"   intersect1d_3r:   1   s    >!Q...r$   c                 0    t          j        | ||          S Naxis)r   append)arrvaluesr>   s      r"   r?   r?   5   s    9S&t,,,,r$   c                 .    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    9S#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       71a==r$   c                 *    t          j        |           S r   r   bincountrJ   s    r"   	bincount1rS   I       ;q>>r$   c                 .    t          j        | |          S )NweightsrQ   )r0   ws     r"   	bincount2rY   M   s    ;q!$$$$r$   c                 .    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                 0    t          j        | |d          S )Nleftsider^   r`   s     r"   searchsorted_leftrg   Y   s    ?1af----r$   c                 0    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    9;;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       9Q<<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$   h㈵>:0yE>c                 2    t          j        | ||||          S r   )r   iscloser0   r1   rtolatol	equal_nans        r"   r   r      s    :aD$	2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          8T?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    8T?!!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$   2   c                 0    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                 0    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          8Aq>>r$   c                 0    t          j        | ||          S r<   )r   array_splitr0   indicesr>   s      r"   r   r      s    >!W40000r$   c                 0    t          j        | ||          S r<   )r   splitr   s      r"   r   r      s    8AwT****r$   c                 ,    t          j        | |          S r   )r   vsplitr0   
ind_or_secs     r"   r   r          9Q
###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$   validc                 0    t          j        | ||          S Nmode)r   	correlater0   ra   r   s      r"   r   r      s    <14((((r$   fullc                 0    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    6!99r$   c                 ,    t          j        | |          S r   r   r   Ms     r"   tri_n_mr          6!Q<<r$   c                 ,    t          j        | |          S r   r   r   r   s     r"   tri_n_kr      r   r$   c                 .    t          j        | ||          S r   r   r   r   r   s      r"   	tri_n_m_kr      s    6!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                 .    t          j        | |          S Nr   r   rM   r   s     r"   tril_indices_n_mr          ?1""""r$   c                 .    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                 .    t          j        | |          S r   r  r   s     r"   triu_indices_n_mr    r   r$   c                 .    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                 .    t          j        | ||          S r   )r   vanderr!   r   
increasings      r"   r"  r"  -  s    9Q:&&&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$   Tc                 2    t          j        | ||||          S r   )r   cov)r   yrowvarbiasddofs        r"   r,  r,  9  s    6!Qd+++r$   c                 .    t          j        | ||          S r   )r   corrcoefr!   r-  r.  s      r"   r2  r2  =  s    ;q!V$$$r$   c                 .    t          j        | ||          S r   )r   ediff1d)aryto_endto_begins      r"   r5  r5  A  s    :c68,,,r$   c                 ,    t          j        | |          S r   )r   roll)r0   shifts     r"   r:  r:  E  s    71er$   c                 *    t          j        |           S r   r   asarrayrJ   s    r"   r>  r>  I      :a==r$   c                 .    t          j        | |          S Ndtyper=  r0   rC  s     r"   asarray_kwsrE  M  s    :au%%%%r$   c                 .    t          j        | |          S rA  r   asfarrayrD  s     r"   rH  rH  Q  s    ;q&&&&r$   c                 *    t          j        |           S r   rG  rJ   s    r"   asfarray_default_kwargrJ  U  rT   r$   c                 ,    t          j        | |          S r   )r   extract	conditionr@   s     r"   rL  rL  Y  s    :i%%%r$   c                 *    t          j        |           S r   r   trapzr-  s    r"   np_trapzrS  ]  r)   r$   c                 ,    t          j        | |          S r   rP  r-  r!   s     r"   
np_trapz_xrV  a  r   r$   c                 .    t          j        | |          S NdxrP  r-  rZ  s     r"   np_trapz_dxr\  e  s    8A"r$   c                 .    t          j        | ||          S r   rP  r-  r!   rZ  s      r"   np_trapz_x_dxr_  i  s    8Aq"r$   c                 *    t          j        |           S r   r   	trapezoidrR  s    r"   np_trapezoidrc  m  rv   r$   c                 ,    t          j        | |          S r   ra  rU  s     r"   np_trapezoid_xre  q      <1r$   c                 .    t          j        | |          S rX  ra  r[  s     r"   np_trapezoid_dxrh  u  s    <b!!!!r$   c                 .    t          j        | ||          S r   ra  r^  s      r"   np_trapezoid_x_dxrj  y  s    <1b!!!r$   c                 2    t          j        | ||||          S r   )r   allcloser   s        r"   np_allcloserm  }  s    ;q!T4333r$   c                 0    t          j        | ||          S )Nr>   rW   )r   average)r0   r>   rW   s      r"   
np_averagerq    s    :adG4444r$   c                 .    t          j        | ||          S r   )r   interpr!   xpfps      r"   rs  rs    s    9QBr$   c                 ,    t          j        | |          S r   )r   repeatr0   repeatss     r"   	np_repeatr{    s    9Q   r$   c                 P    t          j        |                               |          S r   )r   r>  rx  ry  s     r"   array_repeatr}    s    :a==(((r$   c                 0    t          j        | ||          S )N)defaultr   select)condlist
choicelistr  s      r"   	np_selectr    s    9Xz7;;;;r$   c                 ,    t          j        | |          S r   r  )r  r  s     r"   np_select_defaultsr    s    9Xz***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    r?  r$   c                 *    t          j        |           S r   )r   hanningr  s    r"   
np_hanningr    r?  r$   c                 ,    t          j        | |          S r   )r   kaiser)r   betas     r"   	np_kaiserr    s    9Qr$   c                 ,    t          j        | |          S r   )r   crossr/   s     r"   np_crossr    r   r$   fbc                 ,    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_chkfiniterD  s     r"   np_asarray_chkfiniter    s    5)))r$   -DT!@c                 2    t          j        | |||          S Nperiodr   unwrap)pdiscontr>   r  s       r"   r  r    s    9Qf5555r$   c                 *    t          j        |           S r   r  )r  s    r"   unwrap1r    r~   r$   c                 .    t          j        | |          S r  r  )r  r  s     r"   unwrap13r    s    9Qv&&&&r$   c                 0    t          j        | ||          S )Nr  r  r  )r  r  r  s      r"   	unwrap123r    s    9Qvw7777r$   c                 
    || v S r    )r0   keys     r"   array_containsr    s    !8Or$   c                 .    t          j        | ||          S r   )r   swapaxes)r0   a1a2s      r"   r  r    s    ;q"b!!!r$           c                 4    t          j        | ||||          S )Ncopynanposinfneginf)r   
nan_to_num)Xr  r  r  r  s        r"   r  r    s    =3vfMM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                 .    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    rf  r$   c                 .    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                 0    t          j        | ||          S Nr9   r  r8   s      r"   
np_in1d_3ar        71a}5555r$   c                 0    t          j        | ||          S Ninvertr  r0   r1   r  s      r"   
np_in1d_3br  	      71a''''r$   c                 0    t          j        | |||          S r   r  r0   r1   r9   r  s       r"   	np_in1d_4r        71a///r$   c                 ,    t          j        | |          S r   r   isinr/   s     r"   	np_isin_2r    rO   r$   c                 0    t          j        | ||          S r  r  r8   s      r"   
np_isin_3ar    r  r$   c                 0    t          j        | ||          S r  r  r  s      r"   
np_isin_3br    r  r$   c                 0    t          j        | |||          S r   r  r  s       r"   	np_isin_4r    r  r$   c                   r    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/d0 Z0d1 Z1d2 Z2d3 Z3d4 Z4dd5Z5d6 Z6d7 Z7d8 Z8d9 Z9d: Z:d; Z;d< Z<d= Z=d> Z>e?d?             Z@d@ ZAdA ZBdB ZCdC ZDdD ZEdE ZFdF ZGdG ZHdH ZIddJZJdK ZKdL ZLdM ZMdN ZNdO ZOdP ZPdQ ZQdR ZRdS ZSdT ZTdU ZUdV ZVdW ZWdX ZXdY ZYdZ ZZd[ Z[d\ Z\d] Z]d^ Z^d_ Z_d` Z`da Zadb Zbdc Zcdd Zdde Zedf Zfdg Zgdh Zhdi Zidj Zjdk Zkdl Zldm Zmdn Zneodo             Zpdp Zqeodq             Zreodr             Zseods             Zteodt             Zudu Zveodv             Zweodw             Zxeodx             Zyeody             Zzdz Z{d{ Z|d| Z}d} 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 ej        ed          d             ZefdZ ej        ed          d             ZefdZ ej        ed          d             Z ej        d          efd            Z ej        ed          d             ZefdZ ej        ed          d             ZefdZ ej        ed          d             ZefdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej        eoed          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed             Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ Zdۄ Ze?d܄             Zd݄ Zdބ Zd߄ Ze?d             Zd Zd Zd Ze?d             Zd Zd Zd Zd Zd Zed             Ze?d             Ze?d             Zd Zed             Zed             Zed             Zd Zd Z xZS )TestNPFunctionsz,
    Tests for various Numpy functions.
    c                     t          t          |                                            t          j                            d          | _        d S )N*   )superr  setUpr   randomRandomStaternd)self	__class__s    r"   r  zTestNPFunctions.setUp&  s:    ot$$**,,,9((,,r$   NFc           
      r   t          ||          D ]\  }	}
|dgx}}t          ||          D ]\  }} t          |	f|z             |          } ||
g|R  } ||
g|R  }	 |	j        }n# t          $ r |	}Y nw xY w|t          j        t          j        fv rdnd}d|
d|} | j        ||f||||d| dS )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   rC  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*  sf   0 '8,, 	C 	CFB&68T9 ?!$%5!G!G C C-bUV^--f55eB''''!6"-u--- XFF%      FFF  "emU_%EEE !%  68RR>''X C-1,/<O07	C C <B	C C C CC	C 	Cs   !A))A87A8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 |D             } |||           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 |D             } |||d	
           dS )zv
        Tests the sinc() function.
        This test is purely to assert numerical computations are correct.
        Tepsc                 .     j         | |fd| d S )N)r  r  )r'  )r  r  r  isozr  r  tols      r"   checkz(TestNPFunctions.test_sinc.<locals>.checks  s@    DN67H %/3S% %#% % % % %r$   )
      ?      r               ?         g#B;g#Br   rB  c                 ,    g | ]}t          |          S r  r   .0ra   s     r"   
<listcomp>z-TestNPFunctions.test_sinc.<locals>.<listcomp>      ///6!99///r$   )      ?                                      r=                ?y                    ?                            ?      ?                  @      @            y#B;        y#B        y        #B;y        #B   )ulpsc                 ,    g | ]}t          |          S r  r6  r7  s     r"   r9  z-TestNPFunctions.test_sinc.<locals>.<listcomp>  r:  r$   N)
r   r   r	   float64r  lenr   array
complex128r  )	r  r-  r  
real_typesr  complex_typesr+  r  r,  s	   `     @@@r"   	test_sinczTestNPFunctions.test_sincW  s     	% 	% 	% 	% 	% 	% 	% 	% IHH(:u}oo!M5=9 	 HZ @1 DEgx    HXRZ8889//h///gx      ,B%*++$0@A 	  3x==C4F4F#F#JKgxa(((( HXR];;;<//h///gxa((((((r$   c                 8   t           } t          d          |          }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTnopythonstrz+Argument "x" must be a Number or array-like)r   r   assertRaisesr   assertInrR  	exceptiondisable_leak_checkr  r  r#  raisess       r"   test_sinc_exceptionsz$TestNPFunctions.test_sinc_exceptions  s    "T"""6**{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- 	!!!!!   AAAc                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3   l  K   t          j        dd          } d}| |fV  t          j        d          }d}||fV  t          j        dg          }d}d}||fV  ||fV  t          j        g           }||fV  t          j        ddg          }|dfV  ||fV  t           j                            d           t           j                            d          }	t           j                            d           t           j                                        }
|	d	         }|	|
fV  |	|fV  |	                    t           j                  }||d	         fV  ||
fV  t           j                            d           t           j        	                    dd
t           j
                  }|dfV  |dfV  d S )N
   r            TFrE  r      )sizerC  r3     )r   aranger>  rJ  r  seedrandviewrK  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(NNN)A,,CCs(NNN:rd++LDE$$$$%%%%
2IU"""" xu..HD.   C-INN1	r**IINN1Y^^%%F!!IV####Y&&&&"66Jjm++++f$$$$INN1y(("BH(EEHA+B,r$   TrP  )r  r   r  )r  rx  r  r#  r@   r  r%  receiveds           r"   test_containszTestNPFunctions.test_contains  s    +	 +	 +	Z  "T"""6** 	8 	8HCvc3''HuS#H##Hh7777		8 	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 |D             } |||           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} |||           dS )zw
        Tests the angle() function.
        This test is purely to assert numerical computations are correct.
        c                                          | |           ddg}t          j        fgt          |          z  }                     | |||           d S )NTF)r  r  )r'  r	   bool_rI  )r  r  xtra_values
xtra_typespyfunc1pyfunc2r  s       r"   r-  z)TestNPFunctions.test_angle.<locals>.check  sm    NN7GX666"H-K ;.)C,<,<<JNN7GX,6+6  9 9 9 9 9r$   )r.  r/  r  r0  r1  r2  r3  r4  r   rB  c                 ,    g | ]}t          |          S r  r6  r7  s     r"   r9  z.TestNPFunctions.test_angle.<locals>.<listcomp>  r:  r$   )r;  r<  r=  r=  r>  y             r?  r@  rA  rB  rC  rD  N)r(   r,   r   r	   rH  r  rI  r   rJ  rK  r  )r  r-  r  rL  r  rM  r  r  s   `     @@r"   
test_anglezTestNPFunctions.test_angle  s   
 	9 	9 	9 	9 	9 	9 	9 :99(:u}oo!M5=9 	 HZ @1 DEgx    HXRZ8889//h///gx   A A A ,B%*++$0@A 	  3x==C4F4F#F#JKgx    8H%%%<E$%%%*:; 	 	gx     r$   c                    d }|}g d}g d}t          ||          D ]a\  }}t          j        |g|          } t          d          |          } ||          }	 ||          }
|                     |	|
           bd S )Nc                 8    t          j        |           }|j        S r   )r   r'   rC  )r!   rs     r"   numba_anglez;TestNPFunctions.test_angle_return_type.<locals>.numba_angle
  s    A7Nr$   )r.  r/  r;  rD  )f4f8c8c16rB  TrP  )r  r   rJ  r   assertEqual)r  r  r  r  r  valtypr!   r#  r%  r$  s              r"   test_angle_return_typez&TestNPFunctions.test_angle_return_type  s    	 	 	 ...+++Hg.. 	, 	,HC#c***A&C&&&v..EvayyH%((CXs++++	, 	,r$   c                 8   t           } t          d          |          }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTrP  helloz0Argument "z" must be a complex or Array[complex])r(   r   rS  r   rT  rR  rU  rV  rW  s       r"   test_angle_exceptionsz%TestNPFunctions.test_angle_exceptions  s    "T"""6**{++ 	vE'NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	H&*++	- 	- 	- 	!!!!!rZ  c                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3     K   t          j        g           t          j        g           fV  t          j        ddg          t          j        ddg          fV  t          j        g           t          j        dg          fV  t          j        d                              dd          } d| d         d<   t          j        d                              dd          | fV  | | fV  dV  dV  dV  d	V  d
V  dV  dV  dV  d S )Nr   rE  r]  r3     r   rE     r  rE  rE  )r  rE  )TTTF)TrE  )Tr   )Fr   r   rJ  rd  reshaper    s    r"   arraysz0TestNPFunctions.test_array_equal.<locals>.arrays$  s,     (2,,,,,,(Aq6""BHaV$4$44444(2,,!----	"%%a++AAaDG)B--''1--q0000Q$JJJ&&&&JJJJJJMMMMMMNNNNNr$   TrP  )r.   r   r  r  r  r  r#  r@   rF   r%  r$  s           r"   test_array_equalz TestNPFunctions.test_array_equal#  s    	 	 	" "T"""6** 	3 	3HCvc3''H%S//C##Hc2222	3 	3r$   c                 ^   t           } t          d          |          }|                     t                    5 } |t	          j        d                              dd          d            d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTrP     r     z3Both arguments to "array_equals" must be array-like)
r.   r   rS  r   r   rd  r  rT  rR  rU  rW  s       r"   test_array_equal_exceptionz*TestNPFunctions.test_array_equal_exception=  s    "T"""6**{++ 	8vE")E""**1a00$777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8A !!	
 	
 	
 	
 	
s   3A::A>A>c                 X   d }t           } t          d          |          } |            D ]{\  }}t          |t                    rt	          |          }t          |t                    rt	          |          } |||          } |||          }|                     ||           |d S )Nc               3     K   t          j        t          j                  t          j        t          j                  fV  dgt          j        t          j                  fV  t          j        t          j                  dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  ddgddgfV  g dg dfV  g dg dfV  g dg dfV  d S 	Nr   rE  r   rE  rE  r  r3     r   rE  rE  r  r  r   r3  )r3  r3  r  r   rE  )rE  r   r  r  r  r   r3  r
   
empty_listr	   rH  r  r$   r"   r  z2TestNPFunctions.test_intersect1d_2.<locals>.arraysJ  5     ?5=11?5=113 3 3 3#tu}555555/%-001#5555#s(NNN#s(NNNa&1#+))aV####a&1a&.   ))YYY&&&& ,,////!//#8#8#8888888r$   TrP  )r6   r   
isinstancelistr
   r  r  r  r  r#  r0   r1   r%  r$  s           r"   test_intersect1d_2z"TestNPFunctions.test_intersect1d_2H  s    	9 	9 	9  "T"""6**FHH 		3 		3DAq !T"" GG!T"" GGva||H%1++C##Hc2222		3 		3r$   c                    d }t           } t          d          |          } |            D ]\  }}t          |t                    rt	          |          }t          |t                    rt	          |          } |||d          } |||d          }|                     ||           t          t          j        |                    t          |          k    rdt          t          j        |                    t          |          k    r2 |||d          } |||d          }|                     ||           d S )Nc               3     K   t          j        t          j                  t          j        t          j                  fV  dgt          j        t          j                  fV  t          j        t          j                  dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  ddgddgfV  g dg dfV  g dg dfV  g dg dfV  d S r  r  r  r$   r"   r  z2TestNPFunctions.test_intersect1d_3.<locals>.arraysj  r  r$   TrP  Fr  )	r:   r   r  r  r
   r  rI  r   uniquer  s           r"   test_intersect1d_3z"TestNPFunctions.test_intersect1d_3h  sU   	9 	9 	9  "T"""6**FHH 	7 	7DAq!T"" GG!T"" GGva%888H%1E222C##Hc22229Q<<  CFF**s29Q<</@/@CFF/J/J!6!Qd;;;eAq555''#666	7 	7r$   c                 *   t           }t          |          }t          j        dg          }t          j        dg          }|                                  |                     t                    5   |||d           d d d            n# 1 swxY w Y   |                     t                    5   |d|d           d d d            n# 1 swxY w Y   |                     t                    5   ||dd           d d d            d S # 1 swxY w Y   d S Nr   rE  fooT)r:   r   r   rJ  rV  rS  r   r  	np_pyfunc	np_nbfuncr0   r1   s        r"   test_intersect1d_errorsz'TestNPFunctions.test_intersect1d_errors     !	OO	HaSMMHaSMM!!!{++ 	# 	#IaE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#{++ 	& 	&IeQ%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&{++ 	& 	&Ia%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&6   /B		BB.CCC-DDDc                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3     K   t          j        g           d fV  t          j        d          d fV  t          j        d          d fV  t          j        dt           j                  dfV  t          j        d                              ddd          d fV  t          j        d                              dd          dfV  t          j        d                              dd          d	fV  d S )
Nr]  rB  r   <   r  r  r3  r  r   )r   rJ  zerosrd  onesr  r  r  r$   r"   r  z2TestNPFunctions.test_count_nonzero.<locals>.arrays  s      (2,,$$$$(2,,$$$$)B--%%%%'"BH---q0000)I&&..q!Q77====)E""**1a00!3333)E""**1a00!333333r$   TrP  )rC   r   r  )r  r  r  r#  r@   r>   r%  r$  s           r"   test_count_nonzeroz"TestNPFunctions.test_count_nonzero  s    	4 	4 	4 "T"""6** 	3 	3ICvc4((H%T""C##Hc2222	3 	3r$   c                     d }t           } t          d          |          } |            D ]6\  }}} ||||          } ||||          }|                     ||           7d S )Nc               3     K   dV  t          j        d          dd fV  t          j        d          t          j        d          d fV  t          j        d                              dd          t          j        d          d fV  t          j        g dg dg          t          j        g dg          d	fV  t          j        g dg dg          } | | d
fV  d S )N)rE  rE  Nr]  r  r3  rE  r  r  r3  r_  r     	   r   r   r   rd  r  rJ  r  s    r"   r  z.TestNPFunctions.test_np_append.<locals>.arrays  s      )B--D(((()B--1t3333)B--''1--ry||TAAAA(IIIyyy122BHiii[4I4I1LLLL(IIIyyy122CsA+r$   TrP  )r?   r   r  )	r  r  r  r#  r@   rF   r>   r%  r$  s	            r"   test_np_appendzTestNPFunctions.test_np_append  s    	 	 	 "T"""6**$fhh 	3 	3NCdvc3--H%S$''C##Hc2222	3 	3r$   c                 @   t           } t          d          |          }t          j        g dg dg          }t          j        g dg          }d}|                     t
                    5 } |d ||           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } ||d |           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |||d	
           d d d            n# 1 swxY w Y   |                     dt          |j                             | 	                                 d S )NTrP  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   rJ  rS  r   rT  rR  rU  rV  )r  r  r#  r@   rA   r>   rX  s          r"   test_np_append_exceptionsz)TestNPFunctions.test_np_append_exceptions  s]   "T"""6**h			999-..999+&& {++ 	&vE$%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&9 !!	
 	
 	
 {++ 	#vE#tT"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#= !!	
 	
 	
 {++ 	)vE#vC((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	): !!	
 	
 	

 	!!!!!s6   .BBBC//C36C3<EEEc                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3   &  K   g ddfV  g dddgfV  t          j        d          dfV  t          j        d          dfV  t          j        d          g dfV  t          j        d          g dfV  t          j        d                              dd	d
          dfV  t          j        d                              dd	d
          g dfV  g dt          ddd          fV  t          j        d          t          d          fV  d S )Nr   rE  r  r  r3  r  rE  r]  )r  r3  r_  )rE  r  r  r3  r  r  r3  )r3  r     r  r   rE  r  r  r   )r   rd  r  slicer  r$   r"   r  z+TestNPFunctions.test_delete.<locals>.arrays  sD      "//1$$$$!//Aq6)))))B--"""")B--####)B--****)B------)I&&..q!Q77::::)I&&..q!Q77GGGG,,aA....)B--r******r$   TrP  )rE   r   r  r  s           r"   test_deletezTestNPFunctions.test_delete  s    	+ 	+ 	+( "T"""6** 	3 	3HCvc3''H%S//C##Hc2222	3 	3r$   c                    t           } t          d          |          }|                                  |                     t                    5 } |ddgd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          g d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd	           d d d            n# 1 swxY w Y   |                     d
t          |j                             |                     t                    5 } |ddgd	           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTrP  r   rE  gQ	@zobj should be of Integer dtyper]  )g      @gffffff@g@r  z)arr must be either an Array or a Sequencez"obj must be less than the len(arr))rE   r   rV  rS  r   rT  rR  rU  r   rd  
IndexErrorrW  s       r"   test_delete_exceptionsz&TestNPFunctions.test_delete_exceptions  s   "T"""6**!!!{++ 	 vE1a&$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 , !!	
 	
 	

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

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

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

 	!!!!!sH   A**A.1A.7!C$$C(+C(1E

EEF22F69F6c              #      K   t          j        d          dz  }|V  |                    d          }|V  t          j        d                              d          dz  }|V  dS )z0
        Some test arrays for np.diff()
        r  r  r  r     )r  rE  r  Nr   rd  r  r  r0   r1   cs       r"   diff_arrayszTestNPFunctions.diff_arrays  sj       IbMMQIIfIbMM!!),,1r$   c                 d   t           } t          d          |          }|                                 D ].} ||          } ||          }|                     ||           /t	          j        d          }|                                 5   ||           d d d            d S # 1 swxY w Y   d S )NTrP  r  )rK   r   r  r  r   rJ  assertTypingError)r  r  r#  r@   r%  r$  r0   s          r"   
test_diff1zTestNPFunctions.test_diff1*  s   "T"""6**##%% 	3 	3Cvc{{H%**C##Hc2222 HRLL##%% 	 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B%%B),B)c           	         t           } t          d          |          }|                                 D ]P}|j        d         }dddd|dz
  ||dz   dfD ]0} |||          } |||          }|                     ||           1Qd S )	NTrP  r  r   r   rE  r  i  )rN   r   r  shaper  )r  r  r#  r@   rb  rM   r%  r$  s           r"   
test_diff2zTestNPFunctions.test_diff27  s    "T"""6**##%% 	7 	7C9R=DAq$(D$(C@ 7 7!6#q>>eCmm''#66667	7 	7r$   c                 ,   t           } t          d          |          }|                                  t          j        d          }|                                 5   ||d           d d d            n# 1 swxY w Y   t          j        d          }dD ]h}|                     t                    5 } |||           d d d            n# 1 swxY w Y   | 	                    dt          |j                             i|                                  d S )NTrP  r  r   r]  )r  izorder must be non-negative)rN   r   rV  r   rJ  r  rd  rS  
ValueErrorrT  rR  rU  )r  r  r#  r@   rM   rX  s         r"   test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptionsA  s   "T"""6** 	!!! hrll##%% 	 	E#qMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 imm 	O 	OA"":.. &c1              MM6F<L8M8MNNNN!!!!!s$   A66A:=A:3CC	C	c                     d }t           } t          d          |          } |            D ]/} ||          } ||          }|                     |||           0d S )Nc               3   F  K   dV  t          j        dg          V  dV  dV  dV  t          d          V  t          j        d          V  dV  dV  d V  t          j        dd	          V  t          j        d
          V  t          j        dd	          V  d S )Nr  )r                @numbar]  i90  gV-@TYnatr   )r   r>  intint16timedelta64
datetime64r  r$   r"   rA   z-TestNPFunctions.test_isscalar.<locals>.valuesW  s      GGG*aS//!!!JJJHHHMMMb''MMM(5//!!!KKKJJJJJJ.S)))))-&&&&&-3'''''''r$   TrP  )r{   r   r  r  rA   r  r#  r!   r%  r$  s          r"   test_isscalarzTestNPFunctions.test_isscalarV  s    	( 	( 	( "T"""6** 	/ 	/AvayyH%((CXsA....	/ 	/r$   c                 @   d }t          d          d             }t          t          g}|D ]} t          d          |          } |            D ]} ||          } ||          }|                     ||           |                    |d|          }	 ||d|          }
|                     |	|
           |                    |d|          } ||d|          }|                     ||           |                     t          |j                  d           d S )Nc               3   R   K   dV  dV  t          j        g d          V  dV  d S )Nr   r;  )r  r;  Thello worldr=  r  r$   r"   rA   z4TestNPFunctions.test_isobj_functions.<locals>.valuesn  sG      GGGLLL*.../////r$   TrP  c                 $    |r| nd } ||          S r   r  )r!   condr#  r-  s       r"   optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fnt  s    #tA588Or$   Fr  )r   rx   r   r  py_funcrI  
signatures)r  rA   r  pyfuncsr  r#  r!   r%  r$  expected_optionalgot_optionalexpected_nonegot_nones                r"   test_isobj_functionsz$TestNPFunctions.test_isobj_functionsm  si   	  	  	  
d				 	 
		  + 	7 	7F&C&&&v..EVXX : :!6!99eAhh  3/// %0$7$74$H$H!*{1dE::  !2LAAA !, 3 3Auf E E&;q%77  9999S!122A6666#	7 	7r$   c                     d }t           t          g}|D ]T} t          d          |          } |            D ].} ||          } ||          }|                     ||           /Ud S )Nc               3      K   t          j        g d          V  t          j        g d          V  dV  dV  dV  dV  dV  t          j        dd	gdd
gddgddgg          V  d S )N)      ?      ?r;        @r  rE                 @r  r  y              (@      ?      @y      $@        )r         @        r   rE  r  r3  r_  r  r  r   rJ  r  r$   r"   rA   z7TestNPFunctions.test_is_real_or_complex.<locals>.values  s      (:::;;;;;(999%%%%%GGGIIILLLMMM""""(QFQFQFQF;<<<<<<<r$   TrP  )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  s    	= 	= 	= f% 	7 	7F&C&&&v..EVXX 7 7!6!99eAhh''#66667	7 	7r$   c                     d }t           t          g}|D ]Y} t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4Zd S )Nc               3     K   t           j         d fV  t           j        d fV  t           j        d fV  t          j        t           j         dt           j        g          d fV  t           j         t          j        dt           j                  fV  t           j        t          j        dt           j                  fV  t           j        t          j        dt           j                  fV  t           j         t          j        d          fV  t          j        t           j         dt           j        g          t          j        dt           j                  fV  d S )Nr  r   rB  r  r  )r   infr>  r  r  emptyr  r$   r"   rA   z7TestNPFunctions.test_isneg_or_ispos_inf.<locals>.values  s0     6'4-&$,&$,*rvgr26233T99996'28ARX6666666&"(1BH5555555&"(1BH55555556'28B<<''''*rvgr26233RXarx5P5P5PPPPPPPr$   TrP  )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  s    		Q 		Q 		Q X& 	7 	7F&C&&&v..E &(( 7 73!6!S>>eAsmm''#66667	7 	7r$   c                   	
 ddt          j        ddg          
t          j        d                              d          	d	
fd}t          } t          d	
          |          } |            D ]s\  }}} |||fi |} |||fi |}t          |t           j                  r|                     ||           K| 	                    t          j
        ||                     td S )Nr   r   d     r  rE  rE  rE  )r   r   c               3   `  K   ddi fV  dt           j        i fV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          i fV  t          j        dt           j        g          t          j        dt           j        g          i fV  t          j        dt           j        g          t          j        dt           j        g          d	d
ifV  t          j        t           j        t           j        g          t          j        dt           j        g          d	d
ifV  t          j        ddg          t          j        ddg          ddifV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          ddifV  t          j        dt           j        dg          t          j        dt           j        dg          fV  t          j        t           j        t           j         t           j        g          t          j        dg          fV  t          j        t           j        t           j         t           j        g          dfV  dt          j        t           j        t           j         t           j        g          fV  t          j        ddg          t          j        ddg          fV  fV  t          j        dg          t          j        dz   z   g          fV  z  z   fV  z  z   z   fV     z  z   fV  t           j        t           j        fV  t           j         t           j        fV  t           j        t          j        t           j        g          fV  t          j        t           j        t           j         g          t          j        t           j        t           j         g          fV  t          j        t           j        dg          t          j        dt           j        g          fV  t          j        t           j        t           j         g          t          j        ddg          fV  t          j        t           j        t           j        g          t          j        dt           j         g          fV  t          j        t           j        t           j        g          t          j        ddg          fV  t          j        t           j        dg          t          j        t           j        t           j         g          fV  t          j        dz  g          t          j        dg          fV  t          j        dg          t          j        dz   dz  z   g          fV    dz   z  z   dz  z   fV  t          j        t          j        t           j        dg                    t          j        t          j        dt           j        g                    fV  t          j        t           j        dg          t          j        dz  dz  g          fV  t          j        t           j        dg          t          j        t           j        dz  g          fV  t          j        ddddz  z   z  z   g          t          j        dt           j        dg          fV  t          j        d          t          j        g d          fV  t           j        t          j        t           j        t           j        t           j        g          fV  t          j        dg          t          j        t           j        t           j         t           j        g          fV  dt          j        t           j        t           j         t           j        g          fV  d S )N    _B   UkBr   Hz>r  &.>   2٠Br.  r   T0.++r   绽|=g#B;g=|=r   rE  r  r  r   皙?    .A)r   r    @)r   r  rJ  r  rd  )aranr@   r   kwr   s   r"   rA   z,TestNPFunctions.test_isclose.<locals>.values  s     
B&&&&""""(D$<(("(C:*>*>BBBB(D$<(("(J3E*F*FJJJJ(D$<(("(J3E*F*FJJJJ(D$<(("(It3D*E*ErIIII(C=))28S"&M+B+BBFFFF(C=))28S"&M+B+B[RVDWWWWW(BFBF+,,bhRV}.E.EUYGZZZZZ(FD>**BHc3Z,@,@63-OOOO(E5>**BHeS\,B,BBFFFF(E5>**BHe\5J,K,KfVY]ZZZZ(Arvq>**BHa^,D,DbHHHH(D"&26'26:;;RXqc]]BNNNN(D"&26'26:;;QBBBBRXtRVbfWbf=>>BBBB (Aq6""BHaV$4$4b8888sB,(A3--1t8d?*;!<!<b@@@@sS4Z'++++sS4Z'$.2222td{*B....&"&"$$$$6'262%%%%&"(BF8,,b0000(BFRVG,--rx"&8I/J/JBNNNN (BFA;''1bf+)>)>BBBB(BFRVG,--rxA/?/?CCCC(BFBF+,,bhBF7|.D.DbHHHH(BFBF+,,bh1v.>.>BBBB(BFA;''26BF72C)D)DbHHHH(D1H:&&!r9999(A3--1t8dQh+>*?!@!@"DDDDtczD004#:=rAAAA(28RVQK001128BHa[<Q<Q3R3RTVVVVV (BFA;''4!8TAX2F)G)GKKKK(BFA;''264!82D)E)ErIIII(D!SADL%9D%@ABBBHaQSQWY\M]D^D^`bbbbb)A,, 5 5r9999&"(BFBFBF#;<<b@@@@(A3--4"&"&*I!J!JBNNNNRXtRVbfWbf=>>BBBBBBr$   TrP  )r   rJ  rd  r  r   r   r  r  r  
assertTruer.   )r  rA   r  r#  r0   r1   r  r%  r$  r$  r@   r   r%  r   s            @@@@@r"   test_isclosezTestNPFunctions.test_isclose  sI   hT{##y||##I..D))3	C 3	C 3	C 3	C 3	C 3	C 3	C 3	C 3	Cj "T"""6**"FHH 	? 	?LAq&va--f--H%1''''C(BH-- ?  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 ]G\  }}}}}}	}
|                     |
|	          5   ||||||           d d d            n# 1 swxY w Y   Hd S NTrP  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-likerE  z2The third argument "rtol" must be a floating pointz3The fourth argument "atol" must be a floating pointr   z0The fifth argument "equal_nan" must be a boolean)r   r   r   r>  r  r  r   assertRaisesRegexr  r  r#  inpsr0   r1   r   r   r   exc_msgexcs              r"   isclose_exceptionz!TestNPFunctions.isclose_exception  s   "T"""6**ZtRV,--ZD)**E5L	
 au8 u9 5%A 5%B 5%?%
. :> 	3 	35Aq$i#''W55 3 3aD$	2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3s   C""C&	)C&	c                     g d}t          j        g d          }| j                            ddd                              t           j                  }|||fS )z7
        Some test sequences for np.bincount()
        )r   rE  r3  rE  r  r^  )r3  r  r  r3  r   r  ,  rb  )r   rJ  r
  rh  astypeint8r  s       r"   bincount_sequencesz"TestNPFunctions.bincount_sequences  sZ      H]]]##HQ#..55bg>>1ayr$   c                     t           } t          d          |          }|                                 D ].} ||          } ||          }|                     ||           /d S NTrP  )rS   r   r5  r  )r  r  r#  seqr%  r$  s         r"   test_bincount1zTestNPFunctions.test_bincount1!  sy    "T"""6****,, 	3 	3Cvc{{H%**C##Hc2222	3 	3r$   c                 d   t           } t          d          |          }|                                  |                     t                    5 } |ddg           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTrP  rE  r  #first argument must be non-negative)rS   r   rV  rS  r  rT  rR  rU  rW  s       r"   test_bincount1_exceptionsz)TestNPFunctions.test_bincount1_exceptions)  s    "T"""6** 	!!! z** 	fE1b'NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 	!!!!!s   A))A-0A-c                 B   t           } t          d          |          }|                                 D ]i}d |D             }|t          j        |          |t          j        |          fD ]0} |||          } |||          }|                     ||           1jd S )NTrP  c                 <    g | ]}t          j        |          d z
  S rE  )mathsqrtr8  r!   s     r"   r9  z2TestNPFunctions.test_bincount2.<locals>.<listcomp><  s%    ///a1!///r$   )rY   r   r5  r   rJ  r  )r  r  r#  r8  rX   rW   r%  r$  s           r"   test_bincount2zTestNPFunctions.test_bincount28  s    "T"""6****,, 	7 	7C//3///Arx{{C#? 7 7!6#w//eC))''#66667	7 	7r$   c                    t           } t          d          |          }|                                  |                     t                    5 } |ddgddg           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgdg           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTrP  rE  r  r   r;  z+weights and list don't have the same length)rY   r   rV  rS  r  rT  rR  rU  rW  s       r"   test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptionsC  s   "T"""6** 	!!! z** 	#fE1b'Aq6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#;&*++	- 	- 	- z** 	 fE1b'A3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 C&*++	- 	- 	- 	- 	-$   A,,A03A09CCCc                 f   t           } t          d          |          }|                                 D ]{}t          |          }||dz   fD ]b} ||d |          } ||d |          }|                     t          |          t          |                     |                     ||           c|d S )NTrP  rE  )r\   r   r5  maxr  rI  r  )r  r  r#  r8  a_maxr[   r%  r$  s           r"   test_bincount3zTestNPFunctions.test_bincount3V  s    "T"""6****,, 	7 	7CHHE#UQY/ 7 7	!6#tY77eCy11  XC999''#6666	7	7 	7r$   c                    t           } t          d          |          }|                                  |                     t                    5 } |ddgddg           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgd d           d d d            n# 1 swxY w Y   |                     d	t          |j                             d S )
NTrP  rE  r  r   r;     &   z 'minlength' must not be negative)r\   r   rV  rS  r  rT  rR  rU  rW  s       r"   test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptionsb  s   "T"""6** 	!!! z** 	#fE1b'Aq6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#;&*++	- 	- 	- z** 	&fE2r(D"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&8&*++	- 	- 	- 	- 	-rF  c                    	
 t            t          d                    t           t          d                    	t           t          d                    
	
 fd}t          ret          j        g d          }t          j        g d          } |||d                     |||            |t          |          |           d S t          j        d          dz  }t          j        d	          d
z
  }|t          |          fD ]R}|D ]} |||           ||	                    d          fD ]} |||            ||t          |                     St          j
        t          |          t          d          gdz  z             dz  }t          j        d	          dz
  }|t          |          fD ]R}|D ]} |||           ||	                    d          fD ]} |||            ||t          |                     Sd } t          d          |                                           5   d
dgd
           d d d            n# 1 swxY w Y   dd} t          d          |                                           5   d
dgd
d           d d d            n# 1 swxY w Y   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          } |||           d S )NTrP  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   r  r0   ra   r%  r$  r#  
cfunc_leftcfunc_rightr  pyfunc_leftpyfunc_rightr  s       r"   r-  z0TestNPFunctions.test_searchsorted.<locals>.check      va||H%1++C##Hc222"{1a((H*Q""C##Hc222#|Aq))H+a##C##Hc22222r$   )r   r   r  )r   rE  r3  r   r3  rE  r^  r   r  r3  r  r         @r1  c                 0    t          j        | |d          S )Nnonsensere   r^   r`   s     r"   bad_sidez3TestNPFunctions.test_searchsorted.<locals>.bad_side  s    ?1aj9999r$   rd   c                 0    t          j        | ||          S )Nre   r^   )r0   ra   rf   s      r"   nonconst_sidez8TestNPFunctions.test_searchsorted.<locals>.nonconst_side  s    ?1ad3333r$   ri   re   )r   rE  r   r  r_  r  )	r  r   r  rE  r   r  r  r_  r  r]  r  )rd   )r_   r   rg   rj   r   r   rJ  r  rd  r  rH  floatr  )r  r-  binsrA   r0   ra   r\  r^  r#  rS  rT  r  rU  rV  s   `       @@@@@@r"   test_searchsortedz!TestNPFunctions.test_searchsortedu  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  		8III&&DXiii((F E$q	"""E$E$t**f%%%F y||q 2"T

# 	# 	#A  afnnV445  aE!T&\\"""" z$t**e~'99::S@2$T

# 	# 	#A  afnnV445  aE!T&\\""""	: 	: 	:"T"""8,,##%% 	 	E1Q%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 		4 	4 	4 	4"T"""=11##%% 	* 	*E1Q%))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* HYYYHAAAA	
 
 	aH00011HBQQ
 
 	as$   I//I36I3+KKKc                    	
 t            t          d                    	t           t          d                    
t           t          d                    	
 fd}t          rXt          j        g d          }t          j        g d          } |||            |t          j        |          |           d S 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                            g d          } 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          } |||           d S )NTrP  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   rQ  rR  s       r"   r-  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.check  rW  r$   )r   r  r3  )r   rE  r  r_  r4  r   r3  r  r  )r3  r]  rc  r   
fill_valuer  rB  r   )FFTTFr  )123rg  4)r_   r   rg   rj   r   r   rJ  sortr  ranger  r  r
  choicer  r   rI  r  rd  )r  r-  r0   ra   element_poolisample_sizer  nansr#  rS  rT  r  rU  rV  s   `        @@@@@@r"   test_searchsorted_supplementalz.TestNPFunctions.test_searchsorted_supplemental  sJ   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  	##A&&AE!QKKKE"'!**a   FE"bMM**1x!|3wi!mCCt 		! 		!A(//+++66K k::AkQUQY.GHHA E!QKKKE"'!**a    wqzzws4yyRV444dD 	dDdDdD Ha[
333HbfXRZ000a IaLLIaLLa H///00HeT]##a IIa H___%%Hc3Z  ar$   c                    	
 t            t          d                    t           t          d                    	t           t          d                    
	
 fd}t          rXt          j        g d          }t          j        ddg          } |||            |t          j        |          |           d S ddt
          j        g}d	 t          j
        ||          D             }t          d
          D ]} j                            ddt          |          g          } j                            ||          } j                            |||dz  dz
  z             } |||            |t          j        |          |            |t          j        |          t          j        d                     d S )NTrP  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   rQ  rR  s       r"   r-  z8TestNPFunctions.test_searchsorted_complex.<locals>.check0  rW  r$   )r;  y       @      ?      @        r	  r  r   r   c                      g | ]}t          | S r  )complex)r8  r  s     r"   r9  z=TestNPFunctions.test_searchsorted_complex.<locals>.<listcomp>F  s    KKKKKKr$   r  r  r3  rE  r`   )r_   r   rg   rj   r   r   rJ  rj  r  	itertoolsr   rk  r
  rl  rI  rd  )r  r-  r0   ra   poolrm  rn  ro  r#  rS  rT  r  rU  rV  s   `       @@@@@@r"   test_searchsorted_complexz)TestNPFunctions.test_searchsorted_complex&  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  	11122A&&)**AE!QKKKE"'!**a   F1bf~KKY->tT-J-JKKKs 		! 		!A(//1a\1B1B*CDDK k::AkQUQY.GHHA E!QKKKE"'!**a     	&&")A,,777777r$   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                            |           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}||                    d          g}|D ]<}|	                                 |D ]#}	 ||	|            ||	|d d d                    $=|D ]*}dD ]%}
 ||||
            |||d d d         |
           &+ |t          |          |            |t          j        t          j        dg          t          j        dt          j        g                     d S )NTrP  c                  H     |  } |  }                     ||           d S r   rQ  rn   r%  r$  r#  r  r  s      r"   r-  z,TestNPFunctions.test_digitize.<locals>.checkZ  5    vt}H%,C##Hc22222r$   r   Gz?r   皙@r
  r  r  r        #@r  z-infr  r  r   r  r
  r  r  r]  r  r  r        ?)rl   r   r   rH  r_  rI  r
  shuffler  rj  r  rJ  r  )r  r-  rA   bins1bins2bins3all_binsxsr`  r!   ri   r#  r  s   `          @@r"   test_digitizezTestNPFunctions.test_digitizeV  sh   "T"""6**	3 	3 	3 	3 	3 	3 	3
 Qac1aC"5\\5==%,,H I I6{{b       
>>>**
Aq#q%,,fFGG
Aq#q%,,fF#Ell^b01 2 2 5%(fnnV,,-  	% 	%DIIKKK % %aaddd$$$$%
  	1 	1D& 1 1fdE***fd44R4j%00001
 	d6llE""" 	bh{##RXsBFm%<%<=====r$   c                 z                                       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	} |||           d S )
NTrP  c                      fD ]c}                     t                    5 } ||   d d d            n# 1 swxY w Y   d}                    |t          |j                             dd S )Nz3bins must be monotonically increasing or decreasingrS  r  rT  rR  rU  )rn   fnrX  r  r#  r  r  s       r"   check_errorzETestNPFunctions.test_digitize_non_monotonic_bins.<locals>.check_error  s    uo : :&&z22 fBII               Lc3v'7#8#89999: :s   48	8	r   r  ffffff@r  r   r   rE  )r   r   r   r   r   r   r   r   )rV  rl   r   r   rJ  r  )r  r  r!   r`  r#  r  s   `   @@r"    test_digitize_non_monotonic_binsz0TestNPFunctions.test_digitize_non_monotonic_bins  s    !!!"T"""6**	: 	: 	: 	: 	: 	: 	: Hbfa[!!xc26233AtMM||At||Atr$   c                 V    t            t          d                     fd}t          j        dd          }t          j        dd          } |||           t          j        ddd          }t          j        ddd          } |||            j                            d          }t          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                            d          }t          j        |                                |                                d          } |||d           g d}g d} |||           g d} |||           g d} |||           d} ||g|dz
  |dz   g           d S )NTrP  c                  H     |  } |  }                     ||           d S r   rQ  r|  s      r"   r-  z9TestNPFunctions.test_digitize_supplemental.<locals>.check  r}  r$   r3  r4  r  r]  )r   r3  r  r]  r     r   )r   r3  r]  r  r  )r   r   r   )r   r   r   r   r   r   r   l          r   )	rl   r   r   rd  r
  rf  linspaceminrH  )r  r-  r!   r`  r#  r  s   `   @@r"   test_digitize_supplementalz*TestNPFunctions.test_digitize_supplemental  s_    "T"""6**	3 	3 	3 	3 	3 	3 	3 Ib!yQa IaR  yB##a HMM"{15577AEEGGR00a $##zza Ib!yQat IaR  yB##at HMM"{15577AEEGGR00at MMyyayya||a qcAE1q5>"""""r$   c                    |                                   t          } t          d          |          }t          j        dg          }t          j        g d          }d}||fD ]b}|                                 5 } |||           |                     |t          |j                             d d d            n# 1 swxY w Y   cd S )NTrP  r	  )r.        @r
         @zx may not be complex)	rV  rl   r   r   rJ  r  rT  rR  rU  )r  r  r#  r!   r-  r  funcrX  s           r"    test_digitize_raise_if_x_complexz0TestNPFunctions.test_digitize_raise_if_x_complex  s   !!!"T"""6**HfXH&&&''$EM 	: 	:D'')) :VQ


c3v'7#8#8999: : : : : : : : : : : : : : :	: 	:s   <5B==C	C	c                     t            t          d                     fdfd}t          j        d          }t	          |          dk    sJ  j                            |            ||           d S )NTrP  c                       |  \  }} |  \  }}                     ||                                ||dd           d S )Nr  rE  r  rF  rQ  )rn   pyhistpybinschistcbinsr#  r  r  s        r"   r-  z-TestNPFunctions.test_histogram.<locals>.check  s\    #VT]NFF 5$<LE5##FE222 ##FEq#IIIIIr$   c                     t          j        g d          } | |            |                     d          |            | d            | dd            |            d S )Nr  r  r  )r.  g      +@)r   rH  r  )rA   r`  r-  s     r"   check_valuesz4TestNPFunctions.test_histogram.<locals>.check_values  s     :nnn--DE&$E&..(($/// E&! E&![))) E&MMMMMr$   )r   r~  r   r  r
  r  r  r  r  g     @E@r/  r0  r  )rp   r   r   rH  rI  r
  r  )r  r  rA   r#  r-  r  s   `  @@@r"   test_histogramzTestNPFunctions.test_histogram  s    "T"""6**	J 	J 	J 	J 	J 	J 	J	 	 	 	 	   7 8 86{{b       Vr$   c                      t          d                     fd}t          r-d}t          j        t          j        g}ddg} ||||           d S d}t          j        t          j        t          j        t          j        t          j        t          j	        t          j        g}g d} ||||           t          j
        d	                              d
d          }t          j
        d	          }||f||ffD ]m\  }}	                     t                    5 }
 ||	           d d d            n# 1 swxY w Y   d}                     |t          |
j                             nd S )NTrP  c                    t          j        ||| | |          D ]\  }}}}}t          j        ||          }t          j        ||          }	t          j        |t          j                  r|d|z  z                       |          }t          j        |t          j                  r|	d|	z  z                       |          }	 ||	|          }
 ||	|          }                    |
|           d S )NrB  r>  r   )rw  r   r   rd  
issubdtypecomplexfloatingr3  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S'7E) ) 7 7$S!Q Ias+++Ias+++=b&899 1R!V++C00A=b&899 1R!V++C00A!6!QT222eAqt,,,''#66667 7r$   r   rE  r   r   )r   rE  r  r  )r   r   samer  r  r  zonly supported on 1D arrays)r   r   r   rH  rK  r4  int32int64r  r  rd  r  rS  r   rT  rR  rU  )r  r  r-  r  r  r  _a_br!   r-  rX  r  r#  s   ``          @r"   _test_correlate_convolvez(TestNPFunctions._test_correlate_convolve
  s   "T"""6**	7 	7 	7 	7 	7 	7 	7"  	G:r}-CW%EE'3&&&Fw"(BJ
|R],)))gsE"""Yr]]""1a((Yr]]"XBx( 	6 	6DAq"";// 6a              /CMM#s6#3445555		6 	6s   D66D:	=D:	c                 :    |                      t                     d S r   )r  r   r  s    r"   test_correlatezTestNPFunctions.test_correlate6  s    %%i00000r$   c                    |                                   t          j        d          }t          j        d          } t	          d          |          }||f||ffD ]\  }}|                     t                    5 } |||           d d d            n# 1 swxY w Y   t          |          dk    r)|                     dt          |j
                             |                     dt          |j
                             |                     t                    5 } |||d	
           |                     dt          |j
                             d d d            d S # 1 swxY w Y   d S )Nr   )r  r3  TrP  r   z'a' cannot be emptyz'v' cannot be emptyzinvalid moder   zInvalid 'mode')rV  r   r  rd  r   rS  r  rI  rT  rR  rU  )r  r  r  r  r#  r!   r-  rX  s           r"   #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions9  s   !!! W4   Yq\\"T"""2&&"XBx( 	L 	LDAq"":.. &a              1vv{{3S9I5J5JKKKK3S9I5J5JKKKKz** 	CfE"b~....MM*C0@,A,ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs$   >BB	B	!7E%%E),E)c                 :    |                      t                     d S r   )r  r   r  s    r"   test_correlate_exceptionsz)TestNPFunctions.test_correlate_exceptionsN  s    00;;;;;r$   c                 :    |                      t                     d S r   )r  r   r  s    r"   test_convolvezTestNPFunctions.test_convolveR  s    %%h/////r$   c                 :    |                      t                     d S r   )r  r   r  s    r"   test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptionsU  s    00:::::r$   c                 V     |di |} |di |}|                      |||           d S )Nr  r  rQ  )r  r  r#  paramsr  r%  r$  s          r"   _check_outputzTestNPFunctions._check_outputX  sI    6##F##eoofoo#w?????r$   c                 R   t           } t          d          |          }t          | j        ||          fd}t          rK |t          j        g d                      |t          j        g                       |g d           d S  |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           d S )NTrP  c                     t           rg d}dg}ng d}ddg}d| i} |           |D ]}| |d} |           t           s0|D ]}| |d} |           |D ]}|D ]}| ||d} |           d S d S )	N)Nr   rE  F)Nr   r   rE  r  r  Tr!   )r!   r   )r!   r$  r#  )r   )r!   	n_choicesincreasing_choicesr  rM   r$  r  s         r"   _checkz1TestNPFunctions.test_vander_basic.<locals>._checkb  s    3(LL	&+W""111	&*E]" 1XFM&!!!  & & q))f%%%%" 
."4 * *J#$J??F!M&)))) # . .A&8 . .
'(q
!K!K%f----.
. 
.. .r$   r  r   r   rE  )r   rE  r  r3  r        %@r  r]  r3  333333?r4  333333?Fr  rB  r   r   rE  r  r  r3  r_  r  )r  r.  rY  r  )r  g-@A`"	@)TFr  )r"  r   r   r  r   r   rJ  rd  r  r  r  r  r  r  rH  )r  r  r#  r  rC  r  s        @r"   test_vander_basicz!TestNPFunctions.test_vander_basic]  sC   "T"""6** 2FEBB	. 	. 	. 	. 	.:  	F28III&&'''F28B<<   F999Frx%%&&&ry||d"###r{1b!$$%%%rxbfbfrvg677888rx||ryQ#%&&& 	rx
eWq[011222 XrxRZ? 	/ 	/EF29Ru---.... 	||||r


 	 !!!     r$   c                 H    t           } t          d          |                                            t          j        d          dz
   fd}ddt          j        ddgfD ]} ||                                t                    5 } d	
           d d d            n# 1 swxY w Y                        dt          |j
                              fd}t          j        d                              d           |           d |           d S )NTrP  r3  r1  c                                                      5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nr   z,Second argument N must be None or an integerr  rT  rR  rU  )r   rX  r#  r  r!   s     r"   _check_nz8TestNPFunctions.test_vander_exceptions.<locals>._check_n  s    '')) Va1              MMHf.//1 1 1 1 1   044r!  r   rE  r  r   z#Negative dimensions are not allowedc                                          t                    5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nz.x must be a one-dimensional array or sequence.)rS  r  r  rR  rU  )r!   rX  r#  r  s     r"   	_check_1dz9TestNPFunctions.test_vander_exceptions.<locals>._check_1d  s    "":.. &a              M !1224 4 4 4 4   488r  )r  r  r  )rE  r  rX  )r"  r   rV  r   rd  r  rS  r  rT  rR  rU  r  )r  r  r  r   rX  r  r#  r!   s   `     @@r"   test_vander_exceptionsz&TestNPFunctions.test_vander_exceptions  s   "T"""6** 	!!!IaLL3	1 	1 	1 	1 	1 	1 	1 dBFQF* 	 	AHQKKKKz** 	fE!rNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	-	4 	4 	4 	4 	4 	4 IbMM!!),,	!	!s   B**B.1B.c                     t           } t          d          |          }t          | j        ||          }d } |            D ]}d|i} ||           d S )NTrP  c                  ,    t          j        dd          S Nr  r   rd  r  r$   r"   n_variationsz6TestNPFunctions.test_tri_n_basic.<locals>.n_variations      9R###r$   r   )r   r   r   r  )r  r  r#  r  r  rM   r  s          r"   test_tri_n_basicz TestNPFunctions.test_tri_n_basic  s}    "T"""6**+VU;;	$ 	$ 	$  	 	A1XFF6NNNN	 	r$   c                 
   t           } t          d          |          }t          | j        ||          }d }d } |            D ]}d|i} ||            |            D ]} |            D ]}||d} ||            d S )NTrP  c                  ,    t          j        dd          S r  r  r  r$   r"   r  z8TestNPFunctions.test_tri_n_m_basic.<locals>.n_variations  r  r$   c                  b    t           j                            d gt          dd          f          S Nr4  r  rw  chainfrom_iterablerk  r  r$   r"   m_variationsz8TestNPFunctions.test_tri_n_m_basic.<locals>.m_variations  '    ?004&%A,,1GH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 	I 	I
  	 	A1XFF6NNNN  	 	A!\^^   q))v	 	r$   c                 
   t           } t          d          |          }t          | j        ||          }d }d } |            D ]}d|i} ||            |            D ]} |            D ]}||d} ||            d S )NTrP  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 Nr]  r  r  r$   r"   k_variationsz8TestNPFunctions.test_tri_n_k_basic.<locals>.k_variations      9S"%%%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F6NNNN  	 	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	} ||           !.d S )
NTrP  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                  b    t           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 	I 	I	& 	& 	&  	 	A1XFF6NNNN  	 	A!\^^   q))v
  	 	A!\^^   q))v
  	# 	#A!\^^ # #% # #A#$1155FF6NNNN##	# 	#r$   c                      t           } t          d          |                                             fd}ddt          j        ddgfD ]} ||           d S )NTrP  c                                                      5 } dd|            d d d            n# 1 swxY w Y   dt          |j                  v sJ d S )Nr3  r_  r   k must be an integer)r  rR  rU  )r   rX  r#  r  s     r"   r  z3TestNPFunctions.test_tri_exceptions.<locals>._check)  s    '')) !Vaa    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !)S1A-B-BBBBBBBs   155r  r   rE  )r   r   rV  r   r  )r  r  r  r   r#  s   `   @r"   test_tri_exceptionsz#TestNPFunctions.test_tri_exceptions"  s    "T"""6** 	!!!	C 	C 	C 	C 	C 	C
 dBFQF* 	 	AF1IIII	 	r$   c                 v      t          d                     fd}                      |          S )NTrP  c                      |           } |           }                     |j        |j                   t          j                            ||           d S r   )r  rC  r   testingassert_array_equal)r@   r%  r$  r#  r  r  s      r"   r  z:TestNPFunctions._triangular_matrix_tests_m.<locals>._check4  sU    vc{{H%**CSY777J))#x88888r$   r   _triangular_matrix_tests_innerr  r  r  r#  s   `` @r"   _triangular_matrix_tests_mz*TestNPFunctions._triangular_matrix_tests_m1  s\    "T"""6**	9 	9 	9 	9 	9 	9 	9 224HHHr$   c                 v      t          d                     fd}                      |          S )NTrP  c                 $   t           j                            d gt          dd          f          D ]]}|i }nd|i} | fi |} | fi |}                    |j        |j                   t          j                            ||           ^d S )Nr  r]  r   )	rw  r  r  rk  r  rC  r   r  r  )r@   r   r  r%  r$  r#  r  r  s        r"   r  z<TestNPFunctions._triangular_matrix_tests_m_k.<locals>._check@  s    _22TFE#rNN3KLL 	= 	=9FF!1XF!6#0000eC**6**  HN;;;
--c8<<<<	= 	=r$   r	  r  s   `` @r"   _triangular_matrix_tests_m_kz,TestNPFunctions._triangular_matrix_tests_m_k=  s\    "T"""6**
	= 
	= 
	= 
	= 
	= 
	= 
	= 224HHHr$   c                    fd}fd} |t          j        d          dz               |t          j        d          dz
              t          j        d                              ddd	d
                      t          j        g                       t          j        d                              d          d d d                     t          j        d                              dd                     t          j        d          dz
                      d          } |            t          j        |                     d S )Nc                      |            |                      d          }  |            |                      d          }  |             | j                   d S )N)r  r  )r  r   r  r  r  Tr0   r  s    r"   	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_oddQ  s_    F1III		&!!AF1III		,''AF1IIIF13KKKKKr$   c                      |            |                      d          }  |            |                      d          }  |             | j                   d S )N)r     r  rE  rE  r  r  r  s    r"   
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_evenY  s_    F1III		'""AF1III		,''AF1IIIF13KKKKKr$   ?   r  @   ih  r  r  r3  r_  r  )r  r  r  Forderr  )r   rd  r  rJ  asfortranarray)r  r  r  r  r  r@   s     `   r"   r
  z.TestNPFunctions._triangular_matrix_tests_innerN  sa   	 	 	 	 		 	 	 	 	 		")B--$&'''
29R==4'((( 	ry~~%%aAq11222rx||ry||##F++DDbD1222ry||##F##66777y}}t#,,\::sr %%&&&&&r$   c                 L    t          d          |          }|                                  t          j        d          }|                                 5 } ||d           |                     dt          |j                             d d d            d S # 1 swxY w Y   d S )NTrP  r3  r_  r  r  r  )r   rV  r   r  r  rT  rR  rU  )r  r  r#  r0   rX  s        r"   _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptionsn  s    "T"""6** 	!!!GFOO##%% 	IE!sOOOOMM0#f6F2G2GHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is   6BB Bc                     t          d          |          }|D ]} || } || }|                     t          |          t          |                     |                     t          |          t          |                     t	          ||          D ]%\  }}t
          j                            ||           &d S r7  )r   r  typerI  r  r   r  r  )	r  r  rn   r#  r!   r%  r$  egs	            r"   _triangular_indices_tests_basez.TestNPFunctions._triangular_indices_tests_basey  s    "T"""6** 	4 	4AvqzH%)CT(^^T#YY777S]]CHH555Hc** 4 41
--a33334	4 	4r$   c                 `    |                      |d t          d          D                        d S )Nc                     g | ]}|gS r  r  )r8  rM   s     r"   r9  z?TestNPFunctions._triangular_indices_tests_n.<locals>.<listcomp>  s    $$$QaS$$$r$   r]  r'  rk  r  r  s     r"   _triangular_indices_tests_nz+TestNPFunctions._triangular_indices_tests_n  s>    ++$$%))$$$	
 	
 	
 	
 	
r$   c                 `    |                      |d t          d          D                        d S )Nc                 J    g | ] }t          | d z
  |dz             D ]}||g!S r  rk  )r8  rM   r   s      r"   r9  zATestNPFunctions._triangular_indices_tests_n_k.<locals>.<listcomp>  s=    EEEqb1fa!e0D0DEE1aVEEEEr$   r]  r*  r+  s     r"   _triangular_indices_tests_n_kz-TestNPFunctions._triangular_indices_tests_n_k  s>    ++EEU2YYEEE	
 	
 	
 	
 	
r$   c                 `    |                      |d t          d          D                        d S )Nc                 @    g | ]}t          d |z            D ]}||gS r?  r/  )r8  rM   r   s      r"   r9  zATestNPFunctions._triangular_indices_tests_n_m.<locals>.<listcomp>  s3    ===a!e==1aV====r$   r]  r*  r+  s     r"   _triangular_indices_tests_n_mz-TestNPFunctions._triangular_indices_tests_n_m  s>    ++==U2YY===	
 	
 	
 	
 	
r$   c                     |                      |d t          d          D                         t          d          |          } |d           d S )Nc                 v    g | ]6}t          | d z
  |dz             D ]}t          d|z            D ]}|||g7S r  r/  )r8  rM   r   r   s       r"   r9  zCTestNPFunctions._triangular_indices_tests_n_k_m.<locals>.<listcomp>  su     $ $ $1QBFAE**$ $AEll$ $ AY $ $ $ $ $r$   r]  TrP  r   )r'  rk  r   )r  r  r#  s      r"   _triangular_indices_tests_n_k_mz/TestNPFunctions._triangular_indices_tests_n_k_m  sk    ++$ $b		 $ $ $	
 	
 	
 #T"""6**ar$   c                 V    t          d          |          }t          t          t          fD ]}t	          j        t          d          t          d                    D ]\  }}t          j        ||f|          } ||          } ||          }| 	                    t          |          t          |                     | 	                    t          |          t          |                     t          ||          D ]%\  }	}
t          j                            |	|
           &Ɍd S )NTrP  r]  r   r  r_  boolrw  r   rk  r   r  r  r$  rI  r  r  r  )r  r  r#  rC  rM   r   r@   r%  r$  r%  r&  s              r"   "_triangular_indices_from_tests_arrz2TestNPFunctions._triangular_indices_from_tests_arr  s   "T"""6**5$' 	8 	8E (rE"II>> 8 8!gq!fe,,!6#;;eCjj  hc;;;  XC999#.. 8 8DAqJ11!Q77778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 ]} ||          } ||          }	| 	                    t          |          t          |	                     | 	                    t          |          t          |	                     t          ||	          D ]%\  }
}t          j                            |
|           &ܐd S )NTrP  r]  r  r8  )r  r  r#  rC  rM   r   r@   r   r%  r$  r%  r&  s               r"   $_triangular_indices_from_tests_arr_kz4TestNPFunctions._triangular_indices_from_tests_arr_k  s9   "T"""6**5$' 		< 		<E (rE"II>> < <!gq!fe,,sB < <A%vc{{H%**C$$T(^^T#YY???$$S]]CHH=== #Hc 2 2 < <1
55a;;;;<<<		< 		<r$   c                     t          d          |          }t          |          j        }|                                 5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d|v ra|                                 5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d	|v rc|                                 5 } |dd
           d d d            n# 1 swxY w Y   |                     dt          |j                             d S d S )NTrP  r.  zn must be an integerr   r   r  r  r   r   zm must be an integer)r   r   
parametersr  rT  rR  rU  )r  r  r#  r>  rX  s        r"   _triangular_indices_exceptionsz.TestNPFunctions._triangular_indices_exceptions  s   "T"""6** ((3
##%% 	E#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	,c&2B.C.CDDD*''))  Va3                             MM0#f6F2G2GHHH*''))  Va3                             MM0#f6F2G2GHHHHH s6   AA!A%B??CC
D$$D(+D(Tc                 &    t          d          |          }dD ]y}t          j        dg|z            }|                                 5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             z|ryt          j        ddg          }|                                 5 } ||d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S d S )	NTrP  r   r   r  r3  zinput array must be 2-dr1  r  r  )r   r   r  r  rT  rR  rU  )r  r  test_kr#  ndimsr0   rX  s          r"   #_triangular_indices_from_exceptionsz3TestNPFunctions._triangular_indices_from_exceptions  s   "T"""6** 	L 	LEe$$A'')) Va              MM3S9I5J5JKKKK 	IAA''))  Va3                             MM0#f6F2G2GHHHHH		I 	Is$   
A""A&	)A&	CC #C c                 n    |                      t                     |                     t                     d S r   )r  r   r  r   r  s    r"   test_tril_basiczTestNPFunctions.test_tril_basic  0    ''///))(33333r$   c                 :    |                      t                     d S r   )r"  r   r  s    r"   test_tril_exceptionsz$TestNPFunctions.test_tril_exceptions      **844444r$   c                    |                      t                     |                     t                     |                     t
                     |                     t                     |                     t                     |                     t                     |                     t
                     |                     t                     d S r   )	r,  r   r0  r   r3  r   r6  r   r?  r  s    r"   test_tril_indicesz!TestNPFunctions.test_tril_indices      ((888**+;<<<**+;<<<,,-?@@@++N;;;++,<===++,<===++,>?????r$   c                     |                      t                     |                     t                     |                     t          d           |                     t          d           d S NFT)r:  r  r<  r	  rD  r  s    r"   test_tril_indices_fromz&TestNPFunctions.test_tril_indices_from  `    //0EFFF112IJJJ001FNNN001H$OOOOOr$   c                 n    |                      t                     |                     t                     d S r   )r  r  r  r  r  s    r"   test_triu_basiczTestNPFunctions.test_triu_basic  rG  r$   c                 :    |                      t                     d S r   )r"  r  r  s    r"   test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions  rJ  r$   c                    |                      t                     |                     t                     |                     t
                     |                     t                     |                     t                     |                     t                     |                     t
                     |                     t                     d S r   )	r,  r  r0  r  r3  r  r6  r  r?  r  s    r"   test_triu_indicesz!TestNPFunctions.test_triu_indices  rM  r$   c                     |                      t                     |                     t                     |                     t          d           |                     t          d           d S rO  )r:  r  r<  r   rD  r  s    r"   test_triu_indices_fromz&TestNPFunctions.test_triu_indices_from	  rQ  r$   c                     t           }t          t                     }d } |            D ]*}|                      ||           ||                     +d S )Nc               3   *   K   dV  dV  dV  dV  d S )N)r  r  )r  r  )rE  rE  r  r3  r  r  r$   r"   inputsz2TestNPFunctions.test_indices_basic.<locals>.inputs	  s3      LLLJJJJJJr$   )r  r   r  )r  r  r#  r\  dimss        r"   test_indices_basicz"TestNPFunctions.test_indices_basic	  sm    Z  	 	 	 FHH 	? 	?D##FF4LL%%++>>>>	? 	?r$   c                    t          t                    }|                                  d}|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             d S )Nz5The argument "dimensions" must be a tuple of integersabc)rY  r  )rE  r  )r   r  rV  rS  r   rT  rR  rU  )r  r#  errmsgrX  s       r"   test_indices_exceptionz&TestNPFunctions.test_indices_exception	  s   Z  !!!H{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	f&*++	- 	- 	- {++ 	vE*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	f&*++	- 	- 	- {++ 	vE(OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	f&*++	- 	- 	- 	- 	-s6   AA!$A!*CC	CD''D+.D+c                 ^    |||          } |||          }|                      t          j        |d |                   t          j        |d |                              |                      t          j        ||d                    t          j        ||d                               d S r   r  r   r  r  r  r#  r0   r(  r%  r$  s          r"   partition_sanity_checkz&TestNPFunctions.partition_sanity_check/	  s     6!S>>eAsmm 		(4C4. 9 929S#Y;O;OPPP 		(344. 9 929SY;O;OPPPPPr$   c           	          |||          } |||          }|                      t          j        ||d |                            t          j        ||d |                                       |                      t          j        |||d                             t          j        |||d                                        d S r   rd  re  s          r"   argpartition_sanity_checkz)TestNPFunctions.argpartition_sanity_check<	  s     6!S>>eAsmm 		!HTcTN*; < < "	!CI, 7 7	9 	9 	9 		!HSTTN*; < < "	!CI, 7 7	9 	9 	9 	9 	9r$   c           
         t           } t          d          |          }t          rdnd}t          | }|D ]}t          rdt	          d|dz
            fnd|dz
  f}t          | }|D ]\}t          j        |          }	| j                            |	           |	| j        	                    dd          z  }	| j        	                    |	j
                  }
d	|
||dz   |
 | g}t          j        |	          |         }|                      ||	|          |         |           t          s}|                      ||	                                |          |         |           |                      |t          |	                                          |          |         |           |D ]}|                     |||	|           ^d S 
NTrP  )r]  ra  )r]  r  r   r3  rE  r  r   )r&  r   r   rk  r  r   rd  r
  r  rh  rb  rj  r  tolisttuplerf  r  r  r#  j_range_argsj_rangeji_range_argsi_rangern  didxr(  tgtr   s                 r"   test_partition_fuzzz#TestNPFunctions.test_partition_fuzzK	  s
    "T"""6**$3A& 	E 	EA.,QAq1u.."#QU  \*G E EIaLL  ###((B///h&&qv..#q!a%#r2gajjo''ac(:(+- - - ' 1++EE!((**c,B,B3,G,/1 1 1++EE%

2C2CS,I,I#,N,/1 1 1  E EA//q!DDDDE!E	E 	Er$   c                    t           } t          d          |          }t          rdnd}t          | }|D ]}t          rdt	          d|dz
            fnd|dz
  f}t          | }|D ]}t          j        |          }	| j                            |	           |	| j        	                    dd          z  }	| j        	                    |	j
                  }
d	|
||dz   |
 | g}t          j        |	          |         }|                     |	 ||	|          |                  |	|                    t          s|                     |	 ||	                                |          |                  |	|                    |                     |	 |t          |	                                          |          |                  |	|                    |D ]}|                     |||	|           d S rj  )r*  r   r   rk  r  r   rd  r
  r  rh  rb  argsortr  rk  rl  rh  rm  s                 r"   test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzzk	  s'    "T"""6**$3A& 	H 	HA.,QAq1u.."#QU  \*G H HIaLL  ###((B///h&&qv..#q!a%#r2jmmC(''%%3--*<(=()#0 0 0 '  ++AeeAHHJJ.D.DS.I,J,-cF4 4 4++%%ahhjj 1 1377<=#       H HA2265!QGGGGH#H	H 	Hr$   c                      t           } t          d          |                                            t          j        d          } fd} ||d            ||d            ||d           d S )NTrP  r]  c                                          t                    5 } | |           d d d            n# 1 swxY w Y   t          |j                  dk    sJ d S Nzkth out of boundsrS  r  rR  rU  r0   r(  r%  r#  r  s      r"   r  zETestNPFunctions.test_partition_exception_out_of_range.<locals>._check	      "":.. !a              q{##':::::::   599r  r  )r&  r   rV  r   rd  r  r  r0   r  r#  s   `   @r"   %test_partition_exception_out_of_rangez5TestNPFunctions.test_partition_exception_out_of_range	  s     "T"""6** 	!!! IbMM	; 	; 	; 	; 	; 	;
 	q"q#q'r$   c                      t           } t          d          |                                            t          j        d          } fd} ||d            ||d            ||d           d S )NTrP  r]  c                                          t                    5 } | |           d d d            n# 1 swxY w Y   t          |j                  dk    sJ d S r|  r}  r~  s      r"   r  zHTestNPFunctions.test_argpartition_exception_out_of_range.<locals>._check	  r  r  r  r  )r*  r   rV  r   rd  r  s   `   @r"   (test_argpartition_exception_out_of_rangez8TestNPFunctions.test_argpartition_exception_out_of_range	  s     "T"""6** 	!!! IbMM	; 	; 	; 	; 	; 	;
 	q"q#q'r$   c                 ,    t           } t          d          |                                             fd}t          j        d          } ||d            ||d            ||t          j        ddt          j        f                     d S )	NTrP  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S NzPartition index must be integerr  r0   r(  rX  r#  r  s      r"   r  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._check	      '')) Va              MM;f.//1 1 1 1 1   /33r]        "@ffffff
@r  r   rE  )r&  r   rV  r   rd  rJ  r  r  r  r  r0   r#  s   `   @r"   (test_partition_exception_non_integer_kthz8TestNPFunctions.test_partition_exception_non_integer_kth	  s     "T"""6** 	!!!	1 	1 	1 	1 	1 	1 IbMMq#q*q"(Aq"&>**+++++r$   c                 ,    t           } t          d          |                                             fd}t          j        d          } ||d            ||d            ||t          j        ddt          j        f                     d S )	NTrP  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  r  s      r"   r  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check	  r  r  r]  r  r  r   rE  )r*  r   rV  r   rd  rJ  r  r  s   `   @r"   +test_argpartition_exception_non_integer_kthz;TestNPFunctions.test_argpartition_exception_non_integer_kth	  s     "T"""6** 	!!!	1 	1 	1 	1 	1 	1 IbMMq#q*q"(Aq"&>**+++++r$   c                      t           } t          d          |                                             fd} |dd            |dd           d S )NTrP  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S Nz(The first argument must be an array-liker  r  s      r"   r  zITestNPFunctions.test_partition_exception_a_not_array_like.<locals>._check	      '')) Va              MMDf.//1 1 1 1 1r  r  r   Sausages)r&  r   rV  r  s   `  @r"   )test_partition_exception_a_not_array_likez9TestNPFunctions.test_partition_exception_a_not_array_like	  s~    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	q!z1r$   c                      t           } t          d          |                                             fd} |dd            |dd           d S )NTrP  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  r  s      r"   r  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check	  r  r  r  r   r  )r*  r   rV  r  s   `  @r"   ,test_argpartition_exception_a_not_array_likez<TestNPFunctions.test_argpartition_exception_a_not_array_like	  s~    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	q!z1r$   c                      t           } t          d          |                                             fd} |t          j        d          d           d S )NTrP  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S 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
      '')) Va              MMOf.//1 1 1 1 1r  r   r   )r&  r   rV  r   rJ  r  s   `  @r"   #test_partition_exception_a_zero_dimz3TestNPFunctions.test_partition_exception_a_zero_dim	  sw    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	rx{{Ar$   c                      t           } t          d          |                                             fd} |t          j        d          d           d S )NTrP  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  r  s      r"   r  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check
  r  r  r   r   )r*  r   rV  r   rJ  r  s   `  @r"   &test_argpartition_exception_a_zero_dimz6TestNPFunctions.test_argpartition_exception_a_zero_dim
  sw    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	rx{{Ar$   c                     t           } t          d          |                                             fd} |t          j        d          t          j        d                              dd                     d S )	NTrP  c                                          t                    5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S Nzkth must be scalar or 1-Dr  r  s      r"   r  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._check#
      "":.. &a              MM5s6;K7L7LMMMMMr  r]  r_  r  rE  r(  )r&  r   rV  r   rd  r  r  s   `  @r"   .test_partition_exception_kth_multi_dimensionalz>TestNPFunctions.test_partition_exception_kth_multi_dimensional
  s    "T"""6** 	!!!	N 	N 	N 	N 	N 	N
 	ry}}")A,,"6"6q!"<"<======r$   c                     t           } t          d          |                                             fd} |t          j        d          t          j        d                              dd                     d S )	NTrP  c                                          t                    5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  r  s      r"   r  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._check1
  r  r  r]  r_  r  rE  r  )r*  r   rV  r   rd  r  r  s   `  @r"   1test_argpartition_exception_kth_multi_dimensionalzATestNPFunctions.test_argpartition_exception_kth_multi_dimensional*
  s    "T"""6** 	!!!	N 	N 	N 	N 	N 	N
 	ry}}")A,,"6"6q!"<"<======r$   c                      t            t          d                    d fd	}t          j        g           }d|_        |dt          j        g           fD ]} ||           d S )NTrP  r   c                 d     | |          } | |          }                     ||           d S r   rQ  r0   r(  r%  r$  r#  r  r  s       r"   r-  z9TestNPFunctions.test_partition_empty_array.<locals>.check>
  =    va~~H%3--C##Hc22222r$   r  rE  r   r   r  r  )r&  r   r   rJ  r  r  r-  r0   r@   r#  r  s   `   @@r"   test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_array8
  s     "T"""6**	3 	3 	3 	3 	3 	3 	3 	3 HRLL b"(2,,& 	 	CE#JJJJ	 	r$   c                      t            t          d                    d fd	}t          j        g           }d|_        |dt          j        g           fD ]} ||           d S )NTrP  r   c                 d     | |          } | |          }                     ||           d S r   rQ  r  s       r"   r-  z<TestNPFunctions.test_argpartition_empty_array.<locals>.checkQ
  r  r$   r  r  r  )r*  r   r   rJ  r  r  s   `   @@r"   test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_arrayK
  s     "T"""6**	3 	3 	3 	3 	3 	3 	3 	3 HRLL b"(2,,& 	 	CE#JJJJ	 	r$   c           	      :   t           } t          d          |          }t          j        g           } ||d          }|                     ||           t          j        d          } ||d          }|                     ||           t          j        g d          }|                                } |t          j        d          |           |                     ||           ddgddgddgfD ]s}t          j        |          }t          j        |          }dD ]F}	|                      |||	          |	         ||	                    | 	                    ||||	           Gtg d	g d
g dg dg dg dg dg dfD ]s}t          j        |          }t          j        |          }dD ]F}	|                      |||	          |	         ||	                    | 	                    ||||	           Gtt          j        d          }|                      ||d          |           t          j        d          }dD ]@}	| 
                     |||	          |	         |	           | 	                    ||||	           At          j        d          d d d         }||                                t          |                                          fD ]}
| 
                     ||
d          d         d           | 
                     ||
d          d         d           |                      ||
d           ||
d                     |                      ||
d           ||
d                     | 	                    |||d           t          rd}nd}t          j        |          }t          j        ||j        dz            }|j        dz  dz   }| 
                     |||          |         |           t          j        |dz             }t          j        ||j        dz  dz             }|j        dz  dz   }| 
                     |||          |         |           t          j        d          }d |d<   | 
                     ||d!          d         d            | 
                     ||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                            |           t)          d|j        d#          D ]F}| 
                     |||          |         ||                    | 	                    ||||           Gnt          j        d          d$z  }t          j        t          j        d          d$z            }| j                            |           t)          |j                  D ]F}| 
                     |||          |         ||                    | 	                    ||||           Gt          j        g d%          }g d&}| 
                    t           |||          |                   d'           d( t          j        t          j        fD             }|D ]/\  }}t          j        ||)          }| j                            |           t          j        t          j        ||)          d*          }t1          | j        j        |           t)          |j                  D ]} |||          }| 
                    ||         |           t          j                            |d |         ||                    t          j                            ||         ||dz   d                     | 	                    ||||           1d S )+NTrP  r   r   r  ra  r3  (   rE  r   r   r  rE  r   r  rE  r   r  rE  r  r   r   r   r   r  rE  rE  r   r   rE  r   r  r   1   r3  ra  /   r  r_  r  r  )      r  @B r]  r  rE  r  ra  r  r  r   r   rE  r  r  r3  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r     r^  r   r  r  r  c                      g | ]}d D ]}||fS )r  r  r  r8  dtss      r"   r9  z8TestNPFunctions.test_partition_basic.<locals>.<listcomp>
  )    HHH"HH1r1gHHHHr$   rB  r  r   )r&  r   r   rJ  r  r  r  rd  rj  rf  r  rk  rl  r   r:  rb  r  isnanr
  r  rk  r  r  tilemapr  assert_array_less)r  r  r#  rs  r$  r(  okthr  ru  r   r0   SIZEr!   midrn  tdr  r  d1r  s                       r"   test_partition_basicz$TestNPFunctions.test_partition_basic^
  s(    "T"""6**HRLLeAqkk3'''GAJJeAqkk3''' h{{{##xxzzbimmS!!!T***a&1a&1a&) 	A 	AAA'!**C A A''aAA???++FE1a@@@@A ))YYY			999))YYY			999> 	A 	AAA'!**C A A''aAA???++FE1a@@@@A GBKKaQ/// IbMM 	= 	=AUU1a[[^Q///''q!<<<< IbMM$$B$AHHJJahhjj 1 11 	? 	?AUU1a[[^Q///UU1b\\"-r222##EE!RLL%%2,,???##EE!SMM55B<<@@@''q#>>>>  	DDDIdOOGAqv{##fkAoq#s+S111IdQhGAqv{Q''fkAoq#s+S111 GBKK!q'**2.222q'**1-q111v!xa))"-.....  	A	"!A'")B--!+,,CHQ1afa(( A A  q!QQ888++FE1a@@@@A 	"!A'")B--!+,,CHQ16]] A A  q!QQ888++FE1a@@@@H ( ( ( ) )nnuuQ}}S122LAAAHH2: 6HHH 	A 	AEB	!2&&&AHQ1B///88B "%%%16]] A AE!QKK  1q)))
,,QrrUAaD999
,,QqT1QUVV9===++FE1a@@@@A	A 	Ar$   c           	         t           } t          d          |          }t          j        g t          j                  } ||d          } ||d          }|                     ||           t          j        dt          j                  } ||d          } ||d          }|                     ||           t          j        g d          }|                                } |t          j        d          |           |                     ||           ddgddgddgfD ]}t          j        |          }t          j	        |          }	d	D ]R}
|                     | |||
          |
                  ||	|
                             | 
                    ||||
           Sg d
g dg dg dg dg dg dg dfD ]}t          j        |          }t          j	        |          }	dD ]R}
|                     | |||
          |
                  ||	|
                             | 
                    ||||
           St          j        d          }|                     | ||d                   |           t          j        d          }dD ]@}
|                      |||
          |
         |
           |                     ||||
           At          j        d          d d d         }||                                t          |                                          fD ]}|                      ||d          d         d           |                      ||d          d         d           |                      ||d           ||d                     |                      ||d           ||d                     | 
                    |||d           t          rd}nd }t          j        |          }t          j        ||j        dz            }|j        dz  dz   }|                     | |||          |                  |           t          j        |dz             }t          j        ||j        dz  dz             }|j        dz  dz   }|                     | |||          |                  |           t          j        d!          }d"|d<   |                     | ||d#          d                  d"           |                     | ||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                            |           t/          |j                  D ]L}|                     | |||          |                  |	|                    | 
                    ||||           Mt          j        g d%          }g d&}|                     t          | |||          |                            d'           d( t          j        t          j        fD             }|D ]5\  }}t          j        ||          }| j                            |           t          j        t          j        ||          d)          }t7          | j        j        |           t/          |j                  D ]}| |||                   }|                     ||         |           t          j                            |d |         ||                    t          j                            ||         ||dz   d                     | 
                    ||||           7d S )*NTrP  rB  r   r   r  r  rE  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  c                      g | ]}d D ]}||fS r  r  r  s      r"   r9  z;TestNPFunctions.test_argpartition_basic.<locals>.<listcomp>.  r  r$   r  )r*  r   r   rJ  r  r  r  r  rd  rx  rh  r  rf  rk  rl  r   r:  rb  r  r  rj  r
  r  rk  r  r  r  r  r  r  )r  r  r#  rs  r%  r$  r(  r  r  ru  r   r0   r  r!   r  rn  r  r  r  r  r  s                        r"   test_argpartition_basicz'TestNPFunctions.test_argpartition_basic
  s    "T"""6**HRrx(((6!Q<<eAqkk#...GARX&&&6!Q<<eAqkk#... h{{{##xxzzbimmS!!!T***a&1a&1a&) 	D 	DAA*Q--C D D''%%1++a.(91SV9EEE..vuaCCCCD ))YYY			999))YYY			999> 	D 	DAA*Q--C D D''%%1++a.(91SV9EEE..vuaCCCCD GBKK%%1++222 IbMM 	= 	=AUU1a[[^Q///''q!<<<< IbMM$$B$AHHJJahhjj 1 11 	B 	BAUU1a[[^R000UU1b\\"-r222##EE!RLL%%2,,???##EE!SMM55B<<@@@**65!SAAAA  	DDDIdOOGAqv{##fkAo55C==-.444IdQhGAqv{Q''fkAo55C==-.444 GBKK!55G,,R01155555G,,Q/0!444v!x%%7++B/011111 IbMMAgbimma'((qv 	@ 	@AQuuQ{{1~.A777**65!Q????H ( ( ( ) )nnqq#s!3455|DDDHH2: 6HHH 	D 	DEB	!2&&&AHQ1B///88B "%%%16]] D DeeAqkkN  1q)))
,,QrrUAaD999
,,QqT1QUVV9===..vuaCCCCD	D 	Dr$   c           	      v   d}t          j        |          D ]}t           j                            |||         ||         d|z             |                     ||d          ||         k                                    d|||d          ||         fz             |dz   }|                     ||||           d S Nr   zkth %d)err_msgzkth %d, %r not greater equal %dr  r   )r   rj  r  r  r&  allrf  r  r  r#  rs  r(  prevr   s          r"   assert_partitionedz"TestNPFunctions.assert_partitioned>  s     	= 	=AJ((46AaD19A ) ? ? ?OOQqrrUad]//11"&)*AabbE1Q4(8"9  ; ; ; q5D''q!<<<<	= 	=r$   c           	      v   d}t          j        |          D ]}t           j                            |||         ||         d|z             |                     ||d          ||         k                                    d|||d          ||         fz             |dz   }|                     ||||           d S r  )r   rj  r  r  r&  r  rh  r  s          r"   assert_argpartitionedz%TestNPFunctions.assert_argpartitionedI  s     	@ 	@AJ((46AaD19A ) ? ? ?OOQqrrUad]//11"&)*AabbE1Q4(8"9  ; ; ; q5D**65!Q????	@ 	@r$   c                 v   t           } t          d          |          }t          | j        ||          }t	          j        g d          } ||d          } ||d            ||t	          j        |d                   d           |                     | ||d                     t	          j        d          }| j	        
                    |           |                     t	          j        d           ||t          t          |j                                                 t	          j        d          }| j	        
                    |           t	          j        g d          }| 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              d S NTrP  )r  r  rE  r   )r   r  )r  r  rL  )r   r  r  r  r^  r  r3  r  r_  r`  )r&  r   r   r  r   rJ  r*  r  rd  r
  r  r  rk  rb  )r  r  r#  r  rs  r  keyss          r"   test_partition_iterativez(TestNPFunctions.test_partition_iterativeT  s<    "T"""6**$T%<feLLH\\\""E!V1f%%%1R_Q778&AAA55H#5#5666IbMM	"uuQU16]]8K8K/L/LMMM IbMMx&&E!TNN1d###a222 IbMM$$B$55QC!G,,qc22255QC!Gq"g$566a1b'8IJJJJJr$   c                    t           } t          d          |          }t          | j        ||          }t	          j        g d          }| ||d                   } ||d            ||t	          j         |d                   d           |                     || ||d                              t	          j        d          }| j        	                    |           |                     t	          j        d          | ||t          t          |j                                                          t	          j        d          }| j        	                    |           t	          j        g d          }| 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              d S r  )r*  r   r   r  r   rJ  r  rd  r
  r  r  rk  rb  )r  r  r#  r  rs  r  r  s          r"   test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterativev  sg    "T"""6** '(B(.(-!/ !/ H\\\""eeAva(((a6 : :;VDDD1UU1h%7%7#8999IbMM	"qq$uQV}}:M:M1N1N/OPPP IbMMx&&eeAtnna&&&%%4.. 11555 IbMM$$B$aa!q 1 12QC888aa!qAr7): ; ;<qcAgB>OPPPPPr$   c                 p    t            t          d                     fd}d }t          j        ddd          }t          j        |dd	<   t          j         |d
<   t          j        |d<   |                    d          } ||          D ]!}t          dd          D ]} |||           "d S )NTrP  c           	      8    | |          } | |          }                     |d d d d |f         |d d d d |f                    t          j        |j        d d                   D ]}                     t          j        ||         d |                   t          j        ||         d |                                                   t          j        ||         |d                    t          j        ||         |d                               d S Nr  )r  r   ndindexr  r  )r0   r(  r%  r$  r  r#  r  r  s        r"   r-  z7TestNPFunctions.test_partition_multi_dim.<locals>.check  s.   va~~H%3--C##HQQQ3Y$7QQQ3YHHHZss 344 A A''	(1+dsd2C(D(D(*	#a&#,(?(?A A A''	(1+cdd2C(D(D(*	#a&,(?(?A A A AA Ar$   c              3     K   | V  | j         V  t          j        |           V  t          j        | t          j                  V  t          j        | t          j                  V  ddt          j         dfffV  d S Nrd  r.  r  r  r  r   r  	full_liker  r  rJ   s    r"   a_variationsz>TestNPFunctions.test_partition_multi_dim.<locals>.a_variations        GGG#III#A&&&&&,qRV444444,qRV444444%"&!,.000000r$   r   r]  0   r  r  r  r  r  r  r  r  r  )r&  r   r   r  r  r  r  rk  r  r-  r  r0   r@   r   r#  r  s   `     @@r"   test_partition_multi_dimz(TestNPFunctions.test_partition_multi_dim  s    "T"""6**		A 		A 		A 		A 		A 		A 		A	1 	1 	1 K2r""!A#w!v!IIi  <?? 	 	C2q\\  c1	 	r$   c                 p    t            t          d                     fd}d }t          j        ddd          }t          j        |dd	<   t          j         |d
<   t          j        |d<   |                    d          } ||          D ]!}t          dd          D ]} |||           "d S )NTrP  c           
      8    | |          } | |          }t          j        |           } t          j        | j        d d                   }|D ]H}                    | |         ||         |                  | |         ||         |                             It          j        |j        d d                   D ]}                    t          j        | |         ||         d |                            t          j        | |         ||         d |                                                           t          j        | |         ||         |d                             t          j        | |         ||         |d                                        d S r  )r   r>  r  r  r  r  )	r0   r(  r%  r$  rt  r  r#  r  r  s	         r"   r-  z:TestNPFunctions.test_argpartition_multi_dim.<locals>.check  s   va~~H%3--C
1A*QWSbS\**C ; ;''!Xa[-=(>()!SVC[(9; ; ; ; Zss 344 G G''	!A$x{4C47H2I(J(J(*	!A$s1vdsd|2D(E(EG G G''	!A$x{3447H2I(J(J(*	!A$s1vcdd|2D(E(EG G G GG Gr$   c              3     K   | V  | j         V  t          j        |           V  t          j        | t          j                  V  t          j        | t          j                  V  ddt          j         dfffV  d S r  r  rJ   s    r"   r  zATestNPFunctions.test_argpartition_multi_dim.<locals>.a_variations  r  r$   r   r]  r  r  r  r  r  r  r  r  )r*  r   r   r  r  r  r  rk  r   s   `     @@r"   test_argpartition_multi_dimz+TestNPFunctions.test_argpartition_multi_dim  s    "T"""6**	G 	G 	G 	G 	G 	G 	G	1 	1 	1 K2r""!A#w!v!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 ]}|                     ||||            d S 
NTrP  )r  r   r   r  r  r   r]  rL  TFT)r&  r   r   r   r  rJ  rf  r  r  r#  kthsrs  r(  s         r"   test_partition_boolean_inputsz-TestNPFunctions.test_partition_boolean_inputs  s    "T"""6**6!! 4'DQB''2E)F)FF 	C 	CA C C++FE1cBBBBC	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 ]}|                     ||||            d S r  )r*  r   r   r   r  rJ  rh  r	  s         r"    test_argpartition_boolean_inputsz0TestNPFunctions.test_argpartition_boolean_inputs  s    "T"""6**6!! 4'DQB''2E)F)FF 	F 	FA F F..vuaEEEEF	F 	Fr$   c                    t           } t          d          |          }|                                  t          j        ddgddgddgg          j        }t          j        d          dfD ]c}|                                 5 } |||           d d d            n# 1 swxY w Y   |                     d	t          |j
                             dt          j        t          j        fD ]i}|                     t                    5 } |||           d d d            n# 1 swxY w Y   |                     d
t          |j
                             jdD ]i}|                     t                    5 } |||           d d d            n# 1 swxY w Y   |                     dt          |j
                             jd S )NTrP  r   rE  r   r                @)r0  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   rV  r   rJ  r  rd  r  rT  rR  rU  r  r  rS  r  )r  r  r#  r   r0  rX  s         r"   test_cov_invalid_ddofz%TestNPFunctions.test_cov_invalid_ddof  s   "T"""6** 	!!!Hq!fq!fq!f-..0IaLL"$ 	1 	1D'')) $Vad####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $MMEf.//1 1 1 1 FBFN 	1 	1D"":.. $&ad####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $MMEf.//1 1 1 1  	P 	PD"":.. $&ad####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $MM7V=M9N9NOOOO	P 	Ps6   BB!	$B!	DD#	&D#	1FF	F	c                       t          d          |          }t           j        ||d          } fd} |            D ]} |||i           d S )NTrP  +=r  c               3     K   t          j        ddgddgddgg          j        V   j                            d                              dd          V  t          j        t          j        ddgddgddgg          j                  V   j                            d                              dd          d d d d df         V  t          j        g d          V  t          j        dd	
          V  t          j        t           j        dt           j	         ddg          V  t          j
        ddd                              dd          V  dV  dV  dV  dV  g dV  dV  ddgV  dV  dV  t          j        g           V  t          j        g                               dd          V  t          j        g                               dd          V  dV  d S )Nr   rE  r   r  r3  r^  )g&S:?o_?g#~j?甇ZӼ?Q|?rX  Trd  r  r  r  r  r  !   )皙?皙?g)\(?gRQ?)g
ףp=
?gzG?)r  r  )y        
ףp=
?y        zG?g r  g333333@r  r  )r  r  r  r  )r   r  rE  r  ))r!  皙@r  r  )r   rJ  r  r
  randnr  r  r   r  r  r  r  s   r"   input_variationsz=TestNPFunctions.corr_corrcoef_basic.<locals>.input_variations  s3     (QFQFQF3446666(..%%--a44444#BHq!fq!fq!f-E$F$F$HIIIII(..%%--a44QQQ!V<<<<(CCCDDDDD'&T222222(BFFRVGVVDEEEEE+b!R((00Q77777 ;:::<<<<!!!!OOO))OOO4444i((((KKK$$$$ (2,,(2,,&&q!,,,,,(2,,&&q!,,,,,HHHHHr$   )r   r   r  )r  r  first_arg_namer#  r  r   	input_arrs   `      r"   corr_corrcoef_basicz#TestNPFunctions.corr_corrcoef_basic  s    "T"""6**+VUEJJJ	 	 	 	 	: *)++ 	0 	0IFNI.////	0 	0r$   c                 B    t           }|                     |d           d S )Nr!   r!  )r2  r#  r+  s     r"   test_corrcoef_basicz#TestNPFunctions.test_corrcoef_basic7  s&       <<<<<r$   c                 B    t           }|                     |d           d S )Nr   r%  )r,  r#  r+  s     r"   test_cov_basiczTestNPFunctions.test_cov_basic<  s&       <<<<<r$   c                 `   t           } t          d          |          }t          | j        ||d          }| j                            d                              dd          }d |d d d         f}d	}d	}d
}t          j        ||||          }	|	D ]\  }
}}}||
|||d} ||           d S )NTrP  r  r  i   ra  r  r  FT)Nr  r   r   r  T)r   r-  r0  r/  r.  )	r,  r   r   r  r
  r  r  rw  r   )r  r  r#  r  r   	y_choicesrowvar_choicesbias_choicesddof_choiceproductsr-  r.  r/  r0  r  s                  r"   test_cov_explicit_argumentsz+TestNPFunctions.test_cov_explicit_argumentsA  s    "T"""6**+VUEJJJHNN3''A..!DDbD'M	$"/$Y%1;@ @%- 	 	!AvtT1d"f6 6FF6NNNN	 	r$   c                 H   t           } t          d          |          }t          | j        ||d          }| j                            d                              dd          }d |d d d         f}d	}t          j        ||          D ]\  }}|||d
}	 ||	           d S )NTrP  r  r  r*  ra  r  r  r+  r3  )	r2  r   r   r  r
  r  r  rw  r   )
r  r  r#  r  r!   r,  r-  r-  r.  r  s
             r"    test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_argumentsT  s    "T"""6**+VUEJJJHNN3''A..!DDbD'M	$"*9nEE 	 	IAv177FF6NNNN	 	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                            dd          }t          j        g d                              dd          dz  }||d|i} ||           t          j        g d          }t          j        g dg dg          }||d|i} ||           dD ][}t          j        g d          }t          j        g dg dg dg          }||d|d|i} ||           ||d|d|i} ||           \d S )NTrP  r  r  r  )r  r!  Q?r-  r  r>  r  r  )r>  r  r  r!  r  r]  r  r   r+  )r  r!  r5  r.  )r   r   r  r   rJ  r
  r  r  )	r  r  r!  r#  r  r   r-  r  r.  s	            r"   cov_corrcoef_edge_casesz'TestNPFunctions.cov_corrcoef_edge_casesb  s   "T"""6**+VUEJJJ H___%%H^^^$$ !S!,vHYYYHlll^$$ !S!,vHYYY !S!,v !S!,vHYYY !S!,v !S!,vHRLLHRLL !S!,v !S!,vHNN2q!!H___%%--a33b8 !S!,vH___%%Hnnnnnn566 !S!,v! 	 	F))A.........IJJA$aa6BFF6NNN$aa6BFF6NNNN	 	r$   c                     t           }|                     |d            t          d          |          }t          | j        ||d          }t
          j        t
          j         ddfD ]}d|i} ||           d S )	Nr!   r%  TrP  r  r  r  r   )r2  r7  r   r   r  r   r  r  r  r  r#  r  r!   r  s         r"   test_corrcoef_edge_casesz(TestNPFunctions.test_corrcoef_edge_cases  s    $$VC$@@@"T"""6**+VUEJJJ&26'5!, 	 	A1XFF6NNNN	 	r$   c                     t           } t          d          |          }t          | j        ||d          }d}d|i} ||           d S )NTrP  r  r  ))r  }Ô%IT)r<  r  r!   )r2  r   r   r  r9  s         r"   &test_corrcoef_edge_case_extreme_valuesz6TestNPFunctions.test_corrcoef_edge_case_extreme_values  s[    "T"""6**+VUEJJJ /qvr$   c                    t           }|                     |d            t          d          |          }t          | j        ||d          }t          j        ddgd	d	gddgg          j        }|d
d} ||           d S )Nr   r%  TrP  r  r  r   rE  r   r3  )r   r0  )r,  r7  r   r   r  r   rJ  r  )r  r  r#  r  r   r  s         r"   test_cov_edge_casesz#TestNPFunctions.test_cov_edge_cases  s    $$VC$@@@"T"""6**+VUEJJJ Hq!fq!fq!f-..0!$$vr$   c                     t           } t          d          |                                             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          }                     t                    5 } ||           d d d            n# 1 swxY w Y    	                    dt          |j                             t          j        g d                              dd
          }                     t                    5 } |           d d d            n# 1 swxY w Y    	                    dt          |j                             d S )NTrP  c                                                      5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nzm has more than 2 dimensionsr  )r   rX  r#  r  s     r"   _check_mz5TestNPFunctions.test_cov_exceptions.<locals>._check_m  s    '')) Va              MM8#f>N:O:OPPPPPs   .22r3  r_  r  )))r  r  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S )NrR  zy has more than 2 dimensionsr  )r   r-  rX  r#  r  s      r"   _check_yz5TestNPFunctions.test_cov_exceptions.<locals>._check_y  s    '')) Va1              MM8#f>N:O:OPPPPPr  r!  )r!  r  r!  )))r  r  r  r  r  rR  z$m and y have incompatible dimensionsr  r   z/2D array containing a single row is unsupported)r,  r   rV  r   r  rJ  rd  rS  r  rT  rR  rU  r  RuntimeError)r  r  rB  r   rE  r-  rX  r#  s   `      @r"   test_cov_exceptionsz#TestNPFunctions.test_cov_exceptions  s   "T"""6** 	!!!	Q 	Q 	Q 	Q 	Q 	Q
 GI(ii[M	Q 	Q 	Q 	Q 	Q 	Q
 GFOOGIAH_%%!AIaLLIaLLz** 	fE!qMMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<&*++	- 	- 	-
 H___%%--a33|,, 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	G&*++	- 	- 	- 	- 	-s$   D22D69D6)GGGc                    t           } t          d          |          }t          | j        ||          }d }d }t          rdnd} |t          j        dd|                    D ]^}d	|i} ||            ||          D ]A}	||	d
} ||           ||	d} ||            ||          D ]}
||	|
d} ||           B_d S )NTrP  c              3   n   K   d V  | V  t           s#|                     t          j                  V  d S d S r   )r   r3  r   r  rJ   s    r"   to_variationsz9TestNPFunctions.test_ediff1d_basic.<locals>.to_variations  sJ      JJJGGG" )hhrx((((((() )r$   c              3      K   | V  t           s<|                     ddd          V  |                     t          j                  V  d S d S )Nr  rE  )r   r  r3  r   r  rJ   s    r"   ary_variationsz:TestNPFunctions.test_ediff1d_basic.<locals>.ary_variations  s]      GGG" )ii1a(((((hhrx((((((() )r$   r_  r  r  r  r6  )r6  r8  )r6  r7  )r6  r8  r7  )r5  r   r   r  r   r   r  )r  r  r#  r  rJ  rL  
array_sizer6  r  r0   r1   s              r"   test_ediff1d_basicz"TestNPFunctions.test_ediff1d_basic  s8   "T"""6**+VU;;	) 	) 	)	) 	) 	) *1QQr
!>"+b!Z"@"@AA 	# 	#CS\FF6NNN"]3'' 	# 	#!$!44v!$22v&s++ # #A%(a1EEFF6NNNN#	#		# 	#r$   c                 4   t           } t          d          |          }|                                  |                                 5 } |t	          j        d                     d d d            n# 1 swxY w Y   d}|t          |j                  v sJ d S )NTrP  )TTFz+Boolean dtype is unsupported (as per NumPy))r5  r   rV  r  r   rJ  rR  rU  )r  r  r#  r%  r  s        r"   test_ediff1d_exceptionsz'TestNPFunctions.test_ediff1d_exceptions  s    "T"""6** 	!!!##%% 	1E"(.//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 <c!+&&&&&&&&s   	A33A7:A7c                    t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          j        z  t          |j	                             d S )NTrP  c               3      K   t          j        d                              dd          V  t          j        d                              ddd          V  dV  ddgddgfV  d S )	Nr]  r3  rE  r^  r  r   r  r  r  r  r$   r"   r  z7TestNPFunctions.test_fliplr_basic.<locals>.a_variations)  sx      )B--''1-----)B--''1a00000OOOq6Aq6######r$   r`  zCannot np.fliplr on %s type)
r   r   r  rS  r   rT  r	   unicode_typerR  rU  r  r  r#  r  r0   r%  r$  rX  s           r"   test_fliplr_basicz!TestNPFunctions.test_fliplr_basic%  s(   "T"""6**	$ 	$ 	$  	3 	3AvayyH%((C##Hc2222{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3e6HH&*++	- 	- 	- 	- 	-   7BBBc                    t           } t          d          |          }|                                  |                     t                    5 } |t          j        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     dt          |j	                             d S )NTrP  r  cannot index arrayzwith 2 indices)
r   r   rV  rS  r   r   rd  rT  rR  rU  rW  s       r"   test_fliplr_exceptionz%TestNPFunctions.test_fliplr_exception:  s    "T"""6** 	!!!{++ 	 vE")A,,	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	*C0@,A,ABBB&F,<(=(=>>>>>s   A99A= A=c                    t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          j        z  t          |j	                             d S )NTrP  c               3     K   dgV  t          j        d          V  t          j        d                              dd          V  t          j        d                              ddd          V  dV  ddgddgfV  d S )	Nr   r]  r3  rE  r^  rS  r  r  r  r  r$   r"   r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variationsK  s      #III)B--)B--''1-----)B--''1a00000OOOq6Aq6######r$   r`  zCannot np.flipud on %s type)
r   r   r  rS  r   rT  r	   rT  rR  rU  rU  s           r"   test_flipud_basicz!TestNPFunctions.test_flipud_basicG  s(   "T"""6**	$ 	$ 	$  	3 	3AvayyH%((C##Hc2222{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3e6HH&*++	- 	- 	- 	- 	-rW  c                    t           } t          d          |          }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )NTrP  r   rY  zwith 1 indices)r   r   rV  rS  r   rT  rR  rU  rW  s       r"   test_flipud_exceptionz%TestNPFunctions.test_flipud_exception^  s    "T"""6** 	!!!{++ 	vE!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	*C0@,A,ABBB&F,<(=(=>>>>>s   A''A+.A+c                    t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTrP  c               3     K   t          j        d          V  t          j        d          V  t          j        d                              dd          V  t          j        d                              ddd          V  d S )Nr   r]  r3  rE  r^  r  r  r$   r"   r  z5TestNPFunctions.test_flip_basic.<locals>.a_variationso  s~      (1++)B--)B--''1-----)B--''1a0000000r$   r  zCannot np.flip on UniTuple)r   r   r  rS  r   rT  rR  rU  rU  s           r"   test_flip_basiczTestNPFunctions.test_flip_basick  s   "T"""6**	1 	1 	1  	3 	3AvayyH%((C##Hc2222{++ 	vE)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2C8H4I4IJJJJJrW  c                     d }t           } t          d          |          } |            D ]9\  }}t          j                             |||           |||                     :d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t           j        fV  d	t           j        fV  t          d
k     rt          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  d S d S N)r   r  )r  r  )r  r  rf  )r  r  r.        N@      Nr/  )r/  ri  r  rE  r   r   rE  r  r        ?       @      @      @      ?             @                   @r   r%  pir   r  r  r$   r"   r\  z4TestNPFunctions.test_logspace2_basic.<locals>.inputs  f     KKKLLLMMMMMMLLLOOOrt)OOOru*v%%l1oor|A6666l2&&R(8(88888l1oor|B'7'77777l6**BL,@,@@@@@l6**BL,@,@@@@@l7++R\&-A-AAAAAAA &%r$   TrP  )r   r   r   r  assert_allcloser  r\  r  r#  r   r   s         r"   test_logspace2_basicz$TestNPFunctions.test_logspace2_basic      	B 	B 	B( "T"""6**!688 	P 	PKE4J&&vveT':':EE%<N<NOOOO	P 	Pr$   c                     t          d          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTrP  r`  r3  +The first argument "start" must be a number+The second argument "stop" must be a number)r   r   rV  rS  r   rT  rR  rU  r  r#  rX  s      r"   test_logspace2_exceptionz(TestNPFunctions.test_logspace2_exception  sr   "T"""9--!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- {++ 	vE!UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- 	- 	-s$   A&&A*-A*3CCCc                     d }t           } t          d          |          } |            D ]9\  }}t          j                             |||           |||                     :d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t           j        fV  d	t           j        fV  t          d
k     rt          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  d S d S re  rr  r  r$   r"   r\  z4TestNPFunctions.test_logspace3_basic.<locals>.inputs  rt  r$   TrP  r   r   r   r  ru  rv  s         r"   test_logspace3_basicz$TestNPFunctions.test_logspace3_basic  rx  r$   c           	          d }t           } t          d          |          } |            D ]<\  }}}t          j                             ||||           ||||                     =d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t           j        d
fV  d	t           j        dfV  t          dk     rt          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  d S d S )N)r   r  r^  )r  r  r  )rf  r  r  r  rf  r   )r  r  r  r.  ri  F   rk  r/  P   )r/  ri  Z   r  r^  r  rl  r   rE  r  r  r  r   r  rm  rn  r  ro  rp  r  rq  r  rr  r  r$   r"   r\  z=TestNPFunctions.test_logspace3_with_num_basic.<locals>.inputs  s     OOO!!!!    rtR-rub.   v%%l1oor|A::::l2&&R(8(8"<<<<l1oor|B'7'7;;;;l6**BL,@,@"DDDDl6**BL,@,@"DDDDl7++R\&-A-A2EEEEEE &%r$   TrP  r  r  r\  r  r#  r   r   r   s          r"   test_logspace3_with_num_basicz-TestNPFunctions.test_logspace3_with_num_basic  s    	F 	F 	F( "T"""6** & 	@ 	@E4J&&vveT3'?'?',uUD#'>'>@ @ @ @	@ 	@r$   c                     t          d          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	NTrP  r`  r3  rz  r{  r   z+The third argument "num" must be an integer)r   r   rV  rS  r   rT  rR  rU  r|  s      r"   test_logspace3_exceptionz(TestNPFunctions.test_logspace3_exception  s   "T"""9--!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- {++ 	vE!UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- {++ 	vE!Q	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- 	- 	-s6   A&&A*-A*3CCCD33D7:D7c                     d }t           } t          d          |          } |            D ]1\  }}|                      |||           |||          d           2d S )Nc               3   r  K   dV  dV  dV  dV  dV  dV  dV  dt          j        d	          fV  t          j        d	          dfV  d
t          j        d	          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d	          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  d S )Nrg  rh  rj  )r   r  )r  r   )r      )r  r  r  r/  r>               @@r<  r;  r   rE  r  rm  rn  ro  rp  rq  r   r  r  r$   r"   r\  z5TestNPFunctions.test_geomspace2_basic.<locals>.inputs  s     MMMOOOMMMMMMLLLOOObl2&&&&&&,r""B&&&&R((((((,r""BL$7$77777,w''f)=)=====,q//2<??2222,r""BL$4$44444,q//2<#3#33333,v&&V(<(<<<<<,v&&V(<(<<<<<,w''f)=)=======r$   TrP  g-q=r  )r   r   r  rv  s         r"   test_geomspace2_basicz%TestNPFunctions.test_geomspace2_basic  s    	> 	> 	>* "T"""6**!688 	3 	3KE4##FF5$$7$7$)E%$6$6,1 $ 3 3 3 3	3 	3r$   c                     t          d          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	NTrP  r`  r3  %The argument "start" must be a number$The argument "stop" must be a numberr   &Geometric sequence cannot include zero)	r   r   rV  rS  r   rT  rR  rU  r  r|  s      r"   test_geomspace2_exceptionz)TestNPFunctions.test_geomspace2_exception  s   "T""":..!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	=&*++	- 	- 	- {++ 	vE!UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<&*++	- 	- 	- z** 	fE!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- z** 	fE!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- 	- 	-sH   A&&A*-A*3CCCD22D69D6?FFFc           	          d }t           } t          d          |          } |            D ]4\  }}}|                      ||||           ||||          d           5d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t          j        d
          dfV  t          j        d
          d	dfV  dt          j        d
          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d
          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          d fV  t          j        d!          t          j        d          d"fV  d S )#Nr  r  r  )r   r  r  )r   r  r  )r  r   r  )r   r  r  )r  r  r  r  r  r]  r^  r/  r  r>  r  r  r<  r;  r3  r   rE  r  r  r   r  rm  rn  r  ro  rp  r  rq  r  r  r  r$   r"   r\  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs1  s     !!!!OOObl2&&****,r""B****R((",,,,,r""BL$7$7::::,w''f)=)=q@@@@,q//2<??B6666,r""BL$4$4b8888,q//2<#3#3R7777,v&&V(<(<b@@@@,v&&V(<(<b@@@@,w''f)=)=rAAAAAAr$   TrP  r  r  )r   r   r  r  s          r"   test_geomspace3_basicz%TestNPFunctions.test_geomspace3_basic/  s    	B 	B 	B, "T"""6** & 	3 	3E4##FF5$$<$<$)E%s$;$;,1 $ 3 3 3 3	3 	3r$   c                 p    t          d          t                    }|                                  |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |d	dd           d d d            n# 1 swxY w Y   |                     d
t          |j                             |                     t                    5 } |dd	d           d d d            n# 1 swxY w Y   |                     d
t          |j                             d S )NTrP  r`  r3  r]  r  r  z%The argument "num" must be an integerr   r  )	r   r   rV  rS  r   rT  rR  rU  r  r|  s      r"   test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exceptionO  s_   "T""":..!!!{++ 	 vE%B	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 =&*++	- 	- 	- {++ 	 vE!UB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 <&*++	- 	- 	- {++ 	 vE!R	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 =&*++	- 	- 	- z** 	fE!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- z** 	fE!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- 	- 	-sZ   A''A+.A+4CCCD55D9<D9FF #F )HH
Hc                     t          d          t                    } t          d          t                    }t          } |dd          }|                     t	          |          d            |ddd          }|                     |d         d	            |ddd
          }|                     | |ddd
                      |ddd          }|                     | |ddd                     |                     d |j        D                         |ddd          }|                     | |ddd                     |                     d |j        D                         |ddd          }|                     | |ddd                     |                     d |j        D                        d}d} |||d          }|                     |d         |            |||d          }|                     |d         |           |                     |d         |           t          j	        d          5   |ddd          }d d d            n# 1 swxY w Y   |                     |d         d           |                     t          j
        |dd                                                              |                     |d         d            |ddd          }|                     | |ddd          d           |                     d  |j        D                         |d!d"d          }|                     | |d!d"d          d#           |                     d$ |j        D                         |d%d&d          }|                     | |d%d&d          d#            |d'd(d          }|                     | |d'd(d          d#           t          d)k     r0 |d*d+d          }|                     | |d*d+d                      |d,d-d          }|                     | |d,d-d          d.            |d,d/d          }|                     | |d,d/d          d.            |d-d0d          }|                     | |d-d0d          d.            |d,d-d          }|                     | |d,d-d          d.            |d1d2d
          }|                     | |d1d2d
          d            |d,d3d          }|                     | |d,d3d                      |d3d,d          }|                     | |d3d,d                     d S )4NTrP  r   r"  r   r  r   r  r  r  r  rE  r  c                     g | ]}|d k    	S r  r  rB  s     r"   r9  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>}      000Aa000r$   ic                     g | ]}|d k    	S r  r  rB  s     r"   r9  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r  r$   c                     g | ]}|d k    	S r  r  rB  s     r"   r9  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r  r$   r  gL4@r   ignore)invalidr  r  g      r  r>  y              0@r3  r  r  c                     g | ]}|d k    	S r  r  rB  s     r"   r9  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r  r$   y             y            @tvIh%<=c                     g | ]}|d k    	S r  r  rB  s     r"   r9  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r  r$   r	  y     @@     @@y            ?y     @     @@rl  r<  r;  r  y              gV瞯<rt  y              y             y      @      @r4  )r   r   r   r  rI  r  r&  imagr   errstater  r  realr   )r  cfunc2cfunc3pfunc3r-  r   r   s          r"   test_geomspace_numpyz$TestNPFunctions.test_geomspace_numpym  s   #d###J//#d###J// F1cNNQ$$$F1cs###2(((F1cq!!!66!CQ#7#7#7888F1aQ66!QA#6#6#677700000111F2t###66"d#:#:#:;;;00000111F4###66$#:#:#:;;;00000111 F5$A&&&!e,,,F5$A&&&!e,,,"t,,, [*** 	% 	%r1!$$$A	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	!d+++1R4))--//000!c*** F2s"""66"cq#9#9#95III00000111F31%%%66#u!#<#<#<eLLL00000111F6<Q/// &v| C C C(- 	  	/ 	/ 	/ F7Mq111 &w1 E E E(- 	  	/ 	/ 	/
 6!!wA...A##Avvgv1'E'E'EFFFF67A&&66&'1#=#=uMMMF661%%66&&!#<#<eLLLF7FA&&66'61#=#=uMMMF67A&&66&'1#=#=uMMMF7FA&&66'61#=#=uMMMF2r166"b!#4#4555F2r166"b!#4#455555s   I--I14I1c                     t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /d S )NTrP  c               3     K   t          j        d                              dd          V  t          j        d                              ddd          V  t          j        d                              dddddd          V  d S Nr]  r3  rE  r^  r  r  r  r$   r"   r  z6TestNPFunctions.test_rot90_basic.<locals>.a_variations        )B--''1-----)B--''1a00000)B--''1aAq9999999r$   )r   r   r  )r  r  r#  r  r0   r%  r$  s          r"   test_rot90_basicz TestNPFunctions.test_rot90_basic  s    "T"""6**	: 	: 	:
  	3 	3AvayyH%((C##Hc2222	3 	3r$   c                     t           } t          d          |          }d } |            D ]C}t          dd          D ]0} |||          } |||          }|                     ||           1Dd S )NTrP  c               3     K   t          j        d                              dd          V  t          j        d                              ddd          V  t          j        d                              dddddd          V  d S r  r  r  r$   r"   r  z=TestNPFunctions.test_rot90_with_k_basic.<locals>.a_variations  r  r$   r4  r_  )r   r   rk  r  )r  r  r#  r  r0   r   r%  r$  s           r"   test_rot90_with_k_basicz'TestNPFunctions.test_rot90_with_k_basic  s    "T"""6**	: 	: 	:
  	7 	7A2q\\ 7 7!6!Q<<eAqkk''#66667	7 	7r$   c                 @   t           } t          d          |          }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          
                    dd          d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d	                     d d d            n# 1 swxY w Y   |                     d
t          |j                             d S )NTrP  r`  z'The first argument "m" must be an arrayr  rE  r  z*The second argument "k" must be an integerr  zInput must be >= 2-d.)r   r   rV  rS  r   rT  rR  rU  r   rd  r  rW  s       r"   test_rot90_exceptionz$TestNPFunctions.test_rot90_exception  s7   "T"""6** 	!!!{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	?&*++	- 	- 	- {++ 	7vE")A,,&&q!,,6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	B&*++	- 	- 	- {++ 	 vE")A,,	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	-s63C/D/DEEEEEs6   A''A+.A+44C44C8;C8E++E/2E/c                     |} t          d          |          }d } |            D ]9} || } || }t          j                            |t	          |                     :d S )NTrP  c               3   0  K   t          j        d          } | dfV  | ddfV  | g dfV  t          |           g dfV  t          |           g dfV  | g ddfV  t          |           g ddfV  t          |           g ddfV  t          j        d                              ddd          } | dfV  | ddfV  | ddfV  | g dfV  | g ddfV  | g ddfV  | dd	gfV  | dd	gdfV  | dd	gdfV  | dgd
fV  | dgdfV  | dgdfV  | t          j        g t           j                  dfV  t          j        d                              dd
          } | dfV  | ddfV  | dgdfV  | ddfV  | t          j        ddd          dfV  | dfV  | t          j        d          dffV  t          j        g           } | dfV  | dfV  | ddfV  | ddfV  t          j        g g          } | dfV  | ddfV  | ddfV  | ddfV  d S )Nr  rE  r   )r   r  H   r  r  r   )rE  r   r3  r  r  r  r  rB  r   r]  r   r  )r   rd  r  rl  r  rJ  r  r  rJ   s    r"   args_variationsz5TestNPFunctions._check_split.<locals>.args_variations  s.     	#AQ$JJJQ'MMMZZZ-q'':::%%%%((JJJ&&&&ZZZ""""q'':::q((((((JJJ))))	"%%aA..AQ$JJJQ'MMMQ'MMMYYY,YYY/!!!YYY/!!!aV)OOOaVQ,aVQ,aS"*aS"*aS"*RXb11114444	#&&q"--AQ$JJJQ'MMMaS!)OOOR(NNNRYr2r**A----T'MMMbhqkk2&&&&&AQ$JJJQ$JJJVQ,Q'MMM"AQ$JJJVQ,Q'MMMQ'MMMMMr$   r   r   r  assert_equalr  r  r  r  r#  r  rn   r%  r$  s           r"   _check_splitzTestNPFunctions._check_split  s    "T"""6**-	 -	 -	^ $O%% 	9 	9Dvt}H%,CJ##Hd3ii8888		9 	9r$   c                     |} t          d          |          }d } |            D ]9} || } || }t          j                            |t	          |                     :d S )NTrP  c               3   &  K   t          j        d          dfV  t          t          j        d                    dfV  t          t          j        d                    dfV  t          j        d                              dd          dfV  d S )Nr  r  r  r  rE  r3  )r   rd  r  rl  r  r  r$   r"   r  z;TestNPFunctions._check_array_split.<locals>.args_variations7  s      )A,,/!!!ry||$$a''''	!%%q(((()B--''A..111111r$   r  r  s           r"   _check_array_splitz"TestNPFunctions._check_array_split2  s    "T"""6**	2 	2 	2 $O%% 	9 	9Dvt}H%,CJ##Hd3ii8888		9 	9r$   c                 n    |                      t                     |                     t                     d S r   )r  r   r  r  s    r"   test_array_split_basicz&TestNPFunctions.test_array_split_basicC  s0    +&&&,,,,,r$   c                    |                      t                     |                                  |                     t                    5 } t          t                    t          j        d          d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } t          t                    t          j        d          dgd           d d d            n# 1 swxY w Y   |                     dt          |j
                             d S )Nr3  rE  z0array split does not result in an equal divisionr  r  r=   z%np.split: Argument axis out of bounds)r  r   rV  rS  r  r   r   r  rT  rR  rU  )r  rX  s     r"   test_split_basicz TestNPFunctions.test_split_basicG  s   %   !!!z** 	'fDKK

A&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'> !!	
 	
 	

 z** 	2fDKK

QCb1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2=&*++	- 	- 	- 	- 	-s$   	1BB
B
4DDDc           
      X   d }d }d } |             |             |            g}t           ddft          ddft          dd	ffD ]e\  }}}|}t          |          }	t	          |d
          D ]=}
||
dz
           D ]/\  }}|                      |||           |	||                     0>fd S )Nc               3   r   K   t          j        g d          dfV  t          j        g d          dfV  d S )Nr  rE  r.  rY  r        @r  r  r$   r"   inputs1Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs1D[  sM      (<<<((!++++(+++,,a//////r$   c               3   h  K   t          j        g dg dg          dfV  t          j        g dg dg          dfV  t          j        d                              dd          dfV  t          j        d                              dd          t          j        ddg          fV  t          j        d                              dd          ddgfV  t          j        d                              dd          dfV  t          j        d	                              ddd          dfV  d S )
Nr  rE  r        0@r  r  r_  r  r_  r  r  r  r$   r"   inputs2Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs2D`  sC     (LLL,,,788!;;;;(,,,.>.>.>?@@!CCCC)D//))!Q//2222)D//))!Q//1a&1A1AAAAA)D//))!Q//!Q7777)D//))!Q//7777)C..((Aq111444444r$   c               3   @  K   t          j        g dg dgg dg dgg          df t          j        d                              ddd          dfV  t          j        d                              ddd          t          j        ddg          fV  t          j        d                              ddd          ddgfV  t          j        d                              ddd          dfV  t          j        d                              ddd          dfV  d S )	Nr  rE  r  r  r  r_  r  r  r  r  r$   r"   inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3Dj  s?     H|||#||%#||#||%& ' ' )** * )D//))!Q22A5555)D//))!Q22BHaV4D4DDDDD)D//))!Q22QF::::)D//))!Q22F::::)C..((Aq111444444r$   rE  r   r   r   r  r   r  )r   r   r   r   rk  r  )r  r  r  r  r\  fmindimnamer  r#  rn  r0   r   s                r"   test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basicW  s'   	0 	0 	0
	5 	5 	5
	5 
	5 
	5 (**hhjj((**5#)1h"7#)1h"7#)1h"7"9 	B 	BQ FLLE61%% B B%+AE] B BMAz++FF1j,A,A,1E!Z,@,@B B B BBB	B 	Br$   c           	      \   t           ddft          ddft          ddffD ]\  }}} t          d          |          }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     d	t          |j	                             |                     t                    5 } |d
d           d d d            n# 1 swxY w Y   |                     d	t          |j	                             |                     t                    5 } |t          j        g dg dg          d
           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   |                     |dz   t          |          z   dz   t          |j	                             d S )NrE  r   r   r   r  r   TrP  z#The argument "ary" must be an arrayr`  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   rV  rS  r   rT  rR  rU  r   rJ  r  )r  r  r  r  r#  rX  s         r"   test_vhdsplit_exceptionz'TestNPFunctions.test_vhdsplit_exception  s6   #)1h"7#)1h"7#)1h"7"9 	1 	1Q 'C&&&q))E##%%%"";// 6a              MM?f.//1 1 1"";//  6eQ                             MM?f.//1 1 1"";// E6bhlll;<<eDDDE E E E E E E E E E E E E E EMM &f.//1 1 1 "":.. &&bhqkk1%%%& & & & & & & & & & & & & & &MM$!<<s6{{J/0f.//1 1 1 1)	1 	1sH   ,BB		B		C++C/	2C/	8%E))E-	0E-	6G!!G%	(G%	c                     t           } t          d          |          }d }d } |            D ]=} |            D ]0} |||          } |||          }|                     ||           1>d S )NTrP  c               3   p  K   t          j        d          V  t          j        d                              ddd          V  g dV  dV  dV  dV  d	V  t          j        t          j        d
t           j        gt           j        dgg                    V  t          j        g           V  dV  d S )Nr  r  r  r  r3  )r!  r  r  r  F)r  r!  g333333@r  )r   rd  r  r  rJ  r  r  r  r$   r"   r  z5TestNPFunctions.test_roll_basic.<locals>.a_variations  s      )A,,)I&&..q!Q77777!//!!!%%%%KKKGGGJJJ#BHsBFmbfc]-K$L$LMMMMM(2,,HHHHHr$   c                  `    t           j                            dt          dd          f          S )Nr  r  r]  r  r  r$   r"   shift_variationsz9TestNPFunctions.test_roll_basic.<locals>.shift_variations  s2    ?00-27R..2B C C Cr$   )r:  r   r  )	r  r  r#  r  r  r0   r;  r%  r$  s	            r"   test_roll_basiczTestNPFunctions.test_roll_basic  s    "T"""6**
	 
	 
		C 	C 	C  	7 	7A))++ 7 7!6!U++eAuoo''#66667	7 	7r$   c                 @   t           } t          d          |          }|                                  dD ]f}|                                 5 } |t	          j        d          |           d d d            n# 1 swxY w Y   d}|t          |j                  v sJ gd S )NTrP  )r!  r  r]  zshift must be an integer)r:  r   rV  r  r   rd  rR  rU  )r  r  r#  r;  r%  r  s         r"   test_roll_exceptionsz$TestNPFunctions.test_roll_exceptions  s    "T"""6** 	!!!  	+ 	+E'')) ,QbimmU+++, , , , , , , , , , , , , , , -C#ak*******	+ 	+s   A88A<	?A<	c           	         t           } t          d          |          }t          | j        ||          }t	          j        d          }| j                            |           t          rt          dd          nt          dd          }|D ]}||k    } |||d           t          r)t	          j        d	          
                    d
d          }n)t	          j        d          
                    ddd
          }|dk    } |||d           d}t	          j        d
                                          } |||d           g d}g d} |||d           t	          j        ddd          }ddt          j        ddddddf	}t          rjt          j        t          j        |d
          d          D ]@} |||d d
         d            |t	          j        |          |d d
         d           AnZt          j        |d          D ]D} |||d            |t	          j        |          
                    dd          |d           Et	          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          
                    ddd          } |||d           t	          j        t	          j        d          
                    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!          
                    dd
          d"z  } |||d           d S )#NTrP  r]  r  r3  r  r`  rM  r  r  r  r  g@)r  r  r  r3  r  )r!  r  r  r  r  r  r_  Fr/  g333333r   r.  y              ?rE  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>  )rL  r   r   r  r   rd  r
  r  r   rk  r  eyeflattenr  r  rw  islicecombinations_with_replacementrJ  r  rx  )	r  r  r#  r  r0   threshold_range	thresholdr  rm  s	            r"   test_extract_basicz"TestNPFunctions.test_extract_basic  s	   "T"""6**+VU;;IbMM*9L%A,,,uR}}( 	2 	2Iy=DFa001111 	/	"%%a++AA	"%%aA..A3wT!,,----vayy  ""T!,,---   ||T!,,---KB""eRVRtQTJ 	N!(;L!LL  D D T!BQB%88999RXd^^AbqbEBBCCCC	D "? !% % N NT!44555RXd^^%;%;Aq%A%A!LLMMMMHYYYx||T!,,---HYYYx%%T!,,---Hiii+,,!!!T!,,---Hiii+,,x0001199!QBBT!,,---bimm33Aq!<<==y$$T!,,---T!DDbD'22333HQKK 	2 	2DFa001111T!,,---HQKKxu&&T!,,---IaLLx***++33Aq99B>T!,,-----r$   c                 ~    t           } t          d          |                                            t          j        g           }t          j        g d          }                     t                    5 } ||           d d d            n# 1 swxY w Y                        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          } |||           d S )NTrP  r  z"Cannot extract from an empty arrayc                     d}                     t                    5 } | |           d d d            n# 1 swxY w Y                       |t          |j                             d S )Nz+condition shape inconsistent with arr shaper  )r  r0   r  r%  r#  r  s       r"   r  z7TestNPFunctions.test_extract_exceptions.<locals>._check   s    ?C"":.. !dA              MM#s1;//00000s   7;;)r   r   r   r   r   r   r   )r   r   r   r   r   r  r  r  )TFFFT)TFTFFTF)rL  r   rV  r   rJ  rS  r  rT  rR  rU  rd  )r  r  r0   r  r%  r  r#  s   `     @r"   test_extract_exceptionsz'TestNPFunctions.test_extract_exceptions  s   "T"""6** 	!!!HRLLx			""z** 	aE$NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	:C<L<LMMM	1 	1 	1 	1 	1 	1 Hiii+,,$$$tQHYYYx((tQHRLLtQIaLLx999::tQIaLLxFFFGGtQs   ;BBBzNew in numpy 2.0+c                 <    |                      t                     d S N)r  )test_np_trapz_basicrc  r  s    r"   test_np_trapezoid_basicz'TestNPFunctions.test_np_trapezoid_basic:  s       55555r$   c                     t          d          |          }t          | j        ||          }g d} |d|i           d} |d|i           t          j        d                              dd          } |d|i           t          j        d	d
d                              ddd          } |d|id           | 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           d S )NTrP  r  r-  )r  r   rE  rE  rE  ra  r  r3  r  r]  r  r  r  r  r  r^  r   r>  rB  r  )r   r   r  r   rd  r  r  r
  r  rJ  r  r  rK  r  r  r#  r  r-  s        r"   r  z#TestNPFunctions.test_np_trapz_basic>  s   "T"""6**+VU;;IIQxQxIbMM!!!Q''QxKR$$,,Q155Qx''''Qx''''HRLLQxHeRVRVbfWa899QxIbMMBK2r22R77QxHRr}---QxQxr$   c                 <    |                      t                     d S r  )test_np_trapz_x_basicre  r  s    r"   test_np_trapezoid_x_basicz)TestNPFunctions.test_np_trapezoid_x_basic`  s    ""."9999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                              dd	          }t          j        d	dg          } |||d           t          j        d                              dd	          }t          j        g d          } |||d           t          j        d                              dd	d          }t          j        d	dg          } |||d           t          j        d                              dd	d          }t          j        g d          } |||d           t          j        d                              dd	d          }| j                            |           |dz   }| j                            |            |||d           t          j        d          }|t          j	        ddd          dz  z   } |||d           t          j        g d          }t          j        ddg          } |||d           d S )NTrP  r  r  r_  r  rU  r  )r  r_  r  r3  r_  r  r  r  rE  r  r^  r3  r  r  )r  r3  r  r!  r   r]  r>  r	  rm  )
r   r   r  r   rJ  rd  r  r
  r  r  )r  r  r#  r  r-  r!   s         r"   r  z%TestNPFunctions.test_np_trapz_x_basicd  sK   "T"""6**+VU;;IIIIQQ   OOQQ   OOQQ   H___%%FQQ   HRLLHaVQQ   QQ   IbMM!!!Q''HaVQQ   IbMM!!!Q''H\\\""QQ   IbMM!!!Q**HaVQQ   IbMM!!!Q**HYYYQQ   IbMM!!!Q**GQQ   IbMMAr2&&++QQ   HYYYHff%&&QQ     r$   c                 <    |                      t                     d S r  )test_trapz_numpy_questionablerc  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                              t                    } |d|i           t          j        g d          } |d|i           d S )NTrP  )TFTTr-  )r   r   r  r   rJ  r3  r  r  s        r"   r  z-TestNPFunctions.test_trapz_numpy_questionable  s     #T"""6**+VU;; H...//66s;;Qx H...//Qxr$   c                 <    |                      t                     d S r  )test_np_trapz_dx_basicrh  r  s    r"   test_np_trapezoid_dx_basicz*TestNPFunctions.test_np_trapezoid_dx_basic  s    ##?#;;;;;r$   c                     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                              dd	d          dz  }t          j        d                              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                            |dd           t          j        d          }d} |||d           t          j        d          }t          j        d	g          } |||d           d S )NTrP  r  rE  r[  r  )r   r  r3  r_  r  r3  r]  r  r  r  r  r  r  r>  r  r  r  r2  rY  r   r  r^  )r   r   r  r   r  r  r  rd  r  exprA  rs  r  assert_almost_equalrJ  )r  r  r#  r  r-  rZ  r!   r  s           r"   r  z&TestNPFunctions.test_np_trapz_dx_basic  sx   "T"""6**+VU;;IIQb!!"""OO\\Qb!!"""OO\\Qb!!"""KAr""VQb!!"""KAr""VQb!!"""KAr""[Q""Qb!!51111IbMM!!!Q**R/Yr]]""1a++Qb!!"""Ic2r""E"&qAv&&RU););;DDD

&&q!Q///IbMMQb!!"""IbMMXqc]]Qb!!"""""r$   c                 <    |                      t                     d S r  )test_np_trapz_x_dx_basicrj  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                              ddd          }| j                            |           |dz  }t          j	        |d<    ||||d           d S )NTrP  rE  r  r  r  r^  r  r_  r  r  r3  r  r!  r  )
r   r   r  r   rJ  rd  r  r
  r  r  )r  r  r#  r  rZ  r-  r!   s          r"   r  z(TestNPFunctions.test_np_trapz_x_dx_basic  sJ   "T"""6**+VU;; BH___556 	/ 	/B		A		AF"--...AAAF"--...AAF"--...	"%%aA..AHQCAAgJF"--....#	/ 	/r$   c                 <    |                      t                     d S r  )test_np_trapz_x_dx_exceptionsrj  r  s    r"   !test_np_trapezoid_x_dx_exceptionsz1TestNPFunctions.test_np_trapezoid_x_dx_exceptions  s     **2C*DDDDDr$   c                      t          d          |                                             fd}g d}g dg dfD ]} |||df           t          j        d                              d	d
d          }t          j        d                              d	d
d	          } |||df           t          j        d                              d	d
d          }t          j        g d          } |||df           g d}t          j        ddg          } ||d |f           t          j        d                              d	d
d          }t          j        d                              d	d
d          } ||d |f                                            5 }t          j        d
          } ||d df           d d d            n# 1 swxY w Y                        dt          |j	                             ddt          j
        fD ]c}                                 5 } |d d           d d d            n# 1 swxY w Y                        dt          |j	                             dd S )NTrP  c                                          t                    5 } |   d d d            n# 1 swxY w Y                       dt          |j                             d S )Nzunable to broadcastr  )r  r%  r#  r  s     r"   check_not_okzCTestNPFunctions.test_np_trapz_x_dx_exceptions.<locals>.check_not_ok  s    "":.. !v               MM/Q[1A1ABBBBBs   .22r  )r  r3  r_  r  r  r  r  r.  r  r  r  r3  $   r  rY  zy cannot be 0DFzy cannot be a scalar)r   rV  r   rd  r  rJ  r  rT  rR  rU  r  )r  r  r  r-  r!   rZ  r%  r#  s   `      @r"   r	  z-TestNPFunctions.test_np_trapz_x_dx_exceptions  s$   "T"""6** 	!!!	C 	C 	C 	C 	C 	C OO###YYY. 	& 	&AL!Q%%%%IbMM!!!Q**IbMM!!!Q**aC[!!!IbMM!!!Q**H\\\""aC[!!!OOXsCj!!ar]###IbMM!!!Q**Yr]]""1a++ar]#####%% 	)AL!T3(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	&AK(8(8999E26! 	D 	DA'')) $Qas###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ MM0#ak2B2BCCCC		D 	Ds$   #GGG#H==I	I	c                     d}t           j                            |          dz  }t           j                            |          dz  }t          j        |          }t           j                            |          dk    }t           j                            |          dk    }t           j                            d|          }t           j                            d|          }d}	d}
d}t           j                            |	|
|          dz  }t           j                            |	|
|          dz  }t          } t          d          |                                |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 ||           |          d
                                 ||           |          d
            fd} |||	            fd} fd} fd}t          j	        d          
                    d          }t          j        ddgg          } ||d            |||	            ||d|           d S )Nr  r1  e   r2  r   rc  TrP  rV   r]  )placesc                                          t                    5 } | |           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )NrV   z)Weights sum to zero, can't be normalized.)rS  ZeroDivisionErrorrU  r  rR  datarW   r%  errr#  r  s       r"   test_weights_zero_sumz;TestNPFunctions.test_average.<locals>.test_weights_zero_sum_  s    ""#455 -dG,,,,- - - - - - - - - - - - - - -+CSXXHJ J J J J   6::c                                          t                    5 } | |           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )NrV   z81D weights expected when shapes of a and weights differ.rS  	TypeErrorrU  r  rR  r  s       r"   test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weightsi  s    ""9-- -dG,,,,- - - - - - - - - - - - - - -+CSXX56 6 6 6 6r  c                                          t                    5 } | ||           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )Nro  )Numba does not support average with axis.r  )r  r>   rW   r%  r  r#  r  s        r"   test_1D_weights_axisz:TestNPFunctions.test_average.<locals>.test_1D_weights_axisq  s    ""9-- 8dw77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8+CSXXHJ J J J Js   7;;c                                          t                    5 } | |           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )Nr=   r  r  )r  r>   r%  r  r#  r  s       r"   	test_axisz/TestNPFunctions.test_average.<locals>.test_axisx  s    ""9-- 'd&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '+CSXXHJ J J J Jr  r_  r  g      ?g      ?r   r=   ro  )r   r  ranfr  rh  rf  rq  r   assertAlmostEqualrd  r  r>  )r  r   r0   rX   w0a_boolw_boola_intw_intd0r  d2a_3dw_3dr  r  r  r  r!  r  r#  s   `                   @r"   test_averagezTestNPFunctions.test_average-  s5    INN1#INN1#Xa[[ ""S(""S( 	!!#A!..	!!#A!.. y~~bB''#-y~~bB''#-"T"""6** 	q 3 3 3 %a 2 2 22 	 	? 	? 	?tD 9 9 9 %d4 8 8 8 	 	E 	E 	E
 	uU ; ; ; %eE : : :2 	 	G 	G 	G 	q 8 8 8 %a 7 7 7 	 	D 	D 	Dva 8 8 8 %fQ 7 7 7 	 	D 	D 	Dvv > > > %ff = = =b 	 	J 	J 	J 	vvayy%%((2>>>vvd||UU4[[DDD	J 	J 	J 	J 	J 	J 	a,,,,	6 	6 	6 	6 	6 	6	J 	J 	J 	J 	J 	J	J 	J 	J 	J 	J 	J y||##G,,J()** 		$Q 	a(((( 	T155555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 ]3\  }} |||          } |||          }| 	                    ||           4t          j        dt          j
        g          }t          j        dt          j
        g          }|                      |||                     | 	                     |||d           |||d                     t          j        t          j
        dg          }| 	                     |||           |||                     g d}	t          j        d          }
t          j                            d          }|	D ]G}|	D ]@}|	D ]9} ||
|||          } ||
|||          }| 	                    ||            |||
||          } |||
||          }| 	                    ||            |t          j        |g          |
||          } |t          j        |g          |
||          }| 	                    ||            ||||z   ||          } ||||z   ||          }| 	                    ||            |||z   |||          } |||z   |||          }| 	                    ||           ;BId S )NTrP  rB  r  r  r  r   r  r  )r.  r.  r   r   r.  r   )r.  r  g{Gz?gMbP?-C6?r   gư>r  )rc  r  )r   r   )rm  r   r   r   int_r  rJ  r>  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  sO   "T"""6**(27##'HgYbg... Zt%%rz:t2D'E'EFZt%%rz:t2D'E'EFZt%%rz9d2C'D'DEZY,=!>!>?Xrvqk""BHa[$9$9:F
   	2 	2DAqq!IuQ{{HY1111JRV}%%JRV}%%q!%%%1555q!t444	6 	6 	6 J}%%1uuQ{{333EEEXg&&
INN7##! 	: 	:E$ : :( : :D &z5,0t!= != !=I$uZ*.T ;  ;  ;H$$Y999 &uj,0t!= != !=I$uUJ*.T ;  ;  ;H$$Y999 &rz5'':':J,0t!= != !=I$uRZ%8%8**.T ;  ;  ;H$$Y999 &q!e)$T J J JI$uQE	4HHHH$$Y999 &q5y!$T J J JI$uQY4HHHH$$Y99993::	: 	:r$   c                 6   t           } t          d          |          }t          j        ddg          }t          j        d                              t          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 ]/\  }}	| 
                     |||	           |||	                     0d S )NTrP  g      Y@     @@}   rB  r3  r3  r3  r   r   r   r   r  r.  rE  )rm  r   r   rJ  rd  r3  rH  r  r>  r  r  )
r  r  r#  r@   r$  r   r   
numpy_datar!   r-  s
             r"   test_ip_allclose_numpyz&TestNPFunctions.test_ip_allclose_numpy  s   "T"""6**hv''y~~$$2:$66>>yII ZAQF!3!34ZSE!2!23Z
AHtO+< = =>#d
"##d
"TAX-.4$+%&VRVVRZ))*	

 ! 	8 	8FQVVAq\\55A;;7777	8 	8r$   c                    t           } t          d          |          }t          j        d                              t          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 ]/\  }}|                      |||           |||                     0d S )NTrP  r=  rB  r>  r   r   r   r.  r  rE  r   )rm  r   r   rd  r3  rH  r  r>  r  r  rJ  r  )	r  r  r#  r$  r   r   r?  r!   r-  s	            r"   test_ip_not_allclose_numpyz*TestNPFunctions.test_ip_not_allclose_numpy  s8    "T"""6**y~~$$2:$66>>yII Z$$bj#rv&?&?@Z$$bj#q&:&:;Z())2:sBFm+D+DEZ())2:sCj+A+ABZ"&#''RVSM)B)BCZ&&
BFC=(A(ABZ
##RZ%6%67Z
AHtax,?+@ A AB4$+%q01Xrvsm$$bhRV}&=&=>

 ! 	8 	8FQVVAq\\55A;;7777	8 	8r$   c                     t           } t          d          |          } G d dt          j                  } |dg          }|                     t           |||                    t          u            d S )NTrP  c                       e Zd Zd ZdS )?TestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Fooc                 J    t          j        |i |                    |           S r   )r   rJ  rg  )clsrn   r  s      r"   __new__zGTestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Foo.__new__  s%    x00055c:::r$   N)__name__
__module____qualname__rH  r  r$   r"   FoorE    s#        ; ; ; ; ;r$   rL  r   )rm  r   r   ndarrayr&  r$  r9  )r  r  r#  rL  r0   s        r"   "test_return_class_is_ndarray_numpyz2TestNPFunctions.test_return_class_is_ndarray_numpy   s     "T"""6**	; 	; 	; 	; 	;"* 	; 	; 	; CHHUU1a[[))T122222r$   c                     t           } t          d          |          }t          j        dt          j        g          }|                      |||d           |||d                     d S )NTrP  r.  r/  )rm  r   r   rJ  r  r  )r  r  r#  r!   s       r"   test_equalnan_numpyz#TestNPFunctions.test_equalnan_numpy  s    "T"""6**Hc26]##1555q!t444	6 	6 	6 	6 	6r$   c                    t           } t          d          |          }t          j        t          j        dg          }t          j        dt          j        g          } |||           t          j                            |t          j        t          j        dg                     t          j                            |t          j        dt          j        g                     d S )NTrP  r   r   )rm  r   r   rJ  r  r  r  )r  r  r#  r!   r-  s        r"   $test_no_parameter_modification_numpyz4TestNPFunctions.test_no_parameter_modification_numpy  s     "T"""6**Hbfa[!!Ha[!!a

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

%%a1bf+)>)>?????r$   c                 "   t           } t          d          |          }t          j        t          j                  j        }t          j        |gt          j                  }|                      |||           |||                     d S )NTrP  rB  )rm  r   r   r   r1  r  rJ  r  )r  r  r#  r3  r0   s        r"   test_min_int_numpyz"TestNPFunctions.test_min_int_numpy$  s     "T"""6**(27##'HgYbg...1uuQ{{33333r$   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 ]G\  }}}}}}	}
|                     |
|	          5   ||||||           d d d            n# 1 swxY w Y   Hd S r)  )	rV  rm  r   r   r>  r  r  r   r*  r+  s              r"   test_allclose_exceptionz'TestNPFunctions.test_allclose_exception/  s   !!!"T"""6** ZtRV,--ZD)**E5L	
 au8 u9 5%A 5%B 5%?%
. :> 	3 	35Aq$i#''W55 3 3aD$	2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3s   C66C:	=C:	c                    t           } t          d          |          }t          | j        ||d          }t	          j        ddd          }t	          j        dd	          }|d
z   } ||||d           | j                            |            ||||d           | j                            |            ||||d           t          j	        |d d<   t          j
        |dd <   | j                            |            ||||d           t          j	        |d d<   t          j
         |dd <   | 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          }|                    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                              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                            d&          }t	          j        d'dd&          }t	          j        d&d()          } ||||d           d*D ]3}t	          j        g d          |z  }ddg}ddg} ||||d           4d}dg}dg} ||||d           t	          j        ddd          }t	          j        ddd          }t	          j        ddd+          }	 ||	||          }
t          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                            ddt          j        z  d8          }t	          j        ddt          j        z  d9          }t	          j        |          }t	          j        |          } ||||          }t          j                            ||d:;           | j                            d          }t	          j        d%dd9          }t	          j        |          } ||||d           | j                            d9          }t	          j        d%dd          }t	          j        |          } ||||d           d S )<NTrP  r   r  r4  r3  rc  r  r  r  rt  )r  r   rE  r  r  g      rE  r  r  rC  )rX  )r  ?r  r  r]  gffffff?r  g333333"r  r  r  r  r  r  r   r  r^  Fr/  r.  r  r  r  r  r  rd  )r   r  r   r  )r   rE  gGz@r  )r   rE        @r  r  )	r   r  rE  r[  r  r  r
  r3  g      @r  r[  r
  r  r   rE  r  r  r3  r_  )g~@g<ԛ@g3@i!N  rY  )r  r  r   )r   )rs  r   r   r  r   r  rd  r
  r  r  r  rJ  r  rk  r   r  r  r  sinuniformrs  cosru  	ones_like)r  r  r#  r  r!   ru  rv  factorr-  x0r   exactr$  s                r"   test_interp_basicz!TestNPFunctions.test_interp_basicP  s
   "T"""6**+VUEJJJKAr""Yr1#XARr223333ARr223333ARr223333"1""##ARr2233332A26'233ARr223333Ib!UUARr223333ARr223333/[Q##Yr1ARr223333Hc2626BF7C>??IIa#I&&[Q##Yr1ARr223333r1 	8 	8ABBF26677777HRLLYYARr223333K2r""**1a33Yr]]"WARr223333FYq\\WQARr223333FSSARr223333Ib!ARr2233335MYr1ARr223333fWdCbf-Yr1#XARr223333KR$$Xwc3788#XARr223333HNN3[Q$$WSU+++ARr223333 	8 	8F##f,AQBQBF26677777SVARr223333K1a  K1a  [Ar""eB1oo

&&sB///H\\\""Xlll##Xooo&&ARr223333SfXARr223333H&&&''Xlll##Xq!RVQ'((Qb++,,,H88899Xooo&&Xrvq"&!RV455Qb++,,,H&&&''Xlll##Xq!RVQ'((Qb++,,,HabfcBF7AsArvq!LMMX((())Xq!RVQ26233Qb++,,,H88899[B	**VBHQb++,,,HQBE	622[AIt,,VBZZq		eAr2

""5#D"999 HNN2[b$''\"Qb++,,, HNN4  [b"%%\"Qb++,,,,,r$   c                    |j         dz  }t          j        || j                            t          |j                   |d          t          j                   t          j        || j                            t          |j                   |d          t          j                    t          j        || j                            t          |j                   |d          t          j                   d S )Nr  F)replace)rb  r   putr
  rl  rk  r  r  )r  r0   r  s      r"   _make_some_values_non_finitez,TestNPFunctions._make_some_values_non_finite  s    FcM
q$(//%--E/BBBFKKK
q$(//%--E/BBRVGLLL
q$(//%--E/BBBFKKKKKr$   c           	   #   v  K   t          j        ddd|dz  z             V  t          j        ddd|z             V  t          j        ddd|dz  z             V  t          j        ddd|dz  z             V  t          j        d	d
d|dz  z             V  t          j        ddd|z             dz  V  t          j        ddd|dz  z             dz  V  t          j        ddd|z             dz  V  t          j        ddd|dz  z             dz  V  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   V  t          j        ddd|z             | j                            d|z   d|z            z   V  t          j        ddd|z             | j                            d|z   d|z            z   V  t          j        ddd|z             | j                            d|z   d|z            z   V  t          j        ddd|z             | j                            d|z   d|z            z   V  t          j        ddd|z             | j                            d|z   d|z            z   V  t          j        ddd|z             | j                            d|z   d|z            z   V  | j                            d|z             dz  dz   V  | j                            d|dz  z             dz  dz   V  d S )NrY        @r   r3  r#  g333333@rE  g      @r!  r  g@g333333@gq=
ףp?g @gQ?r  r1  )rb  scale      @g      4@g      I@g      i@r  g333333?r  rZ  )r   r  r]  rd  rs  r
  normalrf  )r  ndatas     r"   r  zTestNPFunctions.arrays  s     k#sA	M22222k#sAI.....k#sA
N33333k#sA
N33333k#sA
N33333k#sAI..5555k#sA
N33d::::k#sAI..5555k#sA
N33d::::k#sA
N33cBFIa%!)m$$ru,EAI>=@ =@ 7@ @ 	@ 	@ 	@ k#sAI..U#+ 2A 2/ 2/ / 	/ 	/ 	/ k#sAI..U#+ 2A 2/ 2/ / 	/ 	/ 	/ k#sAI..U#+ 2A 2/ 2/ / 	/ 	/ 	/ k#sAI..U$, 2A 20 20 0 	0 	0 	0 k#sAI..U$, 2A 20 20 0 	0 	0 	0 k#sAI..U%%- 2A 21 21 1 	1 	1 	1 hmmAI&&,s2222hmmA	M**S03666666r$   c                    t           } t          d          |          }d}t          j        ddd|z             }t          j        |dz            }|                     |          D ]}d} ||||          } ||||          }	|                     ||	|	           | j                            |            ||||          } ||||          }	|                     ||	|	           | j                            |            ||||          } ||||          }	|                     ||	|	           | j                            |            ||||          } ||||          }	|                     ||	|	           | 	                    |            ||||          } ||||          }	|                     ||	|	           | 	                    |            ||||          } ||||          }	|                     ||	|	           | 	                    |            ||||          } ||||          }	|                     ||	|	           d S )
NTrP  i N  r   r]  r   rY  r  r  )
rs  r   r   r  r]  r  r  r
  r  rh  )
r  r  r#  rn  ru  rv  r!   r   r%  r$  s
             r"   test_interp_stress_testsz(TestNPFunctions.test_interp_stress_tests'  s   "T"""6**[BE	**VBHU## '	A '	AADvaR((H%2r""C##Hc4#@@@
 HQvaR((H%2r""C##Hc4#@@@HR   vaR((H%2r""C##Hc4#@@@HR   vaR((H%2r""C##Hc4#@@@ --a000vaR((H%2r""C##Hc4#@@@--b111vaR((H%2r""C##Hc4#@@@--b111vaR((H%2r""C##Hc4#@@@@O'	A '	Ar$   zNEP 50 interaction issue.c                    t           } t          d          |          }d}t          j        ddd|z             }t          j        |dz            }| j                            t          j        t          j         t          j        gd          |d d<   | j        	                    |           t          j
        |dz            }| j                            t          j        t          j         t          j        gd          |d d<   | j        	                    |           |d	|z  z   }|                     |          D ]} ||||          }	 ||||          }
t          j                            |	|
d
           | j        	                    |           | j        	                    |           | j        	                    |           t          j                            |	|
d
           d S )NTrP  i  r   r]  r   rY     r>  r/  )rs  r   r   r  r]  r
  rl  r  r  r  r_  r  r  ru  )r  r  r#  rn  ru  r  r  rv  r!   r%  r$  s              r"    test_interp_complex_stress_testsz0TestNPFunctions.test_interp_complex_stress_testsX  s   "T"""6**[BE	**vb3hX__bfrvgrv%>DDTcT
vb3hX__bfrvgrv%>DDTcT
BIU## 	F 	FAvaR((H%2r""CJ&&x&EEEHQHR   HR   J&&x&EEEE	F 	Fr$   c                    t           } t          d          |          }|                                  t          j        g d          }t          j        g           }t          j        g           }|                     t                    5 } ||||           d d d            n# 1 swxY w Y   d}|                     |t          |j	                             d}t          j        g d          }t          j        ddg          }|                     t                    5 } ||||           d d d            n# 1 swxY w Y   d}|                     |t          |j	                             d}t          j
        d                              d	d          }t          j
        d          }|                                 5 } ||||           d d d            n# 1 swxY w Y   d
}|                     |t          |j	                             d}t          j
        d          }t          j
        d                              d	d          }|                                 5 } ||||           d d d            n# 1 swxY w Y   d}|                     |t          |j	                             d}t          j
        d          }t          j
        d          }|                                 5 } ||||           d d d            n# 1 swxY w Y   d}|                     |t          |j	                             d}t          j
        d          dz                       t          j                  }t          j
        d          }|                                 5 } ||||           d d d            n# 1 swxY w Y   |                     |t          |j	                             d S )NTrP  r  zarray of sample points is emptyr   rE  z#fp and xp are not of the same size.r_  r  zxp must be 1Dzfp must be 1Dr	  z:Cannot cast array data from complex dtype to float64 dtyper>  )rs  r   rV  r   rJ  rS  r  rT  rR  rU  rd  r  r  r3  r  )	r  r  r#  r!   ru  rv  r%  r  complex_dtype_msgs	            r"   test_interp_exceptionsz&TestNPFunctions.test_interp_exceptionst  s   "T"""6** 	!!!HYYYXb\\Xb\\z** 	aE!R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 0c3q{++,,,Xiii  Xq!fz** 	aE!R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 4c3q{++,,,Yq\\!!!Q''Yq\\##%% 	E!R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 c3q{++,,,Yq\\Yq\\!!!Q''##%% 	E!R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 c3q{++,,,Yq\\Yq\\##%% 	E!R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	'Q[)9)9:::illR''55Yq\\##%% 	E!R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	'Q[)9)9:::::sl   B''B+.B+$D>>EEGG#&G#&J  JJ3LLL 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} ||           d S )NTrP  )r   r   r  r]  r  ?r  r  rt  r   r  )r   r  rx  r   )rs  r   r   r  r   rJ  r  )r  r  r#  r  ru  rv  r!   r  s           r"   "test_interp_non_finite_calibrationz2TestNPFunctions.test_interp_non_finite_calibration  s     "T"""6**+VU;;Xmmm$$XwS"&122Hc3Z  "--vXw1bf-..X&&&''Hc3Z  "--vr$   c                 ^   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	        
                    ||
           t          j	        
                    |	|           t          j        ddd	          }t          j        ddd	          }d}t          j	        
                     ||||          |           d
}t          j	        
                     ||||          |           t          j        d
          }t          j	        
                     ||||          |           t          j        d
          }t          j	        
                     ||||          |           t          j        }t          j	        
                     ||||          |           t          j        ddd	          }t          j        ddd	          }t          j        d
          }t          j	        
                     ||||          |           t          j        ddd          }t          j        |          }t          j	        
                     |t          j        ||          d           d S )NTrP  r   r]  rB  r  r   r  r3  r  r0  r  )rs  r   rk  r   rd  r  r  rJ  r_  r  r  r  r  rH  r  r]  rs  )r  r  r#  rb  ru  ypincptsdecptsincresdecresinctgtdectgtr!   r-  rb  rv  s                   r"   test_interp_supplemental_testsz.TestNPFunctions.test_interp_supplemental_tests  s    "T"""6**!RLL 	; 	;D4ry111BRY///BXr1dQh5RYGGGFDDbD\FU62r**FU62r**FXlll%888FDDbD\FJ**66:::J**66::::K1a  K1a  

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

&&uuRA;;;Z__

&&uuRA;;;Z__

&&uuRA;;;V

&&uuRA;;;K1a  K1a  Xc]]

&&uuRA;;;Yq"f%%VBZZ

&&uuRUB';';SAAAAAr$   c                 H   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                             ||||          |           d S )NTrP  r   r   r3  r>  r  )rs  r   r   r  r  r  )r  r  r#  r!   r-  rb  y0s          r"   &test_interp_supplemental_complex_testsz6TestNPFunctions.test_interp_supplemental_complex_tests  s     "T"""6**K1a  K1a  AAq!(<(<$<#DD1r6T/!

&&uuRA;;;;;r$   c                    t           } t          d          |          }t          j        t          j        t          j        t          j        g}t          j        |d          D ]~}|\  }}}t          j	        d|          }|dz  
                    |          }	t          j        ddd|          }
 ||
||	          } ||
||	          }|                     ||           d S )NTrP  r  r]  rB  rE  )rs  r   r   r  rH  r  r  rw  r  rd  r3  r  r  )r  r  r#  dtypescomboxp_dtypefp_dtypex_dtyperu  rv  r!   r%  r$  s                r"   -test_interp_float_precision_handled_per_numpyz=TestNPFunctions.test_interp_float_precision_handled_per_numpy  s    "T"""6***bj"(BH=<VQGG 	3 	3E*/'Hh2X...B'!!(++BAq"G444AvaR((H%2r""C##Hc2222	3 	3r$   c                 &   d }t           } t          d          |          } |            D ]b} ||          } ||          }t          |t          j                  r|                     |||f           K|                     |||           cd S )Nc               3     K   t          j        d          V  t          j        d          V  t          j        dd          V  t          j        dd          V  t          j        d          V  t          j        dd          V  t          j        dd          V  dD ]<} t          j        g dd	| z  
          V  t          j        g dd| z  
          V  =d S )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]rB  z<timedelta64[%s])r   r  r  rJ  )units    r"   rA   z*TestNPFunctions.test_isnat.<locals>.values  s>     -------&&&&&-t,,,,,-t,,,,,- 566666.-----.T*****1 @ @ h111%6%=? ? ? ? ? ?h111%7$%>@ @ @ @ @ @ @@ @r$   TrP  )r   r   r  r   rM  r  r  r  s          r"   
test_isnatzTestNPFunctions.test_isnat  s    	@ 	@ 	@$ "T"""6** 	3 	3AvayyH%((C!RZ(( 3''#t<<<<  32222	3 	3r$   c                 0    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 rKd |d<    ||d|           t          j        |d<    ||d
|           t          j	        |d<    ||d|            ||d|           d S )Nc               3     K   dV  dV  dV  dV  g dV  ddgV  dV  dV  g dg dfV  t          j        g           V  t          j        d          V  t          j        d                              d	d          V  t          j        d                              d	d          j        V  d
 }  | d          V   | d          V   | d          V   | d          V  dS )a}  
            To quote from: https://docs.scipy.org/doc/numpy/reference/generated/numpy.asarray.html    # noqa: E501
            Input data, in any form that can be converted to an array.
            This includes:
            * lists
            * lists of tuples
            * tuples
            * tuples of tuples
            * tuples of lists
            * ndarrays
            r>  r  Fr   r  r  r  r  r  c                 V    t                      }| D ]}|                    |           |S r   r
   r?   )rA   r0   rn  s      r"   	make_listzITestNPFunctions.test_asarray.<locals>.input_variations.<locals>.make_listL  s0    FF    AHHQKKKKr$   )r.  rY  r  r6  r  N)r   rJ  rd  r  r  )r  s    r"   r   z6TestNPFunctions.test_asarray.<locals>.input_variations1  s[      HHHIIIKKKGGG))OOOi((((OOO((((99iii(((((2,,)A,,)B--''1-----)B--''1--////  
 )I&&&&&)O,,,,,)L))))))/0000000r$   c                 (    | di |}|r                     ||d         u            d S                      ||d         u           t          j                            ||d                                         |j        |d         k               d S )Nr0   rC  r  )r&  r   r  ru  rC  )jittedexpect_samer  returnedr  s       r"   check_pass_throughz8TestNPFunctions.test_asarray.<locals>.check_pass_throughY  s    v''''H CF3K 788888s ;<<<
**8VC[AAA&/ ABBBBBr$   TrP  r0   kwsrC  r]  rB  F)
r>  rE  r   r   r  rI  r   rK  rd  r  )	r  r   r  r  r#  r  r!   r  r  s	   `        r"   test_asarrayzTestNPFunctions.test_asarray/  s   #	1 #	1 #	1P	C 	C 	C 	C 	C , 	< 	<F&C&&&v..ET/??F%%'' < <qFO++#R]3 ' '*,wv' F6NNN Ib
333qFO++&*F7O&&udF;;;&(mF7O&&ueV<<<&(jF7O&&udF;;;;&&udF;;;;)<		< 	<r$   c                     d }d }d }d }||||g}|D ]E} t          d          |          } |            } |            }	|                     ||	           Fd S )Nc                  *    t          j        d          S Nr  r=  r  r$   r"   case1z3TestNPFunctions.test_asarray_literal.<locals>.case1  s    :m,,,r$   c                  .    d} t          j        |           S r  r=  r  s    r"   case2z3TestNPFunctions.test_asarray_literal.<locals>.case2  s    A:a== r$   c                  .    d} t          j        |           S )Nu+   大处 着眼，小处着手。大大大处r=  r  s    r"   case3z3TestNPFunctions.test_asarray_literal.<locals>.case3  s    =A:a== r$   c                  .    d} t          j        |           S )N r=  r  s    r"   case4z3TestNPFunctions.test_asarray_literal.<locals>.case4  s    A:a== r$   TrP  )r   r  )
r  r  r  r  r  funcsr  r#  r%  r$  s
             r"   test_asarray_literalz$TestNPFunctions.test_asarray_literal}  s    	- 	- 	-	! 	! 	!	! 	! 	!	! 	! 	! ue, 	3 	3F&C&&&v..EvxxH%''C##Hc2222		3 	3r$   c                 *                                        t          d          t                     fd}d }d }d }d } | |                        | |                        | |                        | |                       d S )NTrP  c                                          t                    5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nz?asarray support for List is limited to Boolean and Number types)rS  r   rT  rR  rU  )alistr%  r#  r  s     r"   test_rejectzQTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.test_reject  s    "";// 1e              MM.AK  " " " " "r  c                  L    t                      } |                     d            | S r   r  )ls    r"   make_none_typed_listzZTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_none_typed_list  s    AHHTNNNHr$   c                      t                      } t                      }|                    d           |                     |           | S )Nr   r  )r  r   s     r"   make_nested_listzVTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list  s7    AAHHQKKKHHQKKKHr$   c                  r    t                      } t                      }d|d<   |                     |           | S )Nr0   r   )r
   r   r?   )r  rs  s     r"   make_nested_list_with_dictz`TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list_with_dict  s1    AAAaDHHQKKKHr$   c                  V    t                      } dD ]}|                     |           | S )N)r0   bcdefr  )r  rn  s     r"   make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list  s0    A'  Hr$   )rV  r   r>  )r  r  r  r  r  r  r#  s   `     @r"   ,test_asarray_rejects_List_with_illegal_dtypez<TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype  s    !!!"T"""7++	" 	" 	" 	" 	" 	"	 	 	
	 	 		 	 		 	 	 	((**+++$$&&'''..00111%%''(((((r$   c                    d }t           } t          d          |          } |            D ]\  }}| ||          } ||          }n |||          } |||          }|                     ||           |                     t	          j        |j        t          j                  |j                   t          } t          d          |          }t	          j	        g d          } ||          } ||          }|                     ||           |                     t	          j        |j        t          j                  |j                   d S )Nc               3     K   t          j        g d          d fV  t          j        ddgt           j                  t           j        fV  t          j        ddgt           j                  t           j        fV  t          j        ddgt           j                  t           j        fV  t          j        ddgt           j                  t           j        fV  d S )Nr  rE  r  rB  )r   rJ  r  r4  r  rK  r  r$   r"   r\  z-TestNPFunctions.test_asfarray.<locals>.inputs  s      (999%%t++++(Aq6444bj@@@@(Aq611127::::(Aq61112<????(Aq61112=@@@@@@r$   TrP  rB  r  )
rH  r   r  r&  r   r  rC  inexactrJ  rJ  )r  r\  r  r#  r@   r  r%  r$  s           r"   test_asfarrayzTestNPFunctions.test_asfarray  sh   	A 	A 	A "T"""6**vxx 		M 		MGCz!6#;;eCjj!6#R000eCr***##Hc222OOBM#)RZ@@#)LLLL ("T"""6**hyyy!!6#;;eCjj#...ci<<ciHHHHHr$   c           	          t           }t          |          }t          }t          |          }||f||ffD ]\   fd}t          rXt	          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                     d S )Nc                 \                          | |           | |                     d S r   rQ  )r0   rz  nbfuncr  r  s     r"   r-  z*TestNPFunctions.test_repeat.<locals>.check  s7    ''q'(:(:FF1g<N<NOOOOOr$   r   r]  r  r  r   rE  r  )r   r   rE  r  r  c              3   H   K   | ]\  }}t          j        ||           V  dS )rB  Nr  )r8  r0   ts      r"   	<genexpr>z.TestNPFunctions.test_repeat.<locals>.<genexpr>  sM       #J #J31Q28AA#6#6#6 #J #J #J #J #J #Jr$   r.  Tr>  )rz  rB  )r{  r   r}  r   r   r  rd  rJ  rH  rK  uint32r  uint64r  r  r  rw  r   r  )r  r  r  array_pyfuncarray_nbfuncr-  target_numpy_valuestarget_numpy_typesrepeats_valuestarget_numpy_inputstarget_non_numpy_inputsrn  rz  onetwor  r  s   `              @@r"   test_repeatzTestNPFunctions.test_repeat  sf   	OO	 $L)) )95 ,l;= L	8 L	8NFFP P P P P P P  3 GAJJIbMMHRLL'# JM&" "+ GAJJIdOOHq!fq!f-..HRLLHb"X&&'# IHIHJJLM	&" "3!2!2#J #J#,#45H5G$I $I#J #J #J  II+'' II+' _%8%<> > . .- . .GE!W-----. )A,,CcA3_ 0 0c1%%%%c28A;;/////)A,,C!fq!fq!fq!fq!fq!fq!fM 0 0c1%%%%c28A;;/////E#rxAbh???@@@@E")B--277777YL	8 L	8r$   c           	      l   t           }t          |          }t          }t          |          }|                                  ||f||ffD ]i\  }}|                     t
                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t
                    5 } |t          j        d          t          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t
                    5 } |t          j        d          t          j        g d                     d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t
                    5 } |t          j        d	          t          j        g d
                     d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } |t          j        d          ddg           d d d            n# 1 swxY w Y   |                     dt          |j
                             dD ]R}|                     t                    5   |t          j        d          |           d d d            n# 1 swxY w Y   Skd S )Nr   r  z#negative dimensions are not allowedr.  zIThe repeats argument must be an integer or an array-like of integer dtyperE  r  z(operands could not be broadcast togetherr3  r  )Tr0   rf  )r{  r   r}  rV  rS  r  r   r  rT  rR  rU  r   rJ  )	r  r  r  r  r  r  r  r%  reps	            r"   test_repeat_exceptionz%TestNPFunctions.test_repeat_exception7  s$   	OO	 $L))!!! )95 ,l;= -	, -	,NFF "":.. '!rwqzz2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' 'MM?ak**, , , "";// (1rwqzz3'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (MM4AK  " " " "":.. 6!rwqzz28QG#4#45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6MM?ak**, , , "":.. 8!rwqzz28III#6#67778 8 8 8 8 8 8 8 8 8 8 8 8 8 8MMDak**, , , "":.. ;!rwqzz28LLL#9#9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;MMDak**, , , "";// /1rwqzzC:.../ / / / / / / / / / / / / / /MM4AK  " " "
 ( , ,&&{33 , ,F271::s+++, , , , , , , , , , , , , , ,,W-	, -	,s~   )BB	B	!DD	D	3FF	F	%3H$$H(	+H(	13J00J4	7J4	=!L**L.	1L.	;N&&N*-N*c                 H   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                              d          fD ]}|                    |dk     |dk    g||dz  gdf           |                    |dk     |dk    f||dz  fdf           |                    |dk     |dk    g||dz  fdf           |                    |dk     |dk    f||dz  gdf           |D ]2\  }}}| 	                     ||||           ||||                     3t          }t          t                    }	| 	                     |||           |	||                     d S )NFFFFTF)FFTr  r  r  g.@TFr   rE  r   r  r  r3  r  y      @       @r]  )r3  rE  )r  r   r   rJ  r  r  rd  r  r?   r  r  )
r  r  r  
test_casesr!   r  r  r  np_pyfunc_defaultsnp_nbfunc_defaultss
             r"   test_selectzTestNPFunctions.test_selectq  s   	OO	 h,,,--h+++,,h+++,,. hyyy!!hyyy!!hyyy!!#$(* hvhw!#%8QC=="(A3--"@!E hw 3&1##(=qAhrxAq"&!Q 78899:Q>h1aA.//014a9 hrx!Q261a!8 9::;;<q@hAq"&!Q/0112Q6; hrxAvrvq! <==>>?!Ch1fbfa34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>????.8 	N 	N*Hz7##IIh
G$L$L$-Ih
G$L$LN N N N 0!"455 2 28Z H H 2 28Z H H	J 	J 	J 	J 	Jr$   c                    t          t                    }t          j        d          }|                                  t          j        d          t          j        g d          gt          j        d          t          j        d                              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     
                    t                    |dk    
                    t                    g||dz  gdt          df|dk    |dk    |dk    |dk    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 ]j\  }}}}}|                     |          5 } ||||           d d d            n# 1 swxY w Y   |                     |t          |j                             kd S )Nr]  Tr  r   r  r  r  r   z/condlist arrays must be of at least dimension 1FrE  zHcondlist and choicelist elements must have the same number of dimensionsr3  r  z"condlist must be a List or a Tuplezdefault must be a scalarz%condlist arrays must contain booleansr  r  r_  z7list of cases must be same length as list of conditionsr~  r  z items of condlist must be arraysr  z"items of choicelist must be arrays)r   r  r   rd  rV  rJ  r  r   r  r  r3  r  r  rS  rT  rR  rU  )	r  r  r!   r  r  r  expected_errorexpected_textr%  s	            r"   test_select_exceptionz%TestNPFunctions.test_select_exception  sY   OO	IbMM!!! htnnbh';';';<<=hqkk29R==00A667KM htnnbhuoo.1#!0N 9: hv% 1 12huoorx!/K)*
 htnnbhuoo.!bhqkk0JAKM Xbh1aA67788Xq!Q1-..;13 VaS1#{') 1unnS!!AE>>##6#67!Q!VaAC !eQUAE1q5)Aq!tQ<JFH Z#!4a/1 hw 3&a13Y.M
 1	; 1	;HHj'>=^ "">22 9a	(J8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9MM-Q[)9)9::::c1	; 1	;s    LL	!L	c                 V     fd} |t                       |t                      |t                      |t                     t          }t          t                    }dD ]n}dD ]i} |||          } |||          }t          st          j                    dv r 	                    ||dd           P 	                    ||dd           jodD ]h} 
                    t                    5 } ||d	           d d d            n# 1 swxY w Y                        d
t          |j                             idD ]h} 
                    t                    5 } |d|           d d d            n# 1 swxY w Y                        dt          |j                             id S )Nc                 d   | }t          |           }dD ]0} ||          } ||          }                    ||d           1dD ]g}                    t                    5 } |d           d d d            n# 1 swxY w Y                       dt          |j                             hd S )Nr   r   r3  r  r  )r  r0   r!  r>  r!  M must be an integer)r   r  rS  r   rT  rR  rU  )r  r  r  r   r%  r$  rX  r  s          r"   check_windowz4TestNPFunctions.test_windowing.<locals>.check_window  s   IT

I" F F$9Q<<ill''#H'EEEE# M M&&{33 #vIcNNN# # # # # # # # # # # # # # #4c&:J6K6KLLLLM Ms   $A<<B 	B 	r  )r  rl  g      ,@)ppc64leaarch64r  rE  r  r  r.  r  )r0   r>  r3  z beta must be an integer or float)r  r  r  r  r  r   r   platformmachiner  rS  r   rT  rR  rU  )	r  r  r  r  r   r  r%  r$  rX  s	   `        r"   test_windowingzTestNPFunctions.test_windowing  s   	M 	M 	M 	M 	M 	[!!![!!!Z   Z    	OO	 
	4 
	4A( 	4 	4$9Q--i4(( 4 0 2 26L L L++H,/hQ , H H H H ++Hc12 , 4 4 4 4	4   	I 	IA"";// "6	!S!!!" " " " " " " " " " " " " " "MM0#f6F2G2GHHHH 	1 	1D"";// #6	!T"""# # # # # # # # # # # # # # #MM<f.//1 1 1 1	1 	1s$   1D

D	D	E55E9	<E9	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
                              dd	d          t          j        d                              d	d	          fg}|D ]3\  }} |||          } |||          }|                     ||           4d S )NTrP  r  r  rX  r  rB  )r  r  r   rE  r  r_  r  r  )	r  r   r   rJ  r  rH  rd  r  r  r  r  r#  pairsr!   r-  r%  r$  s           r"   
test_crosszTestNPFunctions.test_cross
  s   "T"""6** )))YYY/00)))YYY/00 )))YYY/00  "(333"*555
 !Q  ## ##)))YYY/00 )))YYY/00## 	"%%aA..	!$$Q**K)
V  	3 	3DAqva||H%1++C##Hc2222	3 	3r$   c                    t           } t          d          |          }|                                  |                     t                    5 } |t          j        d          t          j        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j
        d          t          j
        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     d	t          |j	                             |                     t                    5 } |t          j        d
                              d          t          j        d          d d d                             d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        d
                              d          t          j        d
          d d d                             d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          g d          t          g d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTrP  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  rE  r  r_  r  r  )r  rE  zDimensions for both inputs is 2r  r  Inputs must be array-like.)r  r   rV  rS  r  r   rd  rT  rR  rU  rJ  r  r   setrW  s       r"   test_cross_exceptionsz%TestNPFunctions.test_cross_exceptions=  sc   "T"""6**!!! z** 	fE	!	!  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	7 !!	
 	
 	
 z** 	fE      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	. !!	
 	
 	

 	9 !!	
 	
 	
 z** 	fE	!$$V,,	!TTrT"**622  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	7 !!	
 	
 	
 z** 	fE	!$$V,,	!TTrT"**622  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	- !!	
 	
 	
 {++ 	vEIIIIII  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	( !!	
 	
 	
 	
 	
s\   1BBB1DDDA G77G;>G;A J00J47J4=+L44L8;L8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                              d	d
d          t          j        d	                              d
d          fg}|D ]3\  }} |||          } |||          }| 	                    ||           4d S )Nr   rE  r  r3  r  rB  )r  rX  r  r_  r  )
r  r   r  r   rJ  r  rH  rd  r  r  r  s           r"   test_cross2dzTestNPFunctions.test_cross2d~  s   Z   1a&1a&)**1a&1a&)** 1a&1a&)**  !Qrx000!Qrz222
 !Q  1a&1a&)** 1a&1a&)**!Q   	"%%aA..	!$$Q**A$
L  	3 	3DAqva||H%1++C##Hc2222	3 	3r$   c                    t          t                    }|                                  |                     t                    5 } |t          j        d          t          j        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j
        d                              d          t          j
        d          d d d                             d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          ddg          t          d	d
g                     d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )Nr  r  z,Incompatible dimensions for 2D cross productr_  r  r  r   rE  r  r3  r  )r   r  rV  rS  r  r   rJ  rT  rR  rU  rd  r  r   r  r|  s      r"   test_cross2d_exceptionsz'TestNPFunctions.test_cross2d_exceptions  s   Z  !!! z** 	fE####  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	: !!	
 	
 	
 z** 	fE	!$$V,,	!TTrT"**622  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	: !!	
 	
 	
 {++ 	vEQFQF  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	( !!	
 	
 	
 	
 	
s7   1B  BBA D99D= D=+F==GGc                 @   d }d }t           } t          d          |          } |            D ].} ||          } ||          }|                     ||           / |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3   h  K   t          j        g           V  t          j        d          V  t          j        d          V  t          j        g d          V  t          j        g d          V  t          j        dddt           j        dg          V  t          j        g d          V  d S )	Nr3  r   r  r  r  r.  rY  )0Helloworld)r   rJ  r  r  r  r$   r"   r  z/TestNPFunctions.test_trim_zeros.<locals>.arrays  s      (2,,(1++(1++(999%%%%%(<<<((((((BB344444(2223333333r$   c               3     K   t          j        g d          dfV  t          j        g d          dfV  t          j        t           j        ddddg          dfV  t          j        g d	          d
fV  t          dk     r4t          j        g d          dfV  t          j        g d          dfV  t          j        g d          d
fV  d S )N)r   r   rE  r   r   FBr  Br  r  r  r1   )r   r   r   rE  r3  r  r  )r   r   rE  r   abf)r   r  r   rs  ) rf  rg  )r   rJ  r  r   r  r$   r"   explicit_trimz6TestNPFunctions.test_trim_zeros.<locals>.explicit_trim  s      (???++T1111(999%%s****(BFBS"566;;;;(???++S0000v%%h|||,,e3333hyyy))3....(+++,,c111111r$   TrP  )r  r   r  )	r  r  r  r  r#  r@   r%  r$  r  s	            r"   test_trim_zeroszTestNPFunctions.test_trim_zeros  s    	4 	4 	4
	2 
	2 
	2 "T"""6**688 	3 	3Cvc{{H%**C##Hc2222& 	3 	3ICvc4((H%T""C##Hc2222	3 	3r$   c                 z   t          j        g d          }|                    t                    }|                    t                    }|||g}t           j        dd         }|D ]-}t          |          }|                     |||                    .t           j        d d         }|D ]/}t          |d          }|                     |||                    0t           j        dd          }|D ]/}t          |d          }|                     |||                    0|D ]i}t          j        ||j	                  }t          |d          }	t          |	          d	k    sJ t          |d
          }
t          |
          d	k    sJ jt          j        d	          }t          |          }|                     ||           t          j        g d          t          j        g d          t          j        g d          fD ]A}t           j        dd         }t          |          }|                     |||                    Bt          j        g d          }t          |          }|                     ||           t          |                                          }t          |t                    sJ d S )N)r   r   r   r   rE  r  r  r   rE  r  r1   )r  r  rB  r  r   r  )r   l            r   )r   l            r   )r   l            r   r   )Nr   N)r   rJ  r3  r_  rv  s_r  r  
zeros_likerC  rI  r  rk  r  r  )r  r0   r1   r  rA   slcr@   res_arrres1res2s              r"   test_trim_zeros_numpyz%TestNPFunctions.test_trim_zeros_numpy  s   H---..HHUOOHHWQ eAbDk 	3 	3C$$C##CS2222 eCRCj 	3 	3C#...C##CS2222 eABBi 	3 	3C#...C##CS2222  	" 	"D-DJ777C 3///Dt99>>>> 3///Dt99>>>>> hqkkC  S))) H]]]++RXmmm-D-DH]]]++- 	3 	3C%!*C$$C##CS2222 h''C  S))) AHHJJ''#t$$$$$$$r$   c                    |                                    t          d          t                    }|                     t                    5 } |t          j        g dg dg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |h d           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        g d	          d
           d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTrP  r  r  zarray must be 1Dr  z#The first argument must be an array>   r   r   rE  r  r   z$The second argument must be a string)
rV  r   r  rS  r   r   rJ  rT  rR  rU  r|  s      r"   test_trim_zeros_exceptionsz*TestNPFunctions.test_trim_zeros_exceptions.  s   !!!"T"""=11{++ 	4vE"(IIIyyy122333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 !!	
 	
 	

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

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

 {++ 	*vE"(999%%q)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*2 !!	
 	
 	
 	
 	
sH   $A==BB
C""C&)C&/E		EE!GG
G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                              ddd	          t          j        g d
          ft          j        dd                              dd	          t          j        dd                              dd	d          ft          j        g d          t          j        g d          fg}|D ]3\  }} |||          } |||          }|                     ||           4d S )NTrP  r  rY  )rE  r3  r_  r   r^  rE  r3  )r   r^     r]  )FTr  )r  r   r   rJ  rd  r  r  )r  r  r#  r  r0   r1   r%  r$  s           r"   test_union1dzTestNPFunctions.test_union1dN  s   "T"""6** #### )))YYY/00## 	!R  ((1Q//%% 	!R  ((1--	!R  ((1Q// )))**##-
8  	3 	3DAqva{{H%!**C##Hc2222	3 	3r$   c                     t          d          t                    }|                                  |                     t                    5 } |dt          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        ddg          d           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        dd	g          t          j        d
dg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        ddg          t          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        ddg          t          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        ddg          t          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTrP  r  r   rE  z.The arguments to np.union1d must be array-likeWorldr  r  r0   r1   z/For Unicode arrays, arrays must have same dtyper  rs  r  barr!  r[  )
r   r  rV  rS  r   r   rJ  rT  rR  rU  r|  s      r"   test_union1d_exceptionsz'TestNPFunctions.test_union1d_exceptionsr  sH   "T""":..!!! {++ 	,vE'28QqE??+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,< !!	
 	
 	
 {++ 	,vE"(Aa5//7+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,< !!	
 	
 	
 {++ 	$vE'7###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$< !!	
 	
 	
 {++ 	FvE"(GW-..#s0D0DEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F= !!	
 	
 	
 {++ 	BvE"(C:&&%(@(@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B= !!	
 	
 	
 {++ 	:vE"(C:&&!Q(8(8999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:= !!	
 	
 	
 {++ 	>vE"(C:&&#s(<(<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>= !!	
 	
 	
 	
 	
s~   !A::A>A>!C44C8;C8EE!E'5G((G,/G,55I66I:=I:5LLL5NNNc                 ,   t           } t          d          |          }|                                  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                              ddd          fg}|D ]"} || } || }| 	                    ||           #d S )NTrP  r  r  r   rE  r  r  )r  r  rB  r  r_  )
r  r   rV  r   rJ  r  r  rd  r  r  )r  r  r#  r  pairr%  r$  s          r"   test_asarray_chkfinitez&TestNPFunctions.test_asarray_chkfinite  s@   %"T"""6**!!!
 ##
 ##
 
 1a&1a&)**
 ! !Qrx000
 	"%%aA..; 
D  	3 	3Dvt}H%,C##Hc2222	3 	3r$   c           	      @    t          d          t                    }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                     t                    5 } |t          j
        ddt          j        dg                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j
        ddt          j        dg                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j
        g d	          d
           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTrP  rE  z7The argument to np.asarray_chkfinite must be array-liker  r3  z#array must not contain infs or NaNsr   r  r  z!dtype must be a valid Numpy dtype)r   r  rV  rS  r   rT  rR  rU  r  r   rJ  r  r  )r  r#  r%  r  s       r"   !test_asarray_chkfinite_exceptionsz1TestNPFunctions.test_asarray_chkfinite_exceptions  s   "T"""#788!!! {++ 	qE!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Gc3q{++,,, z** 	/aE"(Aq"&!,--...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/;S=M=MNNN z** 	/aE"(Aq"&!,--...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/;S=M=MNNN {++ 	5qE"(<<<(()444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	593q{;K;KLLLLLsH   A%%A),A)4,C,,C03C09,E11E58E5>!G++G/2G/c           	         t           }t          |          }t          }t          |          }t          }t          |          }t          }t          |          }d }	 |	            D ]*}
|                      ||
           ||
                     +t          j        g d          }t          j        |d          fd}|                      |dd           |dd                      |            D ]1\  }
}|                      ||
|           ||
|                     2fd} |            D ]4\  }
}}|                      ||
||	           ||
||	                     5d S )
Nc               3     K   t          j        dddt           j        z  z   g          V  t          j        dt           j        d          } | dd xx         t           j        z  cc<   | V  t          j        d                              d          V  t          j        d	d
                              d          V  t          j        dd
                              d          V  d S )Nr   rE  r   r3  r   r  r  )r  r     r]  )step   rY  )r   rJ  rs  r  rd  r  )phases    r"   inputs1z2TestNPFunctions.test_unwrap_basic.<locals>.inputs1  s      (Aq1ru9}-.....K25a000E!""IIIIIIKKK)B--''.....)Cb)))11%88888)Cb)))11':::::::r$   )r   K         r1  i     c               3      K   t          j        ddg          dfV  t          j        g d          dfV  t          j        g d          dfV  t          j        g d          dfV   dfV  d S )	Nr   i     )r   r.  r/  r0  r1  )r   r   rE  r  r   r  )rE  r  r  r3  rE  r  r  r3  r1  r  wrap_unevens   r"   inputs13z3TestNPFunctions.test_unwrap_basic.<locals>.inputs13
  s      (Aw<((#----(11122C7777(+++,,a////(33344a7777s""""""r$   r  )r>   r  r  c               3      K    ddfV  d S )Nr1     r  r4  s   r"   	inputs123z4TestNPFunctions.test_unwrap_basic.<locals>.inputs123  s       sC''''''r$   r  )	r  r   r  r  r  r  r   rJ  mod)r  r  r#  r  cfunc1pyfunc13cfunc13	pyfunc123cfunc123r-  r  
uneven_seqr6  r  r9  r  r5  s                   @r"   test_unwrap_basicz!TestNPFunctions.test_unwrap_basic  s   Vgx..		??	; 	; 	;  	; 	;A##GGAJJq		::::X999::
fZ--	# 	# 	# 	# 	# 	{C H H H %k3 G G G	I 	I 	I " 	? 	?IAv##HHQv$>$>$>$+GAf$=$=$=? ? ? ?	( 	( 	( 	( 	( #,)++ 	? 	?Avw##IIa6=%? %? %?$,HQv5<%> %> %>? ? ? ?	? 	?r$   c                    t          t                    }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        ddg          d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        ddg          dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        ddg          dd	           d d d            n# 1 swxY w Y   |                     d
t          |j                             |                     t                    5 } |t          j	        ddg          dd	           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr`  z#The argument "p" must be array-liker   rE  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  rV  rS  r   rT  rR  rU  r   rJ  r  )r  r#  r%  s      r"   test_unwrap_exceptionz%TestNPFunctions.test_unwrap_exception#  s   V!!!{++ 	qE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;!+&&	( 	( 	( {++ 	+qE"(Aq6""E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+?!+&&	( 	( 	( {++ 	5qE"(Aq6""Ae4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5>!+&&	( 	( 	( {++ 	3qE"(Aq6""AE2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3>!+&&	( 	( 	( z** 	/aE"(Aq6""AA....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/B!+&&	( 	( 	( 	( 	(sZ   AA"A(!CCC"#EEE#GGG#I		IIc                 >   t           } t          d          |          }d } |            D ]n}t          |j         |j                  D ]P}t          |j         |j                  D ]2} ||||          } ||||          }|                     ||           3Qod S )NTrP  c               3      K   t          j        d          V  t          j        d                              dd          V  t          j        d                              ddd          V  d S )Nr]  rE  r3  r  r  r  r  r  r$   r"   r  z9TestNPFunctions.test_swapaxes_basic.<locals>.a_variationsD  sj      )B--)B--''1-----)B--''1a0000000r$   )r  r   rk  ndimr  )	r  r  r#  r  r0   r  r  r%  r$  s	            r"   test_swapaxes_basicz#TestNPFunctions.test_swapaxes_basic@  s    "T"""6**	1 	1 	1
  	; 	;AQVGQV,, ; ;00 ; ;B%vaR00H%2r**C++Hc::::;;	; 	;r$   c                 ,   t           } t          d          |          }|                                  |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          d	d           d d d            n# 1 swxY w Y   |                     d
t          |j                             |                     t                    5 } |t          j	        d                              dd          dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTrP  r`  r   z'The first argument "a" must be an arrayr  z.The second argument "axis1" must be an integerz-The third argument "axis2" must be an integerr   z)np.swapaxes: Argument axis1 out of boundsr  rE  r  z)np.swapaxes: Argument axis2 out of bounds)r  r   rV  rS  r   rT  rR  rU  r   rd  r  r  rW  s       r"   test_swapaxes_exceptionz'TestNPFunctions.test_swapaxes_exceptionP  s   "T"""6** 	!!!{++ 	vE%A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	?&*++	- 	- 	- {++ 	*vE")A,,q)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	F&*++	- 	- 	- {++ 	*vE")A,,5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	E&*++	- 	- 	- z** 	&fE")A,,1%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	A&*++	- 	- 	- z** 	5fE")A,,&&q!,,a444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	A&*++	- 	- 	- 	- 	-sZ   A))A-0A-6 C""C&)C&/ EE"E( GGG!4I!!I%(I%c                     t          j        d                              d          }t          d             }t          j        ddgt           j                  }|                      |||          |                    ||                     d }t          d|j	                  D ]W} ||          }t          j
        ||	          }|                      |||          |                    ||                     Xd S )
Nr  )r  r   r  rE  c                 0    t          j        | |d           S r<   r   take_along_axis)r0   rn  s     r"   	axis_nonez7TestNPFunctions.test_take_along_axis.<locals>.axis_noney  s    %a6666r$   r   rE  rB  c                 ,     t            fd            }|S )Nc                 0    t          j        | |          S r   rL  r0   rn  r>   s     r"   implz?TestNPFunctions.test_take_along_axis.<locals>.gen.<locals>.impl      )!Q555r$   r   r>   rR  s   ` r"   genz1TestNPFunctions.test_take_along_axis.<locals>.gen  +    6 6 6 6 T6Kr$   r  r=   )r   rd  r  r   rJ  r  r  r  rk  rF  rx  )r  r0   rN  r   rV  rn  jfuncais           r"   test_take_along_axisz$TestNPFunctions.test_take_along_axisu  s   IbMM!!,// 
	7 	7 
	7 (Aq6333		!W 5 5 ) 1 1!W = =	? 	? 	?	 	 	 r16"" 	H 	HACFFEAA&&&B##EE!RLL%--22F2FGGGG	H 	Hr$   c                 :   t          j        d          }t          j        dt           j                  }d }dD ]`} ||          }|                    ||          } |||          }|                     ||           |                     |j        d           ad S )N)r  r  r   )r   rE  r3  rB  c                 ,     t            fd            }|S )Nc                 0    t          j        | |          S r   rL  rQ  s     r"   rR  zLTestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen.<locals>.impl  rS  r$   rT  rU  s   ` r"   rV  z>TestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen  rW  r$   )r   r  )r  rE  r3  )r   r  intpr  r  r  r  )r  r@   rY  rV  rn  r-  r%  actuals           r"   !test_take_along_axis_broadcastingz1TestNPFunctions.test_take_along_axis_broadcasting  s    
 gi  WYbg...	 	 	  	6 	6ACFFE}}S"--HU3^^F##Hf555V\95555	6 	6r$   c                 h
   t          j        d                              dd          }t          j        ddgt           j                  }t          j        dt           j                  }d }|                     t                    5 }  |d	          ||           d d d            n# 1 swxY w Y   |                     d
t          |j
                             |                     t                    5 }  |d          ||           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d          ||           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d           d|           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d           |d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d           |t          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j
                             t          d             }|                     t                    5 } |||d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d          |t          j        ddgt           j                             d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d           ||           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 }  |d          |t          j        dt           j                             d d d            n# 1 swxY w Y   |                     dt          |j
                             |                                  d S )Nr  rE  r  r   r   rB  r  c                 ,     t            fd            }|S )Nc                 0    t          j        | |          S r   rL  rQ  s     r"   rR  zJTestNPFunctions.test_take_along_axis_exceptions.<locals>.gen.<locals>.impl  rS  r$   rT  rU  s   ` r"   rV  z<TestNPFunctions.test_take_along_axis_exceptions.<locals>.gen  rW  r$   r0   zaxis must be an integerr  zaxis is out of boundsr  z"arr" must be an arrayr3  z"indices" must be an arrayr  r.  z#indices array must contain integersc                 .    t          j        | ||          S r   rL  rQ  s      r"   not_literal_axiszITestNPFunctions.test_take_along_axis_exceptions.<locals>.not_literal_axis  s    %aD111r$   zaxis must be a literal valuez'must have the same number of dimensionsr  zdimensions don't match)r   rd  r  rJ  r  r  rS  r   rT  rR  rU  r   r  rV  )r  arr2dindices_noner   rV  rX  re  s          r"   test_take_along_axis_exceptionsz/TestNPFunctions.test_take_along_axis_exceptions  s   	!$$Q**xAbi888'&	222	 	 	 {++ 	%vCCHHUG$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%/V5E1F1FGGG{++ 	$vCCGGE7###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$-s63C/D/DEEE{++ 	#vCCFF5'"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#-s63C/D/DEEE{++ 	(vCCIIb,'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(.F4D0E0EFFF{++ 	 vCCIIeQ	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 2C8H4I4IJJJ{++ 	3vCCIIeRXsCj11222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	31 !!	
 	
 	

 
	2 	2 
	2 {++ 	0vUGQ///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	04c&:J6K6KLLL{++ 	=vCCFF5"(Aq6;;;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=?&*++	- 	- 	- {++ 	$vCCIIeU###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$?&*++	- 	- 	- z** 	<fCCFF5"'&	:::;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<.F4D0E0EFFF!!!!!s   B**B.1B.7DD D&FFFG77G;>G;I&&I*-I*3*K))K-0K-M  M$'M$-6O//O36O3<QQ"%Q"+4S++S/2S/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 ];\  }}}	}
 ||||	|
          } ||||	|
          }| 
                    ||           <d S )Nr   r!  r	  rB  )r  r.  皙?r  )rj  r  r  r  rj  r  r  r  r]  r<       @)r  r  r  )r   r  rv  r  rJ  r  r  r  r   r   r  )r  rA   rp  posinfsneginfsr  r#  valuer  r  r  r%  r$  s                r"   test_nan_to_numzTestNPFunctions.test_nan_to_num  s    FRVGRV$$BFBF##HaS$$$Hgrvgrv..260B0Bbfa(('"&26'*B*BD E EH___%%HYYYHooo788Hc263'((HsBFC(263*<=>>Hrvgrvrv.//Hrvgrvrv.bjAAA!
$ Ry./Z  *1D'7+
 +
 	3 	3&E3 veVFKKKH%3vfEEEC##Hc2222	3 	3r$   c           
         t          t                    }t          j        ddt          j        t          j        t          j         g          }t          j        g d          } ||d|d         |d         |d                    |                     |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                    |                     |d	d          t          j        g d
                     d S )Nr  rj  )r.  r<  rk  Fr   r   rE  r  r  )r	  y     @@      ?y      ?     @)r   r  r   rJ  r  r  r  rv  )r  r#  r!   r%  	x_complexs        r"   test_nan_to_num_copy_falsez*TestNPFunctions.test_nan_to_num_copy_false  se   Z  Hc3899822233A;A;	
 	
 	
 	
 	"##111H''''((
 
	 	A;A;	
 	
 	
 	
 	bccNH77788	
 	
 	
 	
 	
r$   c                     t          t                    }|                                 5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Ninvalid_inputz4The first argument must be a scalar or an array-like)r   r  r  rT  rR  rU  r|  s      r"    test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argument+  s    Z  ##%% 	#E/"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#L&*++	- 	- 	- 	- 	-s   AAAc                 (   t           }t          |          }t          }t          |          }d } |            D ]W\  }}|                      ||           ||                     |                      |||           |||                     Xd S )Nc               3     K   t          j        ddg          dfV  t          j        ddgddgg          dfV  t          j        d                              d          dfV  ddgdfV  t          j        g           dfV  d S )Nr   rE  r  r  r  r  r  r  r  r$   r"   r\  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs9  s      (Aa5//1$$$$(QqE1Q%=))2----)A,,&&w//2222a&!)OOO(2,,/!!!!!r$   )r  r   r  r  )r  r  r;  r  r  r\  ra   r   s           r"   test_diagflat_basicz#TestNPFunctions.test_diagflat_basic3  s    gg	" 	" 	" FHH 	A 	ADAq##GGAJJq		:::##GGAqMM66!Q<<@@@@	A 	Ar$   c                 $   t           }t          |          }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr`  #The argument "v" must be array-like)r  r   rV  rS  r   rT  rR  rU  rW  s       r"   test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exceptionD  s    V!!!{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 	- 	-s   AA!$A!c                    t           }t          |          }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr`  rE  rz  r   z#The argument "k" must be an integerr  )r  r   rV  rS  r   rT  rR  rU  rW  s       r"   test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exceptionO  s   V!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- {++ 	!vE1a&%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!;&*++	- 	- 	- {++ 	vE1a&#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 	- 	-s6   AA"%A"+CC
C
D..D25D2c               #     K   t          j        t          j                  t          j        t          j                  fV  dgt          j        t          j                  fV  t          j        t          j                  dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  g dg dfV  ddgddgfV  g dg dfV  g dddgfV  g dg d	fV  g dg d
fV  g dg dfV  d S )Nr   rE  r  rE  rE  r  r  rE  r  r  r   r  r  r  )r_  r3  r  )r   r  rE  r  r\  r  r  r$   r"   _setxor_arrayszTestNPFunctions._setxor_arraysd  s     u}--u}--/ 	/ 	/ 	/c4?5=111111oem,,qc1111cA3hcA3h!fqckii!Qii""""!fq!fnii""""llQF"""" llOOO++++ii""""ll.........r$   c                      t           t                     fd}                                 D ]\  }} |||           d S )Nc                    t          | t                    rt          |           } t          |t                    rt          |          } | |          } | |          }                    ||d|  d|            d S 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|      #t$$  3ii#t$$  3ii yc**H)C%%C##Hc7Nc7N7N7N7N#OOOOOr$   )r  r   r  r  r-  r0   r1   r  r  s   `   @@r"   test_setxor1d_2zTestNPFunctions.test_setxor1d_2x  s{    !	OO		P 	P 	P 	P 	P 	P 	P '')) 	 	DAqE!QKKKK	 	r$   c                 v    t           t                    d fd	}                                 D ]\  }} |||           t          t	          j        |                    t          |          k    r?t          t	          j        |                    t          |          k    r |||d           d S )NFc                    t          | t                    rt          |           } t          |t                    rt          |          } | ||          } | ||          }                    ||d|  d|            d S r  r  r  r  r9   r%  r$  r  r  r  s        r"   r-  z.TestNPFunctions.test_setxor1d_3.<locals>.check      #t$$  3ii#t$$  3ii yc=99H)Cm44C##Hc7Nc7N7N7N7N#OOOOOr$   Tr~  )r  r   r  rI  r   r  r  s   `   @@r"   test_setxor1d_3zTestNPFunctions.test_setxor1d_3  s    !	OO		P 	P 	P 	P 	P 	P 	P 	P '')) 	" 	"DAqE!QKKK29Q<<  CFF**s29Q<</@/@CFF/J/JaD!!!	" 	"r$   c                 *   t           }t          |          }t          j        dg          }t          j        dg          }|                                  |                     t                    5   |||d           d d d            n# 1 swxY w Y   |                     t                    5   |d|d           d d d            n# 1 swxY w Y   |                     t                    5   ||dd           d d d            d S # 1 swxY w Y   d S r  )r  r   r   rJ  rV  rS  r   r  s        r"   test_setxor1d_errorsz$TestNPFunctions.test_setxor1d_errors  r  r  c               #     K   t          j        t          j                  t          j        t          j                  fV  dgt          j        t          j                  fV  t          j        t          j                  dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  g dg dfV  ddgddgfV  g dg dfV  g dddgfV  t	          j        g d          t	          j        g d	          fV  t	          j        d
          t	          j        d          fV  t	          j        g d          t	          j        g d          fV  d S )Nr   rE  r  r  r  r  r  )r_  r3  r  r  r   rE  r  r  )rE  r  r  r  rE  r   r3  r  r  r  )r  r3  rE  )r
   r  r	   rH  r   rJ  rd  r  r$   r"   _setdiff_arrayszTestNPFunctions._setdiff_arrays  s     u}--u}--/ 	/ 	/ 	/c4?5=111111oem,,qc1111cA3hcA3h!fqckii!Qii""""!fq!fnii""""llQF"""" x00011x---..0 	0 	0 	0immRYr]]****hyyy!!28III#6#6666666r$   c                      t           t                     fd}                                 D ]\  }} |||           d S )Nc                    t          | t                    rt          |           } t          |t                    rt          |          } | |          } | |          }                    ||d|  d|            d S 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{    "	OO		P 	P 	P 	P 	P 	P 	P ((** 	 	DAqE!QKKKK	 	r$   c                 v    t           t                    d fd	}                                 D ]\  }} |||           t          t	          j        |                    t          |          k    r?t          t	          j        |                    t          |          k    r |||d           d S )NFc                    t          | t                    rt          |           } t          |t                    rt          |          } | ||          } | ||          }                    ||d|  d|            d S r  r  r  s        r"   r-  z/TestNPFunctions.test_setdiff1d_3.<locals>.check  r  r$   Tr~  )r  r   r  rI  r   r  r  s   `   @@r"   test_setdiff1d_3z TestNPFunctions.test_setdiff1d_3  s    "	OO		P 	P 	P 	P 	P 	P 	P 	P ((** 	" 	"DAqE!QKKK29Q<<  CFF**s29Q<</@/@CFF/J/JaD!!!	" 	"r$   c                 *   t           }t          |          }t          j        dg          }t          j        dg          }|                                  |                     t                    5   |||d           d d d            n# 1 swxY w Y   |                     t                    5   |d|d           d d d            n# 1 swxY w Y   |                     t                    5   ||dd           d d d            d S # 1 swxY w Y   d S r  )r  r   r   rJ  rV  rS  r   r  s        r"   test_setdiff1d_errorsz%TestNPFunctions.test_setdiff1d_errors  s   "	OO	HaSMMHaSMM!!!{++ 	# 	#IaE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#{++ 	& 	&IeQ%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&{++ 	& 	&Ia%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&r  c               #   6  K   t          j        t          j                  t          j        t          j                  fV  dgt          j        t          j                  fV  t          j        t          j                  dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  g dg dfV  ddgddgfV  g dg dfV  g dddgfV  ddgt	          j        d          fV  ddgt	          j        t	          j        d	          d
          fV  d S )Nr   rE  r  r  r  r  r  r^  r3  r  )r
   r  r	   rH  r   rd  r  r  r$   r"   _in1d_arrayszTestNPFunctions._in1d_arrays  sv     u}--u}--/ 	/ 	/ 	/c4?5=111111oem,,qc1111cA3hcA3h!fqckii!Qii""""!fq!fnii""""llQF""""!fbimm####!fbgbillA........r$   c                      t           t                     fd}                                 D ]\  }} |||           d S )Nc                    t          | t                    rt          |           } t          |t                    rt          |          } | |          } | |          }                    ||d|  d|            d S r  r  r  s       r"   r-  z*TestNPFunctions.test_in1d_2.<locals>.check  r  r$   )r  r   r  r  s   `   @@r"   test_in1d_2zTestNPFunctions.test_in1d_2  {    	OO		P 	P 	P 	P 	P 	P 	P %%'' 	 	DAqE!QKKKK	 	r$   c                 x    t           t                    d fd	}                                 D ]\  }} |||           t          t	          j        |                    t          |          k    r@t          t	          j        |                    t          |          k    r |||d           d S )NFc                    t          | t                    rt          |           } t          |t                    rt          |          } | ||          } | ||          }                    ||d|  d|            d S r  r  r  s        r"   r-  z+TestNPFunctions.test_in1d_3a.<locals>.check  r  r$   Tr  r~  )r  r   r  rI  r   r  r  s   `   @@r"   test_in1d_3azTestNPFunctions.test_in1d_3a  s    	OO		P 	P 	P 	P 	P 	P 	P 	P %%'' 	0 	0DAqE!QKKK29Q<<  CFF**s29Q<</@/@CFF/J/Ja$////	0 	0r$   c                      t           t                    d fd	}                                 D ]!\  }} |||d            |||d           "d S )NFc                    t          | t                    rt          |           } t          |t                    rt          |          } | ||          } | ||          }                    ||d|  d|            d S r  r  r  r  r  r%  r$  r  r  r  s        r"   r-  z+TestNPFunctions.test_in1d_3b.<locals>.check$  s    #t$$  3ii#t$$  3ii yc622H)Cf--C##Hc7Nc7N7N7N7N#OOOOOr$   r  Tr~  )r  r   r  r  s   `   @@r"   test_in1d_3bzTestNPFunctions.test_in1d_3b   s    	OO		P 	P 	P 	P 	P 	P 	P 	P %%'' 	% 	%DAqE!Qu%%%%E!Qt$$$$$	% 	%r$   c                     t           t                    d fd	}                                 D ]\  }} |||d            |||d           t          t	          j        |                    t          |          k    rPt          t	          j        |                    t          |          k    r |||dd            |||dd           d S )NFc                    t          | t                    rt          |           } t          |t                    rt          |          } | |||          } | |||          }                    ||d|  d|            d S r  r  	r  r  r9   r  r%  r$  r  r  r  s	         r"   r-  z*TestNPFunctions.test_in1d_4.<locals>.check5  s    #t$$  3ii#t$$  3ii yc=&AAH)CmV<<C##Hc7Nc7N7N7N7N#OOOOOr$   r  Tr9   r  FF)r  r   r  rI  r   r  r  s   `   @@r"   test_in1d_4zTestNPFunctions.test_in1d_41  s   	OO		P 	P 	P 	P 	P 	P 	P 	P %%'' 	= 	=DAqE!Qu%%%%E!Qt$$$$29Q<<  CFF**s29Q<</@/@CFF/J/Ja$u====a$t<<<<	= 	=r$   c                 H   t           }t          |          }t          j        dg          }t          j        dg          } |||          }|                     |t          j        dg                     |                                  |                     t                    5   |||dd           d d d            n# 1 swxY w Y   |                     t                    5   |||dd           d d d            n# 1 swxY w Y   |                     t                    5   |d|dd           d d d            n# 1 swxY w Y   |                     t                    5   ||ddd           d d d            n# 1 swxY w Y   t                      d             }|                     t                    5   |||d            d d d            n# 1 swxY w Y   |                     t                    5   |||d           d d d            d S # 1 swxY w Y   d S )	Nr   rE  Fr  Tc                 0    t          j        | ||          S Nkindr  r0   r1   r  s      r"   np_in1d_kindz6TestNPFunctions.test_in1d_errors.<locals>.np_in1d_kindX      71ad++++r$   r  table)r  r   r   rJ  r  rV  rS  r   )r  r  r  r0   r1   r!   r  s          r"   test_in1d_errorsz TestNPFunctions.test_in1d_errorsE  s   	OO	HaSMMHaSMMIaOO28UG#4#4555!!!{++ 	* 	*IaE5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*{++ 	* 	*IaE5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*{++ 	- 	-IeQe,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-{++ 	- 	-Iae,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 
	, 	, 
	, {++ 	* 	*LAD))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*{++ 	- 	-LAG,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-l   $B??CC$C??DD$D??EE$E??FF;GGG;HHHc                 `    t           r|                                 S |                                 S r   )r   _isin_arrays_reduced_isin_arrays_full)rG  s    r"   _isin_arrayszTestNPFunctions._isin_arraysa  s.     	+++---((***r$   c               #      K   dgdgfV  dgdgfV  ddgddgfV  t          j        d                              ddg          } t          j        ddg          }| |fV  d S )Nr   rE  r  r  r  r/   s     r"   r  z$TestNPFunctions._isin_arrays_reducedh  s       cA3hcA3h!fq!fn IaLL  !Q((HaVd




r$   c               #   >  K   t          j        t          j                  t          j        t          j                  fV  t	          j        dt          j                  t          j        t          j                  fV  t	          j        dt          j                  t          j        t          j                  fV  t	          j        dt          j                  t          j        t          j                  fV  dgt          j        t          j                  fV  t          j        t          j                  dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  g dg dfV  ddgddgfV  dd	gt	          j        d
          fV  dd	gt	          j        t	          j        d          d          fV  t	          j        d          	                    dd	d          g dfV  t	          j        d          	                    g d          } t	          j
        g dg dg dg          }| |fV  t	          j
        d	          |fV  | t	          j
        d	          fV  t	          j
        d	          t	          j
        d	          fV  d|fV  | dfV  dV  t          j        t          j                  |fV  | t          j        t          j                  fV  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V  ||fV  ||fV  ~dD ]}g dg d|z  fV  g dg d|z  fV  g dg d|z  fV  g d} | g d|z  fV  | g d|z  g d|z  z   fV  t	          j
        g d          t	          j
        g d|z            fV  t	          j
        g d          t	          j
        g d|z            fV  t	          j
        ddg          t	          j
        ddg|z            fV  t	          j
        dg          t	          j
        dg          fV  t	          j
        d d!g          t	          j
        g d"          fV  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 ]u\  }}t	          j        |t          j                  }t	          j
        g d#|          }	|rt	          j
        g d$|          }
nt	          j
        g d%|          }
|	|
fV  vt          j        d&         D ]C}t	          j
        g dt                    } t	          j
        g d'|          }| |fV  || fV  Dd S )(N)r   r   rB  )r   r   r  r   rE  r  r  r  r^  r3  r  r  )r3  r  r]  ra  r  rY  )r]  r^  r  rA  )r     r  r_  r!  )TFF)r   r]  r  r  )r  r  r   rE  )r  r  r   r  )r3  r  r3  r  r  r  r  r  r  r3  rE  r   r3  r3  )r3  r3  r  )r3  r  r   r   rE  )rE  r  r  r  r   r3  TFr  )r   r   r   r   )ir      )r  r   r3  
AllInteger)r   r   r   r   )r
   r  r	   rH  r   r  r  rd  r  r  rJ  r9  r4  r  ri  uint16r  signedinteger	typecodes)r0   r1   rC  arempty_arraymultdtype1dtype2is_dtype2_signedr  r  s              r"   r  z!TestNPFunctions._isin_arrays_fullt  s     u}--u}--/ 	/ 	/ 	/xbh///u{++- 	- 	- 	-xbh///u{++- 	- 	- 	-xbh///u{++- 	- 	- 	-c4?5=111111oem,,qc1111cA3hcA3h!fqckii!Qii""""!fq!fn!fbimm####!fbgbillA......imm##Aq!,,nnn<<<< IbMM!!))),,HlllIII|||<==d


hqkk1n!nhqkk28A;;&&&&d


d





oek**A----------BHbj1 
	+ 
	+E2:...Xlll%8884&X22233(2U333Kr/!!!k/!!!{***** 		< 		<D,,$ 66666,,$ 66666,,$ 66666:::AYYY%%%%%YYY%			D(888888(<<<(("(???T3I*J*JJJJJ(???++RX6H6H6H46O-P-PPPPP(Aq6""BHaVd]$;$;;;;;;hsmmRXqc]]****he}%%rx0E0E0E'F'FFFFF WbhXrwXry!Y!Xrx Xrx 
 	 	NFF  "}VR5EFF(<<<v666C <h~~~V<<<h}}}F;;;s(NNNN\,/ 	 	E---T:::AU333AQ$JJJQ$JJJJ		 	r$   c                      t           t                     fd}                                 D ]\  }} |||           d S )Nc                     | |          }t          | t                    rt          |           } t          |t                    rt          |          } | |          }                    ||d|  d|            d S r  r  r  s       r"   r-  z*TestNPFunctions.test_isin_2.<locals>.check  s     yc**H#t$$  3ii#t$$  3ii)C%%C##Hc7Nc7N7N7N7N#OOOOOr$   )r  r   r  r  s   `   @@r"   test_isin_2zTestNPFunctions.test_isin_2  r  r$   c                     t           t                    d fd	}                                 D ]\  }} |||           	 t          |          }n# t          $ r d}Y nw xY w	 t          |          }n# t          $ r d}Y nw xY wt          t          j        |                    |k    r3t          t          j        |                    |k    r |||d           d S )NFc                     | ||          }t          | t                    rt          |           } t          |t                    rt          |          } | ||          }                    ||d|  d|            d S r  r  r  s        r"   r-  z+TestNPFunctions.test_isin_3a.<locals>.check  s     yc=99H#t$$  3ii#t$$  3ii)Cm44C##Hc7Nc7N7N7N7N#OOOOOr$   r   Tr  r~  )r  r   r  rI  r  r   r  r  r-  r0   r1   len_alen_br  r  s   `     @@r"   test_isin_3azTestNPFunctions.test_isin_3a  s8   	OO		P 	P 	P 	P 	P 	P 	P 	P %%'' 	0 	0DAqE!QKKKA   A   29Q<<  E))c")A,,.?.?5.H.Ha$////	0 	0s$   AA'&A'+A;;B
	B
c                      t           t                    d fd	}                                 D ]!\  }} |||d            |||d           "d S )NFc                     | ||          }t          | t                    rt          |           } t          |t                    rt          |          } | ||          }                    ||d|  d|            d S r  r  r  s        r"   r-  z+TestNPFunctions.test_isin_3b.<locals>.check  s     yc622H#t$$  3ii#t$$  3ii)Cf--C##Hc7Nc7N7N7N7N#OOOOOr$   r  Tr~  )r  r   r  r  s   `   @@r"   test_isin_3bzTestNPFunctions.test_isin_3b  s    	OO		P 	P 	P 	P 	P 	P 	P 	P %%'' 	% 	%DAqE!Qu%%%%E!Qt$$$$$	% 	%r$   c                     t           t                    d fd	}                                 D ]\  }} |||d            |||d           	 t          |          }n# t          $ r d}Y nw xY w	 t          |          }n# t          $ r d}Y nw xY wt          t          j        |                    |k    rCt          t          j        |                    |k    r |||dd            |||dd           d S )NFc                     | |||          }t          | t                    rt          |           } t          |t                    rt          |          } | |||          }                    ||d|  d|            d S r  r  r  s	         r"   r-  z*TestNPFunctions.test_isin_4.<locals>.check  s     yc=&AAH#t$$  3ii#t$$  3ii)CmV<<C##Hc7Nc7N7N7N7N#OOOOOr$   r  Tr   r  r  )r  r   r  rI  r  r   r  r  s   `     @@r"   test_isin_4zTestNPFunctions.test_isin_4  sr   	OO		P 	P 	P 	P 	P 	P 	P 	P %%'' 	= 	=DAqE!Qu%%%%E!Qt$$$$A   A   29Q<<  E))c")A,,.?.?5.H.Ha$u====a$t<<<<	= 	=s$   A((A76A7;BBBc                 H   t           }t          |          }t          j        dg          }t          j        dg          } |||          }|                     |t          j        dg                     |                                  |                     t                    5   |||dd           d d d            n# 1 swxY w Y   |                     t                    5   |||dd           d d d            n# 1 swxY w Y   |                     t                    5   |d|dd           d d d            n# 1 swxY w Y   |                     t                    5   ||ddd           d d d            n# 1 swxY w Y   t                      d             }|                     t                    5   |||d            d d d            n# 1 swxY w Y   |                     t                    5   |||d           d d d            d S # 1 swxY w Y   d S )	Nr   rE  Fr  Tc                 0    t          j        | ||          S r  r  r  s      r"   np_isin_kindz6TestNPFunctions.test_isin_errors.<locals>.np_isin_kind9  r  r$   r  r  )r  r   r   rJ  r  rV  rS  r   )r  r  r  r0   r1   r!   r  s          r"   test_isin_errorsz TestNPFunctions.test_isin_errors&  s   	OO	HaSMMHaSMMIaOO28UG#4#4555!!!{++ 	* 	*IaE5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*{++ 	* 	*IaE5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*{++ 	- 	-IeQe,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-{++ 	- 	-Iae,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 
	, 	, 
	, {++ 	+ 	+LAT****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+{++ 	- 	-LAG,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r  c                    t          t                    }t          t                    }t          t                    }t          t                    }t          j        g d          }t          j        g d          } |||          } |||          } |||          }	 ||	|          }
|                     ||
           d S )N)r3  r  r   rE  r  )r  r  rE  r  r  r   r3  )r   r  r6   r  r  r   rJ  r  )r  nb_setxor1dnb_intersect1d
nb_union1dnb_setdiff1dr0   r1   c1aux1aux2c2s              r"   test_setops_manywaysz$TestNPFunctions.test_setops_manywaysB  s    =))m,,*%%
N++H___%%H***++[A~a##z!Q\$%%B'''''r$   )NNFNr   r}  )rI  rJ  rK  __doc__r  r'  rN  rY  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r/  r5  r9  r<  rC  rE  rJ  rN  ra  rq  ry  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,  r0  r3  r6  r:  r<  r?  rD  rF  rI  rL  rP  rS  rU  rW  rY  r^  rb  rf  rh  rv  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r#  r&  r(  r1  r3  r7  r:  r=  r?  rG  rN  rP  rV  rZ  r]  r_  rb  rw  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr   r  rS  r  r  rV  r  r  skipr  r   r\  r  r  r_  r  r
  r	  r-  r:  r@  rB  rN  rP  rR  rT  rV  rd  rh  r  rp  skipIfr   rs  rv  ry  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  r&  rA  rC  rG  rI  rZ  r`  rh  ro  rr  ru  rx  r{  r}  r  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 +C +C +CZ=) =) =)~	" 	" 	"68 68 68p-! -! -!^, , , 	" 	" 	"3 3 34	
 	
 	
3 3 3@ 7  7  7D& & &3 3 3&3 3 3$" " "B3 3 3<!" !" !"F	 	 	  7 7 7" " "*/ / /.7 7 7@7 7 7&7 7 7(D? D? D?L3 3 3<  3 3 3" " "	7 	7 	7- - -&
7 
7 
7- - -&` ` `DM M M^.8 .8 .8`'> '> '>R  4<# <# <#|: : : ! ! !F*6 *6 *6X1 1 1C C C*< < <0 0 0; ; ;@ @ @ @
?! ?! ?!B! ! !F    .  ,%# %# %#N  
I 
I 
II I I" ' ' \'>	I 	I 	I	4 	4 	4
 
 

 
 

 
 

 
 
8 8 8< < <I I I$I I I I4 4 45 5 5@ @ @P P P4 4 45 5 5@ @ @P P P? ? ?- - -*Q Q Q9 9 9E E E@H H HB  *  *, , ,(, , ,(          > > >> > >  &  &qA qA qAfkD kD kDZ	= 	= 	=	@ 	@ 	@ K  K  KD"Q "Q "QH     D$ $ $L	C 	C 	C	F 	F 	F P P ZP4"0 "0 "0H = = Z= = = Z=   Z$   Z; ; ;z 	 	 Z	   Z 
 
 Z
 /- /- Z/-b!# !# !#F' ' '- - -*? ? ?- - -.? ? ?K K K(P P P8- - -P P P8@ @ @:- - -(3 3 3>- - -23 3 3@- - -<T6 T6 T6l3 3 37 7 7F F F089 89 89t9 9 9"- - -- - - (B (B (BT1 1 147 7 74+ + +M. M. M.^& & &P X%8996 6 :96 *2        D X%899: : :9: ,6 8! 8! 8! 8!t X%899@ @ :9@ X]1223;    32 X%899< < :9< -8 +# +# +# +#Z X%899@ @ :9@ /< / / / /0 X%899E E :9E 4A *D *D *D *DX]6 ]6 ]6~>: >: >:@8 8 828 8 863 3 36 6 6@ @ @	4 	4 	43 3 3Bb- b- b-HL L L+7 +7 +7Z/A /A /Ab X_Z2N4OPPF F QPF6C; C; C;J  &'B 'B 'BR
< 
< 
<3 3 3 3 3 3<L< L< L<\3 3 32() () ()T I I _I>U8 U8 U8n8, 8, 8,t1J 1J 1Jf5; 5; 5;n-1 -1 -1^13 13 13f?
 ?
 ?
B,3 ,3 ,3\#
 #
 #
J"3 "3 "3H7% 7% 7%r
 
 
@"3 "3 "3H0
 0
 0
d*3 *3 *3XM M M28? 8? 8?t( ( (:; ; ; #- #- #-JH H H.6 6 6,@" @" @"D!3 !3 !3F"
 "
 "
H- - -A A A"	- 	- 	-- - -* / / \/&   " " "$& & & 7 7 \7(   " " "$& & & / / \/    0 0 0$% % %"= = =(- - -8 + + [+ 	 	 \	 S S \Sj    0 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dS )TestNPMachineParametersz0
def foo():
    ty = np.%s
    return np.%s(ty)
c                     |} t          d          |          } || } || }|D ]4}|                     t          ||          t          ||                     5d S r7  )r   r  getattr)	r  r  attrsrn   r  r#  r%  r$  attrs	            r"   r-  zTestNPMachineParameters.check\  s    "T"""6**64=eTl  	8 	8D##GHd$;$;$+C$6$68 8 8 8	8 	8r$   c                     |j         }|j         }| j        ||fz  }i }t          t          |dd          t	                      |           |d         S )Nz<string>execr  )rI  templater  compileglobals)r  basefunctytystrbasestrfuncstrdcts          r"   create_harcoded_variantz/TestNPMachineParameters.create_harcoded_varianth  sU     #-5'"22WWj&11799cBBB5zr$   )r   r  zNumPy < 1.24 requiredc                 @    d}|                      t          |           d S )N)ibetaitmachepr)  negepepsnegiexpminexpxminmaxexpxmaxirndngrdepsilontinyhuge	precision
resolution)r-  rs   )r  r  s     r"   test_MachArz#TestNPMachineParameters.test_MachArr  s&    H 	

65!!!!!r$   c                     t           j        t           j        t           j        t           j        g}d}|D ]]}|                     t          | |d                     |                     t           j        |          }|                     ||           ^|                     t                    5 } t          d          t                    } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                                 5   t          d          t                    } |t          j        d                     d d d            d S # 1 swxY w Y   d S )N)r)  r	  r
  r  rH  r  r  nexpnmantr  r  r  bitsr   TrP  rj  z(Unknown attribute 'machar' of type finfor  )r   r  rH  r  rK  r-  r   r  rS  r   r   r   rT  rR  rU  r  r  )r  r	   r  r  hc_funcrX  r#  r  s           r"   
test_finfoz"TestNPMachineParameters.test_finfoy  s   RZr}EN 	' 	'BJJueRRUU+++2228R@@GJJw&&&& {++ 	v&C&&&|44EE"III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9c3v/00111 ##%% 	 	&C&&&u--EE"(1++	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   +*C!!C%(C%*<E33E7:E7c                 N   t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        g}d}|D ]]}| 	                    t          | |d                     |                     t           j
        |          }| 	                    ||           ^|                                 5   t          d          t                    } |t          j        d                     d d d            d S # 1 swxY w Y   d S )N)r  rH  r  r   TrP  r  )r   r4  r  r  r  ri  r  r  r  r-  r   r  r  r   rH  )r  r	   r  r  r  r#  s         r"   
test_iinfoz"TestNPMachineParameters.test_iinfo  s5   "(BHbh")BI'' 	' 	'BJJueRRUU+++2228R@@GJJw&&&& ##%% 	! 	!&C&&&u--EE"*Q--   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   <DD!DzNeeds NumPy < 1.24c                    d}t          j        d          5 }t          j        d           t          j        d|t                     t          d           } |             d d d            n# 1 swxY w Y   |                     t          |          d           |                     d	t          |d
                              d S )Nz*.*`np.MachAr` is deprecated \(NumPy 1.22\)T)recordr  always)messagecategoryc                  2    t          j                    j        S r   )r   rr   r)  r  r$   r"   <lambda>zJTestNPMachineParameters.test_np_MachAr_deprecation_np122.<locals>.<lambda>  s    bikko r$   r   z`np.MachAr` is deprecatedr   )
warningscatch_warningssimplefilterfilterwarningsr   r   r  rI  rT  rR  )r  r  rX   r  s       r"    test_np_MachAr_deprecation_np122z8TestNPMachineParameters.test_np_MachAr_deprecation_np122  s    <$D111 	Q!(+++#Hc-DG G G G--..AACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Q###13qt99=====s   AA//A36A3N)rI  rJ  rK  r  r-  r  r  r  r   r  r  r  r  r   run_test_in_subprocessr*  r  r$   r"   r  r  S  s        H
8 
8 
8   X_]g-/FGG" " HG"  *! ! ! X02FGG$> > %$ HG> > >r$   r  c                       e Zd Zd ZdS )TestRegistryImportsc                     t          d          }t          |          \  }}|                     d|                                           |                     d|                                d| d           d S )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~         *$/////ekkmm1Hu1H1H1HIIIIIr$   N)rI  rJ  rK  r4  r  r$   r"   r-  r-    s(        J J J J Jr$   r-  __main__r~  )Nr   r   )r   r   F)r   r  r  )r   )r   )r   N)NF)NTFN)NT)NN)r  )Nr  r  )Tr  NNr  )rw  r@  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,  r2  r5  r:  r>  rE  rH  rH  rJ  rL  rS  rV  r\  r_  rc  re  rh  rj  rm  rq  rs  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-  rI  mainr  r$   r"   <module>rB     s
                                # # # # # # # # # #       " " " " " " " " 0 0 0 0 0 0 D D D D D D D D ' ' ' ' ' ' ( ( ( ( ( ( ' ' ' ' ' ': : : : : : : : : : : : : : : : : : : : : :
                 / / / /- - -, , ,        % % %( ( ( (! ! !. . ./ / /                      3 3 3 3      " " "      $ $ $- - - -% % %. . . .     1 1 1 1+ + + +$ $ $$ $ $$ $ $) ) ) )( ( ( (                  ! ! ! !# # # #$ $ $ $% % %( ( ( (       ! ! ! !# # # #$ $ $ $% % %( ( ( (' ' ' '     # # #, , , ,% % % %- - - -    & & & j ' ' ' '  & & &            " " "" " "4 4 4 45 5 5 5     ! ! !) ) )< < < <+ + +            " " " "        * * * *6 6 6 6  ' ' '8 8 8  " " "N N N N" " "       , , , ,  - - - -  6 6 6 6( ( ( (0 0 0 0  6 6 6 6( ( ( (0 0 0 0od( od( od( od( od(ox od( od( od(dI\> \> \> \> \>h \> \> \>~J J J J J( J J J( zHMOOOOO r$   