
    J/Ph~                       d dl Z d dlZd dlZd dlmZ d dl mZ d dlmZ d dlZ	d dl
mZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%Z%d Z&d Z'd Z(d Z)d Z*ddZ+d Z,d Z-d Z.d Z/d Z0d Z1d Z2ddZ3d Z4d Z5d Z6d  Z7d! Z8d" Z9d# Z:d$ Z;d% Z<d& Z=d' Z>dd(Z?dd)Z@dd,ZAd- ZBd. ZCd/ ZDd0 ZEd1 ZFd2 ZGd3 ZHd4 ZIdd6ZJd7 ZKdd8ZLd9 ZMdd;ZNdd<ZOdd=ZPd> ZQd? ZRd@ ZSddBZTddDZUdE ZVddFZWddGZXddHZYdI ZZddJZ[dK Z\ddLZ]ddMZ^ddNZ_dO Z`ddPZadQ ZbddRZcdS ZdddTZeddUZfddVZgdW ZhddXZiddYZjdZ Zkd[ Zldd]Zmdd^Zndd_Zod` Zpda Zqdb Zre	js        fdcZtdd Zude Zvdf Zwdg Zxdh Zydi Zzdj Z{dk Z|dl Z}dm Z~ddnZddo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)	IS_32BITS)pysignaturecross2d)TestCaseMemoryLeakMixin
needs_blasrun_in_subprocessskip_if_numpy_2
IS_NUMPY_2IS_MACOS_ARM64c                 *    t          j        |           S N)npsincxs    ]/var/www/html/test/jupyter/venv/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_2r3   +   r/   r!   Fc                 .    t          j        | ||          S r   r1   r-   r.   assume_uniques      r   intersect1d_3r7   /   s    >!Q...r!   c                 0    t          j        | ||          S Naxis)r   append)arrvaluesr;   s      r   r<   r<   3   s    9S&t,,,,r!   c                 .    t          j        | |          S r9   )r   count_nonzero)r=   r;   s     r   r@   r@   7   s    Cd++++r!   c                 ,    t          j        | |          S r   )r   delete)r=   objs     r   rB   rB   ;   s    9S#r!   c                 *    t          j        |           S r   r   diffr-   s    r   diff1rH   ?   r    r!   c                 ,    t          j        | |          S r   rE   )r-   ns     r   diff2rK   C       71a==r!   c                 *    t          j        |           S r   r   bincountrG   s    r   	bincount1rP   G       ;q>>r!   c                 .    t          j        | |          S )NweightsrN   )r-   ws     r   	bincount2rV   K   s    ;q!$$$$r!   c                 .    t          j        | ||          S r   rN   )r-   rU   	minlengths      r   	bincount3rY   O   s    ;q!Y'''r!   c                 ,    t          j        | |          S r   r   searchsortedr-   vs     r   r\   r\   S       ?1a   r!   c                 0    t          j        | |d          S )Nleftsider[   r]   s     r   searchsorted_leftrd   W   s    ?1af----r!   c                 0    t          j        | |d          S )Nrightrb   r[   r]   s     r   searchsorted_rightrg   [   s    ?1ag....r!   c                      t          j        |  S r   )r   digitizeargss    r   ri   ri   _   s    ;r!   c                      t          j        |  S r   )r   	histogramrj   s    r   rm   rm   c   s    <r!   c                  (    t          j                    S r   )r   MachArrj   s    r   macharrp   g   s    9;;r!   c                 *    t          j        |           S r   )r   	iscomplexr   s    r   rr   rr   k       <??r!   c                 *    t          j        |           S r   )r   iscomplexobjr   s    r   ru   ru   o       ?1r!   c                 *    t          j        |           S r   )r   isscalarr   s    r   rx   rx   s   rQ   r!   c                 *    t          j        |           S r   )r   isrealr   s    r   rz   rz   w       9Q<<r!   c                 *    t          j        |           S r   )r   	isrealobjr   s    r   r}   r}   {   rs   r!   c                 ,    t          j        | |          S r   )r   isneginfr   outs     r   r   r          ;q#r!   c                 ,    t          j        | |          S r   )r   isposinfr   s     r   r   r      r   r!   h㈵>:0yE>c                 2    t          j        | ||||          S r   )r   iscloser-   r.   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   iinforj   s    r   r   r          8T?r!   c                      t          j        |  S r   )r   finforj   s    r   r   r      r   r!   c                  (    t          j        |  j        S r   )r   r   rp   rj   s    r   finfo_macharr      s    8T?!!r!   c                 *    t          j        |           S r   r   fliplrrG   s    r   r   r      r{   r!   c                 *    t          j        |           S r   r   flipudrG   s    r   r   r      r{   r!   c                 *    t          j        |           S r   )r   fliprG   s    r   r   r      r    r!   c                 ,    t          j        | |          S r   r   logspacestartstops     r   	logspace2r      s    ;ud###r!   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   rot90rG   s    r   r   r      r&   r!      c                 ,    t          j        | |          S r   r   )r-   ks     r   rot90_kr          8Aq>>r!   c                 0    t          j        | ||          S r9   )r   array_splitr-   indicesr;   s      r   r   r      s    >!W40000r!   c                 0    t          j        | ||          S r9   )r   splitr   s      r   r   r      s    8AwT****r!   c                 ,    t          j        | |          S r   )r   vsplitr-   
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r-   r^   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      rL   r!   c                 *    t          j        |           S r   r   tril_indicesrJ   s    r   tril_indices_nr      rv   r!   c                 ,    t          j        | |          S r   r   rJ   r   s     r   tril_indices_n_kr      r_   r!   c                 .    t          j        | |          S Nr   r   rJ   r   s     r   tril_indices_n_mr          ?1""""r!   c                 .    t          j        | ||          S r   r   rJ   r   r   s      r   tril_indices_n_k_mr          ?1a###r!   c                 *    t          j        |           S r   r   tril_indices_fromr=   s    r   tril_indices_from_arrr        $$$r!   c                 ,    t          j        | |          S r   r   r=   r   s     r   tril_indices_from_arr_kr        Q'''r!   c                 *    t          j        |           S r   r   triur   s    r   triu_mr    r    r!   c                 ,    t          j        | |          S r   r	  r   s     r   triu_m_kr    rL   r!   c                 *    t          j        |           S r   r   triu_indicesr   s    r   triu_indices_nr    rv   r!   c                 ,    t          j        | |          S r   r  r   s     r   triu_indices_n_kr    r_   r!   c                 .    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r-   kths     r   r#  r#  /  s    <3r!   c                 ,    t          j        | |          S r   )r   argpartitionr$  s     r   r'  r'  3  s    ?1c"""r!   Tc                 2    t          j        | ||||          S r   )r   cov)r   yrowvarbiasddofs        r   r)  r)  7  s    6!Qd+++r!   c                 .    t          j        | ||          S r   )r   corrcoefr   r*  r+  s      r   r/  r/  ;  s    ;q!V$$$r!   c                 .    t          j        | ||          S r   )r   ediff1d)aryto_endto_begins      r   r2  r2  ?  s    :c68,,,r!   c                 ,    t          j        | |          S r   )r   roll)r-   shifts     r   r7  r7  C  s    71er!   c                 *    t          j        |           S r   r   asarrayrG   s    r   r;  r;  G      :a==r!   c                 .    t          j        | |          S Ndtyper:  r-   r@  s     r   asarray_kwsrB  K  s    :au%%%%r!   c                 .    t          j        | |          S r>  r   asfarrayrA  s     r   rE  rE  O  s    ;q&&&&r!   c                 *    t          j        |           S r   rD  rG   s    r   asfarray_default_kwargrG  S  rQ   r!   c                 ,    t          j        | |          S r   )r   extract	conditionr=   s     r   rI  rI  W  s    :i%%%r!   c                 *    t          j        |           S r   r   trapzr*  s    r   np_trapzrP  [  r&   r!   c                 ,    t          j        | |          S r   rM  r*  r   s     r   
np_trapz_xrS  _  r   r!   c                 .    t          j        | |          S NdxrM  r*  rW  s     r   np_trapz_dxrY  c  s    8A"r!   c                 .    t          j        | ||          S r   rM  r*  r   rW  s      r   np_trapz_x_dxr\  g  s    8Aq"r!   c                 *    t          j        |           S r   r   	trapezoidrO  s    r   np_trapezoidr`  k  rs   r!   c                 ,    t          j        | |          S r   r^  rR  s     r   np_trapezoid_xrb  o      <1r!   c                 .    t          j        | |          S rU  r^  rX  s     r   np_trapezoid_dxre  s  s    <b!!!!r!   c                 .    t          j        | ||          S r   r^  r[  s      r   np_trapezoid_x_dxrg  w  s    <1b!!!r!   c                 2    t          j        | ||||          S r   )r   allcloser   s        r   np_allcloserj  {  s    ;q!T4333r!   c                 0    t          j        | ||          S )Nr;   rT   )r   average)r-   r;   rT   s      r   
np_averagern    s    :adG4444r!   c                 .    t          j        | ||          S r   )r   interpr   xpfps      r   rp  rp    s    9QBr!   c                 ,    t          j        | |          S r   )r   repeatr-   repeatss     r   	np_repeatrx    s    9Q   r!   c                 P    t          j        |                               |          S r   )r   r;  ru  rv  s     r   array_repeatrz    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    rQ   r!   c                 *    t          j        |           S r   )r   blackmanr  s    r   np_blackmanr    rQ   r!   c                 *    t          j        |           S r   )r   hammingr  s    r   
np_hammingr    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)r-   trims     r   np_trim_zerosr    s    =D!!!r!   c                 "    t          | |          S r   r   r,   s     r   
nb_cross2dr    s    1a==r!   c                 *    t          j        |           S r   r   rG   s    r   flip_lrr    r{   r!   c                 *    t          j        |           S r   r   rG   s    r   flip_udr    r{   r!   c                 ,    t          j        | |          S r   )r   union1dr,   s     r   
np_union1dr    s    :a??r!   c                 ,    t          j        | |          S r   )r   asarray_chkfiniterA  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    )r-   keys     r   array_containsr    s    !8Or!   c                 .    t          j        | ||          S r   )r   swapaxes)r-   a1a2s      r   r  r    s    ;q"b!!!r!           c                 0    t          j        | ||          S )Ncopynan)r   
nan_to_num)Xr  r  s      r   r  r    s    =3////r!   c                 *    t          j        |           S r   )r   r   )
dimensionss    r   
np_indicesr    s    :j!!!r!   c                 *    t          j        |           S r   r   diagflat)r^   s    r   	diagflat1r    rQ   r!   c                 ,    t          j        | |          S r   r  )r^   r   s     r   	diagflat2r        ;q!r!   c                 ,    t          j        | |          S r   r   setxor1dr,   s     r   np_setxor1d_2r    r  r!   c                 .    t          j        | ||          S r   r  r5   s      r   np_setxor1d_3r    s    ;q!]+++r!   c                 ,    t          j        | |          S r   r   	setdiff1dr,   s     r   np_setdiff1d_2r    rc  r!   c                 .    t          j        | ||          S r   r  r5   s      r   np_setdiff1d_3r    s    <1m,,,r!   c                 ,    t          j        | |          S r   r   in1dr,   s     r   	np_in1d_2r    rL   r!   c                 0    t          j        | ||          S Nr6   r  r5   s      r   
np_in1d_3ar        71a}5555r!   c                 0    t          j        | ||          S Ninvertr  r-   r.   r  s      r   
np_in1d_3br        71a''''r!   c                 0    t          j        | |||          S r   r  r-   r.   r6   r  s       r   	np_in1d_4r        71a///r!   c                 ,    t          j        | |          S r   r   isinr,   s     r   	np_isin_2r    rL   r!   c                 0    t          j        | ||          S r  r  r5   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                       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 Ze?d             Zd Zd Zd Zd 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   r@  AttributeErrorr	   float32	complex64assertPreciseEqual)r  pyfuncx_typesx_valuesfunc_extra_typesfunc_extra_argsr  r  kwargstxvxxtypesxargscfuncgotexpectedscaltyr  r  s                      r   	run_unaryzTestNPFunctions.run_unary(  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          j        t          j        gt	          |          dz  z  } |||           t          j        |t
          j                  g}d |D             } |||           g d}t          j        t          j        gt	          |          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>.checkq  s@    DN67H %/3S% %#% % % % %r!   )
      ?      r               ?         g#B;g#B   r?  c                 ,    g | ]}t          |          S r  r   .0r^   s     r   
<listcomp>z-TestNPFunctions.test_sinc.<locals>.<listcomp>}      ///6!99///r!   )      ?                                      r9                ?y                    ?                            ?      ?                  @      @            y#B;        y#B        y        #B;y        #B)ulpsc                 ,    g | ]}t          |          S r  r2  r3  s     r   r5  z-TestNPFunctions.test_sinc.<locals>.<listcomp>  r6  r!   N)	r   r	   r  float64lenr   arrayr  
complex128)r  r(  r  r  r&  r  r'  s   `   @@@r   	test_sinczTestNPFunctions.test_sincU  sS     	% 	% 	% 	% 	% 	% 	% 	% IHH=%-0CMMQ4FGgx    HXRZ8889//h///gx     
 ?E$45X!9KL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   assertInrK  	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            TFr0  r      )sizer@  r.     )r   aranger;  rE  r  seedrandviewrF  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!   TrI  )r  r   r  )r  rq  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          j        t          j        gt          |          dz  dz   z  } |||           t          j        |t          j                  g}d |D             } |||           g d}t          j        t          j	        gt          |          dz  dz   z  } |||           t          j        |          }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_rD  )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  r+  r,  r-  r.  r/  r0  r   r?  c                 ,    g | ]}t          |          S r  r2  r3  s     r   r5  z.TestNPFunctions.test_angle.<locals>.<listcomp>  r6  r!   )r7  r8  r9  r9  r:  y             r;  r<  r=  r>  r?  r@  N)
