
    xKg.                    `   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Zd dlmZ d dl	Z
d dlmZmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZ d dlmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3ddZ4d Z5d Z6d Z7d Z8d Z9d  Z:d! Z;d" Z<d# Z=d$ Z>d% Z?dd&Z@dd'ZAdd(ZBd) ZCd* ZDd+ ZEd, ZFd- ZGd. ZHd/ ZId0 ZJdd1ZKd2 ZLdd3ZMd4 ZNdd5ZOdd6ZPdd7ZQd8 ZRd9 ZSd: ZTdd;ZUdd<ZVd= ZWdd>ZXdd?ZYdd@ZZdA Z[ddBZ\dC Z]ddDZ^ddEZ_ddFZ`dG ZaddHZbdI ZcddJZddK ZeddLZfddMZgddNZhdO ZiddPZjddQZkdR ZldS ZmddTZnddUZoddVZpdW ZqdX ZrdY Zse
j                  fdZZud[ Zvd\ Zwd] Zxd^ Zyd_ Zzd` Z{ddaZ|ddbZ}dc Z~dd Zde ZddfZdg Zdh Zdi Zdj Zdk Zdl Zdm ZddnZdo Zdp Zdq Zdr ZddsZddtZdu Zdv Zdw Zdx Zdy ZddzZd{ Zd| Zdd}Z G d~ de!e       Z G d de       Z G d de       Zedk(  r e'j:                          yy)    N)partial)product)dedent)jitnjittypeof)types)ListDict)numpy_version)TypingErrorNumbaDeprecationWarning)	IS_32BITS)pysignaturecross2d)TestCaseMemoryLeakMixin
needs_blasrun_in_subprocessskip_if_numpy_2
IS_NUMPY_2IS_OSX_ARM64c                 ,    t        j                  |       S N)npsincxs    a/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_np_functions.pyr   r          771:    c                 ,    t        j                  |       S r   r   angler   s    r    angle1r&           88A;r"   c                 .    t        j                  | |      S r   r$   )r   degs     r    angle2r*   $   s    88Asr"   c                 .    t        j                  | |      S r   )r   array_equalabs     r    r,   r,   (       >>!Qr"   c                 .    t        j                  | |      S r   )r   intersect1dr-   s     r    r2   r2   ,   r0   r"   c                 2    t        j                  | ||      S Naxis)r   append)arrvaluesr6   s      r    r7   r7   0   s    99S&t,,r"   c                 0    t        j                  | |      S r4   )r   count_nonzero)r8   r6   s     r    r;   r;   4   s    Cd++r"   c                 .    t        j                  | |      S r   )r   delete)r8   objs     r    r=   r=   8   s    99S#r"   c                 ,    t        j                  |       S r   r   diffr.   s    r    diff1rC   <   r!   r"   c                 .    t        j                  | |      S r   r@   )r.   ns     r    diff2rF   @       771a=r"   c                 ,    t        j                  |       S r   r   bincountrB   s    r    	bincount1rK   D       ;;q>r"   c                 0    t        j                  | |      S )NweightsrI   )r.   ws     r    	bincount2rQ   H   s    ;;q!$$r"   c                 0    t        j                  | ||      S r   rI   )r.   rP   	minlengths      r    	bincount3rT   L   s    ;;q!Y''r"   c                 .    t        j                  | |      S r   r   searchsortedr.   vs     r    rW   rW   P       ??1a  r"   c                 2    t        j                  | |d      S )NleftsiderV   rX   s     r    searchsorted_leftr_   T   s    ??1af--r"   c                 2    t        j                  | |d      S )Nrightr]   rV   rX   s     r    searchsorted_rightrb   X   s    ??1ag..r"   c                  &    t        j                  |  S r   )r   digitizeargss    r    rd   rd   \   s    ;;r"   c                  &    t        j                  |  S r   )r   	histogramre   s    r    rh   rh   `   s    <<r"   c                  *    t        j                         S r   )r   MachArre   s    r    macharrk   d   s    99;r"   c                 ,    t        j                  |       S r   )r   	iscomplexr   s    r    rm   rm   h       <<?r"   c                 ,    t        j                  |       S r   )r   iscomplexobjr   s    r    rp   rp   l       ??1r"   c                 ,    t        j                  |       S r   )r   isscalarr   s    r    rs   rs   p   rL   r"   c                 ,    t        j                  |       S r   )r   isrealr   s    r    ru   ru   t       99Q<r"   c                 ,    t        j                  |       S r   )r   	isrealobjr   s    r    rx   rx   x   rn   r"   c                 .    t        j                  | |      S r   )r   isneginfr   outs     r    rz   rz   |       ;;q#r"   c                 .    t        j                  | |      S r   )r   isposinfr{   s     r    r   r      r}   r"   c                 4    t        j                  | ||||      S r   )r   iscloser.   r/   rtolatol	equal_nans        r    r   r      s    ::aD$	22r"   c                 ,    t        j                  |       S r   )r   isnatr   s    r    r   r      r'   r"   c                  &    t        j                  |  S r   )r   iinfore   s    r    r   r          88T?r"   c                  &    t        j                  |  S r   )r   finfore   s    r    r   r      r   r"   c                  :    t        j                  |  j                  S r   )r   r   rk   re   s    r    finfo_macharr      s    88T?!!!r"   c                 ,    t        j                  |       S r   r   fliplrrB   s    r    r   r      rv   r"   c                 ,    t        j                  |       S r   r   flipudrB   s    r    r   r      rv   r"   c                 ,    t        j                  |       S r   )r   fliprB   s    r    r   r      r!   r"   c                 .    t        j                  | |      S r   r   logspacestartstops     r    	logspace2r      s    ;;ud##r"   c                 2    t        j                  | ||      S Nnumr   r   r   r   s      r    	logspace3r      s    ;;ud,,r"   c                 .    t        j                  | |      S r   r   	geomspacer   s     r    
geomspace2r      s    <<t$$r"   c                 2    t        j                  | ||      S r   r   r   s      r    
geomspace3r      s    <<t--r"   c                 ,    t        j                  |       S r   r   rot90rB   s    r    r   r      r'   r"   c                 .    t        j                  | |      S r   r   )r.   ks     r    rot90_kr          88Aq>r"   c                 2    t        j                  | ||      S r4   )r   array_splitr.   indicesr6   s      r    r   r      s    >>!W400r"   c                 2    t        j                  | ||      S r4   )r   splitr   s      r    r   r      s    88AwT**r"   c                 .    t        j                  | |      S r   )r   vsplitr.   
ind_or_secs     r    r   r          99Q
##r"   c                 .    t        j                  | |      S r   )r   hsplitr   s     r    r   r      r   r"   c                 .    t        j                  | |      S r   )r   dsplitr   s     r    r   r      r   r"   c                 2    t        j                  | ||      S Nmode)r   	correlater.   rY   r   s      r    r   r      s    <<14((r"   c                 2    t        j                  | ||      S r   )r   convolver   s      r    r   r      s    ;;q!$''r"   c                 ,    t        j                  |       S r   r   triNs    r    tri_nr      s    66!9r"   c                 .    t        j                  | |      S r   r   r   Ms     r    tri_n_mr          66!Q<r"   c                 .    t        j                  | |      S r   r   r   r   s     r    tri_n_kr      r   r"   c                 0    t        j                  | ||      S r   r   r   r   r   s      r    	tri_n_m_kr      s    66!Q?r"   c                 ,    t        j                  |       S r   r   trilms    r    tril_mr      r!   r"   c                 .    t        j                  | |      S r   r   r   r   s     r    tril_m_kr      rG   r"   c                 ,    t        j                  |       S r   r   tril_indicesrE   s    r    tril_indices_nr      rq   r"   c                 .    t        j                  | |      S r   r   rE   r   s     r    tril_indices_n_kr      rZ   r"   c                 0    t        j                  | |      S Nr   r   rE   r   s     r    tril_indices_n_mr          ??1""r"   c                 0    t        j                  | ||      S r   r   rE   r   r   s      r    tril_indices_n_k_mr          ??1a##r"   c                 ,    t        j                  |       S r   r   tril_indices_fromr8   s    r    tril_indices_from_arrr          $$r"   c                 .    t        j                  | |      S r   r   r8   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    rG   r"   c                 ,    t        j                  |       S r   r   triu_indicesr   s    r    triu_indices_nr    rq   r"   c                 .    t        j                  | |      S r   r  r   s     r    triu_indices_n_kr    rZ   r"   c                 0    t        j                  | |      S r   r  r   s     r    triu_indices_n_mr
    r   r"   c                 0    t        j                  | ||      S r   r  r   s      r    triu_indices_n_k_mr    r   r"   c                 ,    t        j                  |       S r   r   triu_indices_fromr   s    r    triu_indices_from_arrr     r   r"   c                 .    t        j                  | |      S r   r  r   s     r    triu_indices_from_arr_kr  $  r   r"   c                 0    t        j                  | ||      S r   )r   vanderr   r   
increasings      r    r  r  (  s    99Q:&&r"   c                 .    t        j                  | |      S r   )r   	partitionr.   kths     r    r  r  ,  s    <<3r"   c                 .    t        j                  | |      S r   )r   argpartitionr  s     r    r  r  0  s    ??1c""r"   c                 4    t        j                  | ||||      S r   )r   cov)r   yrowvarbiasddofs        r    r  r  4  s    66!Qd++r"   c                 0    t        j                  | ||      S r   )r   corrcoefr   r  r   s      r    r$  r$  8  s    ;;q!V$$r"   c                 0    t        j                  | ||      S r   )r   ediff1d)aryto_endto_begins      r    r'  r'  <  s    ::c68,,r"   c                 .    t        j                  | |      S r   )r   roll)r.   shifts     r    r,  r,  @  s    771er"   c                 ,    t        j                  |       S r   r   asarrayrB   s    r    r0  r0  D      ::a=r"   c                 0    t        j                  | |      S Ndtyper/  r.   r5  s     r    asarray_kwsr7  H  s    ::au%%r"   c                 0    t        j                  | |      S r3  r   asfarrayr6  s     r    r:  r:  L  s    ;;q&&r"   c                 ,    t        j                  |       S r   r9  rB   s    r    asfarray_default_kwargr<  P  rL   r"   c                 .    t        j                  | |      S r   )r   extract	conditionr8   s     r    r>  r>  T  s    ::i%%r"   c                 ,    t        j                  |       S r   r   trapzr  s    r    np_trapzrE  X  r'   r"   c                 .    t        j                  | |      S r   rB  r  r   s     r    
np_trapz_xrH  \  r   r"   c                 0    t        j                  | |      S )NdxrB  r  rK  s     r    np_trapz_dxrM  `  s    88A"r"   c                 0    t        j                  | ||      S r   rB  r  r   rK  s      r    np_trapz_x_dxrP  d  s    88Aq"r"   c                 4    t        j                  | ||||      S r   )r   allcloser   s        r    np_allcloserS  h  s    ;;q!T433r"   c                 2    t        j                  | ||      S )Nr6   rO   )r   average)r.   r6   rO   s      r    
np_averagerW  l  s    ::adG44r"   c                 0    t        j                  | ||      S r   )r   interpr   xpfps      r    rY  rY  p  s    99QBr"   c                 .    t        j                  | |      S r   )r   repeatr.   repeatss     r    	np_repeatra  t  s    99Q  r"   c                 J    t        j                  |       j                  |      S r   )r   r0  r^  r_  s     r    array_repeatrc  x  s    ::a=((r"   c                 2    t        j                  | ||      S )N)defaultr   select)condlist
choicelistre  s      r    	np_selectrj  |  s    99Xz7;;r"   c                 .    t        j                  | |      S r   rf  )rh  ri  s     r    np_select_defaultsrl    s    99Xz**r"   c                 ,    t        j                  |       S r   )r   bartlettr   s    r    np_bartlettrp    rL   r"   c                 ,    t        j                  |       S r   )r   blackmanro  s    r    np_blackmanrs    rL   r"   c                 ,    t        j                  |       S r   )r   hammingro  s    r    
np_hammingrv    r1  r"   c                 ,    t        j                  |       S r   )r   hanningro  s    r    
np_hanningry    r1  r"   c                 .    t        j                  | |      S r   )r   kaiser)r   betas     r    	np_kaiserr}    s    99Qr"   c                 .    t        j                  | |      S r   )r   crossr-   s     r    np_crossr    r   r"   c                 .    t        j                  | |      S r   )r   
trim_zeros)r.   trims     r    np_trim_zerosr    s    ==D!!r"   c                     t        | |      S r   r   r-   s     r    
nb_cross2dr    s    1a=r"   c                 ,    t        j                  |       S r   r   rB   s    r    flip_lrr    rv   r"   c                 ,    t        j                  |       S r   r   rB   s    r    flip_udr    rv   r"   c                 .    t        j                  | |      S r   )r   union1dr-   s     r    
np_union1dr    s    ::a?r"   c                 .    t        j                  | |      S r   )r   asarray_chkfiniter6  s     r    np_asarray_chkfiniter    s    5))r"   c                 4    t        j                  | |||      S Nperiodr   unwrap)pdiscontr6   r  s       r    r  r    s    99Qf55r"   c                 ,    t        j                  |       S r   r  )r  s    r    unwrap1r    rv   r"   c                 0    t        j                  | |      S r  r  )r  r  s     r    unwrap13r    s    99Qv&&r"   c                 2    t        j                  | ||      S )Nr  r  r  )r  r  r  s      r    	unwrap123r    s    99Qvw77r"   c                 
    || v S r    )r.   keys     r    array_containsr    s    !8Or"   c                 0    t        j                  | ||      S r   )r   swapaxes)r.   a1a2s      r    r  r    s    ;;q"b!!r"   c                 2    t        j                  | ||      S )Ncopynan)r   
nan_to_num)Xr  r  s      r    r  r    s    ==3//r"   c                 ,    t        j                  |       S r   )r   r   )
dimensionss    r    
np_indicesr    s    ::j!!r"   c                 ,    t        j                  |       S r   r   diagflat)rY   s    r    	diagflat1r    rL   r"   c                 .    t        j                  | |      S r   r  )rY   r   s     r    	diagflat2r    s    ;;q!r"   c                       e Zd ZdZ fdZ	 	 ddZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2dd1Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<e=d;        Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGddEZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZdX Z[dY Z\dZ Z]d[ Z^d\ Z_d] Z`d^ Zad_ Zbd` Zcda Zddb Zedc Zfdd Zgde Zhdf Zidg Zjdh Zkdi Zlemdj        Zndk Zoemdl        Zpemdm        Zqemdn        Zremdo        Zsdp Ztemdq        Zuemdr        Zvemds        Zwemdt        Zxdu Zydv Zzdw Z{dx Z|dy Z}dz Z~d{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej4                  d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ejX                  exr ed      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ Z׈ xZS )TestNPFunctionsz,
    Tests for various Numpy functions.
    c                 r    t         t        |           t        j                  j                  d      | _        y )N*   )superr  setUpr   randomRandomStaternd)self	__class__s    r    r  zTestNPFunctions.setUp  s&    ot*,99((,r"   c           
      z   t        ||      D ]  \  }	}
|dgx}}t        ||      D ]  \  }} t        |	f|z         |      } ||
g| } ||
g| }	 |	j                  }|t        j
                  t        j                  fv rdnd}d|
d|} | j                  ||f||||d|   y# t        $ r |	}Y Yw xY w)aC  
        Runs tests for a unary function operating in the numerical real space.

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

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

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

2IU"" xxu.HD. C-IINN1		r*IIINN1YY^^%F!!IV##Y&&"6Jjm++f$$IINN1yy(("BHH(EHA+B,s   F6F8Tr  )r  r   r  )r  r&  r  r  r8   r  r  receiveds           r    test_containszTestNPFunctions.test_containsV  sW    +	Z  "T"6*HCc3'HS#H##Hh7	 r"   c                 @    t         t         fd}g d}t        j                  t        j                  gt        |      dz  dz   z  } |||       t        j                  |t        j                        g}|D cg c]  }t        |       }} |||       g d}t        j                  t        j                  gt        |      dz  dz   z  } |||       t        j                  |      }t        j                  t        j                  g} |||       yc c}w )zw
        Tests the angle() function.
        This test is purely to assert numerical computations are correct.
        c                     j                  | |       ddg}t        j                  fgt        |      z  }j                  | |||       y )NTF)r  r  )r  r	   bool_r  )r  r  xtra_values
xtra_typespyfunc1pyfunc2r  s       r    r  z)TestNPFunctions.test_angle.<locals>.check  sR    NN7GX6"H-K ;;.)C,<<JNN7GX,6+6  9r"   )r  r  r  r  r  r  r  r  r     r4  )r  r  r  r  r  y             r  r  r  r  r  r  N)r&   r*   r	   r  r  r  r   r  r   r  r  )r  r  r  r  rY   r0  r1  s   `    @@r    
test_anglezTestNPFunctions.test_angle  s    
 	9 :==%--0CMQ4F4JKgx  HHXRZZ89&./h6!9h/gx A??E$4$45X!9Ka9OPgx  88H%??E$4$45gx  0s    Dc                     d }|}g d}g d}t        ||      D ]Q  \  }}t        j                  |g|      } t        d      |      } ||      }	 ||      }
| j	                  |	|
       S y )Nc                 D    t        j                  |       }|j                  S r   )r   r%   r5  )r   rs     r    numba_anglez;TestNPFunctions.test_angle_return_type.<locals>.numba_angle  s    A77Nr"   )r  r  r  r  )f4f8c8c16r4  Tr  )r  r   r  r   assertEqual)r  r7  r  r  r  valtypr   r  r  r  s              r    test_angle_return_typez&TestNPFunctions.test_angle_return_type  sr    	 .+Hg.HC#c*A&C&v.EayH(CXs+ /r"   c                    t         } t        d      |      }| j                  t              5 } |d       d d d        | j	                  dt        j                               | j                          y # 1 sw Y   ?xY w)NTr  helloz0Argument "z" must be a complex or Array[complex])r&   r   r   r   r  r  r  r  r  s       r    test_angle_exceptionsz%TestNPFunctions.test_angle_exceptions  sh    "T"6*{+v'N ,H&**+	- 	! ,+r  c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   t        j                  g       t        j                  g       f t        j                  ddg      t        j                  ddg      f t        j                  g       t        j                  dg      f t        j                  d      j                  dd      } d| d   d<   t        j                  d      j                  dd      | f | | f d d d d	 d
 d d d y w)Nr2  r  r
  r     r2  r     rG  )r  r  )rH  r  )TTTF)Tr  )Tr2  )Fr   r   r  r  reshaper   s    r    arraysz0TestNPFunctions.test_array_equal.<locals>.arrays  s     ((2,,,((Aq6"BHHaV$444((2,!--		"%%a+AAaDG))B-''1-q00Q$J&&JJMMN   DD	Tr  )r,   r   r  r  rL  r  r  r8   r>   r  r  s           r    test_array_equalz TestNPFunctions.test_array_equal  sV    	" "T"6*HCc3'HS/C##Hc2 !r"   c                 *   t         } t        d      |      }| j                  t              5 } |t	        j
                  d      j                  dd      d        d d d        | j                  dt        j                               y # 1 sw Y   /xY w)NTr     rH     z3Both arguments to "array_equals" must be array-like)
r,   r   r   r   r   r  rK  r  r  r  r  s       r    test_array_equal_exceptionz*TestNPFunctions.test_array_equal_exception  ss    "T"6*{+v"))E"**1a0$7 ,A  !	
 ,+s   -B		Bc                     d }t         } t        d      |      } |       D ]S  \  }}t        j                  |      }t        j                  |      } |||      } |||      }| j	                  ||       U y )Nc               3      K   g g f dgg f g dgf dgdgf dgdgf ddgdgf g dddgf ddgddgf g dg df y w)Nr2  r  r2  r  r  rG  r  r  r"   r    rL  z0TestNPFunctions.test_intersect1d.<locals>.arrays  s{     b&L#r'Mqc'M#s(N#s(Na&1#+aV##a&1a&. Y&&s   AATr  )r2   r   r   r  r  )r  rL  r  r  r.   r/   r  r  s           r    test_intersect1dz TestNPFunctions.test_intersect1d  so    		' "T"6*HDAqAAa|H1+C##Hc2 r"   c                     d }t         } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   t        j                  g       d f t        j                  d      d f t        j                  d      d f t        j                  d      j	                  ddd      d f t        j                  d      j	                  dd      df t        j                  d      j	                  dd      df y w)	Nr
  <   rH  rR  r  rQ  r   r2  )r   r  zerosr  rK  r  r"   r    rL  z2TestNPFunctions.test_count_nonzero.<locals>.arrays  s     ((2,$$((2,$$))B-%%))I&..q!Q7==))E"**1a0!33))E"**1a0!33s   C	CTr  )r;   r   r  )r  rL  r  r  r8   r6   r  r  s           r    test_count_nonzeroz"TestNPFunctions.test_count_nonzero  sW    	4 "T"6*ICc4(HT"C##Hc2 "r"   c                     d }t         } t        d      |      } |       D ],  \  }}} ||||      } ||||      }| j                  ||       . y )Nc               3     K   d t        j                  d      dd f t        j                  d      t        j                  d      d f t        j                  d      j                  dd      t        j                  d      d f t        j                  g dg dg      t        j                  g dg      d	f t        j                  g dg dg      } | | d
f y w)N)r  r  Nr
  rH  r  r  rG  rR  r  r        	   r   r2  )r   r  rK  r  r   s    r    rL  z.TestNPFunctions.test_np_append.<locals>.arrays  s     ))B-D(())B-1t33))B-''1-ryy|TAA((Iy12BHHi[4I1LL((Iy12CsA+s   C"C$Tr  )r7   r   r  )	r  rL  r  r  r8   r>   r6   r  r  s	            r    test_np_appendzTestNPFunctions.test_np_append  s]    	 "T"6*$hNCdc3-HS$'C##Hc2 'r"   c                    t         } t        d      |      }t        j                  g dg dg      }t        j                  g dg      }d}| j	                  t
              5 } |d ||       d d d        | j                  dt        j                               | j	                  t
              5 } ||d |       d d d        | j                  dt        |j                               | j	                  t
              5 } |||d	
       d d d        | j                  dt        |j                               | j                          y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w)NTr  rG  r_  r`  r   z+The first argument "arr" must be array-likez/The second argument "values" must be array-liker  r5   z,The third argument "axis" must be an integer)
r7   r   r   r  r   r   r  r  r  r  )r  r  r  r8   r9   r6   r  s          r    test_np_append_exceptionsz)TestNPFunctions.test_np_append_exceptions0  s)   "T"6*hh	9-.9+& {+v$% ,9  !	
 {+v#tT" ,=  !	
 {+v#vC( ,:  !	

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

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

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

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

 	!9 ,+ ,+ ,+ +*s/   FF-
F9F(FFF%(F1c              #      K   t        j                  d      dz  }| |j                  d      }| t        j                  d      j                  d      dz  }| yw)z0
        Some test arrays for np.diff()
        rQ  rH  rH  rR     )rH  r  rR  Nr   r  rK  r  r.   r/   cs       r    diff_arrayszTestNPFunctions.diff_arrays  sT      IIbMQIIfIIbM!!),1s   AA c                 &   t         } t        d      |      }| j                         D ]$  } ||      } ||      }| j                  ||       & t	        j
                  d      }| j                         5   ||       d d d        y # 1 sw Y   y xY w)NTr  r  )rC   r   rx  r  r   r  assertTypingError)r  r  r  r8   r  r  r.   s          r    