r%   r)   r	   r  rC  rD  r   rE  r  rF  )r  r(  r  r  r{  r|  s   `   @@r   
test_anglezTestNPFunctions.test_angle  s8   
 	9 	9 	9 	9 	9 	9 	9 :99=%-0CMMQ4F4JKgx    HXRZ8889//h///gx   A A A?E$45X!9Ka9OPgx    8H%%?E$45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$   r@  )r   rs     r   numba_anglez;TestNPFunctions.test_angle_return_type.<locals>.numba_angle  s    A7Nr!   )r)  r*  r7  r@  )f4f8c8c16r?  TrI  )r  r   rE  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 )NTrI  helloz0Argument "z" must be a complex or Array[complex])r%   r   rL  r   rM  rK  rN  rO  rP  s       r   test_angle_exceptionsz%TestNPFunctions.test_angle_exceptions  s    "T"""6**{++ 	vE'NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	H&*++	- 	- 	- 	!!!!!rS  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   r0  rV  r.     r   r0     r  )r0  r0  )r  r0  )TTTF)Tr0  )Tr   )Fr   r   rE  r]  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!   TrI  )r+   r   r  r  r  r  r  r=   rC   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 )NTrI     r     z3Both arguments to "array_equals" must be array-like)
r+   r   rL  r   r   r]  r  rM  rK  rN  rP  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   r0  r   r0  r0  r  r.     r   r0  r0  r  r  r   r.  )r.  r.  r  r   r0  )r0  r   r  r  r  r   r.  r
   
empty_listr	   rC  r  r!   r   r  z2TestNPFunctions.test_intersect1d_2.<locals>.arrays:  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!   TrI  )r3   r   
isinstancelistr
   r  r  r  r  r  r-   r.   r   r  s           r   test_intersect1d_2z"TestNPFunctions.test_intersect1d_28  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>.arraysZ  r  r!   TrI  Fr  )	r7   r   r  r  r
   r  rD  r   uniquer  s           r   test_intersect1d_3z"TestNPFunctions.test_intersect1d_3X  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   r0  fooT)r7   r   r   rE  rO  rL  r   r  	np_pyfunc	np_nbfuncr-   r.   s        r   test_intersect1d_errorsz'TestNPFunctions.test_intersect1d_errorsz     !	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 )
NrV  r?  r   <   r  r  r.  r  r   )r   rE  zerosr]  onesrx  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!   TrI  )r@   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)r0  r0  NrV  r  r.  r0  r  r  r.  rX  r     	   r   r   )r   r]  r  rE  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!   TrI  )r<   r   r  )	r  r  r  r  r=   rC   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 )NTrI  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   rE  rL  r   rM  rK  rN  rO  )r  r  r  r=   r>   r;   rQ  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   r0  r  r  r.  r  r0  rV  )r  r.  rX  )r0  r  r  r.  r  r  r.  )r.  r     r  r   r0  r  r  r   )r   r]  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!   TrI  )rB   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 )NTrI  r   r0  gQ	@zobj should be of Integer dtyperV  )g      @gffffff@g@r  z)arr must be either an Array or a Sequencez"obj must be less than the len(arr))rB   r   rO  rL  r   rM  rK  rN  r   r]  
IndexErrorrP  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  r0  r  Nr   r]  r  r  r-   r.   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 )NTrI  r   )rH   r   r  r  r   rE  assertTypingError)r  r  r  r=   r   r  r-   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 )	NTrI  r  r   r   r0  r  i  )rK   r   r  shaper  )r  r  r  r=   r[  rJ   r   r  s           r   
test_diff2zTestNPFunctions.test_diff2'  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 )NTrI  r   r   rV  )r  izorder must be non-negative)rK   r   rO  r   rE  r  r]  rL  
ValueErrorrM  rK  rN  )r  r  r  r=   rJ   rQ  s         r   test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptions1  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                @numbarV  i90  gV-@TYnatr   )r   r;  intint16timedelta64
datetime64r  r!   r   r>   z-TestNPFunctions.test_isscalar.<locals>.valuesG  s      GGG*aS//!!!JJJHHHMMMb''MMM(5//!!!KKKJJJJJJ.S)))))-&&&&&-3'''''''r!   TrI  )rx   r   r  r  r>   r  r  r   r   r  s          r   test_isscalarzTestNPFunctions.test_isscalarF  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   r7  )r  r7  Thello worldr:  r  r!   r   r>   z4TestNPFunctions.test_isobj_functions.<locals>.values^  sG      GGGLLL*.../////r!   TrI  c                 $    |r| nd } ||          S r   r  )r   condr  r*  s       r   optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fnd  s    #tA588Or!   Fr  )r   ru   r}   r  py_funcrD  
signatures)r  r>   r  pyfuncsr  r  r   r   r  expected_optionalgot_optionalexpected_nonegot_nones                r   test_isobj_functionsz$TestNPFunctions.test_isobj_functions]  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)      ?      ?r7        @r  r0                 @r  r  y              (@      ?      @y      $@        )r  y       @        r   r0  r  r.  rX  r  r  r   rE  r  r!   r   r>   z7TestNPFunctions.test_is_real_or_complex.<locals>.values~  s      (:::;;;;;(999%%%%%GGGIIILLLMMM""""(QFQFQFQF;<<<<<<<r!   TrI  )rr   rz   r   r  )r  r>   r  r  r  r   r   r  s           r   test_is_real_or_complexz'TestNPFunctions.test_is_real_or_complex}  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   r?  r  r  )r   infr;  r  rx  emptyr  r!   r   r>   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!   TrI  )r   r   r   r  )	r  r>   r  r  r  r   r   r   r  s	            r   test_isneg_or_ispos_infz'TestNPFunctions.test_isneg_or_ispos_inf  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  r0  r0  r0  )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   r0  r  r  r   皙?    .A)r   r    @)r   r  rE  r  r]  )aranr=   r   kwr   s   r   r>   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!   TrI  )r   rE  r]  r  r   r   r  rx  r  
assertTruer+   )r  r>   r  r  r-   r.   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 NTrI  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-liker0  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  inpsr-   r.   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   r0  r.  r0  r  rW  )r.  r  r   r.  r   r  ,  r[  )r   rE  r  ra  astypeint8r  s       r   bincount_sequencesz"TestNPFunctions.bincount_sequences  sZ      H]]]##HQ#..55bg>>1ayr!   c                     t           } t          d          |          }|                                 D ].} ||          } ||          }|                     ||           /d S NTrI  )rP   r   r+  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 )NTrI  r0  r  #first argument must be non-negative)rP   r   rO  rL  r  rM  rK  rN  rP  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 )NTrI  c                 <    g | ]}t          j        |          d z
  S r0  )mathsqrtr4  r   s     r   r5  z2TestNPFunctions.test_bincount2.<locals>.<listcomp>,  s%    ///a1!///r!   )rV   r   r+  r   rE  r  )r  r  r  r.  rU   rT   r   r  s           r   test_bincount2zTestNPFunctions.test_bincount2(  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 )NTrI  r0  r  r   r1  z+weights and list don't have the same length)rV   r   rO  rL  r  rM  rK  rN  rP  s       r   test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptions3  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 )NTrI  r0  )rY   r   r+  maxr  rD  r  )r  r  r  r.  a_maxrX   r   r  s           r   test_bincount3zTestNPFunctions.test_bincount3F  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 )
NTrI  r0  r  r   r1     &   z 'minlength' must not be negative)rY   r   rO  rL  r  rM  rK  rN  rP  s       r   test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptionsR  s   "T"""6** 	!!! z** 	#fE1b'Aq6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#;&*++	- 	- 	- z** 	&fE2r(D"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&8&*++	- 	- 	- 	- 	-r<  c                    	
 t            t          d                    t           t          d                    	t           t          d                    
	
 fd}t	          j        d          dz  }t	          j        d          dz
  }|t          |          fD ]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 )NTrI  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   r  r-   r^   r   r  r  
cfunc_leftcfunc_rightr  pyfunc_leftpyfunc_rightr  s       r   r(  z0TestNPFunctions.test_searchsorted.<locals>.checko      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.  r0  rW  r   r  r.  r  r         @r,  c                 0    t          j        | |d          S )Nnonsenserb   r[   r]   s     r   bad_sidez3TestNPFunctions.test_searchsorted.<locals>.bad_side  s    ?1aj9999r!   ra   c                 0    t          j        | ||          S )Nrb   r[   )r-   r^   rc   s      r   nonconst_sidez8TestNPFunctions.test_searchsorted.<locals>.nonconst_side  s    ?1ad3333r!   rf   rb   )r   r0  r   r  rX  r   r  )	r  r   r  r0  r   r  r  rX  r  rV  r  )ra   )r\   r   rd   rg   r   r]  r  r  rC  floatr  rE  )r  r(  binsr>   r-   r^   rR  rT  r  rI  rJ  r  rK  rL  s   `       @@@@@@r   test_searchsortedz!TestNPFunctions.test_searchsortede  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 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$   (HH
H?II #I c                    	
 t            t          d                    	t           t          d                    
t           t          d                    	
 fd}t	          t          dd                    }|t          j        gdz  t          j        gdz  z   t          j         gdz  z   z  }t          d          D ]} j	        
                    g d	          } j	        
                    ||          } j	        
                    |||dz  d