test_diff1zTestNPFunctions.test_diff1  s{    "T"6*##%Cc{H*C##Hc2 & HHRL##%!H &%%s   5	BBc           	          t         } t        d      |      }| j                         D ]J  }|j                  d   }dddd|dz
  ||dz   dfD ]&  } |||      } |||      }| j	                  ||       ( L y )	NTr  r   r2  r  rH  i  )rF   r   rx  shaper  )r  r  r  r8   r  rE   r  r  s           r    
test_diff2zTestNPFunctions.test_diff2  s    "T"6*##%C99R=DAq$(D$(C@!#q>Cm''#6 A &r"   c                    t         } t        d      |      }| j                          t        j                  d      }| j                         5   ||d       d d d        t        j                  d      }dD ]N  }| j                  t              5 } |||       d d d        | j                  dt        j                               P | j                          y # 1 sw Y   xY w# 1 sw Y   MxY w)NTr  r  r2  r
  )r}  izorder must be non-negative)rF   r   r  r   r  rz  r  r   
ValueErrorr  r  r  )r  r  r  r8   rE   r  s         r    test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptions  s    "T"6* 	! hhrl##%#qM & iimA"":.&c1 /MM6F<L<L8MN 
 	! &% /.s   
C
C%C"%C.	c                     d }t         } t        d      |      } |       D ]%  } ||      } ||      }| j                  |||       ' y )Nc               3   J  K   d t        j                  dg       d d d t        d       t        j                  d       d d d  t        j                  dd	       t        j
                  d
       t        j
                  dd	       y w)NrH  )rH                @numbar
  i90  gV-@TYnatr2  )r   r0  intint16timedelta64
datetime64r  r"   r    r9   z-TestNPFunctions.test_isscalar.<locals>.values  s     G**aS/!JHMb'M((5/!KJJ..S))--&&--3''s   B!B#Tr  )rs   r   r<  r  r9   r  r  r   r  r  s          r    test_isscalarzTestNPFunctions.test_isscalar  sO    	( "T"6*AayH(CXsA. r"   c                    d }t        d      d        }t        t        g}|D ]  } t        d      |      } |       D ]  } ||      } ||      }| j                  ||       |j	                  |d|      }	 ||d|      }
| j                  |	|
       |j	                  |d|      } ||d|      }| j                  ||        | j                  t        |j                        d        y )Nc               3   V   K   d d t        j                  g d       d y w)Nr2  r  )rH  r  Thello worldr/  r  r"   r    r9   z4TestNPFunctions.test_isobj_functions.<locals>.values  s&     GL**.//s   ')Tr  c                     |r| nd } ||      S r   r  )r   condr  r  s       r    optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fn  s    tA8Or"   Frb  )r   rp   rx   r<  py_funcr  
signatures)r  r9   r  pyfuncsr  r  r   r  r  expected_optionalgot_optionalexpected_nonegot_nones                r    test_isobj_functionsz$TestNPFunctions.test_isobj_functions  s    	  
d		 
	  +F&C&v.EX!!9Ah  3/ %0$7$74$H!*1dE:  !2LA !, 3 3Auf E&q%7  9  S!1!12A6# r"   c                     d }t         t        g}|D ]B  } t        d      |      } |       D ]$  } ||      } ||      }| j                  ||       & D y )Nc               3      K   t        j                  g d       t        j                  g d       d d d d d t        j                  dd	gdd
gddgddgg       y w)N)      ?      ?r        @rH  r                 @rG  rH  y              (@      ?      @y      $@        )r  y       @        r2  r  rR  r  r  ra  rb  r   r  r  r"   r    r9   z7TestNPFunctions.test_is_real_or_complex.<locals>.values  sg     ((:;;((9%%GILM""((QFQFQFQF;<<s   A+A-Tr  )rm   ru   r   r  )r  r9   r  r  r  r   r  r  s           r    test_is_real_or_complexz'TestNPFunctions.test_is_real_or_complex   s\    	= f%F&C&v.EX!!9Ah''#6  r"   c                     d }t         t        g}|D ]G  } t        d      |      } |       D ])  \  }} |||      } |||      }| j                  ||       + I y )Nc               3   L  K   t         j                   d f t         j                  d f t         j                  d f t        j                  t         j                   dt         j                  g      d f t         j                   t        j                  dt         j                        f t         j                  t        j                  dt         j                        f t         j                  t        j                  dt         j                        f t         j                   t        j
                  d      f t        j                  t         j                   dt         j                  g      t        j                  dt         j                        f y w)Nr  r2  r4  rQ  rH  )r   infr0  r[  r-  emptyr  r"   r    r9   z7TestNPFunctions.test_isneg_or_ispos_inf.<locals>.values  s     66'4-&&$,&&$,**rvvgr26623T9966'288ARXX666&&"((1BHH555&&"((1BHH55566'288B<''**rvvgr26623RXXarxx5PPPs   F"F$Tr  )rz   r   r   r  )	r  r9   r  r  r  r   r|   r  r  s	            r    test_isneg_or_ispos_infz'TestNPFunctions.test_isneg_or_ispos_inf  se    		Q X&F&C&v.E (3!!S>Asm''#6 # r"   c                   	
 ddt        j                  ddg      
t        j                  d      j                  d      	d	
fd}t        } t        d	
      |      } |       D ]l  \  }}} |||fi |} |||fi |}t        |t         j                        r| j                  ||       H| j                  t        j                  ||             n y )Nh㈵>:0yE>d     rb  r  r  r  )r   r   c               3     K   ddi f dt         j                  i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      i f t        j                  dt         j                  g      t        j                  dt         j                  g      i f t        j                  dt         j                  g      t        j                  dt         j                  g      d	d
if t        j                  t         j                  t         j                  g      t        j                  dt         j                  g      d	d
if t        j                  ddg      t        j                  ddg      ddif t        j                  ddg      t        j                  ddg      i f t        j                  ddg      t        j                  ddg      ddif t        j                  dt         j                  dg      t        j                  dt         j                  dg      f t        j                  t         j                  t         j                   t         j                  g      t        j                  dg      f t        j                  t         j                  t         j                   t         j                  g      df dt        j                  t         j                  t         j                   t         j                  g      f t        j                  ddg      t        j                  ddg      f f t        j                  dg      t        j                  dz   z   g      f z  z   f z  z   z   f    z  z   f t         j                  t         j                  f t         j                   t         j                  f t         j                  t        j                  t         j                  g      f t        j                  t         j                  t         j                   g      t        j                  t         j                  t         j                   g      f t        j                  t         j                  dg      t        j                  dt         j                  g      f t        j                  t         j                  t         j                   g      t        j                  ddg      f t        j                  t         j                  t         j                  g      t        j                  dt         j                   g      f t        j                  t         j                  t         j                  g      t        j                  ddg      f t        j                  t         j                  dg      t        j                  t         j                  t         j                   g      f t        j                  dz  g      t        j                  dg      f t        j                  dg      t        j                  dz   dz  z   g      f   dz   z  z   dz  z   f t        j                  t        j                  t         j                  dg            t        j                  t        j                  dt         j                  g            f t        j                  t         j                  dg      t        j                  dz  dz  g      f t        j                  t         j                  dg      t        j                  t         j                  dz  g      f t        j                  ddddz  z   z  z   g      t        j                  dt         j                  dg      f t        j                  d      t        j                  g d      f t         j                  t        j                  t         j                  t         j                  t         j                  g      f t        j                  dg      t        j                  t         j                  t         j                   t         j                  g      f dt        j                  t         j                  t         j                   t         j                  g      f y w)N    _B   UkBr  Hz>r  &.>   2٠Br  r   T0.++r   绽|=g#B;g=|=r2  r  rH  rR  r   皙?    .A)r   r2   @)r   r  r  r  r  )aranr8   r   kwr   s   r    r9   z,TestNPFunctions.test_isclose.<locals>.values.  s    
B&&""((D$<("((C:*>BB((D$<("((J3E*FJJ((D$<("((J3E*FJJ((D$<("((It3D*ErII((C=)288S"&&M+BBFF((C=)288S"&&M+B[RVDWWW((BFFBFF+,bhhRVV}.EUYGZZZ((FD>*BHHc3Z,@63-OO((E5>*BHHeS\,BBFF((E5>*BHHe\5J,KfVY]ZZ((Arvvq>*BHHa^,DbHH((D"&&266'266:;RXXqc]BNN((D"&&266'266:;QBBRXXtRVVbffWbff=>BB ((Aq6"BHHaV$4b88sB,((A3-1t8d?*;!<b@@sS4Z'++sS4Z'$.22td{*B..&&"&&"$$66'2662%%&&"((BFF8,b00((BFFRVVG,-rxx"&&8I/JBNN ((BFFA;'1bff+)>BB((BFFRVVG,-rxxA/?CC((BFFBFF+,bhhBFF7|.DbHH((BFFBFF+,bhh1v.>BB((BFFA;'266BFF72C)DbHH((D1H:&!r99((A3-1t8dQh+>*?!@"DDtczD004#:=rAA((288RVVQK01288BHHa[<Q3RTVVV ((BFFA;'4!8TAX2F)GKK((BFFA;'2664!82D)ErII((D!SADL%9D%@ABBHHaQSQWQWY\M]D^`bbb))A, 5r99&&"((BFFBFFBFF#;<b@@((A3-4"&&"&&*I!JBNNRXXtRVVbffWbff=>BBs   ggTr  )r   r  r  rK  r   r   
isinstancer-  r<  
assertTruer,   )r  r9   r  r  r.   r/   r  r  r  r  r8   r   r  r   s            @@@@@r    test_isclosezTestNPFunctions.test_isclose'  s    hhT{#yy|##I.D)3	C 3	Cj "T"6*"HLAq&a-f-H1''C(BHH-  3/x => %r"   c                    t         } t        d      |      }t        j                  ddt        j                  g      t        j                  ddg      dddd	t
        fd
dddddt        fdd
ddddt        fddddddt        fddddddt        fddddddt        fg}|D ]1  \  }}}}}}	}
| j                  |
|	      5   ||||||       d d d        3 y # 1 sw Y   >xY wNTr  r  r  r  r  r  Fz=shape mismatch: objects cannot be broadcast to a single shaperA  rH  z)The first argument "a" must be array-likez*The second argument "b" must be array-liker  z2The third argument "rtol" must be a floating pointz3The fourth argument "atol" must be a floating pointr2  z0The fifth argument "equal_nan" must be a boolean)r   r   r   r0  r  r  r   assertRaisesRegexr  r  r  inpsr.   r/   r   r   r   exc_msgexcs              r    isclose_exceptionz!TestNPFunctions.isclose_exceptionm  s   "T"6*ZZtRVV,-ZZD)*E5L	
 au8 u9 5%A 5%B 5%?%
. :>5Aq$i#''W5aD$	2 65 :>55s   ;CC	c                     g d}t        j                  g d      }| j                  j                  ddd      j	                  t         j
                        }|||fS )z7
        Some test sequences for np.bincount()
        )r2  r  r  r  rH  r  )r  rb  r  r  r   r  ,  r  )r   r  r  r  astypeint8rv  s       r    bincount_sequencesz"TestNPFunctions.bincount_sequences  sM      HH]#HHQ#.55bgg>1ayr"   c                     t         } t        d      |      }| j                         D ]$  } ||      } ||      }| j                  ||       & y NTr  )rK   r   r  r  )r  r  r  seqr  r  s         r    test_bincount1zTestNPFunctions.test_bincount1  sM    "T"6***,Cc{H*C##Hc2 -r"   c                 &   t         } t        d      |      }| j                          | j                  t              5 } |ddg       d d d        | j                  dt        j                               | j                          y # 1 sw Y   ?xY w)NTr  r  r}  #first argument must be non-negative)rK   r   r  r   r  r  r  r  r  s       r    test_bincount1_exceptionsz)TestNPFunctions.test_bincount1_exceptions  s|    "T"6* 	! z*f1b'N +;&**+	- 	! +*s   BBc                 \   t         } t        d      |      }| j                         D ]|  }|D cg c]  }t        j                  |      dz
   }}|t        j                  |      |t        j                  |      fD ]&  } |||      } |||      }| j                  ||       ( ~ y c c}w NTr  r  )rQ   r   r  mathsqrtr   r  r  )	r  r  r  r  r   rP   rO   r  r  s	            r    test_bincount2zTestNPFunctions.test_bincount2  s    "T"6***,C+./3a1!3A/rxx{C#?!#w/C)''#6 @ -/s   B)c                    t         } t        d      |      }| j                          | j                  t              5 } |ddgddg       d d d        | j                  dt        j                               | j                  t              5 } |ddgdg       d d d        | j                  dt        |j                               y # 1 sw Y   ~xY w# 1 sw Y   ;xY w)NTr  r  r}  r   r  z+weights and list don't have the same length)rQ   r   r  r   r  r  r  r  r  s       r    test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptions  s    "T"6* 	! z*f1b'Aq6" +;&**+	- z*f1b'A3 +C&**+	- +* +*   C	C	CCc                     t         } t        d      |      }| j                         D ]c  }t        |      }||dz   fD ]L  } ||d |      } ||d |      }| j	                  t        |      t        |             | j                  ||       N e y r  )rT   r   r  maxr<  r  r  )r  r  r  r  a_maxrS   r  r  s           r    test_bincount3zTestNPFunctions.test_bincount3  s    "T"6***,CHE#UQY/	!#tY7Cy1  XC9''#6	 0 -r"   c                    t         } t        d      |      }| j                          | j                  t              5 } |ddgddg       d d d        | j                  dt        j                               | j                  t              5 } |ddgd d       d d d        | j                  d	t        |j                               y # 1 sw Y   ~xY w# 1 sw Y   ;xY w)
NTr  r  r}  r   r     &   z 'minlength' must not be negative)rT   r   r  r   r  r  r  r  r  s       r    test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptions  s    "T"6* 	! z*f1b'Aq6" +;&**+	- z*f2r(D"% +8&**+	- +* +*r  c                    	
 t          t        d            t         t        d            	t         t        d            
	
 fd}t	        j
                  d      dz  }t	        j
                  d      dz
  }|t        |      fD ]E  }|D ]  } |||        ||j                  d      fD ]  } |||         ||t        |             G t	        j                  t        |      t        d	      gd
z  z         dz  }t	        j
                  d      dz
  }|t        |      fD ]E  }|D ]  } |||        ||j                  d      fD ]  } |||         ||t        |             G d } t        d      |       j                         5   ddgd       d d d        dd} t        d      |       j                         5   ddgdd       d d d        t	        j                  g d      }t	        j                  ddgdd
gddgddgg      } |||       t	        j                  g d      }t	        j                  ddgddgddgg      } |||       y # 1 sw Y   xY w# 1 sw Y   xY w)NTr  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r  r.   rY   r  r  r  
cfunc_leftcfunc_rightr  pyfunc_leftpyfunc_rightr  s       r    r  z0TestNPFunctions.test_searchsorted.<locals>.check  y    a|H1+C##Hc2"1a(HQ"C##Hc2#Aq)Ha#C##Hc2r"   r  r  r  r2  rR  r  r  ra         @r  c                 2    t        j                  | |d      S )Nnonsenser]   rV   rX   s     r    bad_sidez3TestNPFunctions.test_searchsorted.<locals>.bad_side  s    ??1aj99r"   c                 2    t        j                  | ||      S )Nr]   rV   )r.   rY   r^   s      r    nonconst_sidez8TestNPFunctions.test_searchsorted.<locals>.nonconst_side#  s    ??1ad33r"   ra   r]   )r2  r  r   rR  r  r   rH  )	rc  r2  rR  r  r   rH  ra  r  rb  r
  r}  )r\   )rW   r   r_   rb   r   r  listrK  r  floatrz  r  )r  r  binsr9   r.   rY   r  r  r  r  r  r  r  r  s   `       @@@@@@r    test_searchsortedz!TestNPFunctions.test_searchsorted  sk   "T"6*''S$'4
)(c4(6	3 	3 yy|q 2"T
#Aa  fnnV45a 6 !T&\" $ zz$t*e~'99:S@2$T
#Aa  fnnV45a 6 !T&\" $	:"T"8,##%1Q%O &	4"T"=1##%1Q%) & HHYHHAAAA	
 	aHH01HHBQQ
 	a= &% &%s   #I3I?3I<?Jc                    	
 t          t        d            	t         t        d            
t         t        d            	
 fd}t	        t        dd            }|t        j                  gdz  t        j                  gdz  z   t        j                   gdz  z   z  }t        d      D ]  } j                  j                  g d	      } j                  j                  ||      } j                  j                  |||dz  d
z
  z         } |||        |t        j                  |      |        t        j                  d      }t        j                  t        |      t        j                        } |||        |||        |||        |||       t        j                  d
      }t        j                  d      } |||       t        j                   g d      }t        j                   ddg      } |||       g d}d} |||       t        j                   g d      }t        j                   ddg      } |||       y )NTr  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r  r  s       r    r  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.checkI  r  r"   r  r  r  rH  r  )r  r
  r  r2  
fill_valuer   )FFTTFrG  )123r  4)rW   r   r_   rb   r  ranger   r  r  r  choicesortonesfullr  r  r  )r  r  element_poolisample_sizer.   rY   r  nansr  r  r  r  r  r  s   `        @@@@@@r    test_searchsorted_supplementalz.TestNPFunctions.test_searchsorted_supplemental?  s   "T"6*''S$'4
)(c4(6	3 	3 E"bM*1x!|3wi!mCCtA((//+6K k:AkQUQY.GHA !QK"''!*a   wwqzwws4yRVV4dD 	dDdDdD IIaLIIaLa HH/0HHeT]#a a HH_%HHc3Z ar"   c                    	
 t          t        d            	t         t        d            
t         t        d            	
 fd}ddt        j
                  g}t        j                  ||      D cg c]
  }t        |  }}t        d      D ]  } j                  j                  ddt        |      g      } j                  j                  ||      } j                  j                  |||dz  dz
  z         } |||        |t	        j                  |      |         |t	        j                  |      t	        j                  d	      
       y c c}w )NTr  c                      | |      } | |      }
j                  ||        | |      } | |      }
j                  ||        	| |      } | |      }
j                  ||       y r   r  r  s       r    r  z8TestNPFunctions.test_searchsorted_complex.<locals>.check  r  r"   r   r2  r  rH  r  r  rX   )rW   r   r_   rb   r   r  	itertoolsr   complexr  r  r  r  r  r  r  )r  r  poolrw  r  r  r	  r.   rY   r  r  r  r  r  r  s   `        @@@@@@r    test_searchsorted_complexz)TestNPFunctions.test_searchsorted_complex  s*   "T"6*''S$'4
)(c4(6	3 	3 1bff~-6->->tT-JK-J-JKsA((//1a\1B*CDK k:AkQUQY.GHA !QK"''!*a   	&"))A,7 Ls   E%c                     t          t        d             fd}t        j                  dddddd	d
ddt	        d      t	        d      t	        d      f      }t        |      dk(  sJ  j                  j                  |       t        j                  g d      }t        j                  dddd
t	        d      t	        d      g      }t        j                  dddd
t	        d      t	        d      gt	        d      gdz  z         }|||g}||j                  d      g}|D ]1  }|j                          |D ]  }	 ||	|        ||	|d d d           3 |D ]#  }dD ]  }
 ||||
        |||d d d   |
        %  |t        |      |        |t        j                  t        j                  dg      t        j                  dt        j                  g             y )NTr  c                  >     |  } |  }j                  ||       y r   r  rf   r  r  r  r  r  s      r    r  z,TestNPFunctions.test_digitize.<locals>.check  %    t}H,C##Hc2r"   r   Gz?r2  皙@r  ra  rb  rc        #@r  z-infr  rQ  r2  rH  r  rb  rH  r
  rs  r}  rI        ?)rd   r   r   r  r  r  r  shufflerK  r  r  r  r  )r  r  r9   bins1bins2bins3all_binsxsr  r   ra   r  r  s   `          @@r    test_digitizezTestNPFunctions.test_digitize  s   "T"6*	3
 Qac1aC"5\5=%,H I6{b    

>*

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

Aq#q%,fF#El^b01 2 5%(fnnV,- DIIKaadd$   D&fdE*fd4R4j%0 '  	d6lE" 	bhh{#RXXsBFFm%<=r"   c                 j     j                          t         t        d             fd}t        j                  t        j
                  dg      }t        j                  t        j
                  ddt        j
                  g      } |||       g d}g d} |||       g d	} |||       y )
NTr  c                      fD ]L  }j                  t              5 } ||   d d d        d}j                  |t        j                               N y # 1 sw Y   3xY w)Nz3bins must be monotonically increasing or decreasingr   r  r  r  r  )rf   fnr  r  r  r  r  s       r    check_errorzETestNPFunctions.test_digitize_non_monotonic_bins.<locals>.check_error  sU    uo&&z2fI 3 Lc3v'7'7#89 &22s   AA	r2  r  ffffff@r}  r   r2  r  )r   r   r2  r   r2  r2  r   r2  )r  rd   r   r   r  r  )r  r&  r   r  r  r  s   `   @@r     test_digitize_non_monotonic_binsz0TestNPFunctions.test_digitize_non_monotonic_bins  s    !"T"6*	: HHbffa[!xxc26623AtAtAtr"   c                     t          t        d             fd}t        j                  dd      }t        j                  dd      } |||       t        j                  ddd      }t        j                  ddd      } |||        j                  j                  d      }t        j                  |j                         |j                         d      } |||       g d	}g d
} |||       t        j                  dd      }t        j                  dd      } |||d       t        j                  ddd      }t        j                  ddd      } |||d        j                  j                  d      }t        j                  |j                         |j                         d      } |||d       g d}g d} |||       g d} |||       g d} |||       d} ||g|dz
  |dz   g       y )NTr  c                  >     |  } |  }j                  ||       y r   r  r  s      r    r  z9TestNPFunctions.test_digitize_supplemental.<locals>.check  r  r"   r  r  r}  r
  )r2  r  rR  r
  rb     r   )r2  r  r
  rR  r(  )r   r   r2  )r2  r2  r   r2  r2  r2  r2  l          r2  )	rd   r   r   r  r  r  linspaceminr  )r  r  r   r  r  r  s   `   @@r    test_digitize_supplementalz*TestNPFunctions.test_digitize_supplemental  s    "T"6*	3 IIb!yyQa IIaR yyB#a HHMM"{{1557AEEGR0a $a IIb!yyQat IIaR yyB#at HHMM"{{1557AEEGR0at aaa qcAE1q5>"r"   c                 j   | j                          t        } t        d      |      }t        j                  dg      }t        j                  g d      }d}||fD ]I  }| j                         5 } |||       | j                  |t        |j                               d d d        K y # 1 sw Y   VxY w)NTr  r  )r        @r         @zx may not be complex)	r  rd   r   r   r  rz  r  r  r  )r  r  r  r   r  r  funcr  s           r     test_digitize_raise_if_x_complexz0TestNPFunctions.test_digitize_raise_if_x_complex*  s    !"T"6*HHfXHH&'$EMD'')VQ
c3v'7'7#89 *) "))s   //B))B2	c                      t          t        d             fdfd}t        j                  d      }t	        |      dk(  sJ  j
                  j                  |        ||       y )NTr  c                  t     |  \  }} |  \  }}j                  ||       j                  ||dd       y )Nr  r  r  r  r  )rf   pyhistpybinschistcbinsr  r  r  s        r    r  z-TestNPFunctions.test_histogram.<locals>.check>  sF    #T]NFF $<LE5##FE2 ##FEq#Ir"   c                     t        j                  g d      } | |        | j                  d      |        | d        | dd        |        y )Nr  rs  ra  )r  g      +@)r   r  rK  )r9   r  r  s     r    check_valuesz4TestNPFunctions.test_histogram.<locals>.check_valuesF  sS     ::n-D&$&..($/ &! &![) &Mr"   )r   r  r2  r  r  ra  rb  rc  r  g     @E@r  r  rQ  )rh   r   r   r  r  r  r  )r  r@  r9   r  r  r  s   `  @@@r    test_histogramzTestNPFunctions.test_histogram:  se    "T"6*	J	   7 86{b    Vr"   c                 2    t        d      |      }d}t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  g}g d}t        j                  |||||      D ]  \  }}}}	}
t        j                  ||      }t        j                  |	|      }t        j                  |t        j                        r|d|z  z   j                  |      }t        j                  |t        j                        r|d|z  z   j                  |      } ||||
      } ||||
      }| j                  ||        t        j                  d      j!                  d	d
      }t        j                  d      }||f||ffD ]S  \  }}| j#                  t$              5 } |||       d d d        d}| j'                  |t)        j*                               U y # 1 sw Y   3xY w)NTr  )r2  r  rH  ra  )r  validsamer4  r  r   rQ  rR  rH  zonly supported on 1D arrays)r   r   r  int32int64r  r  r  r  r  r   r  