z
  z             } |||            |t          j        |          |           t          j        d          }t          j        t          |          t          j                  } |||            |||            |||            |||           t          j        d
          }t          j        d          } |||           t          j        g d          }t          j        ddg          } |||           g d}d} |||           t          j        g d          }t          j        ddg          } |||           d S )NTrI  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   rG  rH  s       r   r(  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.check  rM  r!   r/  r   r.  r  r  )r.  rV  r\  r   
fill_valuer   )FFTTFr  )123r]  4)r\   r   rd   rg   r  ranger   r  r  r  choicesortr  r   rD  r]  rE  )r  r(  element_poolisample_sizer-   r^   r  nansr  rI  rJ  r  rK  rL  s   `        @@@@@@r   test_searchsorted_supplementalz.TestNPFunctions.test_searchsorted_supplemental  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 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 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}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 )NTrI  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   rG  rH  s       r   r(  z8TestNPFunctions.test_searchsorted_complex.<locals>.check  rM  r!   r   r   c                      g | ]}t          | S r  )complex)r4  r  s     r   r5  z=TestNPFunctions.test_searchsorted_complex.<locals>.<listcomp>  s    KKKKKKr!   r  r  r.  r0  r]   )r\   r   rd   rg   r   r  	itertoolsr   r`  r  ra  rD  rb  rE  r]  )r  r(  poolrc  rd  re  r-   r^   r  rI  rJ  r  rK  rL  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 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 )NTrI  c                  H     |  } |  }                     ||           d S r   rG  rk   r   r  r  r  r  s      r   r(  z,TestNPFunctions.test_digitize.<locals>.check*  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  rV  r  r  r        ?)ri   r   r   rC  rU  rD  r  shuffler  rb  r  rE  r  )r  r(  r>   bins1bins2bins3all_binsxsrV  r   rf   r  r  s   `          @@r   test_digitizezTestNPFunctions.test_digitize&  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 )
NTrI  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rL  r  rM  rK  rN  )rk   fnrQ  r  r  r  r  s       r   check_errorzETestNPFunctions.test_digitize_non_monotonic_bins.<locals>.check_errorV  s    uo : :&&z22 fBII               Lc3v'7#8#89999: :s   48	8	r   rw  ffffff@r  r   r   r0  )r   r   r   r   r   r   r   r   )rO  ri   r   r   rE  r  )r  r  r   rV  r  r  s   `   @@r    test_digitize_non_monotonic_binsz0TestNPFunctions.test_digitize_non_monotonic_binsO  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 )NTrI  c                  H     |  } |  }                     ||           d S r   rG  rq  s      r   r(  z9TestNPFunctions.test_digitize_supplemental.<locals>.checkp  rr  r!   r.  r/  r  rV  )r   r.  r  rV  r     r   )r   r.  rV  r  r  )r   r   r   )r   r   r   r   r   r   r   l          r   )	ri   r   r   r]  r  r_  linspaceminr>  )r  r(  r   rV  r  r  s   `   @@r   test_digitize_supplementalz*TestNPFunctions.test_digitize_supplementali  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 )NTrI  r   )r)        @r         @zx may not be complex)	rO  ri   r   r   rE  r  rM  rK  rN  )r  r  r  r   r*  r  funcrQ  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 )NTrI  c                       |  \  }} |  \  }}                     ||                                ||dd           d S )Nr
  r0  r  rA  rG  )rk   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 )Nrv  r  r  )r)  g      +@)r   rC  r  )r>   rV  r(  s     r   check_valuesz4TestNPFunctions.test_histogram.<locals>.check_values  s     :nnn--DE&$E&..(($/// E&! E&![))) E&MMMMMr!   )r   rs  r   rt  r  r  r  r  ru  g     @E@r*  r+  r  )rm   r   r   rC  rD  r  rx  )r  r  r>   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          |          }d}t          j        t          j        t          j        t          j        t          j        t          j        t          j        g}g d}t          j
        |||||          D ]\  }}}}	}
t          j        ||          }t          j        |	|          }t          j        |t          j                  r|d|z  z                       |          }t          j        |t          j                  r|d|z  z                       |          } ||||
          } ||||
          }|                     ||           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 )NTrI  )r   r0  r  r  )r   r   samer?  r:  r   r  r  r  zonly supported on 1D arrays)r   r   r*  int32int64r  rC  r  rF  rl  r   r]  
issubdtypecomplexfloatingr)  r  r  rL  r   rM  rK  rN  )r  r  r  lengthsdtsmodesdt1dt2rJ   r   r   r-   r^   r   r  _a_br   r*  rQ  r  s                        r   _test_correlate_convolvez(TestNPFunctions._test_correlate_convolve  sH   "T"""6** w"(BJ
|R],)))$-$5gw%
 %
 	3 	3 CaD 	!3'''A	!3'''A}S""455 -aZ'',,}S""455 -aZ'',,va...H%14(((C##Hc2222Yr]]""1a((Yr]]"XBx( 	6 	6DAq"";// 6a              /CMM#s6#3445555		6 	6s   GG"	%G"	c                 :    |                      t                     d S r   )r  r   r  s    r   test_correlatezTestNPFunctions.test_correlate  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  r.  TrI  r   z'a' cannot be emptyz'v' cannot be emptyzinvalid moder   zInvalid 'mode')rO  r   r  r]  r   rL  r  rD  rM  rK  rN  )r  r  r  r  r  r   r*  rQ  s           r   #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions  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_exceptions  s    00;;;;;r!   c                 :    |                      t                     d S r   )r  r   r  s    r   test_convolvezTestNPFunctions.test_convolve  s    %%h/////r!   c                 :    |                      t                     d S r   )r  r   r  s    r   test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptions  s    00:::::r!   c                 V     |di |} |di |}|                      |||           d S )Nr  r  rG  )r  r  r  paramsr  r   r  s          r   _check_outputzTestNPFunctions._check_output  sI    6##F##eoofoo#w?????r!   c                    t           } t          d          |          }t          | j        ||          fd} |t	          j        g d                      |t	          j        d          dz
              |t	          j        ddd	                      |t	          j        d
t          j        t          j	        t          j	         g                      |t	          j        g                       |t	          j        dd	          dz
              |t	          j        dgd	z  dgdz  z                        t          j
        t          j        t          j        t          j        fD ]!} |t	          j        d|                     " |g d            |d            |d            |d            |d            |d           d S )NTrI  c                     g d}ddg}d| i} |           |D ]}| |d} |           |D ]}| |d} |           |D ]}|D ]}| ||d} |           d S )N)Nr   r   r0  r  r  TFr   )r   r   )r   r!  r   r  )r   	n_choicesincreasing_choicesr  rJ   r!  r  s         r   _checkz1TestNPFunctions.test_vander_basic.<locals>._check'  s    ---I"& 1XFM&!!!  & & q))f%%%% 1 & &
 
;;f%%%%  * *"4 * *J#$1JGGF!M&))))** *r!   )r   r0  r  r.  r        %@r  rV  r.  333333?r/  333333?Fr  r?  r   r   r0  r  r  r.  rX  r  )r  r)  rO  r  )r  g-@A`"	@)TFr  )r  r   r   r  r   rE  r]  r  r  r  r  r  r  rC  )r  r  r  r  r@  r  s        @r   test_vander_basicz!TestNPFunctions.test_vander_basic"  s   "T"""6** 2FEBB	* 	* 	* 	* 	*0 	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 )NTrI  r.  r,  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  rM  rK  rN  )r   rQ  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   r0  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.)rL  r  r  rK  rN  )r   rQ  r  r  s     r   	_check_1dz9TestNPFunctions.test_vander_exceptions.<locals>._check_1dn  s    "":.. &a              M !1224 4 4 4 4   488r  )r  r  r  )r0  r  rN  )r  r   rO  r   r]  r  rL  r  rM  rK  rN  r  )r  r  r  r   rQ  r  r  r   s   `     @@r   test_vander_exceptionsz&TestNPFunctions.test_vander_exceptionsW  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 )NTrI  c                  ,    t          j        dd          S Nr  r   r]  r  r!   r   n_variationsz6TestNPFunctions.test_tri_n_basic.<locals>.n_variations      9R###r!   r   )r   r   r   r  )r  r  r  r  r  rJ   r  s          r   test_tri_n_basicz TestNPFunctions.test_tri_n_basicz  s}    "T"""6**+VU;;	$ 	$ 	$  	 	A1XFF6NNNN	 	r!   c                 
   t           } t          d          |          }t          | j        ||          }d }d } |            D ]}d|i} ||            |            D ]} |            D ]}||d} ||            d S )NTrI  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 Nr/  r  rl  chainfrom_iterabler`  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  rJ   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 )NTrI  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 NrV  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  rJ   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 )
NTrI  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  rJ   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 )NTrI  c                                                      5 } dd|            d d d            n# 1 swxY w Y   dt          |j                  v sJ d S )Nr.  rX  r   k must be an integer)r  rK  rN  )r   rQ  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rw  r   r0  )r   r   rO  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 )NTrI  c                      |           } |           }                     |j        |j                   t          j                            ||           d S r   )r  r@  r   testingassert_array_equal)r=   r   r  r  r  r  s      r   r  z:TestNPFunctions._triangular_matrix_tests_m.<locals>._check  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_m  s\    "T"""6**	9 	9 	9 	9 	9 	9 	9 224HHHr!   c                 v      t          d                     fd}                      |          S )NTrI  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  rV  r   )	rl  r  r  r`  r  r@  r   r  r  )r=   r   r  r   r  r  r  r  s        r   r  z<TestNPFunctions._triangular_matrix_tests_m_k.<locals>._check  s    _22TFE#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r-   r  s    r   	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_odd
  s_    F1III		&!!AF1III		,''AF1IIIF13KKKKKr!   c                      |            |                      d          }  |            |                      d          }  |             | j                   d S )N)r     r  r0  r0  r  r  r  s    r   
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_even  s_    F1III		'""AF1III		,''AF1IIIF13KKKKKr!   ?   r  @   ih  r  r  r.  rX  r  )r  r  r  Forderr
  )r   r]  r  rE  asfortranarray)r  r  r  r  r  r=   s     `   r   r  z.TestNPFunctions._triangular_matrix_tests_inner  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 )NTrI  r.  rX  rw  r  r  )r   rO  r   r  r  rM  rK  rN  )r  r  r  r-   rQ  s        r   _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptions'  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 r-  )r   r  typerD  r  r   r  r  )	r  r  rk   r  r   r   r  egs	            r   _triangular_indices_tests_basez.TestNPFunctions._triangular_indices_tests_base2  s    "T"""6** 	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  )r4  rJ   s     r   r5  z?TestNPFunctions._triangular_indices_tests_n.<locals>.<listcomp>@  s    $$$QaS$$$r!   rV  r  r`  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   r0  r`  )r4  rJ   r   s      r   r5  zATestNPFunctions._triangular_indices_tests_n_k.<locals>.<listcomp>F  s=    EEEqb1fa!e0D0DEE1aVEEEEr!   rV  r  r  s     r   _triangular_indices_tests_n_kz-TestNPFunctions._triangular_indices_tests_n_kC  s>    ++EEU2YYEEE	
 	
 	
 	
 	
r!   c                 `    |                      |d t          d          D                        d S )Nc                 @    g | ]}t          d |z            D ]}||gS r5  r"  )r4  rJ   r   s      r   r5  zATestNPFunctions._triangular_indices_tests_n_m.<locals>.<listcomp>L  s3    ===a!e==1aV====r!   rV  r  r  s     r   _triangular_indices_tests_n_mz-TestNPFunctions._triangular_indices_tests_n_mI  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"  )r4  rJ   r   r   s       r   r5  zCTestNPFunctions._triangular_indices_tests_n_k_m.<locals>.<listcomp>R  su     $ $ $1QBFAE**$ $AEll$ $ AY $ $ $ $ $r!   rV  TrI  r   )r  r`  r   )r  r  r  s      r   _triangular_indices_tests_n_k_mz/TestNPFunctions._triangular_indices_tests_n_k_mO  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 )NTrI  rV  r   r  rU  boolrl  r   r`  r   r  r  r  rD  r  r  r  )r  r  r  r@  rJ   r   r=   r   r  r  r  s              r   "_triangular_indices_from_tests_arrz2TestNPFunctions._triangular_indices_from_tests_arr[  s   "T"""6**5$' 	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 )NTrI  rV  r  r+  )r  r  r  r@  rJ   r   r=   r   r   r  r  r  s               r   $_triangular_indices_from_tests_arr_kz4TestNPFunctions._triangular_indices_from_tests_arr_kh  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 )NTrI  r)  zn must be an integerr   r   r  r  r   r   zm must be an integer)r   r   
parametersr  rM  rK  rN  )r  r  r  r1  rQ  s        r   _triangular_indices_exceptionsz.TestNPFunctions._triangular_indices_exceptionsv  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 )	NTrI  r   r   r  r.  zinput array must be 2-dr,  r  r  )r   r   r  r  rM  rK  rN  )r  r  test_kr  ndimsr-   rQ  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   r#  r   r&  r   r)  r   r2  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  r7  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  r:  r!   c                 :    |                      t                     d S r   )r  r  r  s    r   test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions  r=  r!   c                    |                      t                     |                     t                     |                     t
                     |                     t                     |                     t                     |                     t                     |                     t
                     |                     t                     d S r   )	r  r  r#  r  r&  r  r)  r  r2  r  s    r   test_triu_indicesz!TestNPFunctions.test_triu_indices  r@  r!   c                     |                      t                     |                     t                     |                     t          d           |                     t          d           d S rB  )r-  r  r/  r  r7  r  s    r   test_triu_indices_fromz&TestNPFunctions.test_triu_indices_from  rD  r!   c                     t           }t          t                     }d } |            D ]*}|                      ||           ||                     +d S )Nc               3   *   K   dV  dV  dV  dV  d S )N)r  r  )r  r  )r0  r0  r  r.  r  r  r!   r   inputsz2TestNPFunctions.test_indices_basic.<locals>.inputs  s3      LLLJJJJJJr!   )r  r   r  )r  r  r  rO  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)rO  r  )r0  r  )r   r  rO  rL  r   rM  rK  rN  )r  r  errmsgrQ  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  r-   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   rW  rX  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           
      D   t           } t          d          |          }t          dd          D ]m}t          d|dz
            D ]U}t          j        |          }| j                            |           || j                            dd          z  }| j                            |j                  }d|||dz   | | g}t          j	        |          |         }| 
                     |||          |         |           | 
                     ||                                |          |         |           | 
                     |t          |                                          |          |         |           |D ]}	|                     ||||	           Wod S NTrI  rV  r  r   r0  r   )r#  r   r`  r   r]  r  rx  ra  r[  rb  r  tolisttuplerY  
r  r  r  jrd  didxr%  tgtr   s
             r   test_partition_fuzzz#TestNPFunctions.test_partition_fuzz	  s    "T"""6**r2 	E 	EA1a!e__ E EIaLL  ###((B///h&&qv..#q!a%#r2gajjo''ac(:(+- - -''ahhjj#(>(>s(C(+- - -''eAHHJJ.?.?(E(Ec(J(+- - -  E EA//q!DDDDEE	E 	Er!   c                    t           } t          d          |          }t          dd          D ]}t          d|dz
            D ]y}t          j        |          }| j                            |           || j                            dd          z  }| j                            |j                  }d|||dz   | | g}t          j	        |          |         }| 
                    | |||          |                  ||                    | 
                    | ||                                |          |                  ||                    | 
                    | |t          |                                          |          |                  ||                    |D ]}	|                     ||||	           {d S r]  )r'  r   r`  r   r]  r  rx  ra  r[  argsortr  r^  r_  r[  r`  s
             r   test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzz	  s    "T"""6**r2 	H 	HA1a!e__ H HIaLL  ###((B///h&&qv..#q!a%#r2jmmC(''%%3--*<(=()#0 0 0''%%