issubdtypecomplexfloatingr  r  rK  r   r   r  r  r  )r  r  r  lengthsdtsmodesdt1dt2rE   r   r   r.   rY   r  r  _a_br   r  r  r  s                        r    _test_correlate_convolvez(TestNPFunctions._test_correlate_convolve]  s   "T"6* ww"((BJJ

||R]],)$-$5$5gw%
 CaD 		!3'A		!3'A}}S""4"45aZ'',}}S""4"45aZ'',a.H14(C##Hc2%
  YYr]""1a(YYr]"XBx(DAq"";/6a 0/CMM#s6#3#345	 )//s   
HH	c                 .    | j                  t               y r   )rP  r   r  s    r    test_correlatezTestNPFunctions.test_correlate~  s    %%i0r"   c                    | j                          t        j                  d      }t        j                  d      } t	        d      |      }||f||ffD ]  \  }}| j                  t              5 } |||       d d d        t        |      dk(  r&| j                  dt        j                               a| j                  dt        j                                | j                  t              5 } |||d	
       | j                  dt        |j                               d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   )r~  r  Tr  r   z'a' cannot be emptyz'v' cannot be emptyzinvalid moder   zInvalid 'mode')r  r   r  r  r   r   r  r  r  r  r  )r  r%  rN  rO  r  r   r  r  s           r    #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions  s   ! WW4 YYq\"T"2&"XBx(DAq"":.&a /1v{3S9I9I5JK3S9I9I5JK ) z*f"b~.MM*C0@0@,AB +* /. +*s   1
D-31D9-D6	9Ec                 .    | j                  t               y r   )rV  r   rR  s    r    test_correlate_exceptionsz)TestNPFunctions.test_correlate_exceptions  s    00;r"   c                 .    | j                  t               y r   )rP  r   rR  s    r    test_convolvezTestNPFunctions.test_convolve  s    %%h/r"   c                 .    | j                  t               y r   )rV  r   rR  s    r    test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptions  s    00:r"   c                 L     |di |} |di |}| j                  |||       y )Nr  r  r  )r  r  r  paramsr  r  r  s          r    _check_outputzTestNPFunctions._check_output  s/    #F#ofo#w?r"   c                    t         } t        d      |      }t        | j                  ||      fd} |t	        j
                  g d              |t	        j                  d      dz
          |t	        j                  ddd	              |t	        j
                  d
t        j                  t        j                  t        j                   g              |t	        j
                  g               |t	        j                  dd	      dz
          |t	        j
                  dgd	z  dgdz  z                t        j                  t        j                  t        j                  t        j                  fD ]  } |t	        j                  d|             !  |g d        |d        |d        |d        |d        |d       y )NTr  c                     g d}ddg}d| i} |       |D ]  }| |d} |        |D ]  }| |d} |        |D ]  }|D ]  }| ||d} |         y )N)Nr   r2  r  rH  rR  TFr   )r   r   )r   r  r  r  )r   	n_choicesincreasing_choicesr_  rE   r  r`  s         r    _checkz1TestNPFunctions.test_vander_basic.<locals>._check  s    -I"& 1XF&!  q)f% 
 1
 
;f% 1
 "4J#$1JGF!&) #5 r"   )r2  r  rH  r  ra        %@rH  r
  r  333333?r  333333?FrR  r4  r   r2  r  rH  rR  r  r  ra  )r  r  r  r  )rH  g-@A`"	@)TFrR  )r  r   r   r`  r   r  r  r0  r  r  rE  rF  r  r  )r  r  r  re  r5  r`  s        @r    test_vander_basicz!TestNPFunctions.test_vander_basic  sQ   "T"6* 2 2FEB	*0 	rxx%&ryy|d"#r{{1b!$%rxxbffbffrvvg678rxx|ryyQ#%& 	rxx
eWq[012 XXrxxRZZ?E299Ru-. @ 	||r
 	 ! r"   c                     t         } t        d      |       j                          t        j                  d      dz
   fd}ddt        j
                  ddgfD ]
  } ||         j                  t              5 } d	
       d d d         j                  dt        j                                fd}t        j                  d      j                  d       |       d |       y # 1 sw Y   kxY w)NTr  r  r  c                     j                         5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nr   z,Second argument N must be None or an integerrz  r  r  r  )r   r  r  r  r   s     r    _check_nz8TestNPFunctions.test_vander_exceptions.<locals>._check_n  sE    '')Va1 *MMHf../1 *)   AAr  r2  r  r}  r   z#Negative dimensions are not allowedc                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz.x must be a one-dimensional array or sequence.)r   r  r<  r  r  )r   r  r  r  s     r    	_check_1dz9TestNPFunctions.test_vander_exceptions.<locals>._check_1d  sG    "":.&a /M !1!124 /.   	AArk  )rH  rH  rH  )r  rH  r  )r  r   r  r   r  r  r   r  r  r  r  rK  )r  r  rp  r   r  rs  r  r   s   `     @@r    test_vander_exceptionsz&TestNPFunctions.test_vander_exceptions  s    "T"6* 	!IIaL3	1 dBFFQF*AQK + z*f!rN +;&**+	-	4 IIbM!!),!! +*s   C88Dc                     t         } t        d      |      }t        | j                  ||      }d } |       D ]  }d|i} ||        y )NTr  c                  .    t        j                  dd      S Nrb  r   r  r  r"   r    n_variationsz6TestNPFunctions.test_tri_n_basic.<locals>.n_variations      99R##r"   r   )r   r   r   r`  )r  r  r  re  r|  rE   r_  s          r    test_tri_n_basicz TestNPFunctions.test_tri_n_basic  sO    "T"6*++VU;	$ A1XF6N  r"   c                     t         } t        d      |      }t        | j                  ||      }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }||d} ||         y )NTr  c                  .    t        j                  dd      S ry  r{  r  r"   r    r|  z8TestNPFunctions.test_tri_n_m_basic.<locals>.n_variations  r}  r"   c                  Z    t         j                  j                  d gt        dd      f      S Nr  rc  r  chainfrom_iterabler  r  r"   r    m_variationsz8TestNPFunctions.test_tri_n_m_basic.<locals>.m_variations  $    ??004&%A,1GHHr"   r   r   )r   r   r   r`  )	r  r  r  re  r|  r  rE   r_  r   s	            r    test_tri_n_m_basicz"TestNPFunctions.test_tri_n_m_basic
  s    "T"6*++VU;	$	I
 A1XF6N  
 A!^ q)v $  r"   c                     t         } t        d      |      }t        | j                  ||      }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }||d} ||         y )NTr  c                  .    t        j                  dd      S ry  r{  r  r"   r    r|  z8TestNPFunctions.test_tri_n_k_basic.<locals>.n_variations&  r}  r"   c                  .    t        j                  dd      S Nr
  r{  r  r"   r    k_variationsz8TestNPFunctions.test_tri_n_k_basic.<locals>.k_variations)      99S"%%r"   r   r   )r   r   r   r`  )	r  r  r  re  r|  r  rE   r_  r   s	            r    test_tri_n_k_basicz"TestNPFunctions.test_tri_n_k_basic!  s    "T"6*++VU;	$	& A1XF6N  
 A!^ q)v $  r"   c                    t         } t        d      |      }t        | j                  ||      }d }d }d } |       D ]  }d|i} ||         |       D ]  } |       D ]  }	||	d} ||          |       D ]  } |       D ]  }
||
d} ||          |       D ](  } |       D ]  }
 |       D ]  }	||	|
d	} ||         * y )
NTr  c                  .    t        j                  dd      S ry  r{  r  r"   r    r|  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.n_variations<  r}  r"   c                  Z    t         j                  j                  d gt        dd      f      S r  r  r  r"   r    r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.m_variations?  r  r"   c                  .    t        j                  dd      S r  r{  r  r"   r    r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.k_variationsC  r  r"   r   r   r   r   )r   r   r   r`  )r  r  r  re  r|  r  r  rE   r_  r   r   s              r    test_tri_n_m_k_basicz$TestNPFunctions.test_tri_n_m_k_basic7  s    "T"6*++VU;	$	I	& A1XF6N  
 A!^ q)v $   A!^ q)v $   A!^%A#$115F6N ( $  r"   c                      t         } t        d      |       j                           fd}ddt        j                  ddgfD ]
  } ||        y )NTr  c                     j                         5 } dd|        d d d        dt        j                        v sJ y # 1 sw Y   #xY w)Nr  r  r   k must be an integer)rz  r  r  )r   r  r  r  s     r    re  z3TestNPFunctions.test_tri_exceptions.<locals>._checke  sD    '')Vaa  *)S1A1A-BBBB *)s   A  A	r  r2  r  )r   r   r  r   r  )r  r  re  r   r  s   `   @r    test_tri_exceptionsz#TestNPFunctions.test_tri_exceptions^  sQ    "T"6* 	!	C
 dBFFQF*A1I +r"   c                 `      t        d             fd} j                   |      S )NTr  c                      |       } |       }j                  |j                  |j                         t        j                  j	                  ||       y r   )r<  r5  r   testingassert_array_equal)r8   r  r  r  r  r  s      r    re  z:TestNPFunctions._triangular_matrix_tests_m.<locals>._checkp  sA    c{H*CSYY7JJ))#x8r"   r   _triangular_matrix_tests_innerr  r  re  r  s   `` @r    _triangular_matrix_tests_mz*TestNPFunctions._triangular_matrix_tests_mm  s0    "T"6*	9 224HHr"   c                 `      t        d             fd} j                   |      S )NTr  c                 *   t         j                  j                  d gt        dd      f      D ]c  }|i }nd|i} | fi |} | fi |}j	                  |j
                  |j
                         t        j                  j                  ||       e y )Nr  r
  r   )	r  r  r  r  r<  r5  r   r  r  )r8   r   r_  r  r  r  r  r  s        r    re  z<TestNPFunctions._triangular_matrix_tests_m_k.<locals>._check|  s    __22TFE#rN3KL9F!1XF!#00C*6*  HNN;

--c8< Mr"   r  r  s   `` @r    _triangular_matrix_tests_m_kz,TestNPFunctions._triangular_matrix_tests_m_ky  s0    "T"6*
	= 224HHr"   c                 n   fd}fd} |t        j                  d      dz           |t        j                  d      dz
          t        j                  d      j                  ddd	d
              t        j                  g               t        j                  d      j                  d      d d d           t        j                  d      j                  dd             t        j                  d      dz
  j                  d      } |        t        j                  |             y )Nc                      |        | j                  d      }  |        | j                  d      }  |         | j                         y )N)rc  ra  )ra  r2  rH  rH  rK  Tr.   re  s    r    	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_odd  s?    1I		&!A1I		,'A1I133Kr"   c                      |        | j                  d      }  |        | j                  d      }  |         | j                         y )N)rR     rR  r  r  rR  r  r  s    r    
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_even  s?    1I		'"A1I		,'A1I133Kr"   ?   rf  @   ih  rH  rR  r  r  rc  )rH  rH  r}  Forderr  )r   r  rK  r  asfortranarray)r  r  re  r  r  r8   s     `   r    r  z.TestNPFunctions._triangular_matrix_tests_inner  s    		 	"))B-$&'299R=4'( 	ryy~%%aAq12rxx|ryy|##F+DbD12ryy|##F##67yy}t#,,\:sr  %&r"   c                     t        d      |      }| j                          t        j                  d      }| j	                         5 } ||d       | j                  dt        |j                               d d d        y # 1 sw Y   y xY w)NTr  r  r  r  r  r  )r   r  r   r  rz  r  r  r  )r  r  r  r.   r  s        r    _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptions  sk    "T"6* 	!GGFO##%!sOMM0#f6F6F2GH &%%s   0BB
c                 B    t        d      |      }|D ]  } || } || }| j                  t        |      t        |             | j                  t        |      t        |             t	        ||      D ]%  \  }}t
        j                  j                  ||       '  y r  )r   r<  typer  r  r   r  r  )	r  r  rf   r  r   r  r  egs	            r    _triangular_indices_tests_basez.TestNPFunctions._triangular_indices_tests_base  s    "T"6*AqzH)CT(^T#Y7S]CH5Hc*1

--a3 + r"   c                 b    | j                  |t        d      D cg c]  }|g c}       y c c}w )Nr
  r  r  )r  r  rE   s      r    _triangular_indices_tests_nz+TestNPFunctions._triangular_indices_tests_n  s.    ++)$)QaS)$	
$s   
,
c                     | j                  |t        d      D cg c]  }t        | dz
  |dz         D ]  }||g   c}}       y c c}}w )Nr
  r2  r  r  )r  r  rE   r   s       r    _triangular_indices_tests_n_kz-TestNPFunctions._triangular_indices_tests_n_k  sJ    ++"2YEYqb1fa!e0D1aV0DVYE	
Es   #Ac                     | j                  |t        d      D cg c]  }t        d|z        D ]  }||g  c}}       y c c}}w )Nr
  r  r  )r  r  rE   r   s       r    _triangular_indices_tests_n_mz-TestNPFunctions._triangular_indices_tests_n_m  s@    ++"2Y=Ya!e1aVVY=	
=s   Ac                     | j                  |t        d      D cg c]2  }t        | dz
  |dz         D ]  }t        d|z        D ]  }|||g	  4 c}}}        t        d      |      } |d       y c c}}}w )Nr
  r2  r  Tr  )r  r  r   )r  r  rE   r   r   r  s         r    _triangular_indices_tests_n_k_mz/TestNPFunctions._triangular_indices_tests_n_k_m  s    ++ %b	 $	1QBFAE*AEl AY" * 	 $	
 #T"6*a$s   7A7c                     t        d      |      }t        t        t        fD ]  }t	        j
                  t        d      t        d            D ]  \  }}t        j                  ||f|      } ||      } ||      }| j                  t        |      t        |             | j                  t        |      t        |             t        ||      D ]%  \  }	}
t        j                  j                  |	|
       '   y )NTr  r
  r   r  r  boolr  r   r  r   r  r<  r  r  r  r  r  )r  r  r  r5  rE   r   r8   r  r  r  r  s              r    "_triangular_indices_from_tests_arrz2TestNPFunctions._triangular_indices_from_tests_arr  s    "T"6*5$'E ((rE"I>!ggq!fe,!#;Cj  hc;  XC9#.DAqJJ11!Q7 / ? (r"   c           	          t        d      |      }t        t        t        fD ]  }t	        j
                  t        d      t        d            D ]  \  }}t        j                  ||f|      }t        dd      D ]  } ||      } ||      }	| j                  t        |      t        |	             | j                  t        |      t        |	             t        ||	      D ]%  \  }
}t        j                  j                  |
|       '    y )NTr  r
  r  r  )r  r  r  r5  rE   r   r8   r   r  r  r  r  s               r    $_triangular_indices_from_tests_arr_kz4TestNPFunctions._triangular_indices_from_tests_arr_k  s    "T"6*5$'E ((rE"I>!ggq!fe,sBA%c{H*C$$T(^T#Y?$$S]CH= #Hc 21

55a; !3 ( ? (r"   c                 X    t        d      |      }t        |      j                  }| j                         5 } |d       d d d        | j	                  dt        j                               d|v rH| j                         5 } |dd       d d d        | j	                  dt        |j                               d	|v rI| j                         5 } |dd
       d d d        | j	                  dt        |j                               y y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   HxY w)NTr  r  zn must be an integerr   r2  r  r  r   r   zm must be an integer)r   r   
parametersrz  r  r  r  )r  r  r  r  r  s        r    _triangular_indices_exceptionsz.TestNPFunctions._triangular_indices_exceptions  s    "T"6* (33
##%#J &,c&2B2B.CD*'')Va3 *MM0#f6F6F2GH*'')Va3 *MM0#f6F6F2GH  &%
 *)
 *)s#   	DDD DD D)c                     t        d      |      }dD ]a  }t        j                  dg|z        }| j                         5 } ||       d d d        | j	                  dt        j                               c |r`t        j                  ddg      }| j                         5 } ||d       d d d        | j	                  dt        j                               y y # 1 sw Y   xY w# 1 sw Y   <xY w)	NTr  )r   r2  rH  r  zinput array must be 2-dr  r  r  )r   r   r  rz  r  r  r  )r  r  test_kr  ndimsr.   r  s          r    #_triangular_indices_from_exceptionsz3TestNPFunctions._triangular_indices_from_exceptions  s    "T"6*Ee$A'')Va *MM3S9I9I5JK	  AA'')Va3 *MM0#f6F6F2GH	 	 *) *)s   	C"C(C%	(C1c                 X    | j                  t               | j                  t               y r   )r  r   r  r   rR  s    r    test_tril_basiczTestNPFunctions.test_tril_basic      ''/))(3r"   c                 .    | j                  t               y r   )r  r   rR  s    r    test_tril_exceptionsz$TestNPFunctions.test_tril_exceptions      **84r"   c                 T   | j                  t               | j                  t               | j	                  t
               | j                  t               | j                  t               | j                  t               | j                  t
               | j                  t               y r   )	r  r   r  r   r  r   r  r   r  rR  s    r    test_tril_indicesz!TestNPFunctions.test_tril_indices!  x    ((8**+;<**+;<,,-?@++N;++,<=++,<=++,>?r"   c                     | j                  t               | j                  t               | j	                  t        d       | j	                  t        d       y NFT)r  r   r  r   r  rR  s    r    test_tril_indices_fromz&TestNPFunctions.test_tril_indices_from+  B    //0EF112IJ001FN001H$Or"   c                 X    | j                  t               | j                  t               y r   )r  r   r  r  rR  s    r    test_triu_basiczTestNPFunctions.test_triu_basic1  r  r"   c                 .    | j                  t               y r   )r  r  rR  s    r    test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions5  r  r"   c                 T   | j                  t               | j                  t               | j	                  t
               | j                  t               | j                  t               | j                  t               | j                  t
               | j                  t               y r   )	r  r  r  r  r  r
  r  r  r  rR  s    r    test_triu_indicesz!TestNPFunctions.test_triu_indices8  r  r"   c                     | j                  t               | j                  t               | j	                  t        d       | j	                  t        d       y r  )r  r  r  r  r  rR  s    r    test_triu_indices_fromz&TestNPFunctions.test_triu_indices_fromB  r  r"   c                     t         }t        t               }d } |       D ]   }| j                   ||       ||             " y )Nc               3   ,   K   d d d d y w)N)rR  rH  )rR  rU  )r  r  rH  r  r  r  r"   r    inputsz2TestNPFunctions.test_indices_basic.<locals>.inputsL  s     LJJs   )r  r   r  )r  r  r  r  dimss        r    test_indices_basicz"TestNPFunctions.test_indices_basicH  s<    Z 	 HD##F4L%+> r"   c                 P   t        t              }| j                          d}| j                  t              5 } |d       d d d        | j                  |t        j                               | j                  t              5 } |d       d d d        | j                  |t        |j                               | j                  t              5 } |d       d d d        | j                  |t        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)Nz5The argument "dimensions" must be a tuple of integersabc)r  r4  )r  r4  )r   r  r  r   r   r  r  r  )r  r  errmsgr  s       r    test_indices_exceptionz&TestNPFunctions.test_indices_exceptionV  s    Z !H{+v%L ,f&**+	- {+v* ,f&**+	- {+v(O ,f&**+	- ,+
 ,+
 ,+s#   	D	D	DDDD%c                      |||      } |||      }| j                  t        j                  |d |       t        j                  |d |              | j                  t        j                  ||d        t        j                  ||d               y r   r  r   uniquer  r  r  r.   r  r  r  s          r    partition_sanity_checkz&TestNPFunctions.partition_sanity_checkk  sz     !S>Asm 			(4C. 9299S#Y;OP 			(34. 9299SY;OPr"   c           	      8    |||      } |||      }| j                  t        j                  ||d |          t        j                  ||d |                 | j                  t        j                  |||d           t        j                  |||d                  y r   r  r  s          r    argpartition_sanity_checkz)TestNPFunctions.argpartition_sanity_checkx  s     !S>Asm 			!HTcN*; < "		!CI, 7	9 			!HSTN*; < "		!CI, 7	9r"   c           
         t         } t        d      |      }t        dd      D ]F  }t        d|dz
        D ]0  }t        j                  |      }| j
                  j                  |       || j
                  j                  dd      z  }| j
                  j                  |j                        }d|||dz   | | g}t        j                  |      |   }| j                   |||      |   |       | j                   ||j                         |      |   |       | j                   |t        |j                               |      |   |       |D ]  }	| j                  ||||	        3 I y NTr  r
  rE  r2  r  r   )r  r   r  r   r  r  r  r  r  r  r  tolisttupler  