C*@*@*E(F()#0 0 0''%%ahhjj0A0A3*G*G*L(M()#0 0 0  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 )NTrI  rV  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rL  r  rK  rN  r-   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   rO  r   r]  r  r  r-   r  r  s   `   @r   %test_partition_exception_out_of_rangez5TestNPFunctions.test_partition_exception_out_of_range4	  s     "T"""6** 	!!! IbMM	; 	; 	; 	; 	; 	;
 	q"q#q'r!   c                      t           } t          d          |                                            t          j        d          } fd} ||d            ||d            ||d           d S )NTrI  rV  c                                          t                    5 } | |           d d d            n# 1 swxY w Y   t          |j                  dk    sJ d S rk  rl  rm  s      r   r  zHTestNPFunctions.test_argpartition_exception_out_of_range.<locals>._checkU	  rn  ro  rp  rq  )r'  r   rO  r   r]  rr  s   `   @r   (test_argpartition_exception_out_of_rangez8TestNPFunctions.test_argpartition_exception_out_of_rangeI	  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 )	NTrI  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S NzPartition index must be integerr  r-   r%  rQ  r  r  s      r   r  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._checkg	      '')) Va              MM;f.//1 1 1 1 1   /33rV        "@ffffff
@rt  r   r0  )r#  r   rO  r   r]  rE  r  r  r  r  r-   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 )	NTrI  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S ry  r  rz  s      r   r  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check{	  r{  r|  rV  r}  r~  r   r0  )r'  r   rO  r   r]  rE  r  r  s   `   @r   +test_argpartition_exception_non_integer_kthz;TestNPFunctions.test_argpartition_exception_non_integer_kthr	  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 )NTrI  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  rz  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   rO  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 )NTrI  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  rz  s      r   r  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check	  r  r|  r  r   r  )r'  r   rO  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 )NTrI  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  rz  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   rO  r   rE  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 )NTrI  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  rz  s      r   r  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check	  r  r|  r   r   )r'  r   rO  r   rE  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 )	NTrI  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  rz  s      r   r  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._check	      "":.. &a              MM5s6;K7L7LMMMMMro  rV  rX  r  r0  r%  )r#  r   rO  r   r]  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 )	NTrI  c                                          t                    5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r  r  rz  s      r   r  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._check	  r  ro  rV  rX  r  r0  r  )r'  r   rO  r   r]  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 )NTrI  r   c                 d     | |          } | |          }                     ||           d S r   rG  r-   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  r0  r   r   r  r  )r#  r   r   rE  r  r  r(  r-   r=   r  r  s   `   @@r   test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_array	  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 )NTrI  r   c                 d     | |          } | |          }                     ||           d S r   rG  r  s       r   r(  z<TestNPFunctions.test_argpartition_empty_array.<locals>.check	  r  r!   r  r  r  )r'  r   r   rE  r  r  s   `   @@r   test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_array	  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          j        d          }t          j        ||j        dz            }|j        dz  dz   }| 
                     |||          |         |           t          j        d          }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 ]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(          }t/          | j        j        |           t'          |j                  D ]} |||          }| 
                    ||         |           t          j                            |d |         ||                    t          j                            ||         ||dz   d                     | 	                    ||||           1d S ))NTrI  r   r   r  rZ  r.  (   r0  r   r   r  r0  r   r  r0  r   r  r0  r  r   r   r   r   r  r0  r0  r   r   r0  r   r   r   r0  r   1   r.  rZ  /   r  rX  r	  r  )      @B AB rV  r  r0  r  r  r   r   r0  r  r  r.  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r     rW  r   r  r  r  c                      g | ]}d D ]}||fS )r  r	  r  r4  dtss      r   r5  z8TestNPFunctions.test_partition_basic.<locals>.<listcomp>[
  )    HHH"HH1r1gHHHHr!   r?  r  r   )r#  r   r   rE  r  r  r  r]  rb  rY  r  r^  r_  r7  r[  r  isnanr  rx  r`  r  r  tilemapr  assert_array_less)r  r  r  rb  r  r%  okthr  rd  r   r-   r   midrd  tdr  r  d1r  s                      r   test_partition_basicz$TestNPFunctions.test_partition_basic
  sW    "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#>>>> IgGAqv{##fkAoq#s+S111Ig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))"-..... IbMMAgbimma'((qv 	= 	=AUU1a[[^SV444''q!<<<<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          j        d          }t          j        ||j        dz            }|j        dz  dz   }|                     | |||          |                  |           t          j        d           }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)          }t5          | j        j        |           t-          |j                  D ]}| |||                   }|                     ||         |           t          j                            |d |         ||                    t          j                            ||         ||dz   d                     | 
                    ||||           7d S )*NTrI  r?  r   r   r  r  r0  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  rX  r	  r  r  r  r  r  r  r  rV  r  r  r  r  r  r  c                      g | ]}d D ]}||fS r  r  r  s      r   r5  z;TestNPFunctions.test_argpartition_basic.<locals>.<listcomp>
  r  r!   r  )r'  r   r   rE  r  r  r  r  r]  rg  r[  r  rY  r^  r_  r7  r[  r  r  rb  r  rx  r`  r  r  r  r  r  r  )r  r  r  rb  r   r  r%  r  r  rd  r   r-   r   r  rd  r  r  r  r  r  s                       r   test_argpartition_basicz'TestNPFunctions.test_argpartition_basick
  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 IgGAqv{##fkAo55C==-.444Ig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   rb  r  r  r  allrY  r  r  r  rb  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   rb  r  r  r  r  r[  r  s          r   assert_argpartitionedz%TestNPFunctions.assert_argpartitioned
  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 NTrI  )r  r  r0  r   )r   r  )r  r  rB  )r   r  r  r  rW  r  r.  r  rX  rY  )r#  r   r   r  r   rE  r'  r  r]  r  rx  r  r`  r[  )r  r  r  r  rb  r  keyss          r   test_partition_iterativez(TestNPFunctions.test_partition_iterative
  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   rE  r  r]  r  rx  r  r`  r[  )r  r  r  r  rb  r  r  s          r   test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterative
  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 )NTrI  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  )r-   r%  r   r  r  r  r  r  s        r   r(  z7TestNPFunctions.test_partition_multi_dim.<locals>.check2  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 NrZ  r)  r  r  r  r   r  	full_liker  r  rG   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   rV  0   r  r  r  r  r  r  r  r  r  )r#  r   r   r  r  r  r  r`  r  r(  r  r-   r=   r   r  r  s   `     @@r   test_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 )NTrI  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  )	r-   r%  r   r  rc  r  r  r  r  s	         r   r(  z:TestNPFunctions.test_argpartition_multi_dim.<locals>.checkT  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  rG   s    r   r  zATestNPFunctions.test_argpartition_multi_dim.<locals>.a_variationsc  r  r!   r   rV  r  r  r  r  r  r  r  r  )r'  r   r   r  r  r  r  r`  r  s   `     @@r   test_argpartition_multi_dimz+TestNPFunctions.test_argpartition_multi_dimP  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          |          }t          j        ddd          t          j        d          fD ]}dD ]}|                     ||||            d S NTrI  r   rV  rB  TFT)TFr  r   r   )r#  r   r   r  rE  rY  r  r  r  rb  r%  s        r   test_partition_boolean_inputsz-TestNPFunctions.test_partition_boolean_inputsv  s    "T"""6**QB''2E)F)FF 	C 	CA, C C++FE1cBBBBC	C 	Cr!   c                     t           } t          d          |          }t          j        ddd          t          j        d          fD ]}dD ]}|                     ||||            d S r  )r'  r   r   r  rE  r[  r  s        r    test_argpartition_boolean_inputsz0TestNPFunctions.test_argpartition_boolean_inputs~  s    "T"""6**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 )NTrI  r   r0  r   r                @)r-  z)ddof must be a real numerical scalar typez)Cannot convert non-finite ddof to integer)r  gffffffzddof must be integral value)r)  r   rO  r   rE  r  r]  r  rM  rK  rN  r  r  rL  r  )r  r  r  r   r-  rQ  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 )NTrI  +=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   r0  r   r  r.  rW  )g&S:?o_?g#~j?甇ZӼ?Q|?rN  TrZ  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  r0  r  ))r  皙@rw  r  )r   rE  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  )r/  r  r  s     r   test_corrcoef_basicz#TestNPFunctions.test_corrcoef_basic  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 )NTrI  r  r  i   rZ  r  r  FT)Nr  r   r   r  T)r   r*  r-  r,  r+  )	r)  r   r   r  r  r  r  rl  r   )r  r  r  r  r   	y_choicesrowvar_choicesbias_choicesddof_choiceproductsr*  r+  r,  r-  r  s                  r   test_cov_explicit_argumentsz+TestNPFunctions.test_cov_explicit_arguments  s    "T"""6**+VUEJ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 )NTrI  r  r  r  rZ  r  r  r  r0  )	r/  r   r   r  r  r  r  rl  r   )
r  r  r  r  r   r  r  r*  r+  r  s
             r    test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_arguments  s    "T"""6**+VUEJ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 )NTrI  r  r  r  )r  r  Q?r*  r  r:  r  r  )r:  r  r  r  r  rV  r  r   r  )r  r  r$  r+  )r   r   r  r   rE  r  r  r  )	r  r  r  r  r  r   r*  r  r+  s	            r   cov_corrcoef_edge_casesz'TestNPFunctions.cov_corrcoef_edge_cases  s   "T"""6**+VUEJ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  TrI  r  r  r  r   )r/  r&  r   r   r  r   r  r  r  r  r  r  r   r  s         r   test_corrcoef_edge_casesz(TestNPFunctions.test_corrcoef_edge_cases-  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 )NTrI  r  r  ))r  }Ô%IT)r+  r  r   )r/  r   r   r  r(  s         r   &test_corrcoef_edge_case_extreme_valuesz6TestNPFunctions.test_corrcoef_edge_case_extreme_values9  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  TrI  r  r  r   r0  r   r.  )r   r-  )r)  r&  r   r   r  r   rE  r  )r  r  r  r  r   r  s         r   test_cov_edge_casesz#TestNPFunctions.test_cov_edge_casesD  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 )NTrI  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   rQ  r  r  s     r   _check_mz5TestNPFunctions.test_cov_exceptions.<locals>._check_mY  s    '')) Va              MM8#f>N:O:OPPPPPs   .22r.  rX  r  )))r  r  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S )NrO  zy has more than 2 dimensionsr  )r   r*  rQ  r  r  s      r   _check_yz5TestNPFunctions.test_cov_exceptions.<locals>._check_yg  s    '')) Va1              MM8#f>N:O:OPPPPPr  r  )r  r  r  )))r  r  r  r  r  rO  z$m and y have incompatible dimensionsr  r   z/2D array containing a single row is unsupported)r)  r   rO  r   r  rE  r]  rL  r  rM  rK  rN  r  RuntimeError)r  r  r1  r   r4  r*  rQ  r  s   `      @r   test_cov_exceptionsz#TestNPFunctions.test_cov_exceptionsQ  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                 z   t           } t          d          |          }t          | j        ||          }d }d } |t	          j        ddd                    D ]^}d|i} ||            ||          D ]A}||d	} ||           ||d
} ||            ||          D ]}	|||	d} ||           B_d S )NTrI  c              3   \   K   d V  | V  |                      t          j                  V  d S r   )r)  r   r  rG   s    r   to_variationsz9TestNPFunctions.test_ediff1d_basic.<locals>.to_variations  s8      JJJGGG((28$$$$$$$r!   c              3      K   | V  |                      ddd          V  |                     t          j                  V  d S )Nr  r0  )r  r)  r   r  rG   s    r   ary_variationsz:TestNPFunctions.test_ediff1d_basic.<locals>.ary_variations  sK      GGG))Aq!$$$$$((28$$$$$$$r!   r  r  r  r3  )r3  r5  )r3  r4  )r3  r5  r4  )r2  r   r   r  r   r  )
r  r  r  r  r9  r;  r3  r  r-   r.   s
             r   test_ediff1d_basicz"TestNPFunctions.test_ediff1d_basic  s*   "T"""6**+VU;;	% 	% 	%
	% 	% 	%
 ">"+b!R"8"899 	# 	#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 )NTrI  )TTFz+Boolean dtype is unsupported (as per NumPy))r2  r   rO  r  r   rE  rK  rN  )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 )NTrI  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 )	NrV  r.  r0  rW  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!   rS  zCannot np.fliplr on %s type)
r   r   r  rL  r   rM  r	   unicode_typerK  rN  r  r  r  r  r-   r   r  rQ  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 )NTrI  r  cannot index arrayzwith 2 indices)
r   r   rO  rL  r   r   r]  rM  rK  rN  rP  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 )NTrI  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   rV  r.  r0  rW  rA  r  r  r  r  r!   r   r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variations  s      #III)B--)B--''1-----)B--''1a00000OOOq6Aq6######r!   rS  zCannot np.flipud on %s type)
r   r   r  rL  r   rM  r	   rB  rK  rN  rC  s           r   test_flipud_basicz!TestNPFunctions.test_flipud_basic  s(   "T"""6**	$ 	$ 	$  	3 	3AvayyH%((C##Hc2222{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3e6HH&*++	- 	- 	- 	- 	-rE  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 )NTrI  r   rG  zwith 1 indices)r   r   rO  rL  r   rM  rK  rN  rP  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 )NTrI  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   rV  r.  r0  rW  r  r  r!   r   r  z5TestNPFunctions.test_flip_basic.<locals>.a_variations  s~      (1++)B--)B--''1-----)B--''1a0000000r!   r  zCannot np.flip on UniTuple)r   r   r  rL  r   rM  rK  rN  rC  s           r   test_flip_basiczTestNPFunctions.test_flip_basic  s   "T"""6**	1 	1 	1  	3 	3AvayyH%((C##Hc2222{++ 	vE)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2C8H4I4IJJJJJrE  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  rT  )r  r  r)        N@      Nr*  )r*  rW  r  r0  r   r   r0  r  r        ?       @      @      @      ?             @                   @r   r  pir   r  r  r!   r   rO  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!   TrI  )r   r   r   r  assert_allcloser  rO  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 )NTrI  rS  r.  +The first argument "start" must be a number+The second argument "stop" must be a number)r   r   rO  rL  r   rM  rK  rN  r  r  rQ  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 rS  r`  r  r!   r   rO  z4TestNPFunctions.test_logspace3_basic.<locals>.inputs5  rb  r!   TrI  r   r   r   r  rc  rd  s         r   test_logspace3_basicz$TestNPFunctions.test_logspace3_basic3  rf  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  rW  )r  r  r  )rT  r  r  r  rT  r   )r  r  r  r)  rW  F   rY  r*  P   )r*  rW  Z   r  rW  r  rZ  r   r0  r  r  r  r   r  r[  r\  rt  r]  r^  rv  r_  rw  r`  r  r!   r   rO  z=TestNPFunctions.test_logspace3_with_num_basic.<locals>.inputsQ  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!   TrI  rn  r  rO  r  r  r   r   r   s          r   test_logspace3_with_num_basicz-TestNPFunctions.test_logspace3_with_num_basicO  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 )	NTrI  rS  r.  rh  ri  r   z+The third argument "num" must be an integer)r   r   rO  rL  r   rM  rK  rN  rj  s      r   test_logspace3_exceptionz(TestNPFunctions.test_logspace3_exceptionl  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 )NrU  rV  rX  )r   r  )r  r   )r      )r  r  r  r*  r:               @@r8  r7  r   r0  r  r[  r\  r]  r^  r_  r   r  r  r!   r   rO  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!   TrI  g-q=r  )r   r   r  rd  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 )	NTrI  rS  r.  %The argument "start" must be a number$The argument "stop" must be a numberr   &Geometric sequence cannot include zero)	r   r   rO  rL  r   rM  rK  rN  r  rj  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 )#Nrr  rs  ru  )r   r  r  )r   r  r  )r  r   r  )r   r~  r  )r  r  r  r  r  rV  rW  r*  r  r:  r  r  r8  r7  r.  r   r0  r  r  r   r  r[  r\  rt  r]  r^  rv  r_  rw  r  r  r!   r   rO  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs  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!   TrI  r  r  )r   r   r  rx  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 )NTrI  rS  r.  rV  r  r  z%The argument "num" must be an integerr   r  )	r   r   rO  rL  r   rM  rK  rN  r  rj  s      r   test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exception  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 )4NTrI  r   r  r   r  r   r  r  r  r  r0  r  c                     g | ]}|d k    	S r  r  r8  s     r   r5  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>      000Aa000r!   ic                     g | ]}|d k    	S r  r  r8  s     r   r5  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>
  r  r!   c                     g | ]}|d k    	S r  r  r8  s     r   r5  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r  r!   r  gL4@r   ignore)invalidr  r  g      r  r:  y              0@r.  r  r  c                     g | ]}|d k    	S r  r  r8  s     r   r5  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>'  r  r!   y             y            @tvIh%<=c                     g | ]}|d k    	S r  r  r8  s     r   r5  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>+  r  r!   r   y     @@     @@y            ?y     @     @@rZ  r8  r7  r  y              gV瞯<y      @        y              y             y      @      @r/  )r   r   r   r  rD  r  r  imagr   errstater  r  realr   )r  cfunc2cfunc3pfunc3r*  r   r   s          r   test_geomspace_numpyz$TestNPFunctions.test_geomspace_numpy  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 )NTrI  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 NrV  r.  r0  rW  r  r  r  r!   r   r  z6TestNPFunctions.test_rot90_basic.<locals>.a_variationsP        )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  r-   r   r  s          r   test_rot90_basicz TestNPFunctions.test_rot90_basicL  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 )NTrI  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!   r/  rX  )r   r   r`  r  )r  r  r  r  r-   r   r   r  s           r   test_rot90_with_k_basicz'TestNPFunctions.test_rot90_with_k_basicZ  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 )NTrI  rS  z'The first argument "m" must be an arrayr  r0  r  z*The second argument "k" must be an integerr  zInput must be >= 2-d.)r   r   rO  rL  r   rM  rK  rN  r   r]  r  rP  s       r   test_rot90_exceptionz$TestNPFunctions.test_rot90_exceptioni  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 )NTrI  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  r0  r   )r   r  H   r  r  r   )r0  r   r.  r  r  r  r  r?  r   rV  r   r  )r   r]  r  r_  r  rE  r  r  rG   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  rk   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 )NTrI  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  r0  r.  )r   r]  r  r_  r  r  r!   r   r  z;TestNPFunctions._check_array_split.<locals>.args_variations  s      )A,,/!!!ry||$$a''''	!%%q(((()B--''A..111111r!   r  r  s           r   _check_array_splitz"TestNPFunctions._check_array_split  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_basic  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 )Nr.  r0  z0array split does not result in an equal divisionr  r  r:   z%np.split: Argument axis out of bounds)r  r   rO  rL  r  r   r   r  rM  rK  rN  )r  rQ  s     r   test_split_basicz TestNPFunctions.test_split_basic  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  r0  r)  rO  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  r0  r        0@r  r  rX  r  rX  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  r0  r  r  r  rX  r  r  r  r  r!   r   inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3D  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!   r0  r   r   r   r  r   r  )r   r   r   r   r`  r  )r  r  r  r  rO  fmindimnamer  r  rd  r-   r   s                r   test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basic  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 )Nr0  r   r   r   r  r   TrI  z#The argument "ary" must be an arrayrS  r  z:The argument "indices_or_sections" must be int or 1d-arrayz only works on arrays of z or more dimensions)r   r   r   r   rO  rL  r   rM  rK  rN  r   rE  r  )r  r  r  r  r  rQ  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 )NTrI  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  r.  )r  r  r  r  F)r  r  g333333@r  )r   r]  r  r  rE  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  rV  r  r  r!   r   shift_variationsz9TestNPFunctions.test_roll_basic.<locals>.shift_variations4  s2    ?00-27R..2B C C Cr!   )r7  r   r  )	r  r  r  r  r  r-   r8  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 )NTrI  )r  r!  rV  zshift must be an integer)r7  r   rO  r  r   r]  rK  rN  )r  r  r  r8  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          dd          D ]}||k    } |||d           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          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 )"NTrI  rV  r  rY  rJ  r  r  r.  r  gffffff&@)r  r  r  r.  r  )r  r  r  rt  r  r  rX  Fr  r*  g333333r   r)  y              ?r0  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  r   r   r  r   r]  r  rx  r`  r  eyeflattenr  r  rl  combinations_with_replacementrE  r  ru  )r  r  r  r  r-   	thresholdr  rc  s           r   test_extract_basicz"TestNPFunctions.test_extract_basicL  s8   "T"""6**+VU;;IbMMr2 	2 	2Iy=DFa001111IbMM!!!Q**4xT!,,----vayy  ""T!,,---   ||T!,,---KB""eRVRtQTJ;L!LL 	J 	JDFa00111F$!7!71!=!=aHHIIII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 )NTrI  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  r-   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)rI  r   rO  r   rE  rL  r  rM  rK  rN  r]  )r  r  r-   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_basicr`  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 )NTrI  r  r*  )r  r   r0  r0  r0  rZ  r  r.  r  rV  r  r  r  r  r  rW  r   r:  r?  r  )r   r   r  r   r]  r  r  r  rx  rE  r  r  rF  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_basicrb  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 )NTrI  r  r  rX  r  rR  r  )r  rX  r  r.  rX  r  r  r  r0  r  rW  r.  r  r  )r  r.  r  r  r   rV  r:  r   r[  )
r   r   r  r   rE  r]  r  r  rx  r  )r  r  r  r  r*  r   s         r   r  z%TestNPFunctions.test_np_trapz_x_basic  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_questionabler`  r  s    r   !test_trapezoid_numpy_questionablez1TestNPFunctions.test_trapezoid_numpy_questionable  s    **,*?????r!   zNumPy behaviour questionablec                      t          d          |          }t          | j        ||          }t          j        g d                              t                    } |d|i           t          j        g d          } |d|i           d S )NTrI  )TFTTr*  )r   r   r  r   rE  r)  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_basicre  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 )NTrI  r  r0  rX  r  )r   r  r.  rX  r  r.  rV  r  r  r  r  r  r  r:  r  r  r  r-  rV  r   r  rW  )r   r   r  r   r  r  r  r]  r  expr7  ra  r  assert_almost_equalrE  )r  r  r  r  r*  rW  r   r  s           r   r  z&TestNPFunctions.test_np_trapz_dx_basic0  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_basicrg  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 )NTrI  r0  r  r  r  r[  r  rX  r  r  r.  r  r  r  )
r   r   r  r   rE  r]  r  r  rx  r  )r  r  r  r  rW  r*  r   s          r   r  z(TestNPFunctions.test_np_trapz_x_dx_basica  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_exceptionsrg  r  s    r   !test_np_trapezoid_x_dx_exceptionsz1TestNPFunctions.test_np_trapezoid_x_dx_exceptionsy  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 )NTrI  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  r.  rX  r  r  r  r  r)  r  r  r  r.  $   r  rO  zy cannot be 0DFzy cannot be a scalar)r   rO  r   r]  r  rE  r  rM  rK  rN  r  )r  r  r  r*  r   rW  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                 h    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}t          j	        d          
                    d          }t          j        ddg          } |||	            ||d|           d S )Nr  r,  e   r(  r   r\  TrI  rS   rV  )placesc                                          t                    5 } | |           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )NrS   z)Weights sum to zero, can't be normalized.)rL  ZeroDivisionErrorrN  r  rK  datarT   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 )NrS   zCNumba does not support average when shapes of a and weights differ.rL  	TypeErrorrN  r  rK  r   s       r   test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weights  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 )Nrl  z)Numba does not support average with axis.r  )r  r;   rT   r  r  r  r  s        r   test_1D_weights_axisz:TestNPFunctions.test_average.<locals>.test_1D_weights_axis  s    ""9-- 7dg66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7+CSXXHJ J J J Js   7;;rX  r  g      ?g      ?r   rl  )r   r  ranfr  ra  r_  rn  r   assertAlmostEqualr]  r  r;  )r  r   r-   rU   w0a_boolw_boola_intw_intd0r  d2a_3dw_3dr  r  r  r
  r  r  s   `                  @r   test_averagezTestNPFunctions.test_average  s    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 y||##G,,J'(( 	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 )NTrI  r?  r  r  r  r   r  r  )r)  r)  r   r   r)  r   )r)  r  g{Gz?gMbP?-C6?r   gư>r  )r\  r  )r   r   )rj  r   r   r   int_r  rE  r;  r  r  r  assertFalser  r  r  )r  r  r  min_intr-   simple_datar.   	py_resultc_resultnoise_levels
zero_arraynoiser   r   s                 r   test_allclosezTestNPFunctions.test_allclose  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 )NTrI  g      Y@g     @@}   r?  r.  r.  r.  r   r   r   r   r  r)  r0  )rj  r   r   rE  r]  r)  rC  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 )NTrI  r%  r?  r&  r   r   r   r)  r  r0  r   )rj  r   r   r]  r)  rC  r  r;  r  r  rE  r  )	r  r  r  r  r   r   r'  r   r*  s	            r   test_ip_not_allclose_numpyz*TestNPFunctions.test_ip_not_allclose_numpyW  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 )NTrI  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   rE  r`  )clsrk   r  s      r   __new__zGTestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Foo.__new__y  s%    x00055c:::r!   N)__name__
__module____qualname__r0  r  r!   r   Foor-  x  s#        ; ; ; ; ;r!   r4  r   )rj  r   r   ndarrayr  r  r,  )r  r  r  r4  r-   s        r   "test_return_class_is_ndarray_numpyz2TestNPFunctions.test_return_class_is_ndarray_numpyr  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 )NTrI  r)  r  )rj  r   r   rE  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 )NTrI  r   r   )rj  r   r   rE  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 )NTrI  r?  )rj  r   r   r   r  r  rE  r  )r  r  r  r  r-   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  )	rO  rj  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 )<NTrI  r  r  r/  r.  r\  r  r  rw  rq  )r  r   r0  r  r  g      r0  r  r  r2  )r@  )r  ?r  r  rV  gffffff?r  g333333"r  r  r  r  r  r  r   r  rW  Fr*  r)  r  r  r  r  r  rZ  )r   r  r   r  )r   r0  gGz@r  )r   r0        @r  r  )	r   rw  r0  rC  r  r  r  r.  g      @r  rC  r  r  r   r0  r  r  r.  rX  )g~@g<ԛ@g3@i!N  rO  )r  r  r   )r   )rp  r   r   r  r   r  r]  r  rx  r  r  rE  r  r`  r   r  r  r  sinuniformra  cosrc  	ones_like)r  r  r  r  r   rr  rs  factorr*  x0r   exactr  s                r   test_interp_basicz!TestNPFunctions.test_interp_basic  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)r[  r   putr  ra  r`  r  r  )r  r-   r  s      r   _make_some_values_non_finitez,TestNPFunctions._make_some_values_non_finitef  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 )NrO        @r   r.  r  g333333@r0  g      @r  ru  g@g333333@gq=
ףp?g @gQ?r  r,  )r[  scale      @g      4@g      I@g      i@r}  g333333?r  rB  )r   r  rE  r]  ra  r  normalr_  )r  ndatas     r   r  zTestNPFunctions.arraysl  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 )
NTrI  i N  r   rV  r   rO  r  r  )
rp  r   r   r  rE  r  r  r  rx  rP  )
r  r  r  rV  rr  rs  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 )NTrI  i  r   rV  r   rO     r:  r  )rp  r   r   r  rE  r  ra  r  r  rx  rG  r  r  rc  )r  r  r  rV  rr  r  r  rs  r   r   r  s              r    test_interp_complex_stress_testsz0TestNPFunctions.test_interp_complex_stress_tests  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 )NTrI  r  zarray of sample points is emptyr   r0  z#fp and xp are not of the same size.rX  r  zxp must be 1Dzfp must be 1Dr   z:Cannot cast array data from complex dtype to float64 dtyper:  )rp  r   rO  r   rE  rL  r  rM  rK  rN  r]  r  r  r)  r  )	r  r  r  r   rr  rs  r  r  complex_dtype_msgs	            r   test_interp_exceptionsz&TestNPFunctions.test_interp_exceptions  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 )NTrI  )r   r   r  rV  r  ?r	  ru  rq  r   r  )r   r  r`  r   )rp  r   r   r  r   rE  r  )r  r  r  r  rr  rs  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 )NTrI  r   rV  r?  r  r   r  r.  r  r  r  )rp  r   r`  r   r]  r
  r  rE  rU  r  r  r  r  rC  r  rE  ra  )r  r  r  r[  rr  ypincptsdecptsincresdecresinctgtdectgtr   r*  rJ  rs  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 )NTrI  r   r   r.  r:  r  )rp  r   r   r  r  r  )r  r  r  r   r*  rJ  y0s          r   &test_interp_supplemental_complex_testsz6TestNPFunctions.test_interp_supplemental_complex_testsg  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 )NTrI  r  rV  r?  r0  )rp  r   r   r  rC  r  r  rl  r  r]  r)  r  r  )r  r  r  dtypescomboxp_dtypefp_dtypex_dtyperr  rs  r   r   r  s                r   -test_interp_float_precision_handled_per_numpyz=TestNPFunctions.test_interp_float_precision_handled_per_numpys  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  rx  usry  psfsas){   irw  z<datetime64[%s]r?  z<timedelta64[%s])r   r  r  rE  )units    r   r>   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!   TrI  )r   r   r  r   r5  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<   )r>   r-   rd  s      r   	make_listzITestNPFunctions.test_asarray.<locals>.input_variations.<locals>.make_list  s0    FF    AHHQKKKKr!   )r)  rO  r  r%  r  N)r   rE  r]  r  r  )r  s    r   r  z6TestNPFunctions.test_asarray.<locals>.input_variations  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 )Nr-   r@  r  )r  r   r  rc  r@  )jittedexpect_samer  returnedr  s       r   check_pass_throughz8TestNPFunctions.test_asarray.<locals>.check_pass_through  s    v''''H CF3K 788888s ;<<<