r  r  r  jr  didxr  tgtr   s
             r    test_partition_fuzzz#TestNPFunctions.test_partition_fuzz  sH    "T"6*r2A1a!e_IIaL  #((B//hh&&qvv.#q!a%#r2ggajo''ac(:(+-''ahhj#(>s(C(+-''eAHHJ.?(Ec(J(+- A//q!D  % r"   c                    t         } t        d      |      }t        dd      D ]X  }t        d|dz
        D ]B  }t        j                  |      }| j
                  j                  |       || j
                  j                  dd      z  }| j
                  j                  |j                        }d|||dz   | | g}t        j                  |      |   }| j                  | |||      |      ||          | j                  | ||j                         |      |      ||          | j                  | |t        |j                               |      |      ||          |D ]  }	| j                  ||||	        E [ y r  )r  r   r  r   r  r  r  r  r  argsortr  r  r  r  r  s
             r    test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzz  sd    "T"6*r2A1a!e_IIaL  #((B//hh&&qvv.#q!a%#r2jjmC(''%3-*<(=()#0''%
C*@*E(F()#0''%ahhj0A3*G*L(M()#0 A2265!QG  % r"   c                      t         } t        d      |       j                          t        j                  d      } fd} ||d        ||d        ||d       y )NTr  r
  c                     j                  t              5 } | |       d d d        t        j                        dk(  sJ y # 1 sw Y   $xY wNzkth out of boundsr   r  r  r  r.   r  r  r  r  s      r    re  zETestNPFunctions.test_partition_exception_out_of_range.<locals>._check  B    "":.!a /q{{#':::: /.   
AArH  rE  )r  r   r  r   r  r  r  r.   re  r  s   `   @r    %test_partition_exception_out_of_rangez5TestNPFunctions.test_partition_exception_out_of_range  s[     "T"6* 	! IIbM	;
 	q"q#q'r"   c                      t         } t        d      |       j                          t        j                  d      } fd} ||d        ||d        ||d       y )NTr  r
  c                     j                  t              5 } | |       d d d        t        j                        dk(  sJ y # 1 sw Y   $xY wr  r	  r
  s      r    re  zHTestNPFunctions.test_argpartition_exception_out_of_range.<locals>._check  r  r  r  r  )r  r   r  r   r  r  s   `   @r    (test_argpartition_exception_out_of_rangez8TestNPFunctions.test_argpartition_exception_out_of_range  s[     "T"6* 	! IIbM	;
 	q"q#q'r"   c                     t         } t        d      |       j                           fd}t        j                  d      } ||d        ||d        ||t        j
                  ddt        j                  f             y )	NTr  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNzPartition index must be integerro  r.   r  r  r  r  s      r    re  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._check  E    '')Va *MM;f../1 *)   
A

Ar
        "@ffffff
@r  r2  r  )r  r   r  r   r  r  r  r  r  re  r.   r  s   `   @r    (test_partition_exception_non_integer_kthz8TestNPFunctions.test_partition_exception_non_integer_kth  sm     "T"6* 	!	1 IIbMq#q*q"((Aq"&&>*+r"   c                     t         } t        d      |       j                           fd}t        j                  d      } ||d        ||d        ||t        j
                  ddt        j                  f             y )	NTr  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr  ro  r  s      r    re  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check  r  r  r
  r  r  r2  r  )r  r   r  r   r  r  r  r  s   `   @r    +test_argpartition_exception_non_integer_kthz;TestNPFunctions.test_argpartition_exception_non_integer_kth  sm     "T"6* 	!	1 IIbMq#q*q"((Aq"&&>*+r"   c                      t         } t        d      |       j                           fd} |dd        |dd       y )NTr  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNz(The first argument must be an array-likero  r  s      r    re  zITestNPFunctions.test_partition_exception_a_not_array_like.<locals>._check	  E    '')Va *MMDf../1 *)r  rR  r   Sausages)r  r   r  r  s   `  @r    )test_partition_exception_a_not_array_likez9TestNPFunctions.test_partition_exception_a_not_array_like		  sA    "T"6* 	!	1 	q!z1r"   c                      t         } t        d      |       j                           fd} |dd        |dd       y )NTr  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr$  ro  r  s      r    re  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check 	  r%  r  rR  r   r&  )r  r   r  r  s   `  @r    ,test_argpartition_exception_a_not_array_likez<TestNPFunctions.test_argpartition_exception_a_not_array_like	  sA    "T"6* 	!	1 	q!z1r"   c                      t         } t        d      |       j                           fd} |t        j                  d      d       y )NTr  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNz3The first argument must be at least 1-D (found 0-D)ro  r  s      r    re  zCTestNPFunctions.test_partition_exception_a_zero_dim.<locals>._check0	  E    '')Va *MMOf../1 *)r  r2  r   )r  r   r  r   r  r  s   `  @r    #test_partition_exception_a_zero_dimz3TestNPFunctions.test_partition_exception_a_zero_dim)	  s@    "T"6* 	!	1 	rxx{Ar"   c                      t         } t        d      |       j                           fd} |t        j                  d      d       y )NTr  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr-  ro  r  s      r    re  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check?	  r.  r  r2  r   )r  r   r  r   r  r  s   `  @r    &test_argpartition_exception_a_zero_dimz6TestNPFunctions.test_argpartition_exception_a_zero_dim8	  s@    "T"6* 	!	1 	rxx{Ar"   c                      t         } t        d      |       j                           fd} |t        j                  d      t        j                  d      j                  dd             y )	NTr  c                     j                  t              5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wNzkth must be scalar or 1-Dr$  r  s      r    re  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._checkN	  D    "":.&a /MM5s6;K;K7LM /.   
AAr
  r  rH  r  r  )r  r   r  r   r  rK  r  s   `  @r    .test_partition_exception_kth_multi_dimensionalz>TestNPFunctions.test_partition_exception_kth_multi_dimensionalG	  sV    "T"6* 	!	N
 	ryy}"))A,"6"6q!"<=r"   c                      t         } t        d      |       j                           fd} |t        j                  d      t        j                  d      j                  dd             y )	NTr  c                     j                  t              5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY wr5  r$  r  s      r    re  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._check\	  r6  r7  r
  r  rH  r  r8  )r  r   r  r   r  rK  r  s   `  @r    1test_argpartition_exception_kth_multi_dimensionalzATestNPFunctions.test_argpartition_exception_kth_multi_dimensionalU	  sV    "T"6* 	!	N
 	ryy}"))A,"6"6q!"<=r"   c                      t          t        d            d fd	}t        j                  g       }d|_        |dt        j                  g       fD ]
  } ||        y )NTr  c                 N     | |      } | |      }j                  ||       y r   r  r.   r  r  r  r  r  r  s       r    r  z9TestNPFunctions.test_partition_empty_array.<locals>.checki	  )    a~H3-C##Hc2r"   rH  r  r2  r   r  rU  )r  r   r   r  r~  r  r  r.   r8   r  r  s   `   @@r    test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_arrayc	  sX     "T"6*	3 HHRL b"((2,&C#J 'r"   c                      t          t        d            d fd	}t        j                  g       }d|_        |dt        j                  g       fD ]
  } ||        y )NTr  c                 N     | |      } | |      }j                  ||       y r   r  r?  s       r    r  z<TestNPFunctions.test_argpartition_empty_array.<locals>.check|	  r@  r"   rA  r  rU  )r  r   r   r  r~  rB  s   `   @@r    test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_arrayv	  sX     "T"6*	3 HHRL b"((2,&C#J 'r"   c           	      p   t         } t        d      |      }t        j                  g       } ||d      }| j	                  ||       t        j
                  d      } ||d      }| j	                  ||       t        j                  g d      }|j                         } |t        j                  d      |       | j	                  ||       ddgddgddgfD ]f  }t        j                  |      }t        j                  |      }dD ]5  }	| j	                   |||	      |	   ||	          | j                  ||||	       7 h g d	g d
g dg dg dg dg dg dfD ]f  }t        j                  |      }t        j                  |      }dD ]5  }	| j	                   |||	      |	   ||	          | j                  ||||	       7 h t        j
                  d      }| j	                   ||d      |       t        j                  d      }dD ]2  }	| j                   |||	      |	   |	       | j                  ||||	       4 t        j                  d      d d d   }||j                         t        |j                               fD ]  }
| j                   ||
d      d   d       | j                   ||
d      d   d       | j	                   ||
d       ||
d             | j	                   ||
d       ||
d             | j                  |||d        t        j                  d      }t        j                  ||j                  dz        }|j                  dz  dz   }| j                   |||      |   |       t        j                  d      }t        j                  ||j                  dz  dz         }|j                  dz  dz   }| j                   |||      |   |       t        j
                  d      }d |d<   | j                   ||d!      d   d        | j                   ||d!      d   d       t        j                  |d<   t        j                    ||d!      d         sJ t        j                  d      d"z  }t        j                  t        j                  d      d"z        }| j"                  j%                  |       t'        |j                        D ]5  }| j                   |||      |   ||          | j                  ||||       7 t        j                  g d#      }g d$}| j                  t         |||      |         d%       t        j(                  t        j*                  fD cg c]  }d&D ]  }||f  }}}|D ]  \  }}t        j                  ||'      }| j"                  j%                  |       t        j,                  t        j                  ||'      d(      }t/        | j"                  j$                  |       t'        |j                        D ]  } |||      }| j                  ||   |       t        j0                  j3                  |d | ||          t        j0                  j3                  ||   ||dz   d         | j                  ||||        ! y c c}}w ))NTr  r   r2  rE  r  r  (   r  r   r2  rH  r  r2  rG  r  r2  rH  r  rH  r2  r2  r2  r2  rV  r  r  r2  r2  r  r2  r   r2  r  r  1   r  r  /   r}  r  r  r-  )      @B AB r
  rR  r  r}  ra  r   r2  r  rH  rR  r  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  ra  rc  r   rH     r  r   rH  ra  ra  rc  r  r4  rR  r2  )r  r   r   r  r  r  r  r  r  r  r<  r  r  r,  r  r  isnanr  r  r  rE  r  tilemapr  assert_array_less)r  r  r  r  r  r  okthr6  r  r   r.   r   midr  dtstdd1r  s                      r    test_partition_basicz$TestNPFunctions.test_partition_basic	  s    "T"6*HHRLAqk3'GGAJAqk3' hh{#xxzbiimS!T*a&1a&1a&)AA''!*C''aAA?++FE1a@  * Y	9Y	9>AA''!*C''aAA?++FE1a@ 	> GGBKaQ/ IIbMAU1a[^Q/''q!< 
 IIbM$B$AHHJahhj 11AU1a[^Q/U1b\"-r2##E!RL%2,?##E!SM5B<@''q#> 2 IIgGGAqvv{#ffkAoq#s+S1IIgGGAqvv{Q'ffkAoq#s+S1 GGBK!q'*2.2q'*1-q1vv!xxa)"-... IIbMAggbiima'(qvvAU1a[^SV4''q!<  HH ( )uQ}S12LA!#2:: 6H 6"1r1gg 6HEB		!2&AHHQ1B/8B  "%166]!QK  1q)

,,QrUAaD9

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

,,QrUAaD9

,,QqT1QUV9=..vuaC #  Is   \c           	      0   d}t        j                  |      D ]|  }t         j                  j                  ||| ||   d|z         | j	                  ||d  ||   k\  j                         d|||d  ||   fz         |dz   }| j                  ||||       ~ y Nr   zkth %d)err_msgzkth %d, %r not greater equal %d)r  r2  )r   r  r  rd  r  allr  r  r  r  r  r  prevr   s          r    assert_partitionedz"TestNPFunctions.assert_partitionedU
  s    AJJ((4AaD19A ) ?OOQqrUad]//1"&)*AabE1Q4(8"9  ; q5D''q!< r"   c           	      0   d}t        j                  |      D ]|  }t         j                  j                  ||| ||   d|z         | j	                  ||d  ||   k\  j                         d|||d  ||   fz         |dz   }| j                  ||||       ~ y ro  )r   r  r  rd  r  rq  r  rr  s          r    assert_argpartitionedz%TestNPFunctions.assert_argpartitioned`
  s    AJJ((4AaD19A ) ?OOQqrUad]//1"&)*AabE1Q4(8"9  ; q5D**65!Q? r"   c                 
   t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      } ||d      } ||d        ||t	        j                  |d         d       | j                  | ||d             t	        j                  d      }| j                  j                  |       | j                  t	        j                  d       ||t        t        |j                                           t	        j                  d      }| j                  j                  |       t	        j
                  g d      }| j                  j                  |        |||      } |||       | j                  j                  |       | j                   |||      |       t	        j                  d      d d d	   } | ||d
gdz        d
g        | ||d
gdz  ddgz         d
gdz  ddgz          y NTr  )rH  rR  r  r2  )r   rH  )rj  r}  r  )r2  rH  rb  r  r  r}  r  rR  r  r  )r  r   r   rt  r   r  r  r  r  r  r  r  r  r  )r  r  r  rt  r  r  keyss          r    test_partition_iterativez(TestNPFunctions.test_partition_iterativek
  s    "T"6*$T%<%<feLHH\"!V1f%1R__Q78&A5H#56IIbM		"uQU166]8K/LM IIbMxx&!TN1d#a2 IIbM$B$5QC!G,qc25QC!Gq"g$56a1b'8IJr"   c                 4   t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      }| ||d         } ||d        ||t	        j                   |d         d       | j                  || ||d                t	        j                  d      }| j                  j                  |       | j                  t	        j                  d      | ||t        t        |j                                              t	        j                  d      }| j                  j                  |       t	        j
                  g d      }| j                  j                  |       | |||         } |||       | j                  j                  |       | j                  | |||         |       t	        j                  d      d d d	   } || ||d
gdz           d
g        || ||d
gdz  ddgz            d
gdz  ddgz          y rx  )r  r   r   rv  r   r  r  r  r  r  r  r  r  )r  r  r  rv  r  r  ry  s          r    test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterative
  s    "T"6* '(B(B(.(-!/ HH\"eAva(a6 :;VD1U1h%7#89IIbM		"qq$uQVV}:M1N/OP IIbMxx&eAtna&%4. 115 IIbM$B$aa!q 12QC8aa!qAr7): ;<qcAgB>OPr"   c                 `    t          t        d             fd}d }t        j                  ddd      }t        j                  |dd	 t        j
                   |d
<   t        j
                  |d<   |j                  d      } ||      D ]  }t        dd      D ]  } |||         y )NTr  c           	          | |      } | |      }j                  |d d d d |f   |d d d d |f          t        j                  |j                  d d       D ]  }j                  t        j                  ||   d |       t        j                  ||   d |              j                  t        j                  ||   |d        t        j                  ||   |d                y Nr}  )r  r   ndindexr~  r  )r.   r  r  r  rh  r  r  r  s        r    r  z7TestNPFunctions.test_partition_multi_dim.<locals>.check
  s    a~H3-C##HQ3Y$7Q3YHZZs 34''		(1+ds2C(D(*		#a&#,(?A''		(1+cd2C(D(*		#a&,(?A 5r"   c              3   ,  K   |  | j                    t        j                  |        t        j                  | t        j                         t        j                  | t        j
                         ddt        j
                   dfff y wNr  r  rk  rH  r  r   r  	full_liker  r  rB   s    r    a_variationsz>TestNPFunctions.test_partition_multi_dim.<locals>.a_variations
  j     G##I##A&&,,qRVV44,,qRVV44%"&&!,.00   BBr2  r
  0   rR  ra  rb  rc  rR  rH  rR  rj  rH  )r  r   r   r0  r  r  rK  r  r  r  r  r.   r8   r   r  r  s   `     @@r    test_partition_multi_dimz(TestNPFunctions.test_partition_multi_dim
  s    "T"6*		A	1 KK2r"!Aw!vv!IIi ?C2q\c1 " #r"   c                 `    t          t        d             fd}d }t        j                  ddd      }t        j                  |dd	 t        j
                   |d
<   t        j
                  |d<   |j                  d      } ||      D ]  }t        dd      D ]  } |||         y )NTr  c           
          | |      } | |      }t        j                  |       } t        j                  | j                  d d       }|D ],  }j	                  | |   ||   |      | |   ||   |             . t        j                  |j                  d d       D ]  }j	                  t        j
                  | |   ||   d |          t        j
                  | |   ||   d |                 j	                  t        j
                  | |   ||   |d           t        j
                  | |   ||   |d                   y r  )r   r0  r  r~  r  r  )	r.   r  r  r  r   rh  r  r  r  s	         r    r  z:TestNPFunctions.test_argpartition_multi_dim.<locals>.check
  s8   a~H3-C

1A**QWWSb\*C''!Xa[-=(>()!SVC[(9;  ZZs 34''		!A$x{4C7H2I(J(*		!A$s1vds|2D(EG''		!A$x{347H2I(J(*		!A$s1vcd|2D(EG 5r"   c              3   ,  K   |  | j                    t        j                  |        t        j                  | t        j                         t        j                  | t        j
                         ddt        j
                   dfff y wr  r  rB   s    r    r  zATestNPFunctions.test_argpartition_multi_dim.<locals>.a_variations
  r  r  r2  r
  r  rR  ra  rb  rc  r  rj  rH  )r  r   r   r0  r  r  rK  r  r  s   `     @@r    test_argpartition_multi_dimz+TestNPFunctions.test_argpartition_multi_dim
  s    "T"6*	G	1 KK2r"!Aw!vv!IIi ?C2q\c1 " #r"   c                     t         } t        d      |      }t        j                  ddd      t        j                  d      fD ]  }dD ]  }| j                  ||||         y NTr  r2  r
  r  TFT)TFr}  r   r2  )r  r   r   r0  r  r  r  r  r  r  r  s        r    test_partition_boolean_inputsz-TestNPFunctions.test_partition_boolean_inputs
  s]    "T"6*QB'2E)FFA,++FE1cB - Gr"   c                     t         } t        d      |      }t        j                  ddd      t        j                  d      fD ]  }dD ]  }| j                  ||||         y r  )r  r   r   r0  r  r  r  s        r     test_argpartition_boolean_inputsz0TestNPFunctions.test_argpartition_boolean_inputs  s]    "T"6*QB'2E)FFA,..vuaE - Gr"   c                 @   t         } t        d      |      }| j                          t        j                  ddgddgddgg      j
                  }t        j                  d      dfD ]J  }| j                         5 } |||       d d d        | j                  d	t        j                               L t        j                  t        j                  fD ]O  }| j                  t              5 } |||       d d d        | j                  d
t        j                               Q dD ]O  }| j                  t              5 } |||       d d d        | j                  dt        j                               Q y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   IxY w)NTr  r   r  r2  rR                @)r"  z)ddof must be a real numerical scalar typez)Cannot convert non-finite ddof to integer)r  gffffffzddof must be integral value)r  r   r  r   r  r  r  rz  r  r  r  r  r  r   r  )r  r  r  r   r"  r  s         r    test_cov_invalid_ddofz%TestNPFunctions.test_cov_invalid_ddof	  sR   "T"6* 	!HHq!fq!fq!f-.00IIaL"$D'')Vad# *MMEf../1 % FFBFFND"":.&ad# /MMEf../1 # D"":.&ad# /MM7V=M=M9NO  *) /. /.s$   ;E<-FF<F	F	F	c                       t        d      |      }t         j                  ||d      } fd} |       D ]  } |||i        y )NTr  +=r^  c               3     K   t        j                  ddgddgddgg      j                    j                  j	                  d      j                  dd       t        j                  t        j                  ddgddgddgg      j                          j                  j	                  d      j                  dd      d d d d df    t        j                  g d       t        j                  dd	
       t        j                  t         j                  dt         j                   ddg       t        j                  ddd      j                  dd       d d d d g d d ddg d d t        j                  g        t        j                  g       j                  dd       t        j                  g       j                  dd       d y w)Nr   r  r2  r  r  r  )g&S:?o_?g#~j?甇ZӼ?Q|?r  Tr  r  r  r  rj  rH  !   )皙?皙?g)\(?gRQ?)g
ףp=
?gzG?)r  r  )y        
ףp=
?y        zG?g r}  g333333@rG  r_  )r  r  rh  r  )r2  rH  r  rk  ))r  皙@r  r  )r   r  r  r  randnrK  r  r  r  r  r0  rR  s   r    input_variationsz=TestNPFunctions.corr_corrcoef_basic.<locals>.input_variations(  s    ((QFQFQF34666((..%--a44##BHHq!fq!fq!f-E$F$H$HII((..%--a4Q!V<<((CDD''&T22((BFFFRVVGVVDEE++b!R(00Q77 ;:<<!!OO44i((K$$ ((2,((2,&&q!,,((2,&&q!,,Hs   G2G5)r   r   r`  )r  r  first_arg_namer  re  r  	input_arrs   `      r    corr_corrcoef_basicz#TestNPFunctions.corr_corrcoef_basic$  sK    "T"6*++VUEJ	: *+INI./ ,r"   c                 6    t         }| j                  |d       y )Nr   r  )r$  r  r  r  s     r    test_corrcoef_basicz#TestNPFunctions.test_corrcoef_basicH  s       <r"   c                 6    t         }| j                  |d       y )Nr   r  )r  r  r  s     r    test_cov_basiczTestNPFunctions.test_cov_basicM  s       <r"   c                 D   t         } t        d      |      }t        | j                  ||d      }| j                  j                  d      j                  dd      }d |d d d   f}d	}d	}d
}t        j                  ||||      }	|	D ]  \  }
}}}||
|||d} ||        y )NTr  r  r^  i   r  ra  r}  FT)Nr}  r   r2  r4  T)r   r  r"  r!  r   )	r  r   r   r`  r  r  rK  r  r   )r  r  r  re  r   	y_choicesrowvar_choicesbias_choicesddof_choiceproductsr  r   r!  r"  r_  s                  r    test_cov_explicit_argumentsz+TestNPFunctions.test_cov_explicit_argumentsR  s    "T"6*++VUEJHHNN3''A.!DbD'M	$"/$$Y%1;@%-!AvtT1d"f6F6N &.r"   c                 ,   t         } t        d      |      }t        | j                  ||d      }| j                  j                  d      j                  dd      }d |d d d   f}d	}t        j                  ||      D ]  \  }}|||d
}	 ||	        y )NTr  r  r^  r  r  ra  r}  r  r%  )	r$  r   r   r`  r  r  rK  r  r   )
r  r  r  re  r   r  r  r  r   r_  s
             r     test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_argumentse  s    "T"6*++VUEJHHNN3''A.!DbD'M	$"**9nEIAv17F6N Fr"   c                     t        d      |      }t        | j                  ||d      }t        j                  g d      }t        j                  g d      }||d|i} ||       t        j                  g d      }t        j                  g d	g      }||d|i} ||       t        j                  g d      }d	}||d|i} ||       ||d|i} ||       t        j                  g d      }d
}||d|i} ||       ||d|i} ||       t        j                  g       }t        j                  g       }||d|i} ||       d}d}||d|i} ||       | j
                  j                  dd      }t        j                  g d      j                  dd      dz  }||d|i} ||       t        j                  g d      }t        j                  g dg dg      }||d|i} ||       dD ]W  }t        j                  g d      }t        j                  g dg dg dg      }||d|d|i} ||       ||d|d|i} ||       Y y )NTr  r  r^  r  )rH  r  Q?r  rG  r  r  r  )r  r  rH  r  r  r
  rH  r2  r  )rR  r  r  r   )r   r   r`  r   r  r  r  rK  )	r  r  r  r  re  r   r  r_  r   s	            r    cov_corrcoef_edge_casesz'TestNPFunctions.cov_corrcoef_edge_casess  s5   "T"6*++VUEJ HH_%HH^$ !S!,vHHYHHl^$ !S!,vHHY !S!,v !S!,vHHY !S!,v !S!,vHHRLHHRL !S!,v !S!,vHHNN2q!HH_%--a3b8 !S!,vHH_%HHnn56 !S!,v!F)A...IJA$aa6BF6N$aa6BF6N "r"   c                     t         }| j                  |d        t        d      |      }t        | j                  ||d      }t
        j                  t
        j                   ddfD ]  }d|i} ||        y )	Nr   r  Tr  r  r^  rk  r   )r$  r  r   r   r`  r   r  r  r  r  r  re  r   r_  s         r    test_corrcoef_edge_casesz(TestNPFunctions.test_corrcoef_edge_cases  sn    $$VC$@"T"6*++VUEJ&&266'5!,A1XF6N -r"   c                     t         } t        d      |      }t        | j                  ||d      }d}d|i} ||       y )NTr  r  r^  ))r  }Ô%IT)r  r  r   )r$  r   r   r`  r  s         r    &test_corrcoef_edge_case_extreme_valuesz6TestNPFunctions.test_corrcoef_edge_case_extreme_values  sE    "T"6*++VUEJ /qvr"   c                     t         }| j                  |d        t        d      |      }t        | j                  ||d      }t        j                  ddgd	d	gddgg      j                  }|d