**8VC[AAA&/ ABBBBBr!   TrI  r-   kwsr@  rV  r?  F)
r;  rB  r   r   r  r1  r   rF  r]  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!   TrI  )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 )NTrI  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)rL  r   rM  rK  rN  )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 )Nr-   r   )r
   r   r<   )r  rb  s     r   make_nested_list_with_dictz`TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list_with_dict   s1    AAAaDHHQKKKHr!   c                  V    t                      } dD ]}|                     |           | S )N)r-   bcdefr  )r  rd  s     r   make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list'  s0    A'  Hr!   )rO  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  r0  r  r?  )r   rE  r  r*  r  rF  r  r!   r   rO  z-TestNPFunctions.test_asfarray.<locals>.inputs4  s      (999%%t++++(Aq6444bj@@@@(Aq611127::::(Aq61112<????(Aq61112=@@@@@@r!   TrI  r?  r  )
rE  r   r  r  r   r  r@  inexactrG  rE  )r  rO  r  r  r=   r  r   r  s           r   test_asfarrayzTestNPFunctions.test_asfarray2  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 ]U\   fd}t          j        d          t          j        d          t          j        ddgddgg          t          j        g           t          j        g g g          g}t          j        t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        g}d t          j        ||          D             }ddd	d
g ddg}	t          j        ||	          D ]C}
 ||
d            ||
d            ||
d            ||
d            ||
d           Dt          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                     Wd S )Nc                 \                          | |           | |                     d S r   rG  )r-   rw  nbfuncr  r  s     r   r(  z*TestNPFunctions.test_repeat.<locals>.check^  s7    ''q'(:(:FF1g<N<NOOOOOr!   r   r  r   r0  r  c              3   H   K   | ]\  }}t          j        ||           V  dS )r?  Nr  )r4  r-   ts      r   	<genexpr>z.TestNPFunctions.test_repeat.<locals>.<genexpr>u  sM       #J #J31Q28AA#6#6#6 #J #J #J #J #J #Jr!   r)  Tr:  r  )rw  r  r?  rV  )rx  r   rz  r   r  r]  rE  uint32r  uint64r  r  rC  r  rF  rl  r   r  )r  r  r  array_pyfuncarray_nbfuncr(  target_numpy_valuestarget_numpy_typestarget_numpy_inputstarget_non_numpy_inputsrd  onetwor  r  s   `            @@r   test_repeatzTestNPFunctions.test_repeatR  s    	OO	 $L)) )95 ,l;= :	8 :	8NFFP P P P P P P
 

	$1a&1a&)**"b""# 		

	"#J #J#,#45H5G$I $I#J #J #J
 		'# _%8%<> > & &a####a####a####a####a%%%%% )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7u:	8 :	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 dtyper0  r  z(operands could not be broadcast togetherr.  r  )Tr-   r\  )rx  r   rz  rO  rL  r  r   r  rM  rK  rN  r   rE  )	r  r  r  r  r  r  r  r  reps	            r   test_repeat_exceptionz%TestNPFunctions.test_repeat_exception  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   r0  r   r  r  r.  r  y      @       @rV  )r.  r0  )r  r   r   rE  r  r  r]  r  r<   r  r  )