d} ||       y )Nr   r  Tr  r  r^  r   r  r2  r  )r   r"  )r  r  r   r   r`  r   r  r  )r  r  r  re  r   r_  s         r    test_cov_edge_casesz#TestNPFunctions.test_cov_edge_cases  s{    $$VC$@"T"6*++VUEJ HHq!fq!fq!f-.00!$vr"   c                     t         } t        d      |       j                           fd}t        j                  d      } ||       d} ||       g dgg} ||        fd}t        j                  d      }t        j                  d      } |||       t        j
                  d      }d	} |||       t        j                  d
      }t        j                  d      } j                  t              5 } ||       d d d         j                  dt        j                               t        j
                  g d      j                  dd
      } j                  t              5 } |       d d d         j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)NTr  c                     j                         5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nzm has more than 2 dimensionsro  )r   r  r  r  s     r    _check_mz5TestNPFunctions.test_cov_exceptions.<locals>._check_m  s@    '')Va *MM8#f>N>N:OP *)s   	A		Ar  r  ra  )))rG  r  c                     j                         5 } | |       d d d        j                  dt        j                               y # 1 sw Y   /xY w)NrD  zy has more than 2 dimensionsro  )r   r  r  r  r  s      r    _check_yz5TestNPFunctions.test_cov_exceptions.<locals>._check_y  sB    '')Va1 *MM8#f>N>N:OP *)rq  r  )r  r  r  )))rg  r  r'  rH  rR  rD  z$m and y have incompatible dimensionsr  r2  z/2D array containing a single row is unsupported)r  r   r  r   r  r  r  r   r  r  r  r  rK  RuntimeError)r  r  r  r   r  r  r  r  s   `      @r    test_cov_exceptionsz#TestNPFunctions.test_cov_exceptions  se   "T"6* 	!	Q
 GGI([M	Q
 GGFOGGIAHH_%!AIIaLIIaLz*f!qM +<&**+	-
 HH_%--a3|,!H -G&**+	- +* -,s   >F)2	F5)F25F>c                 N   t         } t        d      |      }t        | j                  ||      }d }d } |t	        j
                  ddd            D ]P  }d|i} ||        ||      D ]7  }||d	} ||       ||d
} ||        ||      D ]  }	|||	d} ||        9 R y )NTr  c              3   ^   K   d  |  | j                  t        j                         y wr   )r  r   r  rB   s    r    to_variationsz9TestNPFunctions.test_ediff1d_basic.<locals>.to_variations  s#     JG((288$$s   +-c              3      K   |  | j                  ddd       | j                  t        j                         y w)NrH  r  )rK  r  r   rE  rB   s    r    ary_variationsz:TestNPFunctions.test_ediff1d_basic.<locals>.ary_variations  s1     G))Aq!$$((288$$s   <>r  ra  rQ  r(  )r(  r*  )r(  r)  )r(  r*  r)  )r'  r   r   r`  r   r0  )
r  r  r  re  r  r  r(  r_  r.   r/   s
             r    test_ediff1d_basicz"TestNPFunctions.test_ediff1d_basic  s    "T"6*++VU;	%
	%
 ""++b!R"89CS\F6N"3'!$!4v!$2v&s+A%(a1EF6N , (	 :r"   c                 
   t         } t        d      |      }| j                          | j                         5 } |t	        j
                  d             d d d        d}|t        j                        v sJ y # 1 sw Y   %xY w)NTr  )TTFz+Boolean dtype is unsupported (as per NumPy))r'  r   r  rz  r   r  r  r  )r  r  r  r  r  s        r    test_ediff1d_exceptionsz'TestNPFunctions.test_ediff1d_exceptions$  sr    "T"6* 	!##%"((./0 & <c!++&&&&	 &%s   A99Bc                 f   t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & | j                  t              5 } |d       d d d        | j                  dt        j                  z  t        j                               y # 1 sw Y   @xY w)NTr  c               3      K   t        j                  d      j                  dd       t        j                  d      j                  ddd       d ddgddgf y w)	Nr
  r  r  r  r2  r  r2  rH  rR  ru  r  r"   r    r  z7TestNPFunctions.test_fliplr_basic.<locals>.a_variations5  sV     ))B-''1--))B-''1a00Oq6Aq6##s   AA!r  zCannot np.fliplr on %s type)
r   r   r  r   r   r  r	   unicode_typer  r  r  r  r  r  r.   r  r  r  s           r    test_fliplr_basicz!TestNPFunctions.test_fliplr_basic1  s    "T"6*	$ AayH(C##Hc2  
 {+v%L , 	3e6H6HH&**+	- ,+   	B''B0c                 r   t         } t        d      |      }| j                          | j                  t              5 } |t        j                  d             d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NTr  rH  cannot index arrayzwith 2 indices)
r   r   r  r   r   r   r  r  r  r  r  s       r    test_fliplr_exceptionz%TestNPFunctions.test_fliplr_exceptionF  s    "T"6* 	!{+v"))A, , 	*C0@0@,AB&F,<,<(=>	 ,+s   B--B6c                 f   t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & | j                  t              5 } |d       d d d        | j                  dt        j                  z  t        j                               y # 1 sw Y   @xY w)NTr  c               3      K   dg t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       d ddgddgf y w)	Nr2  r
  r  r  r  r  rH  rR  ru  r  r"   r    r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variationsW  sk     #I))B-))B-''1--))B-''1a00Oq6Aq6##s   A;A=r  zCannot np.flipud on %s type)
r   r   r  r   r   r  r	   r  r  r  r  s           r    test_flipud_basicz!TestNPFunctions.test_flipud_basicS  s    "T"6*	$ AayH(C##Hc2  
 {+v%L , 	3e6H6HH&**+	- ,+r  c                 L   t         } t        d      |      }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               | j                  dt        |j                               y # 1 sw Y   TxY w)NTr  r2  r  zwith 1 indices)r   r   r  r   r   r  r  r  r  s       r    test_flipud_exceptionz%TestNPFunctions.test_flipud_exceptionj  s    "T"6* 	!{+v!H , 	*C0@0@,AB&F,<,<(=>	 ,+s   	BB#c                 D   t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & | j                  t              5 } |d       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)NTr  c               3     K   t        j                  d       t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)Nr2  r
  r  r  r  rJ  r  r"   r    r  z5TestNPFunctions.test_flip_basic.<locals>.a_variations{  sZ     ((1+))B-))B-''1--))B-''1a00s   A?BrG  zCannot np.flip on UniTuple)r   r   r  r   r   r  r  r  r  s           r    test_flip_basiczTestNPFunctions.test_flip_basicw  s    "T"6*	1 AayH(C##Hc2  
 {+v) , 	2C8H8H4IJ ,+s   	BBc                     d }t         } t        d      |      } |       D ]3  \  }}t        j                  j	                   |||       |||             5 y )Nc               3     K   d d d d d d d d d	t         j                  f d	t         j                  f t        d
k  r	t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f y y wN)r2  rZ  )r}  rZ  )r}  r}  r  )rZ  r}  r        N@      Nr  )r  r  r  r  r   r2  r  r  r        ?       @      @      @      ?             @                   @r   r  pir   r  r  r"   r    r  z4TestNPFunctions.test_logspace2_basic.<locals>.inputs      KLMMLOrtt)Oruu*v%ll1or||A66ll2&R(888ll1or||B'777ll6*BLL,@@@ll6*BLL,@@@ll7+R\\&-AAA &   EETr  )r   r   r   r  assert_allcloser  r  r  r  r   r   s         r    test_logspace2_basicz$TestNPFunctions.test_logspace2_basic  R    	B( "T"6*!8KE4JJ&&veT':E%<NO $r"   c                     t        d      t              }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NTr  r  r  +The first argument "start" must be a number+The second argument "stop" must be a number)r   r   r  r   r   r  r  r  r  r  r  s      r    test_logspace2_exceptionz(TestNPFunctions.test_logspace2_exception  s    "T"9-!{+v%O ,C&**+	- {+v!UO ,C&**+	- ,+
 ,+s   
C 
C C	Cc                     d }t         } t        d      |      } |       D ]3  \  }}t        j                  j	                   |||       |||             5 y )Nc               3     K   d d d d d d d d d	t         j                  f d	t         j                  f t        d
k  r	t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f y y wr  r  r  r"   r    r  z4TestNPFunctions.test_logspace3_basic.<locals>.inputs  r  r  Tr  r   r   r   r  r   r  s         r    test_logspace3_basicz$TestNPFunctions.test_logspace3_basic  r  r"   c           	          d }t         } t        d      |      } |       D ]6  \  }}}t        j                  j	                   ||||       ||||             8 y )Nc               3     K   d d d d d d d d d	t         j                  d
f d	t         j                  df t        dk  rt        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df y y w)N)r2  rZ  r  )r}  rZ  rE  )r  r}  rI  r}  r  r  )rZ  r}  rZ  r  r  F   r  r  P   )r  r  Z   r  r  rE  r  r2  r  rI  r  r  r  rZ  r  r  r  r  r  r  r  r  r  r  r"   r    r  z=TestNPFunctions.test_logspace3_with_num_basic.<locals>.inputs  s    O!!  rttR-ruub. v%ll1or||A::ll2&R(8"<<ll1or||B'7;;ll6*BLL,@"DDll6*BLL,@"DDll7+R\\&-A2EE &s   E%E'Tr  r  r  r  r  r  r   r   r   s          r    test_logspace3_with_num_basicz-TestNPFunctions.test_logspace3_with_num_basic  s]    	F( "T"6* &E4JJ&&veT3'?',UD#'>@ !)r"   c                 b    t        d      t              }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |ddd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)	NTr  r  r  r  r  r   z+The third argument "num" must be an integer)r   r   r  r   r   r  r  r  r  s      r    test_logspace3_exceptionz(TestNPFunctions.test_logspace3_exception  s    "T"9-!{+v%O ,C&**+	- {+v!UO ,C&**+	- {+v!Q ,C&**+	- ,+
 ,+
 ,+s#   
D
DD%DD"%D.c                     d }t         } t        d      |      } |       D ]'  \  }}| j                   |||       |||      d       ) y )Nc               3     K   d d d d d d d dt        j                  d	      f t        j                  d	      df d
t        j                  d	      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d	      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f t        j                  d      t        j                  d      f y w)Nr  r  r  )r2  r  )r  r2  )r2     )r}  r}  r  r  r               @@r  r  r2  r  r  r  r  r  r  r  r   r  r  r"   r    r  z5TestNPFunctions.test_geomspace2_basic.<locals>.inputs  sK    MOMMLObll2&&&,,r"B&&R(((,,r"BLL$777,,w'f)===,,q/2<<?22,,r"BLL$444,,q/2<<#333,,v&V(<<<,,v&V(<<<,,w'f)===s   G	GTr  g-q=r^  )r   r   r  r  s         r    test_geomspace2_basicz%TestNPFunctions.test_geomspace2_basic  sX    	>* "T"6*!8KE4##F5$$7$)%$6,1 $ 3 $r"   c                     t        d      t              }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   TxY w)	NTr  r  r  %The argument "start" must be a number$The argument "stop" must be a numberr   &Geometric sequence cannot include zero)	r   r   r  r   r   r  r  r  r  r  s      r    test_geomspace2_exceptionz)TestNPFunctions.test_geomspace2_exception"  s5   "T":.!{+v%O ,=&**+	- {+v!UO ,<&**+	- z*f!QK +>&**+	- z*f!QK +>&**+	-# ,+
 ,+
 +*
 +*s/   
E
E%
E1 
E=E"%E.1E:=Fc           	          d }t         } t        d      |      } |       D ]*  \  }}}| j                   ||||       ||||      d       , y )Nc               3     K   d d d d d d d d d	t        j                  d
      df t        j                  d
      d	df dt        j                  d
      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d
      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      df t        j                  d      t        j                  d      d f t        j                  d!      t        j                  d      d"f y w)#Nr  r  r  )r2  r  rR  )r2  r  rH  )r  r2  rR  )r2  r  rc  )r  r}  rR  r}  r  r
  r  r  rE  r  r  rR  r  r  r  r2  r  rI  r  r  rZ  r  r  r  r  r  r  r  r  r  r  r"   r    r  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs=  sl    !!Obll2&**,,r"B**R(",,,,r"BLL$7::,,w'f)=q@@,,q/2<<?B66,,r"BLL$4b88,,q/2<<#3R77,,v&V(<b@@,,v&V(<b@@,,w'f)=rAAs   GGTr  r  r^  )r   r   r  r  s          r    test_geomspace3_basicz%TestNPFunctions.test_geomspace3_basic;  s`    	B, "T"6* &E4##F5$$<$)%s$;,1 $ 3 !)r"   c                     t        d      t              }| j                          | j                  t              5 } |ddd       d d d        | j                  dt        j                               | j                  t              5 } |ddd       d d d        | j                  dt        |j                               | j                  t              5 } |ddd       d d d        | j                  dt        |j                               | j                  t              5 } |d	dd       d d d        | j                  d
t        |j                               | j                  t              5 } |dd	d       d d d        | j                  d
t        |j                               y # 1 sw Y   dxY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w)NTr  r  r  r
  r!  r"  z%The argument "num" must be an integerr   r#  )	r   r   r  r   r   r  r  r  r  r  s      r    test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exception[  s   "T":.!{+v%B ,=&**+	- {+v!UB ,<&**+	- {+v!R ,=&**+	- z*f!QN +>&**+	- z*f!QN +>&**+	-- ,+
 ,+
 ,+
 +*
 +*s;   F)	F6G#G0G)F36G GGG$c                 	    t        d      t              } t        d      t              }t        } |dd      }| j                  t	        |      d        |ddd      }| j                  |d   d	        |ddd
      }| j                  | |ddd
              |ddd      }| j                  | |ddd             | j                  |j                  D cg c]  }|dk(  	 c}        |ddd      }| j                  | |ddd             | j                  |j                  D cg c]  }|dk(  	 c}        |ddd      }| j                  | |ddd             | j                  |j                  D cg c]  }|dk(  	 c}       d}d} |||d      }| j                  |d   |        |||d      }| j                  |d   |       | j                  |d   |       t        j                  d      5   |ddd      }d d d        | j                  |d   d       | j                  t        j                  |dd       j                                | j                  |d   d        |ddd      }| j                  | |ddd      d       | j                  |j                  D cg c]  }|dk(  	 c}        |ddd      }| j                  | |ddd      d       | j                  |j                  D cg c]  }|dk(  	 c}        |d d!d      }| j                  | |d d!d      d        |d"d#d      }| j                  | |d"d#d      d       t        d$k  r& |d%d&d      }| j                  | |d%d&d              |d'd(d      }| j                  | |d'd(d      d)        |d'd*d      }| j                  | |d'd*d      d)        |d(d+d      }| j                  | |d(d+d      d)        |d'd(d      }| j                  | |d'd(d      d)        |d,d-d
      }| j                  | |d,d-d
      d        |d'd.d      }| j                  | |d'd.d              |d.d'd      }| j                  | |d.d'd             y c c}w c c}w c c}w # 1 sw Y   xY wc c}w c c}w )/NTr  r2  r  r  r  r   r}  rX  ra  rb  r  rH  r   irh  gL4@ignore)invalidrj  rR  g      r4  r  y              0@r  r  r^  y             y            @tvIh%<=r  y     @@     @@y            ?y     @     @@r  r  r  r  y              gV瞯<y      @        y              y             y      @      @r  )r   r   r   r<  r  r  r  imagr   errstatera  rq  realr   )r  cfunc2cfunc3pfunc3r  r   r   r   s           r    test_geomspace_numpyz$TestNPFunctions.test_geomspace_numpyy  s   #d#J/#d#J/ 1cNQ$1cs#2(1cq!6!CQ#781aQ6!QA#670Aa012t#6"d#:;0Aa014#6$#:;0Aa01 5$A&!e,5$A&!e,"t, [[*r1!$A + 	!d+1R)--/0!c* 2s"6"cq#95I0Aa0131%6#u!#<eL0Aa016<Q/ &v| C(- 	  	/ 7Mq1 &w1 E(- 	  	/
 6!wA.A##Avgv1'EF67A&6&'1#=uM661%6&&!#<eL7FA&6'61#=uM67A&6&'1#=uM7FA&6'61#=uM2r16"b!#452r16"b!#45I 1 1 1 +* 1 1s*   R#.R( R-R26R?
S2R<c                     t         } t        d      |      }d } |       D ]$  } ||      } ||      }| j                  ||       & y )NTr  c               3      K   t        j                  d      j                  dd       t        j                  d      j                  ddd       t        j                  d      j                  dddddd       y wNr
  r  r  r  r  ru  r  r"   r    r  z6TestNPFunctions.test_rot90_basic.<locals>.a_variations  a     ))B-''1--))B-''1a00))B-''1aAq99   A<A>)r   r   r  )r  r  r  r  r.   r  r  s          r    test_rot90_basicz TestNPFunctions.test_rot90_basic  sM    "T"6*	:
 AayH(C##Hc2  r"   c                     t         } t        d      |      }d } |       D ]7  }t        dd      D ]&  } |||      } |||      }| j                  ||       ( 9 y )NTr  c               3      K   t        j                  d      j                  dd       t        j                  d      j                  ddd       t        j                  d      j                  dddddd       y wr7  ru  r  r"   r    r  z=TestNPFunctions.test_rot90_with_k_basic.<locals>.a_variations  r8  r9  r  r  )r   r   r  r  )r  r  r  r  r.   r   r  r  s           r    test_rot90_with_k_basicz'TestNPFunctions.test_rot90_with_k_basic  sa    "T"6*	:
 A2q\!!Q<Aqk''#6 "  r"   c                    t         } t        d      |      }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      j                  dd      d       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d	             d d d        | j                  d
t        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)NTr  r  z'The first argument "m" must be an arrayrR  r  r  z*The second argument "k" must be an integerrH  zInput must be >= 2-d.)r   r   r  r   r   r  r  r  r   r  rK  r  s       r    test_rot90_exceptionz$TestNPFunctions.test_rot90_exception  s   "T"6* 	!{+v%L , 	?&**+	- {+v"))A,&&q!,6 , 	B&**+	- {+v"))A, , 	-s63C3C/DE ,+ ,+ ,+s#   	E	.E9EEEE$c                     |} t        d      |      }d } |       D ]5  } || } || }t        j                  j                  |t	        |             7 y )NTr  c               3     K   t        j                  d      } | df | ddf | g df t        |       g df t        |       g df | g ddf t        |       g ddf t        |       g ddf t        j                  d      j	                  ddd      } | df | ddf | ddf | g df | g ddf | g ddf | dd	gf | dd	gdf | dd	gdf | dgd
f | dgdf | dgdf | t        j
                  g t         j                        df t        j                  d      j	                  dd
      } | df | ddf | dgdf | ddf | t        j                  ddd      df | df | t        j                  d      dff t        j
                  g       } | df | df | ddf | ddf t        j
                  g g      } | df | ddf | ddf | ddf y w)Nr  r  r   )r2  rR  H   r  rR  r2  )r  r2  r  rH  r}  r  rj  r4  r  r
  r2  ru  )r   r  r  r  rK  r  rF  rE  rB   s    r    args_variationsz5TestNPFunctions._check_split.<locals>.args_variations	  s?    		#AQ$JQ'MZ-q':%%(J&&Z""q':q(((J))		"%%aA.AQ$JQ'MQ'MY,Y/!Y/!aV)OaVQ,aVQ,aS"*aS"*aS"*RXXb1144		#&&q"-AQ$JQ'MaS!)OR(NRYYr2r*A--T'Mbhhqk2&&&AQ$JQ$JVQ,Q'M"AQ$JVQ,Q'MQ'Ms   H	Hr   r   r  assert_equalr  r  r6  r  r  rD  rf   r  r  s           r    _check_splitzTestNPFunctions._check_split  sW    "T"6*-	^ $%Dt}H,CJJ##Hd3i8	 &r"   c                     |} t        d      |      }d } |       D ]5  } || } || }t        j                  j                  |t	        |             7 y )NTr  c               3     K   t        j                  d      df t        t        j                  d            df t        t        j                  d            df t        j                  d      j	                  dd      df y w)Nrb  rH  rt  rQ  r  r  )r   r  r  r  rK  r  r"   r    rD  z;TestNPFunctions._check_array_split.<locals>.args_variationsC  sh     ))A,/!ryy|$a''		!%q(())B-''A.11s   BB
rE  rG  s           r    _check_array_splitz"TestNPFunctions._check_array_split>  sV    "T"6*	2 $%Dt}H,CJJ##Hd3i8	 &r"   c                 X    | j                  t               | j                  t               y r   )rH  r   rK  rR  s    r    test_array_split_basicz&TestNPFunctions.test_array_split_basicO  s    +&,r"   c                 4   | j                  t               | j                          | j                  t              5 } t        t              t        j                  d      d       d d d        | j                  dt        j                               | j                  t              5 } t        t              t        j                  d      dgd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nr  r  z0array split does not result in an equal divisionrH  rj  r5   z%np.split: Argument axis out of bounds)rH  r   r  r   r  r   r   r  r  r  r  )r  r  s     r    test_split_basicz TestNPFunctions.test_split_basicS  s    % !z*fDK
A& +>  !	

 z*fDK
QCb1 +=&**+	- +* +*s   *D'-DDDc           
          d }d }d } |        |        |       g}t         ddft        ddft        dd	ffD ]T  \  }}}|}t        |      }	t	        |d
      D ]2  }
||
dz
     D ]%  \  }}| j                   |||       |	||             ' 4 V y )Nc               3   x   K   t        j                  g d      df t        j                  g d      df y w)Nrl  r  r  r  r4        @r  r  r"   r    inputs1Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs1Dg  s/     ((<(!++((+,a//s   8:c               3   R  K   t        j                  g dg dg      df t        j                  g dg dg      df t        j                  d      j                  dd      df t        j                  d      j                  dd      t        j                  ddg      f t        j                  d      j                  dd      ddgf t        j                  d      j                  dd      df t        j                  d	      j                  ddd      df y w)
Nrl  r  rR        0@rR  rH  r  rH  r  r5  rJ  r  r"   r    inputs2Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs2Dl  s     ((L,78!;;((,.>?@!CC))D/))!Q/22))D/))!Q/1a&1AAA))D/))!Q/!Q77))D/))!Q/77))C.((Aq1144s   D%D'c               3   (  K   t        j                  g dg dgg dg dgg      df t        j                  d      j                  ddd      df t        j                  d      j                  ddd      t        j                  ddg      f t        j                  d      j                  ddd      ddgf t        j                  d      j                  ddd      df t        j                  d      j                  ddd      df y w)	Nrl  r  rV  rR  rH  r  rW  r5  rJ  r  r"   r    inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3Dv  s     HH|#%##%& ' )** ))D/))!Q2A55))D/))!Q2BHHaV4DDD))D/))!Q2QF::))D/))!Q2F::))C.((Aq1144s   DDr  r   r2  r   rH  r   rR  )r   r   r   r   r  r  )r  rT  rX  rZ  r  fmindimnamer  r  r  r.   r   s                r    test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basicc  s    	0
	5
	5 *hj(*5#)1h"7#)1h"7#)1h"7"9Q FLE61%%+AE]MAz++F1j,A,1!Z,@B &3 &"9r"   c           	         t         ddft        ddft        ddffD ]  \  }}} t        d      |      }| j	                          | j                  t              5 } |dd       d d d        | j                  d	t        j                               | j                  t              5 } |d
d       d d d        | j                  d	t        |j                               | j                  t              5 } |t        j                  g dg dg      d
       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      d       d d d        | j                  |dz   t        |      z   dz   t        |j                                y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w)Nr  r   r2  r   rH  r   Tr  z#The argument "ary" must be an arrayr  rl  z:The argument "indices_or_sections" must be int or 1d-arrayz only works on arrays of z or more dimensions)r   r   r   r   r  r   r   r  r  r  r   r  r  )r  r[  r\  r]  r  r  s         r    test_vhdsplit_exceptionz'TestNPFunctions.test_vhdsplit_exception  s   #)1h"7#)1h"7#)1h"7"9Q 'C&q)E##%"";/6a 0MM?f../1"";/6eQ 0MM?f../1"";/6bhhl;<eD 0MM &f../1 "":.&bhhqk1% /MM$!<<s6{J/0f../1)"9
 0/ 0/ 0/
 /.s0   
F7&
G2#GG7G	G	G	G&	c                     t         } t        d      |      }d }d } |       D ]2  } |       D ]&  } |||      } |||      }| j                  ||       ( 4 y )NTr  c               3     K   t        j                  d       t        j                  d      j                  ddd       g d d d d d	 t        j                  t        j                  d
t         j
                  gt         j                  dgg             t        j                  g        d y w)Nra  rZ  rH  rR  r  )r  r  r  r  F)rc  r  g333333@r  )r   r  rK  r  r  r  r  r  r"   r    r  z5TestNPFunctions.test_roll_basic.<locals>.a_variations  s     ))A,))I&..q!Q77!!%%KGJ##BHHsBFFmbffc]-K$LMM((2,Hs   B>C c                  X    t         j                  j                  dt        dd      f      S )NrI  r  r
  r  r  r"   r    shift_variationsz9TestNPFunctions.test_roll_basic.<locals>.shift_variations  s,    ??00-27R.2B C Cr"   )r,  r   r  )	r  r  r  r  rd  r.   r-  r  r  s	            r    test_roll_basiczTestNPFunctions.test_roll_basic  se    "T"6*
		C A)+!!U+Auo''#6 ,  r"   c                    t         } t        d      |      }| j                          dD ]R  }| j                         5 } |t	        j
                  d      |       d d d        d}|t        j                        v rRJ  y # 1 sw Y   'xY w)NTr  )r  r  r
  zshift must be an integer)r,  r   r  rz  r   r  r  r  )r  r  r  r-  r  r  s         r    test_roll_exceptionsz$TestNPFunctions.test_roll_exceptions  sz    "T"6* 	! E'')QbiimU+ * -C#akk**** !))s   BB
	c           	         t         } t        d      |      }t        | j                  ||      }t	        j
                  d      }| j                  j                  |       t        dd      D ]  }||kD  } |||d        t	        j
                  d      j                  dd	d
      }|dkD  } |||d       d}t	        j                  d
      j                         } |||d       g d}g d} |||d       t	        j                  ddd      }ddt        j                  ddddddf	}t        j                  |d      D ];  } |||d        |t	        j                   |      j                  dd      |d       = t	        j                   g d      }t	        j                   g       } |||d       t	        j                   g d      }t	        j                   g d      } |||d       t	        j                   g dg dg      }g d} |||d       t	        j                   g dg dg      }t	        j                   g d      j                  ddd      } |||d       t	        j"                  t	        j
                  d      j                  d
dd	            }t	        j$                  dd      } |||d        |||d d d   d       t	        j                   d      }dD ]  } |||d        d}d} |||d       t	        j                   d      }t	        j                   ddg      } |||d       t	        j
                  d      }t	        j                   g d       j                  dd
      d!z  } |||d       y )"NTr  r
  rj  r  r?  rZ  rR  r  rH  gffffff&@)rG  rH  rR  r  r_  )r  r  r  r  r)  r  r  Fr}  r  g333333r2  r  y              ?r  rG  )r2  r   r2  r   r_  )r2  r   r2  r   r2  r   )r2  r   r2  r   r2  r   r   r   rJ  rE  )r2  r   r2  r   r   r   r  )r>  r   r   r`  r   r  r  r  r  rK  eyeflattenr0  r  r  combinations_with_replacementr  r  r^  )r  r  r  re  r.   	thresholdr  r  s           r    test_extract_basicz"TestNPFunctions.test_extract_basic  s   "T"6*++VU;IIbMr2Iy=Da01 ' IIbM!!!Q*4xT!,--vvay  "T!,- T!,-KKB"eRVVRtQTJ;;L!LDa01$!7!71!=aHI M HHYxx|T!,-HHYxx%T!,-HHi+,!T!,-HHi+,xx0199!QBT!,-biim33Aq!<=yy$T!,-T!DbD'23HHQKDa01  T!,-HHQKxxu&T!,-IIaLxx*+33Aq9B>T!,-r"   c                 @    t         } t        d      |       j                          t        j                  g       }t        j                  g d      } j                  t              5 } ||       d d d         j                  dt        j                                fd}t        j                  g dg dg      }g d} |||       t        j                  g d      }t        j                  g d      } |||       t        j                  d      }d	} |||       t        j                  d
      }t        j                  g d      } |||       t        j                  d
      }t        j                  g d      } |||       y # 1 sw Y   xY w)NTr  rG  z"Cannot extract from an empty arrayc                     d}j                  t              5 } | |       d d d        j                  |t        j                               y # 1 sw Y   /xY w)Nz+condition shape inconsistent with arr shaper$  )r  r.   r  r  r  r  s       r    re  z7TestNPFunctions.test_extract_exceptions.<locals>._check  sF    ?C"":.!dA /MM#s1;;/0 /.s   