r  r  r  
test_casesr   r  r  r|  np_pyfunc_defaultsnp_nbfunc_defaultss
             r   test_selectzTestNPFunctions.test_select  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 )NrV  Tr  r   r  r  r  r   z/condlist arrays must be of at least dimension 1Fr0  zHcondlist and choicelist elements must have the same number of dimensionsr.  r  z"condlist must be a List or a Tuplezdefault must be a scalarz%condlist arrays must contain booleansr  r  rX  z7list of cases must be same length as list of conditionsrw  r  z items of condlist must be arraysr  z"items of choicelist must be arrays)r   r  r   r]  rO  rE  r  r   r  r  r)  r  r  rL  rM  rK  rN  )	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   r.  r  r
  )r  r-   r  r:  r  M must be an integer)r   r  rL  r   rM  rK  rN  )r  r  r  r   r   r  rQ  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  rT  g      ,@)ppc64leaarch64r
  r0  r  r  r)  r  )r-   r:  r.  z beta must be an integer or float)r  r  r  r  r  r   r   platformmachiner  rL  r   rM  rK  rN  )	r  r  r  r  r   r  r   r  rQ  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 )NTrI  r  r  rN  r!  r?  )r  r  r   r0  r  rX  r  r  )	r  r   r   rE  r  rC  r]  r  r  r  r  r  pairsr   r*  r   r  s           r   
test_crosszTestNPFunctions.test_crossj  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 )NTrI  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  r0  r  rX  r  r  )r  r0  zDimensions for both inputs is 2r  r  Inputs must be array-like.)r  r   rO  rL  r  r   r]  rM  rK  rN  rE  r  r   setrP  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   r0  r  r.  r  r?  )r!  rN  r  rX  r  )
r  r   r  r   rE  r  rC  r]  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 productrX  r  r  r   r0  r  r.  r  )r   r  rO  rL  r  r   rE  rM  rK  rN  r]  r  r   r  rj  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 )	Nr.  r   r  r  r  r)  rO  )0Helloworld)r   rE  r  r  r  r!   r   r  z/TestNPFunctions.test_trim_zeros.<locals>.arrays3  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          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   r0  r   r   FBr  Br  r  r  r.   )r   r   r   r0  r.  r  )r   r   r0  r   abf)r   r  r   rb  ) r\  r]  )r   rE  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(<<<((%////(999%%s****(+++,,c111111r!   TrI  )r  r   r  )	r  r  r  r  r  r=   r   r  r  s	            r   test_trim_zeroszTestNPFunctions.test_trim_zeros1  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   r0  r  r  r   r0  r  r.   )r  r  r?  r  r   r  )r   l            r   )r   l            r   )r   l            r   r   )Nr   N)r   rE  r)  rU  rk  s_r  r  
zeros_liker@  rD  r  r^  r  r  )r  r-   r.   r  r>   slcr=   res_arrres1res2s              r   test_trim_zeros_numpyz%TestNPFunctions.test_trim_zeros_numpyR  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 )NTrI  r  r  zarray must be 1Dr  z#The first argument must be an array>   r   r   r0  r  r   z$The second argument must be a string)
rO  r   r  rL  r   r   rE  rM  rK  rN  rj  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 )NTrI  r  rA  )r0  r.  rX  r   rW  r0  r.  )r   rW     rV  )FTr  )r  r   r   rE  r]  r  r  )r  r  r  r  r-   r.   r   r  s           r   test_union1dzTestNPFunctions.test_union1d  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 )NTrI  r  r   r0  z.The arguments to np.union1d must be array-likeWorldr  r  r-   r.   z/For Unicode arrays, arrays must have same dtyper  rb  r  barr  rC  )
r   r  rO  rL  r   r   rE  rM  rK  rN  rj  s      r   test_union1d_exceptionsz'TestNPFunctions.test_union1d_exceptions  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 )NTrI  r  r  r   r0  r  r  )r!  r  r?  r  rX  )
r  r   rO  r   rE  r  r  r]  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 )NTrI  r0  z7The argument to np.asarray_chkfinite must be array-liker  r.  z#array must not contain infs or NaNsr   r  r  z!dtype must be a valid Numpy dtype)r   r  rO  rL  r   rM  rK  rN  r  r   rE  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   r0  r   r.  r   r  r	  )r  r     rV  )step   rA  )r   rE  ra  r  r]  r  )phases    r   inputs1z2TestNPFunctions.test_unwrap_basic.<locals>.inputs1W  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         r'  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  r  r'  )r   r   r0  r  r   r  )r0  r  r  r.  r0  r  r  r.  r  r  wrap_unevens   r   inputs13z3TestNPFunctions.test_unwrap_basic.<locals>.inputs13g  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 )Nr     r  r  s   r   	inputs123z4TestNPFunctions.test_unwrap_basic.<locals>.inputs123w  s       sC''''''r!   r  )	r  r   r  r  r  r  r   rE  mod)r  r  r  r{  cfunc1pyfunc13cfunc13	pyfunc123cfunc123r  r  
uneven_seqr  r  r   r  r  s                   @r   test_unwrap_basicz!TestNPFunctions.test_unwrap_basicF  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 )NrS  z#The argument "p" must be array-liker   r0  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  rO  rL  r   rM  rK  rN  r   rE  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 )NTrI  c               3      K   t          j        d          V  t          j        d                              dd          V  t          j        d                              ddd          V  d S )NrV  r0  r.  r  r  r  r  r  r!   r   r  z9TestNPFunctions.test_swapaxes_basic.<locals>.a_variations  sj      )B--)B--''1-----)B--''1a0000000r!   )r  r   r`  ndimr  )	r  r  r  r  r-   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 )NTrI  rS  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  r0  r  z)np.swapaxes: Argument axis2 out of bounds)r  r   rO  rL  r   rM  rK  rN  r   r]  r  r  rP  s       r   test_swapaxes_exceptionz'TestNPFunctions.test_swapaxes_exception  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  r0  c                 0    t          j        | |d           S r9   r   take_along_axis)r-   rd  s     r   	axis_nonez7TestNPFunctions.test_take_along_axis.<locals>.axis_none  s    %a6666r!   r   r0  r?  c                 ,     t            fd            }|S )Nc                 0    t          j        | |          S r   r3  r-   rd  r;   s     r   implz?TestNPFunctions.test_take_along_axis.<locals>.gen.<locals>.impl      )!Q555r!   r   r;   r9  s   ` r   genz1TestNPFunctions.test_take_along_axis.<locals>.gen  +    6 6 6 6 T6Kr!   r  r:   )r   r]  r  r   rE  r  r  r  r`  r-  rg  )r  r-   r5  r   r=  rd  jfuncais           r   test_take_along_axisz$TestNPFunctions.test_take_along_axis  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   r0  r.  r?  c                 ,     t            fd            }|S )Nc                 0    t          j        | |          S r   r3  r8  s     r   r9  zLTestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen.<locals>.impl  r:  r!   r;  r<  s   ` r   r=  z>TestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen  r>  r!   )r   r  )r  r0  r.  )r   r  intpr  r  r  r  )r  r=   r@  r=  rd  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  r0  r  r   r   r?  r  c                 ,     t            fd            }|S )Nc                 0    t          j        | |          S r   r3  r8  s     r   r9  zJTestNPFunctions.test_take_along_axis_exceptions.<locals>.gen.<locals>.impl  r:  r!   r;  r<  s   ` r   r=  z<TestNPFunctions.test_take_along_axis_exceptions.<locals>.gen  r>  r!   r-   zaxis must be an integerr  zaxis is out of boundsr  z"arr" must be an arrayr.  z"indices" must be an arrayr  r)  z#indices array must contain integersc                 .    t          j        | ||          S r   r3  r8  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   r]  r  rE  r  r  rL  r   rM  rK  rN  r   r  rO  )r  arr2dindices_noner   r=  rQ  rL  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}t          }t          t                    }t          ||          D ]5\  }} |||          } |||          }| 
                    ||           6d S )Nr   r  r   r?  )r  r)  皙?r  )rQ  r  r  r  rQ  r  r  r  rV  )r  )r   r  rk  r  rE  r  r  r  r   r   r  )	r  r>   rf  r  r  valuer  r   r  s	            r   test_nan_to_numzTestNPFunctions.test_nan_to_numA  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  !&$// 	3 	3JE3ve---H%3'''C##Hc2222	3 	3r!   c                    t          t                    }t          j        ddt          j        g          }d} ||d|           |                     |d         |           t          j        ddt          t          j        t          j                  g          } ||d|           |                     |d         d           d S )Nr  rQ  r)  Fr  r  r   )r   r  r   rE  r  r  rk  )r  r  r   r   	x_complexs        r   test_nan_to_num_copy_falsez*TestNPFunctions.test_nan_to_num_copy_false`  s    Z  Hc3'((ae****"x000Hc3(?(?@AA	ie2222	"x88888r!   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  rM  rK  rN  rj  s      r    test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argumentm  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   r0  r  r  r  r  r  r  r  r!   r   rO  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs{  s      (Aa5//1$$$$(QqE1Q%=))2----)A,,&&w//2222a&!)OOO(2,,/!!!!!r!   )r  r   r  r  )r  r{  r"  r|  r  rO  r^   r   s           r   test_diagflat_basicz#TestNPFunctions.test_diagflat_basicu  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 )NrS  #The argument "v" must be array-like)r  r   rO  rL  r   rM  rK  rN  rP  s       r   test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exception  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 )NrS  r0  r^  r   z#The argument "k" must be an integerr  )r  r   rO  rL  r   rM  rK  rN  rP  s       r   test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exception  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   r0  r  r0  r0  r  r  r0  r  r  r   r  r  r  )rX  r.  r  )r   r  r0  r  rD  r  r  r!   r   _setxor_arrayszTestNPFunctions._setxor_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"""" 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   re  r  r(  r-   r.   r  r  s   `   @@r   test_setxor1d_2zTestNPFunctions.test_setxor1d_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 rh  ri  rk  rl  r6   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!   Trw  )r  r   re  rD  r   r  rn  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   rE  rO  rL  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   r0  r  rc  r  rd  r  )rX  r.  r  r  r   r0  r  r  )r0  r  r  r  r0  r   r.  r  r  r  )r  r.  r0  )r
   r  r	   rC  r   rE  r]  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 rh  ri  rj  s       r   r(  z/TestNPFunctions.test_setdiff1d_2.<locals>.check  rm  r!   )r  r   rx  rn  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 rh  ri  rr  s        r   r(  z/TestNPFunctions.test_setdiff1d_3.<locals>.check  rs  r!   Trw  )r  r   rx  rD  r   r  rn  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   rE  rO  rL  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   r0  r  rc  r  rd  r  rW  r.  r  )r
   r  r	   rC  r   r]  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 rh  ri  rj  s       r   r(  z*TestNPFunctions.test_in1d_2.<locals>.checkD  rm  r!   )r  r   r  rn  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 rh  ri  rr  s        r   r(  z+TestNPFunctions.test_in1d_3a.<locals>.checkT  rs  r!   Tr  rw  )r  r   r  rD  r   r  rn  s   `   @@r   test_in1d_3azTestNPFunctions.test_in1d_3aP  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 rh  ri  rk  rl  r  r   r  r  r  r  s        r   r(  z+TestNPFunctions.test_in1d_3b.<locals>.checkf  s    #t$$  3ii#t$$  3ii yc622H)Cf--C##Hc7Nc7N7N7N7N#OOOOOr!   r  Trw  )r  r   r  rn  s   `   @@r   test_in1d_3bzTestNPFunctions.test_in1d_3bb      	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 rh  ri  	rk  rl  r6   r  r   r  r  r  r  s	         r   r(  z*TestNPFunctions.test_in1d_4.<locals>.checkw  s    #t$$  3ii#t$$  3ii yc=&AAH)CmV<<C##Hc7Nc7N7N7N7N#OOOOOr!   r  Tr6   r  FF)r  r   r  rD  r   r  rn  s   `   @@r   test_in1d_4zTestNPFunctions.test_in1d_4s  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   r0  Fr  Tc                 0    t          j        | ||          S Nkindr  r-   r.   r  s      r   np_in1d_kindz6TestNPFunctions.test_in1d_errors.<locals>.np_in1d_kind      71ad++++r!   r  table)r  r   r   rE  r  rO  rL  r   )r  r  r  r-   r.   r   r  s          r   test_in1d_errorsz TestNPFunctions.test_in1d_errors  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               #   >  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   r?  )r   r   r  r   r0  r  rc  r  rW  r.  r  r  )r.  r  rV  rZ  r  rA  )rV  rW  r  r4  )r     r  rX  r  )TFF)r   rV  r  r  )r  r  r   r0  )r  r  r   r  )r.  r  r.  r  r  r  r  r  r  r.  r0  r   r.  r.  )r.  r.  r  )r.  r  r   r   r0  )r0  r  r  r  r   r.  TFr  )r   r   r   r   )ir      )r  r   r  
AllInteger)r   r   r   r   )r
   r  r	   rC  r   r  r  r]  r  r  rE  r,  r*  r  rb  uint16r  signedinteger	typecodes)r-   r.   r@  arempty_arraymultdtype1dtype2is_dtype2_signedrk  rl  s              r   _isin_arrayszTestNPFunctions._isin_arrays  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 rh  ri  rj  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  rn  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 rh  ri  rr  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  rw  )r  r   r  rD  r  r   r  r  r(  r-   r.   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 rh  ri  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  Trw  )r  r   r  rn  s   `   @@r   test_isin_3bzTestNPFunctions.test_isin_3b$  r  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 rh  ri  r  s	         r   r(  z*TestNPFunctions.test_isin_4.<locals>.check9  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  rD  r  r   r  r  s   `     @@r   test_isin_4zTestNPFunctions.test_isin_45  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   r0  Fr  Tc                 0    t          j        | ||          S r  r  r  s      r   np_isin_kindz6TestNPFunctions.test_isin_errors.<locals>.np_isin_kinde  r  r!   r  r  )r  r   r   rE  r  rO  rL  r   )r  r  r  r-   r.   r   r  s          r   test_isin_errorsz TestNPFunctions.test_isin_errorsR  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)r.  r  r   r0  r  )r  r  r0  r  r  r   r.  )r   r  r3   r  r  r   rE  r  )r  nb_setxor1dnb_intersect1d