AA)r2  r   r2  r   r2  r   r2  )r2  r   r2  r   r2  rZ  rJ  rR  )TFFFT)TFTFFTF)r>  r   r  r   r  r   r  r  r  r  r  )r  r  r.   r  r  re  r  s   `     @r    test_extract_exceptionsz'TestNPFunctions.test_extract_exceptions  s3   "T"6* 	!HHRLxx	"z*a$N +:C<LM	1 HHi+,$tQHHYxx(tQHHRLtQIIaLxx9:tQIIaLxxFGtQ9 +*s   ,
FFc                 p   t         } t        d      |      }t        | j                  ||      }g d} |d|i       d} |d|i       t	        j
                  d      j                  dd      } |d|i       t	        j                  d	d
d      j                  ddd      } |d|id       | j                  j                  |        |d|id       t	        j                  g       } |d|i       t	        j                  dt        j                  t        j                  t        j                   dg      } |d|i       t	        j
                  d      t	        j                  dd
d      dz  z   } |d|i       t	        j                  g t        j                        } |d|i       d} |d|i       y )NTr  rG  r  )rH  r2  r  r  r  r  rH  r  r  r
  rZ  rR  r-  r^  rk  r  r   r  r4  r  )rE  r   r   r`  r   r  rK  r0  r  r  r  r  r  r  r  r  r  re  r  s        r    test_np_trapz_basicz#TestNPFunctions.test_np_trapz_basic9  sp   "T"6*++VU;QxQxIIbM!!!Q'QxKKR$,,Q15Qx'Qx'HHRLQxHHeRVVRVVbffWa89QxIIbMBKK2r2R77QxHHRr}}-QxQxr"   c                    t         } t        d      |      }t        | j                  ||      }g d}g d} |||d       g d}d} |||d       d}g d} |||d       t	        j
                  g d      }d	d	g} |||d       t	        j
                  g       }t	        j
                  d
dg      } |||d       d}d } |||d       t	        j                  d      j                  dd	      }t	        j
                  d	dg      } |||d       t	        j                  d      j                  dd	      }t	        j
                  g d      } |||d       t	        j                  d      j                  dd	d      }t	        j
                  d	dg      } |||d       t	        j                  d      j                  dd	d      }t	        j
                  g d      } |||d       t	        j                  d      j                  dd	d      }| j                  j                  |       |dz   }| j                  j                  |        |||d       t	        j                  d      }|t	        j                  ddd      dz  z   } |||d       t	        j
                  g d      }t	        j
                  ddg      } |||d       y )NTr  rG  rR  r  rb  rG  ri  )rR  r  rR  r  r  ra  rb  rR  r  rH  r  r  rj  rZ  )rR  r  ra  r  r   r
  r  r  r  )rH  r   r   r`  r   r  r  rK  r  r  r0  )r  r  r  re  r  r   s         r    test_np_trapz_x_basicz%TestNPFunctions.test_np_trapz_x_basic\  sr   "T"6*++VU;QQ QQ QQ HH_%FQQ HHRLHHaVQQ QQ IIbM!!!Q'HHaVQQ IIbM!!!Q'HH\"QQ IIbM!!!Q*HHaVQQ IIbM!!!Q*HHYQQ IIbM!!!Q*GQQ IIbMAr2&++QQ HHYHHff%&QQ r"   zNumPy behaviour questionablec                    t         } t        d      |      }t        | j                  ||      }t	        j
                  g d      j                  t              } |d|i       t	        j
                  g d      } |d|i       y )NTr  )TFTTr  )rE  r   r   r`  r   r  r  r  rs  s        r    test_trapz_numpy_questionablez-TestNPFunctions.test_trapz_numpy_questionable  ss     "T"6*++VU; HH./66s;Qx HH./Qxr"   c                 v   t         } t        d      |      }t        | j                  ||      }g d}d} |||d       g d}g d} |||d       g d}g d} |||d       t	        j
                  dd	d
      }t        j                  } |||d       t	        j
                  dd	d
      }t        j                  } |||d       t	        j
                  dd	d
      }t	        j
                  dd	d      } |||dd       t	        j                  d      j                  dd	d      dz  }t	        j                  d      j                  dd	d      } |||d       t	        j                  dd
d      } |t	        j                  d|dz  z        t	        j                  dt        j                  z        z  d      }t        j                  j                  |dd       t	        j                  d      }d} |||d       t	        j                  d      }t	        j                  d	g      } |||d       y )NTr  rG  r  rL  ri  )r2  rR  r  r  r  r  r
  rc  r-  r^  rZ  rR  rH  r  rI  r  r  r  rJ  r2  ra  r  )rM  r   r   r`  r   r0  r  r  r  rK  expr  r  r  assert_almost_equalr  )r  r  r  re  r  rK  r   r6  s           r    test_np_trapz_dx_basicz&TestNPFunctions.test_np_trapz_dx_basic  s   "T"6*++VU;Qb!"Qb!"Qb!"KKAr"VVQb!"KKAr"VVQb!"KKAr"[[Q"Qb!51IIbM!!!Q*R/YYr]""1a+Qb!"IIc2r""&&qAv&RUU);;D


&&q!Q/IIbMQb!"IIbMXXqc]Qb!"r"   c                    t         } t        d      |      }t        | j                  ||      }d dt	        j
                  g d      fD ]  }g d}g d} ||||d       g d}dd	g} ||||d       g d}g d
} ||||d       t	        j                  d      j                  ddd      }| j                  j                  |       |dz  }t        j                  |d<    ||||d        y )NTr  r  ri  rG  rv  rO  rR  r  rw  rZ  r  rH  r  r  )rP  r   r   r`  r   r  r  rK  r  r  r  )r  r  r  re  rK  r  r   s          r    test_np_trapz_x_dx_basicz(TestNPFunctions.test_np_trapz_x_dx_basic  s    "T"6*++VU; BHH_56BAA"-.AAA"-.AA"-.		"%%aA.AHHQCAAgJ"-.# 7r"   c                     t         } t        d      |       j                           fd}g d}g dg dfD ]  } |||df        t        j                  d      j                  d	d
d      }t        j                  d      j                  d	d
d	      } |||df       t        j                  d      j                  d	d
d      }t        j                  g d      } |||df       g d}t        j                  ddg      } ||d |f       t        j                  d      j                  d	d
d      }t        j                  d      j                  d	d
d      } ||d |f        j                         5 }t        j                  d
      } ||d df       d d d         j                  dt        j                               ddt        j                  fD ]J  } j                         5 } |d d       d d d         j                  dt        |j                               L y # 1 sw Y   xY w# 1 sw Y   =xY w)NTr  c                     j                  t              5 } |   d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nzunable to broadcastr$  )r_  r  r  r  s     r    check_not_okzCTestNPFunctions.test_np_trapz_x_dx_exceptions.<locals>.check_not_ok  sB    "":.!v / MM/Q[[1AB /.s   AAri  )rR  r  r  ra  rb  rc  r_  r  rZ  rH  rR  r  $   rj  r  zy cannot be 0DFzy cannot be a scalar)rP  r   r  r   r  rK  r  rz  r  r  r  r  )r  r  r  r  r   rK  r  r  s   `      @r    test_np_trapz_x_dx_exceptionsz-TestNPFunctions.test_np_trapz_x_dx_exceptions  s   "T"6* 	!	C #Y.A!Q% / IIbM!!!Q*IIbM!!!Q*aC[!IIbM!!!Q*HH\"aC[!XXsCj!ar]#IIbM!!!Q*YYr]""1a+ar]###%A!T3( & 	&AKK(89E266!A'')Qas# * MM0#akk2BC	 " &% *)s   9!H(-H4(H14H=	c                     d}t         j                  j                  |      dz  }t         j                  j                  |      dz  }t        j                  |      }t         j                  j                  |      dkD  }t         j                  j                  |      dkD  }t         j                  j	                  d|      }t         j                  j	                  d|      }d}	d}
d}t         j                  j                  |	|
|      dz  }t         j                  j                  |	|
|      dz  }t        } t        d      |       j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   |||	       ||	      d
        j                   ||       |      d
        j                   ||       |      d
        fd} |||	        fd} fd}t        j                  d      j                  d      }t        j                  ddg      } |||	        ||d|       y )Nr  r  e   r  r  r  Tr  rN   r
  )placesc                     j                  t              5 } | |       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)NrN   z)Weights sum to zero, can't be normalized.)r   ZeroDivisionErrorr  r<  r  datarO   r  errr  r  s       r    test_weights_zero_sumz;TestNPFunctions.test_average.<locals>.test_weights_zero_sumL  sM    ""#45dG, 6++CSXHJ 65   AAc                     j                  t              5 } | |       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)NrN   zCNumba does not support average when shapes of a and weights differ.r   	TypeErrorr  r<  r  r  s       r    test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weightsV  sM    ""9-dG, .++CSX56 .-r  c                     j                  t              5 } | ||       d d d        j                  }j                  t	        |      d       y # 1 sw Y   1xY w)NrU  z)Numba does not support average with axis.r  )r  r6   rO   r  r  r  r  s        r    test_1D_weights_axisz:TestNPFunctions.test_average.<locals>.test_1D_weights_axis^  sN    ""9-dg6 .++CSXHJ .-s   AAr  rK  g      ?g      ?r2  rU  )r   r  ranfr[  r  r  rW  r   assertAlmostEqualr  rK  r0  )r  r   r.   rP   w0a_boolw_boola_intw_intd0rj  d2a_3dw_3dr  r  r  r  r  r  s   `                  @r    test_averagezTestNPFunctions.test_average  s    IINN1#IINN1#XXa[ "S("S( 		!!#A!.		!!#A!. yy~~bB'#-yy~~bB'#-"T"6* 	q 3 %a 22 	 	?tD 9 %d4 8 	 	E
 	uU ; %eE :2 	 	G 	q 8 %a 7 	 	Dva 8 %fQ 7 	 	Dvv > %ff =b 	 	J 	vay%(2>vd|U4[D	J 	a,	6	J yy|##G,JJ'( 	a( 	T15r"   c           
         t         } t        d      |      }t        j                  t        j                        j
                  }t        j                  |gt        j                        }t        j                  ddg      t        j                  ddg      ft        j                  ddg      t        j                  ddg      ft        j                  ddg      t        j                  d	dg      ft        j                  dg      t        j                  d	dg      fd
t        j                  t        j                  dg      t        j                  dt        j                  g      f||fg}|D ])  \  }} |||      } |||      }| j                  ||       + t        j                  dt        j                  g      }t        j                  dt        j                  g      }| j                   |||             | j                   |||d       |||d             t        j                  t        j                  dg      }| j                   |||       |||             g d}	t        j                  d      }
t        j                  j                  d      }|	D ]  }|	D ]  }|	D ]	  } ||
|||      } ||
|||      }| j                  ||        |||
||      } |||
||      }| j                  ||        |t        j                  |g      |
||      } |t        j                  |g      |
||      }| j                  ||        ||||z   ||      } ||||z   ||      }| j                  ||        |||z   |||      } |||z   |||      }| j                  ||          y )NTr  r4  r  r  r  r  r  r  )r  r  r2  r   r  r   )r  r  g{Gz?gMbP?-C6?r  gư>r  )r  rR  )r   r   )rS  r   r   r   int_r1  r  r0  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_allcloseo  sI   "T"6*((277#''HHgYbgg. ZZt%rzz:t2D'EFZZt%rzz:t2D'EFZZt%rzz9d2C'DEZZY,=!>?XXrvvqk"BHHa[$9:F
  DAqq!IQ{HY1  
 JJRVV}%JJRVV}%q!%15q!t4	6 JJ}%1uQ{3EXXg&
IINN7#!E$(D &z5,0t!=I$Z*.T ;H$$Y9 &uj,0t!=I$UJ*.T ;H$$Y9 &rzz5'':J,0t!=I$RZZ%8**.T ;H$$Y9 &q!e)$T JI$QE	4HH$$Y9 &q5y!$T JI$QY4HH$$Y93 ) % "r"   c                 >   t         } t        d      |      }t        j                  ddg      }t        j                  d      j                  t        j                        j                  d      }d}d	}t        j                  d
dg      t        j                  d
dg      ft        j                  |g      t        j                  dg      ft        j                  dg      t        j                  d
|z   |z   g      f||||z  z   f||||z  z   |dz  z   f||||z  z   ft        j                  t        j                  ft        j                  t        j                  t        j                  g      fg}|D ]%  \  }}	| j                   |||	       |||	             ' y )NTr  g      Y@g     @@}   r4  r  r  r  r  r  r2  r   r  r  r  )rS  r   r   r  r  r  r  rK  r0  r  r<  )
r  r  r  r8   r  r   r   
numpy_datar   r  s
             r    test_ip_allclose_numpyz&TestNPFunctions.test_ip_allclose_numpy  sa   "T"6*hhv'yy~$$2::$6>>yI ZZAQF!34ZZSE!23ZZ

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

 !FQVAq\5A;7 !r"   c                    t         } t        d      |      }t        j                  d      j	                  t        j
                        j                  d      }d}d}t        j                  t        j                  dg      t        j                  d	t        j                  g      ft        j                  t        j                  dg      t        j                  d	dg      ft        j                  t        j                  t        j                  g      t        j                  d	t        j                  g      ft        j                  t        j                  t        j                  g      t        j                  d	d
g      ft        j                  t        j                   d
g      t        j                  t        j                  d
g      ft        j                  t        j                  d
g      t        j                  t        j                  d
g      ft        j                  |dz  g      t        j                  d
g      ft        j                  d	g      t        j                  d|z   |dz  z   g      f||||z  z   |dz  z   ft        j                  t        j                  d	g      t        j                  d
t        j                  g      fg
}|D ]%  \  }}| j                   |||       |||             ' y )NTr  r  r4  r  r  r  r   r  r  r  r2  )rS  r   r   r  r  r  rK  r0  r  r  r  r<  )	r  r  r  r  r   r   r  r   r  s	            r    test_ip_not_allclose_numpyz*TestNPFunctions.test_ip_not_allclose_numpy  s    "T"6*yy~$$2::$6>>yI ZZ$bjj#rvv&?@ZZ$bjj#q&:;ZZ()2::sBFFm+DEZZ()2::sCj+ABZZ"&&#'RVVSM)BCZZ&

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

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

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


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


%%a1bff+)>?r"   c                    t         } t        d      |      }t        j                  t        j                        j
                  }t        j                  |gt        j                        }| j                   |||       |||             y )NTr  r4  )rS  r   r   r   r  r1  r  r<  )r  r  r  r  r.   s        r    test_min_int_numpyz"TestNPFunctions.test_min_int_numpy  sd     "T"6*((277#''HHgYbgg.1uQ{3r"   c                    | j                          t        } t        d      |      }t        j                  ddt        j
                  g      t        j                  ddg      dddd	t        fd
dddddt        fdd
ddddt        fddddddt        fddddddt        fddddddt        fg}|D ]1  \  }}}}}}	}
| j                  |
|	      5   ||||||       d d d        3 y # 1 sw Y   >xY wr  )	r  rS  r   r   r0  r  r  r   r  r  s              r    test_allclose_exceptionz'TestNPFunctions.test_allclose_exception  s)   !"T"6* ZZtRVV,-ZZD)*E5L	
 au8 u9 5%A 5%B 5%?%
. :>5Aq$i#''W5aD$	2 65 :>55s   C##C,	c                    t         } t        d      |      }t        | j                  ||d      }t	        j
                  ddd      }t	        j                  dd	      }|d
z   } ||||d       | j                  j                  |        ||||d       | j                  j                  |        ||||d       t        j                  |d d t        j                  |dd  | j                  j                  |        ||||d       t        j                  |d d t        j                   |dd  | j                  j                  |        ||||d       t	        j                  dd	      }|dz   }|dz   } ||||d       d}d}d} ||||d       d}t	        j
                  ddd      }t	        j                  dd      } ||||d       t	        j                  dt        j                  t        j                  t        j                   ddg      }|j                  ddd      }t	        j
                  ddd      }t	        j                  dd      } ||||d       t        dd      D ]  }g d}d} ||||d        t	        j                  g       }g d}d} ||||d       t	        j
                  ddd      j                  ddd      }t	        j                  d       }|dz
  } ||||d       t        j                  }t	        j                  d      }t	        j                  dt        j                        } ||||d       t        j                  }dg}dg} ||||d       t	        j                  dd	      }|}|} ||||d       dd!g}t	        j                  dd	      }|} ||||d       t        j                   d"dd#t        j                  g}t	        j                  dd	      }|d$z  } ||||d       t	        j
                  d%dd      }t	        j                  t        j                   d"dd#t        j                  g      }|d$z  } ||||d       | j                  j                  d&      }t	        j
                  d'dd&      }t	        j                  d&d()      } ||||d       d*D ]1  }t	        j                  g d      |z  }ddg}ddg} ||||d       3 d}dg}dg} ||||d       t	        j
                  ddd      }t	        j
                  ddd      }t	        j
                  ddd+      }	 ||	||      }
t        j                   j#                  |
|	       t	        j                  g d,      }t	        j                  g d,      }t	        j                  g d-      } ||||d       dg}t        j                  g} |d||d       t	        j                  g d.      }t	        j                  g d,      }t	        j                  ddt        j                  dg      } ||||d       t	        j                  g d/      }t	        j                  g d0      }t	        j                  t        j                  dt        j                  dt        j                  g      } ||||d       t	        j                  g d.      }t	        j                  g d,      }t	        j                  ddt        j                  dg      } ||||d       t	        j                  dd
t        j                  d1t        j                   dd2dt        j                  dd3g      }t	        j                  g d4      }t	        j                  ddt        j                  ddt        j                  g      } ||||d       t	        j                  g d5      }t	        j
                  ddd6      }t	        j$                  |d7z        } ||||d       | j                  j'                  ddt        j(                  z  d8      }t	        j
                  ddt        j(                  z  d9      }t	        j*                  |      }t	        j*                  |      } ||||      }t        j                   j-                  ||d:;       | j                  j                  d      }t	        j
                  d%dd9      }t	        j.                  |      } ||||d       | j                  j                  d9      }t	        j
                  d%dd      }t	        j.                  |      } ||||d       y )<NTr  r  r^  r  r  r  rz  rb  r  rZ  )r_  r2  r  r  r  g      r  rH  rR  r  )r  )rg  ?rS  rR  r
  gffffff?r  g333333"rH  r  r  r  rQ  ri  r   rZ  r  Fr  r  r  r  r  rj  rk  r  )r2  r}  r  rl  )r2  r  gGz@rR  )r2  r        @rH  rR  )	r2  r  r  r  rH  rR  r  r  g      @ri  r  r  ra  )r2  r  rH  rR  r  r  )g~@g<ԛ@g3@i!N  r  )r  r  r  )r   )rY  r   r   r`  r   r0  r  r  r  r  r  r  rK  r  r  r  r  r}  sinuniformr  cosr   	ones_like)r  r  r  re  r   r[  r\  factorr  x0r|   exactr  s                r    test_interp_basicz!TestNPFunctions.test_interp_basic3  s   "T"6*++VUEJKKAr"YYr1#XARr23ARr23ARr23"1"#ARr232A66'23ARr23IIb!UUARr23ARr23/[[Q#YYr1ARr23HHc266266BFF7C>?IIa#I&[[Q#YYr1ARr23r1ABB267 
 HHRLARr23KK2r"**1a3YYr]"WARr23FFYYq\WWQARr23FFSSARr23IIb!ARr235MYYr1ARr23ffWdCbff-YYr1#XARr23KKR$XXwc378#XARr23HHNN3[[Q$WWSU+ARr23F#f,AQBQB267	  SVARr23KK1a KK1a [[Ar"B1o


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


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


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


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


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


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


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


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


&&uRUUB';SAr"   c                 6   t         } t        d      |      }t        j                  ddd      }t        j                  ddd      dt        j                  ddd      z   dz  z   }d}|d|z   dz  z   }t        j                  j                   ||||      |       y )NTr  r   r2  r  r  rh  )rY  r   r   r0  r  r}  )r  r  r  r   r  r  y0s          r    &test_interp_supplemental_complex_testsz6TestNPFunctions.test_interp_supplemental_complex_tests  s     "T"6*KK1a KK1a AAq!(<$<#DD1r6T/!


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

**8VC[A&/ ABr"   Tr  r.   kwsr5  r
  r4  F)
r0  r7  r   r   r`  r  r   r  r  r  )	r  r  r  r  r  re  r   r_  rg  s	   `        r    test_asarrayzTestNPFunctions.test_asarray  s   #	1P	C ,F&C&v.ET//?F%'qFOO+#R]]3*,wv 4 6N IIb

3qFOO+&*F7O&udF;&(mmF7O&ueV<&(jjF7O&udF;&udF;) (	 -r"   c                     d }d }d }d }||||g}|D ]4  } t        d      |      } |       } |       }	| j                  ||	       6 y )Nc                  ,    t        j                  d      S Nr  r/  r  r"   r    case1z3TestNPFunctions.test_asarray_literal.<locals>.case1b  s    ::m,,r"   c                  0    d} t        j                  |       S r  r/  rh  s    r    case2z3TestNPFunctions.test_asarray_literal.<locals>.case2e  s    A::a= r"   c                  0    d} t        j                  |       S )Nu+   大处 着眼，小处着手。大大大处r/  r   s    r    case3z3TestNPFunctions.test_asarray_literal.<locals>.case3i  s    =A::a= r"   c                  0    d} t        j                  |       S )N r/  r   s    r    case4z3TestNPFunctions.test_asarray_literal.<locals>.case4m  s    A::a= r"   Tr  )r   r  )
r  r  r!  r#  r&  funcsr  r  r  r  s
             r    test_asarray_literalz$TestNPFunctions.test_asarray_literal`  s_    	-	!	!	! ue,F&C&v.ExH'C##Hc2	 r"   c                       j                           t        d      t               fd}d }d }d }d } | |               | |               | |               | |              y )NTr  c                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz?asarray support for List is limited to Boolean and Number types)r   r   r  r  r  )alistr  r  r  s     r    test_rejectzQTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.test_reject}  sE    "";/1e 0MM.AKK " 0/rt  c                  <    t               } | j                  d        | S r   r  )ls    r    make_none_typed_listzZTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_none_typed_list  s    AHHTNHr"   c                  r    t               } t               }|j                  d       | j                  |       | S )Nr2  r  )r.  r   s     r    make_nested_listzVTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list  s+    AAHHQKHHQKHr"   c                  Z    t               } t               }d|d<   | j                  |       | S )Nr.   r2  )r
   r   r7   )r.  r  s     r    make_nested_list_with_dictz`TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list_with_dict  s)    AAAaDHHQKHr"   c                  J    t               } dD ]  }| j                  |        | S )N)r.   bcdefr  )r.  r  s     r    make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list  s#    A' (Hr"   )r  r   r0  )r  r,  r/  r1  r3  r7  r  s   `     @r    ,test_asarray_rejects_List_with_illegal_dtypez<TestNPFunctions.test_asarray_rejects_List_with_illegal_dtypey  sk    !"T"7+	"	
			 	(*+$&'.01%'(r"   c                    d }t         } t        d      |      } |       D ]  \  }}| ||      } ||      }n |||      } |||      }| j                  ||       | j                  t	        j
                  |j                  t        j                        |j                          t        } t        d      |      }t	        j                  g d      } ||      } ||      }| j                  ||       | j                  t	        j
                  |j                  t        j                        |j                         y )Nc               3   
  K   t        j                  g d      d f t        j                  ddgt         j                        t         j                  f t        j                  ddgt         j                        t         j                  f t        j                  ddgt         j                        t         j                  f t        j                  ddgt         j                        t         j
                  f y w)NrG  r  rH  r4  )r   r  r  r  r  r  r  r"   r    r  z-TestNPFunctions.test_asfarray.<locals>.inputs  s     ((9%t++((Aq64bjj@@((Aq61277::((Aq612<<??((Aq612==@@s   DDTr  r4  rG  )
r:  r   r  r  r   rG  r5  inexactr<  r  )r  r  r  r  r8   rg  r  r  s           r    test_asfarrayzTestNPFunctions.test_asfarray  s   	A "T"6*xGCz!#;Cj!#R0Cr*##Hc2OOBMM#))RZZ@#))L   ("T"6*hhy!#;Cj#.cii<ciiHr"   c           	      8    t         }t        |      }t        }t        |      }||f||ffD ]i  \   fd}t        j                  d      t        j
                  d      t        j                  ddgddgg      t        j                  g       t        j                  g g g      g}t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  g}d t        j                   ||      D        }ddd	d
g ddg}	t        j"                  ||	      D ]4  }
 ||
d        ||
d        ||
d        ||
d        ||
d       6 t        j
                  d      }dgdgdgfD ])  }
 |||
        ||t        j                  |
             + t        j
                  d      }ddgddgddgddgddgddgddgfD ])  }
 |||
        ||t        j                  |
             +  ||t        j                  ddgt        j                                |t        j
                  d      t        j
                  d             l y )Nc                 F    j                   | |       | |             y r   r  )r.   r`  nbfuncr  r  s     r    r  z*TestNPFunctions.test_repeat.<locals>.check  s!    ''q'(:F1g<NOr"   r2  r  r   r  rH  c              3   P   K   | ]  \  }}t        j                  ||          yw)r4  Nr  ).0r.   ts      r    	<genexpr>z.TestNPFunctions.test_repeat.<locals>.<genexpr>  s1      #J$I <?1Q288AA#6#6$Is   $&r  Tr  rQ  )r`  r  r4  r
  )ra  r   rc  r   r  r  r  uint32rE  uint64rF  r  r  r  r  r  r   r  )r  	np_pyfunc	np_nbfuncarray_pyfuncarray_nbfuncr  target_numpy_valuestarget_numpy_typestarget_numpy_inputstarget_non_numpy_inputsr  onetwor?  r  s   `            @@r    test_repeatzTestNPFunctions.test_repeat  sG   	O	 $L) )95 ,l;=NFFP
 
		$1a&1a&)*"b"# 				



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

6 ))B-2!6!6v!>?AAq1u~16{A>?Aq1u~16{A>?Aq1u~16{A>?Aq1u~16{A>? @ /9*Hz7##Ih
G$L$-h
G$LN /9 0!"45 28Z H 28Z H	Jr"   c                 v   t        t              }t        j                  d      }| j	                          t        j
                  d      t        j
                  g d      gt        j
                  d      t        j                  d      j                  dd      gdt        d	ft        j
                  d      t        j
                  d
      gt        j
                  dg      t        j
                  dg      gdt        dft        j
                  dg      t        j
                  d
g      gt        j
                  dgg      t        j
                  dgg      gdt        dft        j
                  d      t        j
                  d
      gt        j
                  d      t        j
                  d      gdt        d	ft        j                  t        j
                  dddt        j                  ddg            t        j
                  dddt        j                  ddg      dt        dfdgdgdgt        df|dk  j                  t              |dkD  j                  t              g||dz  gdt        df|dkD  |dkD  |dkD  |dkD  g||dz  |gdt        dfdgdz  t        j
                  dg      gdz  dt        dft        j
                  d
g      gdz  dgdz  dt        dff
D ]Q  \  }}}}}| j                  |      5 } ||||       d d d        | j                  |t        j                                S y # 1 sw Y   1xY w)Nr
  TrU  r2  rQ  rR  rH  r   z/condlist arrays must be of at least dimension 1Fr  zHcondlist and choicelist elements must have the same number of dimensionsr  ra  z"condlist must be a List or a Tuplezdefault must be a scalarz%condlist arrays must contain booleansrc  rb  r  z7list of cases must be same length as list of conditionsr,  r  z items of condlist must be arraysrC  z"items of choicelist must be arrays)r   rj  r   r  r  r  rK  r   ra  r  r  r  r  r   r  r  r  )	r  rG  r   rh  ri  re  expected_errorexpected_textr  s	            r    test_select_exceptionz%TestNPFunctions.test_select_exceptionu  s   O	IIbM! hhtnbhh';<=hhqk299R=00A67KM hhtnbhhuo.1#!0N 9: hhv% 12hhuorxx!/K)*
 hhtnbhhuo.!bhhqk0JAKM XXbhh1aA678XXq!Q1-.;13 VaS1#{') 1unnS!AE>>##67!Q!VaAC !eQUAE1q5)Aq!tQ<JFH Z#!4a/1 hhw 3&a13Y.M
HHj'>=^ "">2a(J8 3MM-Q[[)9:c.M
^ 32s   4L//L8	c                      fd} |t                 |t                |t                |t               t        }t        t              }dD ]b  }dD ][  } |||      } |||      }t        st        j                         dv r j                  ||dd       G j                  ||dd       ] d dD ]N  } j                  t              5 } ||d	       d d d         j                  d
t        j                               P dD ]N  } j                  t              5 } |d|       d d d         j                  dt        j                               P y # 1 sw Y   xY w# 1 sw Y   =xY w)Nc                 2   | }t        |       }dD ]&  } ||      } ||      }j                  ||d       ( dD ]M  }j                  t              5 } |d       d d d        j	                  dt        j                               O y # 1 sw Y   1xY w)Nr   r2  r  rQ  r  )r  r.   r  r  r  M must be an integer)r   r  r   r   r  r  r  )r6  rF  rG  r   r  r  r  r  s          r    check_windowz4TestNPFunctions.test_windowing.<locals>.check_window  s    IT
I"$Q<l''#H'E #
 $&&{3vcN 44c&:J:J6KL $33s   	BB	r`  )r  r  g      ,@)ppc64leaarch64r  r  r:  ra  r  rb  )r.   r  r  z beta must be an integer or float)rp  rs  rv  ry  r}  r   r   platformmachiner  r   r   r  r  r  )	r  rc  rF  rG  r   r|  r  r  r  s	   `        r    test_windowingzTestNPFunctions.test_windowing  sU   	M 	[![!Z Z  	O	A($Q-4( 0 0 26L L++H,/hQ , H ++Hc12 , 4 )   A"";/6!S! 0MM0#f6F6F2GH  
 D"";/6!T" 0MM<f../1 	 0/
 0/s   
E 
E&E#	&E/	c                    t         } t        d      |      }t        j                  g dg dg      t        j                  g dg dg      ft        j                  g dg dg      dft        j                  g dt        j                        t        j                  g dt        j
                        fdt        j                  dd	g      t        j                  g d      ft        j                  g d      t        j                  g dg dg      ft        j                  g dg dg      t        j                  g d      ft        j                  d
      j                  dd	d      t        j                  d      j                  d	d	      fg}|D ])  \  }} |||      } |||      }| j                  ||       + y )NTr  rG  r_  r  r  r4  )rG  r_  r2  r  r  r  rH  rR  )	r  r   r   r  rF  r  r  rK  r  r  r  r  pairsr   r  r  r  s           r    
test_crosszTestNPFunctions.test_cross  so   "T"6* )Y/0)Y/0 )Y/0  "((3"**5
 !Q # #)Y/0 )Y/0# 		"%%aA.		!$$Q*K)
V DAqa|H1+C##Hc2 r"   c                     t         } t        d      |      }| j                          | j                  t              5 } |t        j                  d      t        j                  d             d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      t        j                  d             d d d        | j                  dt        |j                               | j                  d	t        |j                               | j                  t              5 } |t        j                  d
      j                  d      t        j                  d      d d d   j                  d             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d
      j                  d      t        j                  d
      d d d   j                  d             d d d        | j                  dt        |j                               | j                  t              5 } |t        g d      t        g d             d d d        | j                  dt        |j                               y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   xY w# 1 sw Y   bxY w)NTr  rR  rH  z)Incompatible dimensions for cross productr  rs  z Dimensions for both inputs is 2.z+`cross2d(a, b)` from `numba.np.extensions`.rb  r  rR  r  r}  ru  )rR  r  zDimensions for both inputs is 2rG  r_  Inputs must be array-like.)r  r   r  r   r  r   r  r  r  r  r  rK  r   setr  s       r    test_cross_exceptionsz%TestNPFunctions.test_cross_exceptions  sM   "T"6*! z*f		!		! +
 	7  !	
 z*f   +
 	.  !	

 	9  !	
 z*f		!$$V,		!TrT"**62 +
 	7  !	
 z*f		!$$V,		!TrT"**62 +
 	-  !	
 {+vII ,
 	(  !	
m +* +*  +* +* ,+s=   0K00KAKAK(3 K4KKK%(K14K=c                 $   t         }t        t              }t        j                  ddgddgg      t        j                  ddgddgg      ft        j                  ddgddgg      dft        j                  ddgt        j
                        t        j                  ddgt        j                        fdt        j                  ddg      t        j                  ddgddgg      ft        j                  ddgddgg      t        j                  ddg      ft        j                  d      j                  d	d
d      t        j                  d	      j                  d
d      fg}|D ])  \  }} |||      } |||      }| j                  ||       + y )Nr2  r  rR  r  rj  r4  )r  r  r  r  rH  )
r  r   r  r   r  rF  r  r  rK  r  rk  s           r    test_cross2dzTestNPFunctions.test_cross2dO  s}   Z  1a&1a&)*1a&1a&)* 1a&1a&)*  !Qrxx0!Qrzz2
 !Q 1a&1a&)* 1a&1a&)*!Q  		"%%aA.		!$$Q*A$
L DAqa|H1+C##Hc2 r"   c                 `   t        t              }| j                          | j                  t              5 } |t        j                  d      t        j                  d             d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      j                  d      t        j                  d      d d d   j                  d             d d d        | j                  dt        |j                               | j                  t              5 } |t        ddg      t        d	d
g             d d d        | j                  dt        |j                               y # 1 sw Y   (xY w# 1 sw Y   xY w# 1 sw Y   HxY w)NrG  r_  z,Incompatible dimensions for 2D cross productr  ru  r}  r2  r  rR  r  rp  )r   r  r  r   r  r   r  r  r  r  r  rK  r   rq  r  s      r    test_cross2d_exceptionsz'TestNPFunctions.test_cross2d_exceptions}  sP   Z ! z*f## +
 	:  !	
 z*f		!$$V,		!TrT"**62 +
 	:  !	
 {+vQFQF ,
 	(  !	
7 +* +* ,+s$   0F'AF= F$FF!$F-c                    d }d }t         } t        d      |      } |       D ]$  } ||      } ||      }| j                  ||       &  |       D ])  \  }} |||      } |||      }| j                  ||       + y )Nc               3     K   t        j                  g        t        j                  d       t        j                  d       t        j                  g d       t        j                  g d       t        j                  dddt         j                  dg       t        j                  g d       y w)	Nr  r2  rG  ri  r  r  r  )0Helloworld)r   r  r[  r  r  r"   r    rL  z/TestNPFunctions.test_trim_zeros.<locals>.arrays  s|     ((2,((1+((1+((9%%((<((((BB344((233s   B<B>c               3     K   t        j                  g d      df t        j                  g d      df t        j                  t         j                  ddddg      df t        j                  g d	      d
f t        j                  g d      df t        j                  g d      df t        j                  g d      d
f y w)N)r   r2  r  r   r   FBrQ  Br  rg  r'  r/   )r   r   r2  r  r  r[  )r   r2  r  r   abf)r   rR  r   r  ) r  r  )r   r  r  r  r"   r    explicit_trimz6TestNPFunctions.test_trim_zeros.<locals>.explicit_trim  s     ((?+T11((9%s**((BFFBS"56;;((?+S00((<(%//((9%s**((+,c11s   CCTr  )r  r   r  )	r  rL  r  r  r  r8   r  r  r  s	            r    test_trim_zeroszTestNPFunctions.test_trim_zeros  s    	4	2 "T"6*8Cc{H*C##Hc2 
 'ICc4(HT"C##Hc2 )r"   c                    t        j                  g d      }|j                  t              }|j                  t              }|||g}t         j
                  dd }|D ]"  }t        |      }| j                  |||          $ t         j
                  d d }|D ]$  }t        |d      }| j                  |||          & t         j
                  dd  }|D ]$  }t        |d      }| j                  |||          & |D ]]  }t        j                  ||j                        }t        |d      }	t        |	      d	k(  sJ t        |d
      }
t        |
      d	k(  r]J  t        j                  d	      }t        |      }| j                  ||       t        j                  g d      t        j                  g d      t        j                  g d      fD ]5  }t         j
                  dd }t        |      }| j                  |||          7 t        j                  g d      }t        |      }| j                  ||       t        |j                               }t        |t              sJ y )N)r   r   r2  r   r  rH  rR  r   r  r}  r/   )r  r  r4  r~  r   r[  )r   l            r   )r   l            r   )r   l            r   r2  )Nr2  N)r   r  r  r  r  s_r  r  
zeros_liker5  r  r[  r  r  r  )r  r.   r/   rw  r9   slcr8   res_arrres1res2s              r    test_trim_zeros_numpyz%TestNPFunctions.test_trim_zeros_numpy  s   HH-.HHUOHHWQ eeAbkC$C##CS2 
 eeCRjC#.C##CS2 
 eeABiC#.C##CS2 
 D--DJJ7C 3/Dt9>!> 3/Dt9>!>  hhqkC S) HH]+RXXm-DHH]+-C%%!*C$C##CS2	- hh'C S) AHHJ'#t$$$r"   c                 l   | j                           t        d      t              }| j                  t              5 } |t        j                  g dg dg             d d d        | j                  dt        j                               | j                  t              5 } |d       d d d        | j                  dt        |j                               | j                  t              5 } |h d       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  g d	      d
       d d d        | j                  dt        |j                               y # 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   TxY w)NTr  rG  r_  zarray must be 1DrH  z#The first argument must be an array>   r   r2  r  rQ  r2  z$The second argument must be a string)
r  r   r  r   r   r   r  r  r  r  r  s      r    test_trim_zeros_exceptionsz*TestNPFunctions.test_trim_zeros_exceptions  sI   !"T"=1{+v"((Iy123 ,  !	

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

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

 {+v"((9%q) ,2  !	
/ ,+ ,+ ,+ ,+s/   "F 	F+F8F*FFF'*F3c           	         t         } t        d      |      }t        j                  g d      t        j                  g d      ft        j                  g dg dg      t        j                  g d      ft        j                  dd      j                  ddd	      t        j                  g d
      ft        j                  dd      j                  dd	      t        j                  dd      j                  dd	d      ft        j                  g d      t        j                  g d      fg}|D ])  \  }} |||      } |||      }| j                  ||       + y )NTr  rG  r  )r  r  r  r   r  r  r  )r2  r     r
  )FTra  )r  r   r   r  r  rK  r  )r  r  r  rL  r.   r/   r  r  s           r    test_union1dzTestNPFunctions.test_union1d  s'   "T"6* ## )Y/0# 		!R ((1Q/% 		!R ((1-		!R ((1Q/ )*#-