nb_union1dnb_setdiff1dr-   r.   c1aux1aux2c2s              r   test_setops_manywaysz$TestNPFunctions.test_setops_manywaysn  s    =))m,,*%%
N++H___%%H***++[A~a##z!Q\$%%B'''''r!   )NNFNr   rv  )r1  r2  r3  __doc__r  r"  rG  rR  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/  r2  r9  r;  r@  rD  rW  rg  rn  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  staticmethodr  r  r  r  r#  r&  r)  r-  r/  r2  r7  r9  r<  r?  rC  rF  rH  rJ  rL  rQ  rU  rY  r[  re  rh  rs  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r   r"  r&  r)  r,  r.  r6  r<  r>  rD  rH  rK  rM  rP  re  rk  ro  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr   r  rP  r  r  rS  r  r  skipr  r  rY  r  r  r\  r  r  r  r  r#  r(  r*  r6  r8  r:  r<  r>  rL  rP  r  rX  skipIfr   r[  r^  ra  rj  rm  rt  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r*  r.  r0  rA  rG  rO  rS  rV  rY  r\  r_  ra  re  ro  rt  rv  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __classcell__)r  s   @r   r  r    s        - - - - - EIKO+C +C +C +CZ7) 7) 7)r	" 	" 	"68 68 68p%! %! %!N, , , 	" 	" 	"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- - -&U U Un@ @ @D&8 &8 &8P'> '> '>R  4<# <# <#|: : : ! ! !F6 6 6B1 1 1C C C*< < <0 0 0; ; ;@ @ @ @
3! 3! 3!j! ! !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0H H H0  *  *, , ,(, , ,(          > > >> > >  &  &cA cA cAJeD eD eDN	= 	= 	=	@ 	@ 	@ 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# # #<' ' '- - -*? ? ?- - -.? ? ?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+ + +@. @. @.D& & &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S6 S6 S6j>: >: >:@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>C8 C8 C8J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 3B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 3>9 9 9- - -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d Zd ZdS )TestNPMachineParametersz0
def foo():
    ty = np.%s
    return np.%s(ty)
c                     |} t          d          |          } || } || }|D ]4}|                     t          ||          t          ||                     5d S r-  )r   r  getattr)	r  r  attrsrk   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  )r1  templater  compileglobals)r  basefunctytystrbasestrfuncstrdcts          r   create_harcoded_variantz/TestNPMachineParameters.create_harcoded_variant  sU     #-5'"22WWj&11799cBBB5z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$  epsnegiexpmachepr>  maxexpnegepnexpnmant	precision
resolutiontinybitsr   TrI  rR  z(Unknown attribute 'machar' of type finfor  )r   r  rC  r  rF  r(  r   r  rL  r   r   r   rM  rK  rN  r  r  )r  r	   r  r  hc_funcrQ  r  r  s           r   
test_finfoz"TestNPMachineParameters.test_finfo  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  r>  r  r   TrI  r  )r   r*  r  r  r  rb  r  r  r  r(  r   r  r  r   rC  )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N)r1  r2  r3  r  r(  r  r  r  r  r!   r   r  r    sW        H
8 
8 
8    *! ! ! ! !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)r1  r2  r3  r  r  r!   r   r  r    s(        J J J J Jr!   r  __main__rw  )Nr   r   )r   r   F)r   r  r  )r   )r   )r   N)NF)NTFN)NT)NN)r  )Nr  r  )Tr  r  )rl  r6  r  	functoolsr   r   textwrapr   numpyr   r  r   r   r   
numba.corer	   numba.typedr
   r   numba.np.numpy_supportr   numba.core.errorsr   numba.core.configr   numba.core.utilsr   numba.np.extensionsr   numba.tests.supportr   r   r   r   r   r   r   r  r   r%   r)   r+   r3   r7   r<   r@   rB   rH   rK   rP   rV   rY   r\   rd   rg   ri   rm   rp   rr   ru   rx   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r#  r'  r)  r/  r2  r7  r;  rB  rC  rE  rG  rI  rP  rS  rY  r\  r`  rb  re  rg  rj  rn  rp  rx  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1  mainr  r!   r   <module>r
     s
                               # # # # # # # # # #       " " " " " " " " 0 0 0 0 0 0 ) ) ) ) ) ) ' ' ' ' ' ' ( ( ( ( ( ( ' ' ' ' ' '1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1                 / / / /- - -, , ,        % % %( ( ( (! ! !. . ./ / /                      3 3 3 3      " " "      $ $ $- - - -% % %. . . .     1 1 1 1+ + + +$ $ $$ $ $$ $ $) ) ) )( ( ( (                  ! ! ! !# # # #$ $ $ $% % %( ( ( (       ! ! ! !# # # #$ $ $ $% % %( ( ( (' ' ' '     # # #, , , ,% % % %- - - -    & & & j ' ' ' '  & & &            " " "" " "4 4 4 45 5 5 5     ! ! !) ) )< < < <+ + +            " " " "        * * * *6 6 6 6  ' ' '8 8 8  " " "0 0 0 0" " "       , , , ,  - - - -  6 6 6 6( ( ( (0 0 0 0  6 6 6 6( ( ( (0 0 0 0]a( ]a( ]a( ]a( ]a(ox ]a( ]a( ]a(@CA! A! A! A! A!h A! A! A!HJ J J J J( J J J( zHMOOOOO r!   