8 DAqa{H!*C##Hc2 r"   c                     t        d      t              }| j                          | j                  t              5 } |dt        j                  ddg             d d d        | j                  dt        j                               | j                  t              5 } |t        j                  ddg      d       d d d        | j                  dt        |j                               | j                  t              5 } |dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  dd	g      t        j                  d
dg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      t        j                  ddg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      t        j                  ddg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      t        j                  ddg             d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   xY w# 1 sw Y   |xY w)NTr  rz  r2  r  z.The arguments to np.union1d must be array-likeWorldrA  r{  r.   r/   z/For Unicode arrays, arrays must have same dtyperw  r  foobarr  r  )
r   r  r  r   r   r   r  r  r  r  r  s      r    test_union1d_exceptionsz'TestNPFunctions.test_union1d_exceptions@  s   "T":.! {+v'288QqE?+ ,<  !	
 {+v"((Aa5/7+ ,<  !	
 {+v'7# ,<  !	
 {+v"((GW-.#s0DE ,=  !	
 {+v"((C:&%(@A ,=  !	
 {+v"((C:&!Q(89 ,=  !	
 {+v"((C:&#s(<= ,=  !	
Q ,+ ,+ ,+ ,+ ,+ ,+ ,+sS   LL>
L(
4L5 4M64M,4MLL%(L25L?MMM$c                 0   t         } t        d      |      }| j                          t        j                  g d      t        j
                  ft        j                  g d      fg dft        j                  ddgddgg      t        j
                  fd	t        j                  ft        j                  ddgt        j                  
      ft        j                  d      j                  ddd      fg}|D ]  } || } || }| j                  ||         y )NTr  rG  rl  r2  r  rH  rR  )r  rs  r4  r  r  )
r  r   r  r   r  r  rF  r  rK  r  )r  r  r  rl  pairr  r  s          r    test_asarray_chkfinitez&TestNPFunctions.test_asarray_chkfiniter  s   %"T"6*!
 #

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

 ! !Qrxx0
 		"%%aA.; 
D Dt}H,C##Hc2 r"   c           	          t        d      t              }| j                          | j                  t              5 } |d       d d d        d}| j                  |t        j                               | j                  t              5 } |t        j                  ddt        j                  dg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddt        j                  dg             d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  g d	      d
       d d d        | j                  dt        |j                               y # 1 sw Y   sxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   UxY w)NTr  r  z7The argument to np.asarray_chkfinite must be array-likerR  r  z#array must not contain infs or NaNsr2  rl  r  z!dtype must be a valid Numpy dtype)r   r  r  r   r   r  r  r  r  r   r  r  r  )r  r  r  r  s       r    !test_asarray_chkfinite_exceptionsz1TestNPFunctions.test_asarray_chkfinite_exceptions  sZ   "T"#78! {+q!H ,Gc3q{{+, z*a"((Aq"&&!,-. +;S=MN z*a"((Aq"&&!,-. +;S=MN {+q"((<()4 ,93q{{;KL% ,+ +*
 +*
 ,+s/   	F6	.G9.G)G6G GGG%c           	      h   t         }t        |      }t        }t        |      }t        }t        |      }t        }t        |      }d }	 |	       D ]   }
| j                   ||
       ||
             " t        j                  g d      }t        j                  |d      fd}| j                   |dd       |dd              |       D ]'  \  }
}| j                   ||
|       ||
|             ) fd} |       D ]*  \  }
}}| j                   ||
||	       ||
||	             , y )
Nc               3     K   t        j                  dddt         j                  z  z   g       t        j                  dt         j                  d      } | dd xxx t         j                  z  ccc |  t        j                  d      j                  d       t        j                  d	d
      j                  d       t        j                  dd
      j                  d       y w)Nr2  r  r   r  r   rH  r  )rR  rR     r
  )step   r  )r   r  r  r0  r  rK  )phases    r    inputs1z2TestNPFunctions.test_unwrap_basic.<locals>.inputs1  s     ((Aq1ruu9}-..KK255a0E!"IIK))B-''..))Cb)11%88))Cb)11'::s   C+C-)r   K         r  i     c               3      K   t        j                  ddg      df t        j                  g d      df t        j                  g d      df t        j                  g d      df  df y w)	Nr2  i     )r   r  r  r  r  )r   r2  r  r}  r   rR  )r  rH  rR  r  r  rH  rR  r  r  r  wrap_unevens   r    inputs13z3TestNPFunctions.test_unwrap_basic.<locals>.inputs13  si     ((Aw<(#--((12C77((+,a//((34a77s""s   A4A7r}  )r6   r  r  c               3      K    ddf y w)Nr     r  r  s   r    	inputs123z4TestNPFunctions.test_unwrap_basic.<locals>.inputs123  s     sC''s   	r  )	r  r   r  r  r  r  r   r  mod)r  r  r  r0  cfunc1pyfunc13cfunc13	pyfunc123cfunc123r  r  
uneven_seqr  r  r  r  r  s                   @r    test_unwrap_basicz!TestNPFunctions.test_unwrap_basic  s,   Vgx.		?	; A##GAJq	:  XX9:
ffZ-	# 	{C H %k3 G	I "IAv##HQv$>$+Af$=? $
	( #,+Avw##Ia6=%?$,Qv5<%>? #.r"   c                 j   t        t              }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  ddg      d       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  ddg      dd	       d d d        | j                  d
t        |j                               | j                  t              5 } |t        j                  ddg      dd	       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w)Nr  z#The argument "p" must be array-liker2  r  z'The argument "discont" must be a scalarrH  r  z&The argument "period" must be a scalarr5   z&The argument "axis" must be an integerz*Value for argument "axis" is not supported)r   r  r  r   r   r  r  r  r   r  r  )r  r  r  s      r    test_unwrap_exceptionz%TestNPFunctions.test_unwrap_exception  s   V!{+q%L ,;!++&	( {+q"((Aq6"E* ,?!++&	( {+q"((Aq6"Ae4 ,>!++&	( {+q"((Aq6"AE2 ,>!++&	( z*a"((Aq6"AA. +B!++&	(- ,+
 ,+
 ,+
 ,+
 +*s;   	G6 H!!H!H'!H)6H HHH&)H2c                 6   t         } t        d      |      }d } |       D ]t  }t        |j                   |j                        D ]N  }t        |j                   |j                        D ](  } ||||      } ||||      }| j	                  ||       * P v y )NTr  c               3      K   t        j                  d       t        j                  d      j                  dd       t        j                  d      j                  ddd       y w)Nr
  r  r  rZ  rR  rH  ru  r  r"   r    r  z9TestNPFunctions.test_swapaxes_basic.<locals>.a_variations  sL     ))B-))B-''1--))B-''1a00s   A(A*)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
 AQVVGQVV,0B%aR0H2r*C++Hc: 1 -  r"   c                    t         } t        d      |      }| j                          | j                  t              5 } |ddd       d d d        | j                  dt        j                               | j                  t              5 } |t        j                  d      dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      dd       d d d        | j                  dt        |j                               | j                  t              5 } |t        j                  d      d	d       d d d        | j                  d
t        |j                               | j                  t              5 } |t        j                  d      j                  dd      dd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w)NTr  r  r   z'The first argument "a" must be an arrayrR  z.The second argument "axis1" must be an integerz-The third argument "axis2" must be an integerr2  z)np.swapaxes: Argument axis1 out of boundsrb  r  rj  z)np.swapaxes: Argument axis2 out of bounds)r  r   r  r   r   r  r  r  r   r  r  rK  r  s       r    test_swapaxes_exceptionz'TestNPFunctions.test_swapaxes_exception  s   "T"6* 	!{+v%A , 	?&**+	- {+v"))A,q) , 	F&**+	- {+v"))A,5) , 	E&**+	- z*f"))A,1% + 	A&**+	- z*f"))A,&&q!,a4 + 	A&**+	-7 ,+ ,+ ,+ +* +*s;   HH+H!H.+.H:HH!H+.H7:Ic                    t        j                  d      j                  d      }t        d        }t        j                  ddgt         j
                        }| j                   |||      |j                  ||             d }t        d|j                        D ]J  } ||      }t        j                  ||	      }| j                   |||      |j                  ||             L y )
Nrt  )rH  r2  rR  r  c                 2    t        j                  | |d       S r4   r   take_along_axis)r.   r  s     r    	axis_nonez7TestNPFunctions.test_take_along_axis.<locals>.axis_noneG  s    %%a66r"   r2  r  r4  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r  r.   r  r6   s     r    implz?TestNPFunctions.test_take_along_axis.<locals>.gen.<locals>.implP      ))!Q55r"   r   r6   r  s   ` r    genz1TestNPFunctions.test_take_along_axis.<locals>.genO      6 6Kr"   r}  r5   )r   r  rK  r   r  rE  r  r  r  r  r  )r  r.   r  r   r  r  jfuncais           r    test_take_along_axisz$TestNPFunctions.test_take_along_axisC  s    IIbM!!,/ 
	7 
	7 ((Aq63	!W 5 ) 1 1!W =	?	 r166"AFEAA&B##E!RL%--22FG #r"   c                 .   t        j                  d      }t        j                  dt         j                        }d }dD ]S  } ||      }|j                  ||      } |||      }| j	                  ||       | j                  |j                  d       U y )N)rH  rR  r2  )r2  r  r  r4  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r  r  s     r    r  zLTestNPFunctions.test_take_along_axis_broadcasting.<locals>.gen.<locals>.implc  r  r"   r  r  s   ` r    r  z>TestNPFunctions.test_take_along_axis_broadcasting.<locals>.genb  r  r"   )r2  r  )rH  r  r  )r   r  intpr  r  r<  r~  )r  r8   r  r  r  r  r  actuals           r    !test_take_along_axis_broadcastingz1TestNPFunctions.test_take_along_axis_broadcastingZ  s    
 ggi WWYbgg.	 AFE}}S"-H3^F##Hf5V\\95 r"   c                 >	   t        j                  d      j                  dd      }t        j                  ddgt         j                        }t        j
                  dt         j                        }d }| j                  t              5 }  |d	      ||       d d d        | j                  d
t        j                               | j                  t              5 }  |d      ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d      ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d       d|       d d d        | j                  dt        |j                               | j                  t              5 }  |d       |d       d d d        | j                  dt        |j                               | j                  t              5 }  |d       |t        j                  ddg             d d d        | j                  dt        |j                               t        d        }| j                  t              5 } |||d       d d d        | j                  dt        |j                               | j                  t              5 }  |d      |t        j                  ddgt         j                               d d d        | j                  dt        |j                               | j                  t              5 }  |d       ||       d d d        | j                  dt        |j                               | j                  t              5 }  |d      |t        j
                  dt         j                               d d d        | j                  dt        |j                               | j                          y # 1 sw Y   xY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nrb  r  rR  r   r2  r4  ro  c                 $     t          fd       }|S )Nc                 2    t        j                  | |      S r   r  r  s     r    r  zJTestNPFunctions.test_take_along_axis_exceptions.<locals>.gen.<locals>.imply  r  r"   r  r  s   ` r    r  z<TestNPFunctions.test_take_along_axis_exceptions.<locals>.genx  r  r"   r.   zaxis must be an integerrj  zaxis is out of boundsrQ  z"arr" must be an arrayr  z"indices" must be an arrayr  r  z#indices array must contain integersc                 0    t        j                  | ||      S r   r  r  s      r    not_literal_axiszITestNPFunctions.test_take_along_axis_exceptions.<locals>.not_literal_axis  s    %%aD11r"   zaxis must be a literal valuez'must have the same number of dimensionsru  zdimensions don't match)r   r  rK  r  rE  r  r   r   r  r  r  r   r  r  )r  arr2dindices_noner   r  r  r  s          r    test_take_along_axis_exceptionsz/TestNPFunctions.test_take_along_axis_exceptionsp  sz   		!$$Q*xxAbii8''&		2	 {+vCHUG$ ,/V5E5E1FG{+vCGE7# ,-s63C3C/DE{+vCF5'" ,-s63C3C/DE{+vCIb,' ,.F4D4D0EF{+vCIeQ ,2C8H8H4IJ{+vCIeRXXsCj12 ,1  !	

 
	2 
	2 {+vUGQ/ ,4c&:J:J6KL{+vCF5"((Aq6;< ,?&**+	- {+vCIeU# ,?&**+	- z*fCF5"''&		:; +.F4D4D0EF!e ,+ ,+ ,+ ,+ ,+ ,+ ,+ ,+ ,+
 +*sx   
PP+.P8 QQ$%QQ,$5Q9R-3RP(+P58QQQQ),Q69RRRc                 @   t         j                  dddt        t         j                   t         j                        t        t         j                  t         j                        t        j                  dgt
              t        j                  t        t         j                   t         j                        t        dt         j                        t        t         j                  d      t        t         j                  t         j                         g      t        j                  g d      t        j                  g d      t        j                  g dg dg      t        j                  dt         j                  d	g      t        j                  dt         j                  d	gt         j                  d
dgg      t        j                  t         j                   t         j                  t         j                  g      t        j                  t         j                   t         j                  t         j                  gt         j                        g}ddg}t        }t        t              }t        ||      D ]+  \  }} |||      } |||      }| j                  ||       - y )Nr2  r  r  r4  )r  r  皙?rG  )r  rg  rS  r  r  rg  rS  r  r
  )r  )r   r  r  r  r  r  r  r  r   r   r  )	r  r9   r
  r  r  valuer  r  r  s	            r    test_nan_to_numzTestNPFunctions.test_nan_to_num  s    FFRVVGRVV$BFFBFF#HHaS$HHgrvvgrvv.2660Bbffa('"&&266'*BD EHH_%HHYHHo78HHc2663'(HHsBFFC(2663*<=>HHrvvgrvvrvv./HHrvvgrvvrvv.bjjA!
$ RyZ !&$/JE3e-H3'C##Hc2 0r"   c                 n   t        t              }t        j                  ddt        j                  g      }d} ||d|       | j                  |d   |       t        j                  ddt        t        j                  t        j                        g      } ||d|       | j                  |d   d       y )Nr  r  r  Fr  r}  r  )r   r  r   r  r  r  r  )r  r  r   r  	x_complexs        r    test_nan_to_num_copy_falsez*TestNPFunctions.test_nan_to_num_copy_false  s    Z HHc3'(ae*"x0HHc3(?@A	ie2	"x8r"   c                     t        t              }| j                         5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Ninvalid_inputz4The first argument must be a scalar or an array-like)r   r  rz  r  r  r  r  s      r     test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argument  sM    Z ##%/" &L&**+	- &%s   	AA c                     t         }t        |      }t        }t        |      }d } |       D ]C  \  }}| j                   ||       ||             | j                   |||       |||             E y )Nc               3     K   t        j                  ddg      df t        j                  ddgddgg      df t        j                  d      j                  d      df ddgdf t        j                  g       df y w)Nr2  r  rH  rR  r  rb  r  rJ  r  r"   r    r  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs  sz     ((Aa5/1$$((QqE1Q%=)2--))A,&&w/22a&!)O((2,/!s   BB)r  r   r  r  )r  r0  r  r1  r1  r  rY   r   s           r    test_diagflat_basicz#TestNPFunctions.test_diagflat_basic  si    gg	" HDAq##GAJq	:##GAqM6!Q<@ r"   c                     t         }t        |      }| j                          | j                  t              5 } |d       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nr  #The argument "v" must be array-like)r  r   r  r   r   r  r  r  r  s       r    test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exception  s^    V!{+v%L ,;&**+	- ,+s   	A..A7c                 ^   t         }t        |      }| j                          | j                  t              5 } |dd       d d d        | j                  dt        j                               | j                  t              5 } |ddgd       d d d        | j                  dt        |j                               | j                  t              5 } |ddgd       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   GxY w)Nr  r  r  r2  z#The argument "k" must be an integerr4  )r  r   r  r   r   r  r  r  r  s       r    test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exception  s    V!{+v%O ,;&**+	- {+v1a&%  ,;&**+	- {+v1a&# ,;&**+	- ,+
 ,+
 ,+s#   
DDD#DD #D,)NNFNr   r+  )r  r  r  __doc__r  r  r  r  r(  r3  r?  rB  rO  rS  rW  r\  rd  rf  rn  rq  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r*  r2  r7  rA  rP  rS  rV  rX  rZ  r\  r`  rl  rv  r~  r  r  r  r  r  r  staticmethodr  r  r  r  r  r  r  r  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<  rC  rF  rk  rm  rt  rv  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)  r4  r:  r=  r?  rH  rK  rM  rO  r^  r`  re  rg  rn  rq  rt  rx  unittestskiprz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  rL  r  skipIfr   r   r  r  r  r  r  r  r  r  r(  r8  r   r<  rP  rS  rY  r]  rh  rm  rr  rt  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __classcell__)r  s   @r    r  r    sj   - EIKO+CZ7)r	"68p%!N, 	"34	
3.3$3$"B3<!"F	7"*/.7@7&7(D?L3<3"	7-&
7-&Un@D&8P'>R4<#|: !F6B1C*<0;@
3!j!F.,%#N
II" ' '>	I	4



8<I$I45@P45@P?-*Q9E0H0**,(,(  >>&&cAJeDN	=	@ KD"QH D$LCF P P4"0H = = = =  $  ;z 	 	   
 
 /- /-b#<'-*?-.?K(P8-P8@:-(3>-23@-<T6l37F089t9"-- (BT1474+@.D&P!F9!v X]]12 3,#\/2+DZS6j>:@828636@	43Bb-HL+7Z/Ab X__Z0L2MNF OF6C;J&'BR
<3 3<L<\32()T I I>C8J8,t1Jf5;n-1^13f?
B,3\#
J3B7%r
@"3H0
d*3XM28?t(:; #-JH.6,@"D3>9-A"	--r"   r  c                       e Zd ZdZd Zd Z ej                  edk\  d      d        Z	d Z
d Z ej                  edk  d	      ej                  d
               Zy)TestNPMachineParametersz0
def foo():
    ty = np.%s
    return np.%s(ty)
c                     |} t        d      |      } || } || }|D ](  }| j                  t        ||      t        ||             * y r  )r   r  getattr)	r  r6  attrsrf   r  r  r  r  attrs	            r    r  zTestNPMachineParameters.check!  sW    "T"6*4=Tl D##GHd$;$+C$68 r"   c                     |j                   }|j                   }| j                  ||fz  }t        t        |dd             t	               d   S )Nz<string>execr  )r  templateevalcompilelocals)r  basefunctytystrbasestrfuncstrs         r    create_harcoded_variantz/TestNPMachineParameters.create_harcoded_variant-  sH     ##--5'"22WWj&12xr"   )r2  rt  zNumPy < 1.24 requiredc                 4    d}| j                  t        |       y )N)ibetaitmachepr  negepepsnegiexpminexpxminmaxexpxmaxirndngrdepsilontinyhuge	precision
resolution)r  rk   )r  r  s     r    test_MachArz#TestNPMachineParameters.test_MachAr6  s    H 	

65!r"   c                    t         j                  t         j                  t         j                  t         j                  g}d}|D ]Q  }| j                  t        | |d             | j                  t         j                  |      }| j                  ||       S | j                  t              5 } t        d      t              } |d       d d d        d}| j                  |t        j                               | j                         5   t        d      t              } |t        j                   d             d d d        y # 1 sw Y   {xY w# 1 sw Y   y xY w)N)r  r  r  r
  r  r  r  nexpnmantr  r  r  bitsr2  Tr  r  z(Unknown attribute 'machar' of type finfora  )r   r  r  r  r  r  r   r  r   r   r   r   r  r  r  rz  rE  )r  r	   r  r  hc_funcr  r  r  s           r    
test_finfoz"TestNPMachineParameters.test_finfo=  s   RZZr}}ENBJJueRU+22288R@GJJw&  {+v&C&|4E"I , 9c3v//01 ##%&C&u-E"((1+ &% ,+ &%s   ,E
2EEEc                 T   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  g}d}|D ]Q  }| j                  t        | |d             | j                  t         j                  |      }| j                  ||       S | j                         5   t        d      t              } |t        j                  d             d d d        y # 1 sw Y   y xY w)N)r1  r  r  r2  Tr  ra  )r   r  r  rE  rF  r  uint16rD  rE  r  r   r  rz  r   r  )r  r	   r  r  r  r  s         r    
test_iinfoz"TestNPMachineParameters.test_iinfoR  s    "((BHHbhh"))BII''BJJueRU+22288R@GJJw&  ##%&C&u-E"**Q-  &%%s   #2DD'zNeeds NumPy < 1.24c                 X   d}t        j                  d      5 }t        j                  d       t        j                  d|t               t        d       } |        d d d        | j                  t              d       | j                  d	t        |d
                y # 1 sw Y   CxY w)Nz*.*`np.MachAr` is deprecated \(NumPy 1.22\)T)recordr+  always)messagecategoryc                  >    t        j                         j                  S r   )r   rj   r  r  r"   r    <lambda>zJTestNPMachineParameters.test_np_MachAr_deprecation_np122.<locals>.<lambda>o  s    biikoor"   r2  z`np.MachAr` is deprecatedr   )
warningscatch_warningssimplefilterfilterwarningsr   r   r<  r  r  r  )r  r  rP   r[  s       r     test_np_MachAr_deprecation_np122z8TestNPMachineParameters.test_np_MachAr_deprecation_np122a  s     <$$D1Q!!(+##Hc-DG-.AC 2 	Q#13qt9= 21s   AB  B)N)r  r  r  r  r  r  r  r  r   r  r  r"  
skipUnlessr   run_test_in_subprocessr.  r  r"   r    r  r    s}    H
8 X__]g-/FG" H"*! X02FG$$> % H>r"   r  c                       e Zd Zd Zy)TestRegistryImportsc                     t        d      }t        |      \  }}| j                  d|j                                | j                  d|j                                y )Nz
            import numba
            import numpy as np
            @numba.njit
            def foo():
                np.array([1 for _ in range(1)])
            foo()
            print("OK")
        s   OKr"   )r   r   r<  strip)r  coderesulterrors       r    test_unsafe_import_in_registryz2TestRegistryImports.test_unsafe_import_in_registryx  sO        *$//ekkm,r"   N)r  r  r  r8  r  r"   r    r2  r2  v  s    -r"   r2  __main__)Nr   r   )r  r  F)r  rC  rU  )rC  )r  )r   N)NF)NTFN)NT)NN)fb)Nr}  g-DT!@)Tr  )r  r  rf  	functoolsr   r   r*  textwrapr   numpyr   r  r   r   r   
numba.corer	   numba.typedr
   r   numba.np.numpy_supportr   numba.core.errorsr   r   numba.core.configr   numba.core.utilsr   numba.np.extensionsr   numba.tests.supportr   r   r   r   r   r   r   r  r   r&   r*   r,   r2   r7   r;   r=   rC   rF   rK   rQ   rT   rW   r_   rb   rd   rh   rk   rm   rp   rs   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,  r0  r7  r  r:  r<  r>  rE  rH  rM  rP  rS  rW  rY  ra  rc  rj  rl  rp  rs  rv  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r2  r  mainr  r"   r    <module>rG     s           # #  " 0 B ' ( '/ / /   -,%(!./3"$-%.1+$$$)(!#$%(!#$%(' #,%-& jj '&45 !)<+"*6'8"0"yX-ox yX-xq[>h [>|-( -( zHMMO r"   