
    ,i)-                    \   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# d dl$Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0ddZ1d Z2d Z3d Z4d Z5d Z6d  Z7d! Z8d" Z9d# Z:d$ Z;d% Z<dd&Z=dd'Z>dd+Z?d, Z@d- ZAd. ZBd/ ZCd0 ZDd1 ZEd2 ZFd3 ZGdd5ZHd6 ZIdd7ZJd8 ZKdd:ZLdd;ZMdd<ZNd= ZOd> ZPd? ZQddAZRddCZSdD ZTddEZUddFZVddGZWdH ZXddIZYdJ ZZddKZ[ddLZ\ddMZ]dN Z^ddOZ_dP Z`ddQZadR ZbddSZcddTZdddUZedV ZfddWZgddXZhdY ZidZ Zjdd\Zkdd]Zldd^Zmd_ Znd` Zoda Zpe
jq        fdbZrdc Zsdd Ztde Zudf Zvdg Zwdh ZxddiZyddjZzdk Z{dl Z|dm Z}ddnZ~do Zdp Zdq Zdr Zds Zdt Zdu ZddwZdx Zdy Zdz Zd{ Zdd|ZddZd Zd Zd Zd Zd ZddZd Zd ZddZ G d de!e           Z G d de           Z G d de           Zedk    r e$j                     dS dS )    N)partial)product)dedent)jitnjittypeof)types)ListDict)numpy_version)TypingErrorNumbaDeprecationWarning)	IS_32BITS)pysignaturecross2d)TestCaseMemoryLeakMixin
needs_blasrun_in_subprocessc                 *    t          j        |           S N)npsincxs    [/var/www/html/speakWrite/venv/lib/python3.11/site-packages/numba/tests/test_np_functions.pyr   r          71::    c                 *    t          j        |           S r   r   angler   s    r   angle1r#          8A;;r   c                 ,    t          j        | |          S r   r!   )r   degs     r   angle2r'   "   s    8Asr   c                 ,    t          j        | |          S r   )r   array_equalabs     r   r)   r)   &       >!Qr   c                 ,    t          j        | |          S r   )r   intersect1dr*   s     r   r/   r/   *   r-   r   c                 0    t          j        | ||          S Naxis)r   append)arrvaluesr3   s      r   r4   r4   .   s    9S&t,,,,r   c                 .    t          j        | |          S r1   )r   count_nonzero)r5   r3   s     r   r8   r8   2   s    Cd++++r   c                 ,    t          j        | |          S r   )r   delete)r5   objs     r   r:   r:   6   s    9S#r   c                 *    t          j        |           S r   r   diffr+   s    r   diff1r@   :   r   r   c                 ,    t          j        | |          S r   r=   )r+   ns     r   diff2rC   >       71a==r   c                 *    t          j        |           S r   r   bincountr?   s    r   	bincount1rH   B       ;q>>r   c                 .    t          j        | |          S )NweightsrF   )r+   ws     r   	bincount2rN   F   s    ;q!$$$$r   c                 .    t          j        | ||          S r   rF   )r+   rM   	minlengths      r   	bincount3rQ   J   s    ;q!Y'''r   c                 ,    t          j        | |          S r   r   searchsortedr+   vs     r   rT   rT   N       ?1a   r   c                 0    t          j        | |d          S )NleftsiderS   rU   s     r   searchsorted_leftr\   R   s    ?1af----r   c                 0    t          j        | |d          S )NrightrZ   rS   rU   s     r   searchsorted_rightr_   V   s    ?1ag....r   c                      t          j        |  S r   )r   digitizeargss    r   ra   ra   Z   s    ;r   c                      t          j        |  S r   )r   	histogramrb   s    r   re   re   ^   s    <r   c                  (    t          j                    S r   )r   MachArrb   s    r   macharrh   b   s    9;;r   c                 *    t          j        |           S r   )r   	iscomplexr   s    r   rj   rj   f       <??r   c                 *    t          j        |           S r   )r   iscomplexobjr   s    r   rm   rm   j       ?1r   c                 *    t          j        |           S r   )r   isscalarr   s    r   rp   rp   n   rI   r   c                 *    t          j        |           S r   )r   isrealr   s    r   rr   rr   r       9Q<<r   c                 *    t          j        |           S r   )r   	isrealobjr   s    r   ru   ru   v   rk   r   c                 ,    t          j        | |          S r   )r   isneginfr   outs     r   rw   rw   z       ;q#r   c                 ,    t          j        | |          S r   )r   isposinfrx   s     r   r|   r|   ~   rz   r   h㈵>:0yE>Fc                 2    t          j        | ||||          S r   )r   iscloser+   r,   rtolatol	equal_nans        r   r   r      s    :aD$	222r   c                 *    t          j        |           S r   )r   isnatr   s    r   r   r      r$   r   c                      t          j        |  S r   )r   iinforb   s    r   r   r          8T?r   c                      t          j        |  S r   )r   finforb   s    r   r   r      r   r   c                  (    t          j        |  j        S r   )r   r   rh   rb   s    r   finfo_macharr      s    8T?!!r   c                 *    t          j        |           S r   r   fliplrr?   s    r   r   r      rs   r   c                 *    t          j        |           S r   r   flipudr?   s    r   r   r      rs   r   c                 *    t          j        |           S r   )r   flipr?   s    r   r   r      r   r   c                 ,    t          j        | |          S r   r   logspacestartstops     r   	logspace2r      s    ;ud###r   2   c                 0    t          j        | ||          S Nnumr   r   r   r   s      r   	logspace3r      s    ;ud,,,,r   c                 ,    t          j        | |          S r   r   	geomspacer   s     r   
geomspace2r      s    <t$$$r   c                 0    t          j        | ||          S r   r   r   s      r   
geomspace3r      s    <t----r   c                 *    t          j        |           S r   r   rot90r?   s    r   r   r      r$   r      c                 ,    t          j        | |          S r   r   )r+   ks     r   rot90_kr          8Aq>>r   c                 0    t          j        | ||          S r1   )r   array_splitr+   indicesr3   s      r   r   r      s    >!W40000r   c                 0    t          j        | ||          S r1   )r   splitr   s      r   r   r      s    8AwT****r   c                 ,    t          j        | |          S r   )r   vsplitr+   
ind_or_secs     r   r   r          9Q
###r   c                 ,    t          j        | |          S r   )r   hsplitr   s     r   r   r      r   r   c                 ,    t          j        | |          S r   )r   dsplitr   s     r   r   r      r   r   validc                 0    t          j        | ||          S Nmode)r   	correlater+   rV   r   s      r   r   r      s    <14((((r   fullc                 0    t          j        | ||          S r   )r   convolver   s      r   r   r      s    ;q!$''''r   c                 *    t          j        |           S r   r   triNs    r   tri_nr      s    6!99r   c                 ,    t          j        | |          S r   r   r   Ms     r   tri_n_mr          6!Q<<r   c                 ,    t          j        | |          S r   r   r   r   s     r   tri_n_kr      r   r   c                 .    t          j        | ||          S r   r   r   r   r   s      r   	tri_n_m_kr      s    6!Q??r   c                 *    t          j        |           S r   r   trilms    r   tril_mr      r   r   c                 ,    t          j        | |          S r   r   r   r   s     r   tril_m_kr      rD   r   c                 *    t          j        |           S r   r   tril_indicesrB   s    r   tril_indices_nr      rn   r   c                 ,    t          j        | |          S r   r   rB   r   s     r   tril_indices_n_kr      rW   r   c                 .    t          j        | |          S Nr   r   rB   r   s     r   tril_indices_n_mr          ?1""""r   c                 .    t          j        | ||          S r   r   rB   r   r   s      r   tril_indices_n_k_mr          ?1a###r   c                 *    t          j        |           S r   r   tril_indices_fromr5   s    r   tril_indices_from_arrr          $$$r   c                 ,    t          j        | |          S r   r   r5   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  
  rD   r   c                 *    t          j        |           S r   r   triu_indicesr   s    r   triu_indices_nr	    rn   r   c                 ,    t          j        | |          S r   r  r   s     r   triu_indices_n_kr    rW   r   c                 .    t          j        | |          S r   r  r   s     r   triu_indices_n_mr    r   r   c                 .    t          j        | ||          S r   r  r   s      r   triu_indices_n_k_mr    r   r   c                 *    t          j        |           S r   r   triu_indices_fromr   s    r   triu_indices_from_arrr    r   r   c                 ,    t          j        | |          S r   r  r   s     r   triu_indices_from_arr_kr  "  r   r   c                 .    t          j        | ||          S r   )r   vanderr   r   
increasings      r   r  r  &  s    9Q:&&&r   c                 ,    t          j        | |          S r   )r   	partitionr+   kths     r   r  r  *  s    <3r   c                 ,    t          j        | |          S r   )r   argpartitionr  s     r   r  r  .  s    ?1c"""r   Tc                 2    t          j        | ||||          S r   )r   cov)r   yrowvarbiasddofs        r   r!  r!  2  s    6!Qd+++r   c                 .    t          j        | ||          S r   )r   corrcoefr   r"  r#  s      r   r'  r'  6  s    ;q!V$$$r   c                 .    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    71er   c                 *    t          j        |           S r   r   asarrayr?   s    r   r3  r3  B      :a==r   c                 .    t          j        | |          S Ndtyper2  r+   r8  s     r   asarray_kwsr:  F  s    :au%%%%r   c                 .    t          j        | |          S r6  r   asfarrayr9  s     r   r=  r=  J  s    ;q&&&&r   c                 *    t          j        |           S r   r<  r?   s    r   asfarray_default_kwargr?  N  rI   r   c                 ,    t          j        | |          S r   )r   extract	conditionr5   s     r   rA  rA  R  s    :i%%%r   c                 *    t          j        |           S r   r   trapzr"  s    r   np_trapzrH  V  r$   r   c                 ,    t          j        | |          S r   rE  r"  r   s     r   
np_trapz_xrK  Z  r   r   c                 .    t          j        | |          S )NdxrE  r"  rN  s     r   np_trapz_dxrP  ^  s    8A"r   c                 .    t          j        | ||          S r   rE  r"  r   rN  s      r   np_trapz_x_dxrS  b  s    8Aq"r   c                 2    t          j        | ||||          S r   )r   allcloser   s        r   np_allcloserV  f  s    ;q!T4333r   c                 0    t          j        | ||          S )Nr3   rL   )r   average)r+   r3   rL   s      r   
np_averagerZ  j  s    :adG4444r   c                 .    t          j        | ||          S r   )r   interpr   xpfps      r   r\  r\  n  s    9QBr   c                 ,    t          j        | |          S r   )r   repeatr+   repeatss     r   	np_repeatrd  r  s    9Q   r   c                 P    t          j        |                               |          S r   )r   r3  ra  rb  s     r   array_repeatrf  v  s    :a==(((r   c                 0    t          j        | ||          S )N)defaultr   select)condlist
choicelistrh  s      r   	np_selectrm  z  s    9Xz7;;;;r   c                 ,    t          j        | |          S r   ri  )rk  rl  s     r   np_select_defaultsro  ~  s    9Xz***r   c                 *    t          j        |           S r   )r   bartlettr   s    r   np_bartlettrs    rI   r   c                 *    t          j        |           S r   )r   blackmanrr  s    r   np_blackmanrv    rI   r   c                 *    t          j        |           S r   )r   hammingrr  s    r   
np_hammingry    r4  r   c                 *    t          j        |           S r   )r   hanningrr  s    r   
np_hanningr|    r4  r   c                 ,    t          j        | |          S r   )r   kaiser)r   betas     r   	np_kaiserr    s    9Qr   c                 ,    t          j        | |          S r   )r   crossr*   s     r   np_crossr    r   r   fbc                 ,    t          j        | |          S r   )r   
trim_zeros)r+   trims     r   np_trim_zerosr    s    =D!!!r   c                 "    t          | |          S r   r   r*   s     r   
nb_cross2dr    s    1a==r   c                 *    t          j        |           S r   r   r?   s    r   flip_lrr    rs   r   c                 *    t          j        |           S r   r   r?   s    r   flip_udr    rs   r   c                 ,    t          j        | |          S r   )r   union1dr*   s     r   
np_union1dr    s    :a??r   c                 ,    t          j        | |          S r   )r   asarray_chkfiniter9  s     r   np_asarray_chkfiniter    s    5)))r   -DT!@c                 2    t          j        | |||          S Nperiodr   unwrap)pdiscontr3   r  s       r   r  r    s    9Qf5555r   c                 *    t          j        |           S r   r  )r  s    r   unwrap1r    rs   r   c                 .    t          j        | |          S r  r  )r  r  s     r   unwrap13r    s    9Qv&&&&r   c                 0    t          j        | ||          S )Nr  r  r  )r  r  r  s      r   	unwrap123r    s    9Qvw7777r   c                 
    || v S r    )r+   keys     r   array_containsr    s    !8Or   c                 .    t          j        | ||          S r   )r   swapaxes)r+   a1a2s      r   r  r    s    ;q"b!!!r           c                 0    t          j        | ||          S )Ncopynan)r   
nan_to_num)Xr  r  s      r   r  r    s    =3////r   c                 *    t          j        |           S r   )r   r   )
dimensionss    r   
np_indicesr    s    :j!!!r   c                 *    t          j        |           S r   r   diagflat)rV   s    r   	diagflat1r    rI   r   c                 ,    t          j        | |          S r   r  )rV   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/d0 Z0d1 Z1d2 Z2dd3Z3d4 Z4d5 Z5d6 Z6d7 Z7d8 Z8d9 Z9d: Z:d; Z;d< Z<e=d=             Z>d> Z?d? Z@d@ ZAdA ZBdB ZCdC ZDdD ZEdE ZFdF ZGddHZHdI ZIdJ ZJdK ZKdL ZLdM ZMdN ZNdO ZOdP ZPdQ ZQdR ZRdS ZSdT ZTdU ZUdV ZVdW ZWdX ZXdY ZYdZ ZZd[ Z[d\ Z\d] Z]d^ Z^d_ Z_d` Z`da Zadb Zbdc Zcdd Zdde Zedf Zfdg Zgdh Zhdi Zidj Zjdk Zkdl Zlemdm             Zndn Zoemdo             Zpemdp             Zqemdq             Zremdr             Zsds Ztemdt             Zuemdu             Zvemdv             Zwemdw             Zxdx Zydy Zzdz Z{d{ Z|d| Z}d} Z~d~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej        d          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 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zӈ xZS )TestNPFunctionsz,
    Tests for various Numpy functions.
    c                     t          t          |                                            t          j                            d          | _        d S )N*   )superr  setUpr   randomRandomStaternd)self	__class__s    r   r  zTestNPFunctions.setUp  s:    ot$$**,,,9((,,r   NFc           
      r   t          ||          D ]\  }	}
|dgx}}t          ||          D ]\  }} t          |	f|z             |          } ||
g|R  } ||
g|R  }	 |	j        }n# t          $ r |	}Y nw xY w|t          j        t          j        fv rdnd}d|
d|} | j        ||f||||d| dS )aC  
        Runs tests for a unary function operating in the numerical real space.

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

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

        Nr  singledoublez
for input z with prec )precmsgignore_sign_on_zeroabs_tol)zipr   r8  AttributeErrorr	   float32	complex64assertPreciseEqual)r  pyfuncx_typesx_valuesfunc_extra_typesfunc_extra_argsr  r  kwargstxvxxtypesxargscfuncgotexpectedscaltyr  r  s                      r   	run_unaryzTestNPFunctions.run_unary  sf   0 '8,, 	C 	CFB&68T9 ?!$%5!G!G C C-bUV^--f55eB''''!6"-u--- XFF%      FFF  "emU_%EEE !%  68RR>''X C-1,/<O07	C C <B	C C C CC	C 	Cs   !A))A87A8c                     ddt            fd}g d}t          j        t          j        gt	          |          dz  z  } |||           t          j        |t
          j                  g}d |D             } |||           g d}t          j        t          j        gt	          |          dz  z  } |||d	           t          j        |t
          j                  g}d
 |D             } |||d	           dS )zv
        Tests the sinc() function.
        This test is purely to assert numerical computations are correct.
        Tepsc                 .     j         | |fd| d S )N)r  r  )r  )r  r  r  isozr  r  tols      r   checkz(TestNPFunctions.test_sinc.<locals>.check,  s@    DN67H %/3S% %#% % % % %r   )
      ?      r               ?         g#B;g#B   r7  c                 ,    g | ]}t          |          S r  r   .0rV   s     r   
<listcomp>z-TestNPFunctions.test_sinc.<locals>.<listcomp>8      ///6!99///r   )      ?                                      r                ?y                    ?                            ?      ?                  @      @            y#B;        y#B        y        #B;y        #B)ulpsc                 ,    g | ]}t          |          S r  r  r  s     r   r  z-TestNPFunctions.test_sinc.<locals>.<listcomp>F  r  r   N)	r   r	   r  float64lenr   arrayr  
complex128)r  r  r  r  r  r  r  s   `   @@@r   	test_sinczTestNPFunctions.test_sinc  sS     	% 	% 	% 	% 	% 	% 	% 	% IHH=%-0CMMQ4FGgx    HXRZ8889//h///gx     
 ?E$45X!9KLgxa(((( HXR];;;<//h///gxa((((((r   c                 8   t           } t          d          |          }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTnopythonstrz+Argument "x" must be a Number or array-like)r   r   assertRaisesr   assertInr  	exceptiondisable_leak_checkr  r  r  raisess       r   test_sinc_exceptionsz$TestNPFunctions.test_sinc_exceptionsI  s    "T"""6**{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- 	!!!!!   AAAc                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3   l  K   t          j        dd          } d}| |fV  t          j        d          }d}||fV  t          j        dg          }d}d}||fV  ||fV  t          j        g           }||fV  t          j        ddg          }|dfV  ||fV  t           j                            d           t           j                            d          }	t           j                            d           t           j                                        }
|	d	         }|	|
fV  |	|fV  |	                    t           j                  }||d	         fV  ||
fV  t           j                            d           t           j        	                    dd
t           j
                  }|dfV  |dfV  d S )N
   r            TFr  r      )sizer8  r     )r   aranger3  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>.arrsU  s     )B##CCs(NNN)A,,CCs(NNN:rd++LDE$$$$%%%%
2IU"""" xu..HD.   C-INN1	r**IINN1Y^^%%F!!IV####Y&&&&"66Jjm++++f$$$$INN1y(("BH(EEHA+B,r   Tr
  )r  r   r  )r  r2  r  r  r5   r  r  receiveds           r   test_containszTestNPFunctions.test_containsT  s    +	 +	 +	Z  "T"""6** 	8 	8HCvc3''HuS#H##Hh7777		8 	8r   c                     t           t           fd}g d}t          j        t          j        gt          |          dz  dz   z  } |||           t          j        |t          j                  g}d |D             } |||           g d}t          j        t          j	        gt          |          dz  dz   z  } |||           t          j        |          }t          j        t          j	        g} |||           dS )	zw
        Tests the angle() function.
        This test is purely to assert numerical computations are correct.
        c                                          | |           ddg}t          j        fgt          |          z  }                     | |||           d S )NTF)r  r  )r  r	   bool_r  )r  r  xtra_values
xtra_typespyfunc1pyfunc2r  s       r   r  z)TestNPFunctions.test_angle.<locals>.check  sm    NN7GX666"H-K ;.)C,<,<<JNN7GX,6+6  9 9 9 9 9r   )r  r  r  r  r  r  r  r  r  r   r7  c                 ,    g | ]}t          |          S r  r  r  s     r   r  z.TestNPFunctions.test_angle.<locals>.<listcomp>  r  r   )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<  r=  s   `   @@r   
test_anglezTestNPFunctions.test_angle  s8   
 	9 	9 	9 	9 	9 	9 	9 :99=%-0CMMQ4F4JKgx    HXRZ8889//h///gx   A A A?E$45X!9Ka9OPgx    8H%%?E$45gx     r   c                    d }|}g d}g d}t          ||          D ]a\  }}t          j        |g|          } t          d          |          } ||          }	 ||          }
|                     |	|
           bd S )Nc                 8    t          j        |           }|j        S r   )r   r"   r8  )r   rs     r   numba_anglez;TestNPFunctions.test_angle_return_type.<locals>.numba_angle  s    A7Nr   )r  r  r  r  )f4f8c8c16r7  Tr
  )r  r   r  r   assertEqual)r  rC  r  r  r  valtypr   r  r  r  s              r   test_angle_return_typez&TestNPFunctions.test_angle_return_type  s    	 	 	 ...+++Hg.. 	, 	,HC#c***A&C&&&v..EvayyH%((CXs++++	, 	,r   c                 8   t           } t          d          |          }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )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  s    "T"""6**{++ 	vE'NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	H&*++	- 	- 	- 	!!!!!r  c                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3     K   t          j        g           t          j        g           fV  t          j        ddg          t          j        ddg          fV  t          j        g           t          j        dg          fV  t          j        d                              dd          } d| d         d<   t          j        d                              dd          | fV  | | fV  dV  dV  dV  d	V  d
V  dV  dV  dV  d S )Nr   r  r  r     r   r     rS  )r  r  )rT  r  )TTTF)Tr  )Tr   )Fr   r   r  r  reshaper   s    r   arraysz0TestNPFunctions.test_array_equal.<locals>.arrays  s,     (2,,,,,,(Aq6""BHaV$4$44444(2,,!----	"%%a++AAaDG)B--''1--q0000Q$JJJ&&&&JJJJJJMMMMMMNNNNNr   Tr
  )r)   r   r  r  rX  r  r  r5   r;   r  r  s           r   test_array_equalz TestNPFunctions.test_array_equal  s    	 	 	" "T"""6** 	3 	3HCvc3''H%S//C##Hc2222	3 	3r   c                 ^   t           } t          d          |          }|                     t                    5 } |t	          j        d                              dd          d            d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTr
     rT     z3Both arguments to "array_equals" must be array-like)
r)   r   r  r   r   r  rW  r  r  r  r  s       r   test_array_equal_exceptionz*TestNPFunctions.test_array_equal_exception  s    "T"""6**{++ 	8vE")E""**1a00$777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8A !!	
 	
 	
 	
 	
s   3A::A>A>c                    d }t           } t          d          |          } |            D ][\  }}t          j        |          }t          j        |          } |||          } |||          }|                     ||           \d S )Nc               3      K   g g fV  dgg fV  g dgfV  dgdgfV  dgdgfV  ddgdgfV  g dddgfV  ddgddgfV  g dg dfV  d S )Nr   r  r   r  r  rS  r  r  r   r   rX  z0TestNPFunctions.test_intersect1d.<locals>.arrays  s      b&LLL#r'MMMqc'MMM#s(NNN#s(NNNa&1#+))aV####a&1a&.   ))YYY&&&&&&r   Tr
  )r/   r   r   r  r  )r  rX  r  r  r+   r,   r  r  s           r   test_intersect1dz TestNPFunctions.test_intersect1d  s    		' 		' 		' "T"""6**FHH 	3 	3DAqAAva||H%1++C##Hc2222	3 	3r   c                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3     K   t          j        g           d fV  t          j        d          d fV  t          j        d          d fV  t          j        d                              ddd          d fV  t          j        d                              dd          dfV  t          j        d                              dd          dfV  d S )	Nr  <   rT  r]  r  r\  r   r   )r   r  zerosr  rW  r  r   r   rX  z2TestNPFunctions.test_count_nonzero.<locals>.arrays  s      (2,,$$$$(2,,$$$$)B--%%%%)I&&..q!Q77====)E""**1a00!3333)E""**1a00!333333r   Tr
  )r8   r   r  )r  rX  r  r  r5   r3   r  r  s           r   test_count_nonzeroz"TestNPFunctions.test_count_nonzero
  s    	4 	4 	4 "T"""6** 	3 	3ICvc4((H%T""C##Hc2222	3 	3r   c                     d }t           } t          d          |          } |            D ]6\  }}} ||||          } ||||          }|                     ||           7d S )Nc               3     K   dV  t          j        d          dd fV  t          j        d          t          j        d          d fV  t          j        d                              dd          t          j        d          d fV  t          j        g dg dg          t          j        g dg          d	fV  t          j        g dg dg          } | | d
fV  d S )N)r  r  Nr  rT  r  r  rS  r]  r  r        	   r   r   )r   r  rW  r  r   s    r   rX  z.TestNPFunctions.test_np_append.<locals>.arrays  s      )B--D(((()B--1t3333)B--''1--ry||TAAAA(IIIyyy122BHiii[4I4I1LLLL(IIIyyy122CsA+r   Tr
  )r4   r   r  )	r  rX  r  r  r5   r;   r3   r  r  s	            r   test_np_appendzTestNPFunctions.test_np_append  s    	 	 	 "T"""6**$fhh 	3 	3NCdvc3--H%S$''C##Hc2222	3 	3r   c                 @   t           } t          d          |          }t          j        g dg dg          }t          j        g dg          }d}|                     t
                    5 } |d ||           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } ||d |           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |||d	
           d d d            n# 1 swxY w Y   |                     dt          |j                             | 	                                 d S )NTr
  rS  rj  rk  r   z+The first argument "arr" must be array-likez/The second argument "values" must be array-liker  r2   z,The third argument "axis" must be an integer)
r4   r   r   r  r  r   r  r  r  r  )r  r  r  r5   r6   r3   r  s          r   test_np_append_exceptionsz)TestNPFunctions.test_np_append_exceptions.  s]   "T"""6**h			999-..999+&& {++ 	&vE$%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&9 !!	
 	
 	
 {++ 	#vE#tT"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#= !!	
 	
 	
 {++ 	)vE#vC((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	): !!	
 	
 	

 	!!!!!s6   .BBBC//C36C3<EEEc                     d }t           } t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3   &  K   g ddfV  g dddgfV  t          j        d          dfV  t          j        d          dfV  t          j        d          g dfV  t          j        d          g dfV  t          j        d                              dd	d
          dfV  t          j        d                              dd	d
          g dfV  g dt          ddd          fV  t          j        d          t          d          fV  d S )Nr   r  rT  r]  r  rT  r  r  )rT  r  r  )r  rT  r]  r  re  r]  r  )r  rQ     rm  r   r  rT  r]  r   )r   r  rW  slicer  r   r   rX  z+TestNPFunctions.test_delete.<locals>.arraysQ  sD      "//1$$$$!//Aq6)))))B--"""")B--####)B--****)B------)I&&..q!Q77::::)I&&..q!Q77GGGG,,aA....)B--r******r   Tr
  )r:   r   r  rY  s           r   test_deletezTestNPFunctions.test_deleteO  s    	+ 	+ 	+( "T"""6** 	3 	3HCvc3''H%S//C##Hc2222	3 	3r   c                    t           } t          d          |          }|                                  |                     t                    5 } |ddgd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          g d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd	           d d d            n# 1 swxY w Y   |                     d
t          |j                             |                     t                    5 } |ddgd	           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTr
  r   r  gQ	@zobj should be of Integer dtyper  )g      @gffffff@g@rT  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_exceptionsm  s   "T"""6**!!!{++ 	 vE1a&$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 , !!	
 	
 	

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

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

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

 	!!!!!sH   A**A.1A.7!C$$C(+C(1E

EEF22F69F6c              #      K   t          j        d          dz  }|V  |                    d          }|V  t          j        d                              d          dz  }|V  dS )z0
        Some test arrays for np.diff()
        r\  rT  rT  r]     )rT  r  r]  Nr   r  rW  r  r+   r,   cs       r   diff_arrayszTestNPFunctions.diff_arrays  sj       IbMMQIIfIbMM!!),,1r   c                 d   t           } t          d          |          }|                                 D ].} ||          } ||          }|                     ||           /t	          j        d          }|                                 5   ||           d d d            d S # 1 swxY w Y   d S )NTr
  r  )r@   r   r  r  r   r  assertTypingError)r  r  r  r5   r  r  r+   s          r   
test_diff1zTestNPFunctions.test_diff1  s   "T"""6**##%% 	3 	3Cvc{{H%**C##Hc2222 HRLL##%% 	 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B%%B),B)c           	         t           } t          d          |          }|                                 D ]P}|j        d         }dddd|dz
  ||dz   dfD ]0} |||          } |||          }|                     ||           1Qd S )	NTr
  r  r   r   r  rT  i  )rC   r   r  shaper  )r  r  r  r5   r  rB   r  r  s           r   
test_diff2zTestNPFunctions.test_diff2  s    "T"""6**##%% 	7 	7C9R=DAq$(D$(C@ 7 7!6#q>>eCmm''#66667	7 	7r   c                 ,   t           } t          d          |          }|                                  t          j        d          }|                                 5   ||d           d d d            n# 1 swxY w Y   t          j        d          }dD ]h}|                     t                    5 } |||           d d d            n# 1 swxY w Y   | 	                    dt          |j                             i|                                  d S )NTr
  r  r   r  )r  izorder must be non-negative)rC   r   r  r   r  r  r  r  
ValueErrorr  r  r  )r  r  r  r5   rB   r  s         r   test_diff2_exceptionsz%TestNPFunctions.test_diff2_exceptions  s   "T"""6** 	!!! hrll##%% 	 	E#qMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 imm 	O 	OA"":.. &c1              MM6F<L8M8MNNNN!!!!!s$   A66A:=A:3CC	C	c                     d }t           } t          d          |          } |            D ]/} ||          } ||          }|                     |||           0d S )Nc               3   F  K   dV  t          j        dg          V  dV  dV  dV  t          d          V  t          j        d          V  dV  dV  d V  t          j        dd	          V  t          j        d
          V  t          j        dd	          V  d S )NrT  )rT                @numbar  i90  gV-@TYnatr   )r   r3  intint16timedelta64
datetime64r  r   r   r6   z-TestNPFunctions.test_isscalar.<locals>.values  s      GGG*aS//!!!JJJHHHMMMb''MMM(5//!!!KKKJJJJJJ.S)))))-&&&&&-3'''''''r   Tr
  )rp   r   rH  r  r6   r  r  r   r  r  s          r   test_isscalarzTestNPFunctions.test_isscalar  s    	( 	( 	( "T"""6** 	/ 	/AvayyH%((CXsA....	/ 	/r   c                 @   d }t          d          d             }t          t          g}|D ]} t          d          |          } |            D ]} ||          } ||          }|                     ||           |                    |d|          }	 ||d|          }
|                     |	|
           |                    |d|          } ||d|          }|                     ||           |                     t          |j                  d           d S )Nc               3   R   K   dV  dV  t          j        g d          V  dV  d S )Nr   r  )rT  r  Thello worldr2  r  r   r   r6   z4TestNPFunctions.test_isobj_functions.<locals>.values  sG      GGGLLL*.../////r   Tr
  c                 $    |r| nd } ||          S r   r  )r   condr  r"  s       r   optional_fnz9TestNPFunctions.test_isobj_functions.<locals>.optional_fn  s    #tA588Or   Frm  )r   rm   ru   rH  py_funcr  
signatures)r  r6   r  pyfuncsr  r  r   r  r  expected_optionalgot_optionalexpected_nonegot_nones                r   test_isobj_functionsz$TestNPFunctions.test_isobj_functions  si   	  	  	  
d				 	 
		  + 	7 	7F&C&&&v..EVXX : :!6!99eAhh  3/// %0$7$74$H$H!*{1dE::  !2LAAA !, 3 3Auf E E&;q%77  9999S!122A6666#	7 	7r   c                     d }t           t          g}|D ]T} t          d          |          } |            D ].} ||          } ||          }|                     ||           /Ud S )Nc               3      K   t          j        g d          V  t          j        g d          V  dV  dV  dV  dV  dV  t          j        dd	gdd
gddgddgg          V  d S )N)      ?      ?r        @rT  r                 @rS  rT  y              (@      ?      @y      $@        )r  y       @        r   r  r]  r  r  rl  rm  r   r  r  r   r   r6   z7TestNPFunctions.test_is_real_or_complex.<locals>.values  s      (:::;;;;;(999%%%%%GGGIIILLLMMM""""(QFQFQFQF;<<<<<<<r   Tr
  )rj   rr   r   r  )r  r6   r  r  r  r   r  r  s           r   test_is_real_or_complexz'TestNPFunctions.test_is_real_or_complex  s    	= 	= 	= f% 	7 	7F&C&&&v..EVXX 7 7!6!99eAhh''#66667	7 	7r   c                     d }t           t          g}|D ]Y} t          d          |          } |            D ]3\  }} |||          } |||          }|                     ||           4Zd S )Nc               3     K   t           j        d fV  t           j        d fV  t           j        d fV  t          j        t           j         dt           j        g          d fV  t           j        t          j        dt           j                  fV  t           j        t          j        dt           j                  fV  t           j        t          j        dt           j                  fV  t           j        t          j        d          fV  t          j        t           j         dt           j        g          t          j        dt           j                  fV  d S )Nr  r   r7  r\  rT  )r   NINFinfPINFr3  rf  r9  emptyr  r   r   r6   z7TestNPFunctions.test_isneg_or_ispos_inf.<locals>.values  s*     '4-&$,'4-*rvgr26233T9999'28ARX6666666&"(1BH5555555'28ARX6666666'28B<<''''*rvgr26233RXarx5P5P5PPPPPPPr   Tr
  )rw   r|   r   r  )	r  r6   r  r  r  r   ry   r  r  s	            r   test_isneg_or_ispos_infz'TestNPFunctions.test_isneg_or_ispos_inf  s    		Q 		Q 		Q X& 	7 	7F&C&&&v..E &(( 7 73!6!S>>eAsmm''#66667	7 	7r   c                   	
 ddt          j        ddg          
t          j        d                              d          	d	
fd}t          } t          d	
          |          } |            D ]s\  }}} |||fi |} |||fi |}t          |t           j                  r|                     ||           K| 	                    t          j
        ||                     td S )Nr}   r~   d     rm  r  r  r  )r   r   c               3   `  K   ddi fV  dt           j        i fV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          i fV  t          j        dt           j        g          t          j        dt           j        g          i fV  t          j        dt           j        g          t          j        dt           j        g          d	d
ifV  t          j        t           j        t           j        g          t          j        dt           j        g          d	d
ifV  t          j        ddg          t          j        ddg          ddifV  t          j        ddg          t          j        ddg          i fV  t          j        ddg          t          j        ddg          ddifV  t          j        dt           j        dg          t          j        dt           j        dg          fV  t          j        t           j        t           j         t           j        g          t          j        dg          fV  t          j        t           j        t           j         t           j        g          dfV  dt          j        t           j        t           j         t           j        g          fV  t          j        ddg          t          j        ddg          fV  fV  t          j        dg          t          j        dz   z   g          fV  z  z   fV  z  z   z   fV     z  z   fV  t           j        t           j        fV  t           j         t           j        fV  t           j        t          j        t           j        g          fV  t          j        t           j        t           j         g          t          j        t           j        t           j         g          fV  t          j        t           j        dg          t          j        dt           j        g          fV  t          j        t           j        t           j         g          t          j        ddg          fV  t          j        t           j        t           j        g          t          j        dt           j         g          fV  t          j        t           j        t           j        g          t          j        ddg          fV  t          j        t           j        dg          t          j        t           j        t           j         g          fV  t          j        dz  g          t          j        dg          fV  t          j        dg          t          j        dz   dz  z   g          fV    dz   z  z   dz  z   fV  t          j        t          j        t           j        dg                    t          j        t          j        dt           j        g                    fV  t          j        t           j        dg          t          j        dz  dz  g          fV  t          j        t           j        dg          t          j        t           j        dz  g          fV  t          j        ddddz  z   z  z   g          t          j        dt           j        dg          fV  t          j        d          t          j        g d          fV  t           j        t          j        t           j        t           j        t           j        g          fV  t          j        dg          t          j        t           j        t           j         t           j        g          fV  dt          j        t           j        t           j         t           j        g          fV  d S )N    _B   UkBr~   Hz>r  &.>   2٠Br  r   T0.++r   绽|=g#B;g=|=r   r  rT  r]  r   皙?    .A)r   r    @)r   r  r  r  r  )aranr5   r   kwr   s   r   r6   z,TestNPFunctions.test_isclose.<locals>.values,  s     
B&&&&""""(D$<(("(C:*>*>BBBB(D$<(("(J3E*F*FJJJJ(D$<(("(J3E*F*FJJJJ(D$<(("(It3D*E*ErIIII(C=))28S"&M+B+BBFFFF(C=))28S"&M+B+B[RVDWWWWW(BFBF+,,bhRV}.E.EUYGZZZZZ(FD>**BHc3Z,@,@63-OOOO(E5>**BHeS\,B,BBFFFF(E5>**BHe\5J,K,KfVY]ZZZZ(Arvq>**BHa^,D,DbHHHH(D"&26'26:;;RXqc]]BNNNN(D"&26'26:;;QBBBBRXtRVbfWbf=>>BBBB (Aq6""BHaV$4$4b8888sB,(A3--1t8d?*;!<!<b@@@@sS4Z'++++sS4Z'$.2222td{*B....&"&"$$$$6'262%%%%&"(BF8,,b0000(BFRVG,--rx"&8I/J/JBNNNN (BFA;''1bf+)>)>BBBB(BFRVG,--rxA/?/?CCCC(BFBF+,,bhBF7|.D.DbHHHH(BFBF+,,bh1v.>.>BBBB(BFA;''26BF72C)D)DbHHHH(D1H:&&!r9999(A3--1t8dQh+>*?!@!@"DDDDtczD004#:=rAAAA(28RVQK001128BHa[<Q<Q3R3RTVVVVV (BFA;''4!8TAX2F)G)GKKKK(BFA;''264!82D)E)ErIIII(D!SADL%9D%@ABBBHaQSQWY\M]D^D^`bbbbb)A,, 5 5r9999&"(BFBFBF#;<<b@@@@(A3--4"&"&*I!J!JBNNNNRXtRVbfWbf=>>BBBBBBr   Tr
  )r   r  r  rW  r   r   
isinstancer9  rH  
assertTruer)   )r  r6   r  r  r+   r,   r  r  r  r  r5   r   r  r   s            @@@@@r   test_isclosezTestNPFunctions.test_isclose%  sI   hT{##y||##I..D))3	C 3	C 3	C 3	C 3	C 3	C 3	C 3	C 3	Cj "T"""6**"FHH 	? 	?LAq&va--f--H%1''''C(BH-- ?  3////x = =>>>>	? 	?r   c                    t           } t          d          |          }t          j        ddt          j        g          t          j        ddg          dddd	t
          fd
dddddt          fdd
ddddt          fddddddt          fddddddt          fddddddt          fg}|D ]G\  }}}}}}	}
|                     |
|	          5   ||||||           d d d            n# 1 swxY w Y   Hd S NTr
  r  r  r  r}   r~   Fz=shape mismatch: objects cannot be broadcast to a single shaperM  rT  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 pointr   z0The fifth argument "equal_nan" must be a boolean)r   r   r   r3  r  r  r   assertRaisesRegexr  r  r  inpsr+   r,   r   r   r   exc_msgexcs              r   isclose_exceptionz!TestNPFunctions.isclose_exceptionk  s   "T"""6**ZtRV,--ZD)**E5L	
 au8 u9 5%A 5%B 5%?%
. :> 	3 	35Aq$i#''W55 3 3aD$	2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3s   C""C&	)C&	c                     g d}t          j        g d          }| j                            ddd                              t           j                  }|||fS )z7
        Some test sequences for np.bincount()
        )r   r  r  r  rT  r  )r  rm  r  r  r   r  ,  r  )r   r  r  r"  astypeint8r  s       r   bincount_sequencesz"TestNPFunctions.bincount_sequences  sZ      H]]]##HQ#..55bg>>1ayr   c                     t           } t          d          |          }|                                 D ].} ||          } ||          }|                     ||           /d S NTr
  )rH   r   r  r  )r  r  r  seqr  r  s         r   test_bincount1zTestNPFunctions.test_bincount1  sy    "T"""6****,, 	3 	3Cvc{{H%**C##Hc2222	3 	3r   c                 d   t           } t          d          |          }|                                  |                     t                    5 } |ddg           d d d            n# 1 swxY w Y   |                     dt          |j                             |                                  d S )NTr
  r  r  #first argument must be non-negative)rH   r   r  r  r  r  r  r  r  s       r   test_bincount1_exceptionsz)TestNPFunctions.test_bincount1_exceptions  s    "T"""6** 	!!! z** 	fE1b'NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 	!!!!!s   A))A-0A-c                 B   t           } t          d          |          }|                                 D ]i}d |D             }|t          j        |          |t          j        |          fD ]0} |||          } |||          }|                     ||           1jd S )NTr
  c                 <    g | ]}t          j        |          d z
  S r  )mathsqrtr  r   s     r   r  z2TestNPFunctions.test_bincount2.<locals>.<listcomp>  s%    ///a1!///r   )rN   r   r  r   r  r  )r  r  r  r  rM   rL   r  r  s           r   test_bincount2zTestNPFunctions.test_bincount2  s    "T"""6****,, 	7 	7C//3///Arx{{C#? 7 7!6#w//eC))''#66667	7 	7r   c                    t           } t          d          |          }|                                  |                     t                    5 } |ddgddg           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgdg           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTr
  r  r  r   r  z+weights and list don't have the same length)rN   r   r  r  r  r  r  r  r  s       r   test_bincount2_exceptionsz)TestNPFunctions.test_bincount2_exceptions  s   "T"""6** 	!!! z** 	#fE1b'Aq6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#;&*++	- 	- 	- z** 	 fE1b'A3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 C&*++	- 	- 	- 	- 	-$   A,,A03A09CCCc                 f   t           } t          d          |          }|                                 D ]{}t          |          }||dz   fD ]b} ||d |          } ||d |          }|                     t          |          t          |                     |                     ||           c|d S )NTr
  r  )rQ   r   r  maxrH  r  r  )r  r  r  r  a_maxrP   r  r  s           r   test_bincount3zTestNPFunctions.test_bincount3  s    "T"""6****,, 	7 	7CHHE#UQY/ 7 7	!6#tY77eCy11  XC999''#6666	7	7 	7r   c                    t           } t          d          |          }|                                  |                     t                    5 } |ddgddg           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgd d           d d d            n# 1 swxY w Y   |                     d	t          |j                             d S )
NTr
  r  r  r   r     &   z 'minlength' must not be negative)rQ   r   r  r  r  r  r  r  r  s       r   test_bincount3_exceptionsz)TestNPFunctions.test_bincount3_exceptions  s   "T"""6** 	!!! z** 	#fE1b'Aq6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#;&*++	- 	- 	- z** 	&fE2r(D"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&8&*++	- 	- 	- 	- 	-r  c                    	
 t            t          d                    t           t          d                    	t           t          d                    
	
 fd}t	          j        d          dz  }t	          j        d          dz
  }|t          |          fD ]R}|D ]} |||           ||                    d          fD ]} |||            ||t          |                     St	          j        t          |          t          d	          gd
z  z             dz  }t	          j        d          dz
  }|t          |          fD ]R}|D ]} |||           ||                    d          fD ]} |||            ||t          |                     Sd } t          d          |           
                                5   ddgd           d d d            n# 1 swxY w Y   dd} t          d          |           
                                5   ddgdd           d d d            n# 1 swxY w Y   t	          j        g d          }t	          j        ddgdd
gddgddgg          } |||           t	          j        g d          }t	          j        ddgddgddgg          } |||           d S )NTr
  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   r  r+   rV   r  r  r  
cfunc_leftcfunc_rightr  pyfunc_leftpyfunc_rightr  s       r   r  z0TestNPFunctions.test_searchsorted.<locals>.check      va||H%1++C##Hc222"{1a((H*Q""C##Hc222#|Aq))H+a##C##Hc22222r   r  r  r  r   r]  r  r  rl         @r  c                 0    t          j        | |d          S )NnonsenserZ   rS   rU   s     r   bad_sidez3TestNPFunctions.test_searchsorted.<locals>.bad_side  s    ?1aj9999r   rY   c                 0    t          j        | ||          S )NrZ   rS   )r+   rV   r[   s      r   nonconst_sidez8TestNPFunctions.test_searchsorted.<locals>.nonconst_side!  s    ?1ad3333r   r^   rZ   )r   r  r   r]  r  r   rT  )	rn  r   r]  r  r   rT  rl  r  rm  r  r  )rY   )rT   r   r\   r_   r   r  listrW  r  floatr  r  )r  r  binsr6   r+   rV   r  r  r  r  r  r  r  r  s   `       @@@@@@r   test_searchsortedz!TestNPFunctions.test_searchsorted  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 y||q 2"T

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

# 	# 	#A  afnnV445  aE!T&\\""""	: 	: 	:"T"""8,,##%% 	 	E1Q%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 		4 	4 	4 	4"T"""=11##%% 	* 	*E1Q%))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* HYYYHAAAA	
 
 	aH00011HBQQ
 
 	as$   (HH
H?II #I c                    	
 t            t          d                    	t           t          d                    
t           t          d                    	
 fd}t	          t          dd                    }|t          j        gdz  t          j        gdz  z   t          j         gdz  z   z  }t          d          D ]} j	        
                    g d	          } j	        
                    ||          } j	        
                    |||dz  d
z
  z             } |||            |t          j        |          |           t          j        d          }t          j        t          |          t          j                  } |||            |||            |||            |||           t          j        d
          }t          j        d          } |||           t          j        g d          }t          j        ddg          } |||           g d}d} |||           t          j        g d          }t          j        ddg          } |||           d S )NTr
  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   r  r  s       r   r  z=TestNPFunctions.test_searchsorted_supplemental.<locals>.checkG  r  r   r  r   r  rT  r  )r  r  r  r   
fill_valuer   )FFTTFrS  )123r  4)rT   r   r\   r_   r  ranger   r  r  r  choicesortonesr   r  r  r  )r  r  element_poolisample_sizer+   rV   r  nansr  r  r  r  r  r  s   `        @@@@@@r   test_searchsorted_supplementalz.TestNPFunctions.test_searchsorted_supplemental=  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 E"bMM**1x!|3wi!mCCt 		! 		!A(//+++66K k::AkQUQY.GHHA E!QKKKE"'!**a    wqzzws4yyRV444dD 	dDdDdD IaLLIaLLa H///00HeT]##a IIa H___%%Hc3Z  ar   c                    	
 t            t          d                    t           t          d                    	t           t          d                    
	
 fd}ddt          j        g}d t          j        ||          D             }t          d          D ]} j	        
                    dd	t          |          g          } j	        
                    ||          } j	        
                    |||dz  dz
  z             } |||            |t	          j        |          |            |t	          j        |          t	          j        d
                     d S )NTr
  c                     | |          } | |          }
                     ||            | |          } | |          }
                     ||            	| |          } | |          }
                     ||           d S r   r  r  s       r   r  z8TestNPFunctions.test_searchsorted_complex.<locals>.check  r  r   r   r   c                      g | ]}t          | S r  )complex)r  r  s     r   r  z=TestNPFunctions.test_searchsorted_complex.<locals>.<listcomp>  s    KKKKKKr   r  rT  r  r  rU   )rT   r   r\   r_   r   r  	itertoolsr   r  r  r  r  r  r  r  )r  r  poolr  r  r  r+   rV   r  r  r  r  r  r  s   `       @@@@@@r   test_searchsorted_complexz)TestNPFunctions.test_searchsorted_complex  s   "T"""6**''S$'''44
)(c4(((66	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 1bf~KKY->tT-J-JKKKs 		! 		!A(//1a\1B1B*CDDK k::AkQUQY.GHHA E!QKKKE"'!**a     	&&")A,,777777r   c                 <    t            t          d                     fd}t          j        dddddd	d
ddt	          d          t	          d          t	          d          f          }t          |          dk    sJ  j                            |           t          j        g d          }t          j        dddd
t	          d          t	          d          g          }t          j        dddd
t	          d          t	          d          gt	          d          gdz  z             }|||g}||                    d          g}|D ]<}|	                                 |D ]#}	 ||	|            ||	|d d d                    $=|D ]*}dD ]%}
 ||||
            |||d d d         |
           &+ |t          |          |            |t          j        t          j        dg          t          j        dt          j        g                     d S )NTr
  c                  H     |  } |  }                     ||           d S r   r  rc   r  r  r  r  r  s      r   r  z,TestNPFunctions.test_digitize.<locals>.check  5    vt}H%,C##Hc22222r   r   Gz?r   皙@r  rl  rm  rn        #@r  z-infr  r\  r   rT  r  rm  rT  r  r~  r  rU        ?)ra   r   r   r  r  r  r  shufflerW  r  r  r  r  )r  r  r6   bins1bins2bins3all_binsxsr  r   r^   r  r  s   `          @@r   test_digitizezTestNPFunctions.test_digitize  sh   "T"""6**	3 	3 	3 	3 	3 	3 	3
 Qac1aC"5\\5==%,,H I I6{{b       
>>>**
Aq#q%,,fFGG
Aq#q%,,fF#Ell^b01 2 2 5%(fnnV,,-  	% 	%DIIKKK % %aaddd$$$$%
  	1 	1D& 1 1fdE***fd44R4j%00001
 	d6llE""" 	bh{##RXsBFm%<%<=====r   c                 z                                       t           t          d                     fd}t          j        t          j        dg          }t          j        t          j        ddt          j        g          } |||           g d}g d} |||           g d	} |||           d S )
NTr
  c                      fD ]c}                     t                    5 } ||   d d d            n# 1 swxY w Y   d}                    |t          |j                             dd S )Nz3bins must be monotonically increasing or decreasingr  r  r  r  r  )rc   fnr  r  r  r  r  s       r   check_errorzETestNPFunctions.test_digitize_non_monotonic_bins.<locals>.check_error  s    uo : :&&z22 fBII               Lc3v'7#8#89999: :s   48	8	r   r&  ffffff@r  r   r   r  )r   r   r   r   r   r   r   r   )r  ra   r   r   r  r  )r  r2  r   r  r  r  s   `   @@r    test_digitize_non_monotonic_binsz0TestNPFunctions.test_digitize_non_monotonic_bins  s    !!!"T"""6**	: 	: 	: 	: 	: 	: 	: Hbfa[!!xc26233AtMM||At||Atr   c                 V    t            t          d                     fd}t          j        dd          }t          j        dd          } |||           t          j        ddd          }t          j        ddd          } |||            j                            d          }t          j        |                                |                                d          } |||           g d	}g d
} |||           t          j        dd          }t          j        dd          } |||d           t          j        ddd          }t          j        ddd          } |||d            j                            d          }t          j        |                                |                                d          } |||d           g d}g d} |||           g d} |||           g d} |||           d} ||g|dz
  |dz   g           d S )NTr
  c                  H     |  } |  }                     ||           d S r   r  r   s      r   r  z9TestNPFunctions.test_digitize_supplemental.<locals>.check  r!  r   r  r  r  r  )r   r  r]  r  rm     r   )r   r  r  r]  r4  )r   r   r   )r   r   r   r   r   r   r   l          r   )	ra   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 	3 	3 	3 	3 	3 	3 Ib!yQa IaR  yB##a HMM"{15577AEEGGR00a $##zza Ib!yQat IaR  yB##at HMM"{15577AEEGGR00at MMyyayya||a qcAE1q5>"""""r   c                    |                                   t          } t          d          |          }t          j        dg          }t          j        g d          }d}||fD ]b}|                                 5 } |||           |                     |t          |j                             d d d            n# 1 swxY w Y   cd S )NTr
  r  )r        @r         @zx may not be complex)	r  ra   r   r   r  r  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**HfXH&&&''$EM 	: 	:D'')) :VQ


c3v'7#8#8999: : : : : : : : : : : : : : :	: 	:s   <5B==C	C	c                     t            t          d                     fdfd}t          j        d          }t	          |          dk    sJ  j                            |            ||           d S )NTr
  c                       |  \  }} |  \  }}                     ||                                ||dd           d S )Nr  r  r  r  r  )rc   pyhistpybinschistcbinsr  r  r  s        r   r  z-TestNPFunctions.test_histogram.<locals>.check<  s\    #VT]NFF 5$<LE5##FE222 ##FEq#IIIIIr   c                     t          j        g d          } | |            |                     d          |            | d            | dd            |            d S )Nr%  r~  rl  )r  g      +@)r   r  rW  )r6   r  r  s     r   check_valuesz4TestNPFunctions.test_histogram.<locals>.check_valuesD  s     :nnn--DE&$E&..(($/// E&! E&![))) E&MMMMMr   )r   r"  r   r#  r  rl  rm  rn  r$  g     @E@r  r  r\  )re   r   r   r  r  r  r'  )r  rL  r6   r  r  r  s   `  @@@r   test_histogramzTestNPFunctions.test_histogram8  s    "T"""6**	J 	J 	J 	J 	J 	J 	J	 	 	 	 	   7 8 86{{b       Vr   c                 ,    t          d          |          }d}t          j        t          j        t          j        t          j        t          j        t          j        t          j        g}g d}t          j
        |||||          D ]\  }}}}	}
t          j        ||          }t          j        |	|          }t          j        |t          j                  r|d|z  z                       |          }t          j        |t          j                  r|d|z  z                       |          } ||||
          } ||||
          }|                     ||           t          j        d                              d	d
          }t          j        d          }||f||ffD ]m\  }}|                     t$                    5 } |||           d d d            n# 1 swxY w Y   d}|                     |t)          |j                             nd S )NTr
  )r   r  rT  rl  )r   r   samer7  r  r   r\  r]  rT  zonly supported on 1D arrays)r   r   r  int32int64r  r  r  r  r  r   r  
issubdtypecomplexfloatingr  r  rW  r  r   r  r  r  )r  r  r  lengthsdtsmodesdt1dt2rB   r   r   r+   rV   r  r  _a_br   r"  r  r  s                        r   _test_correlate_convolvez(TestNPFunctions._test_correlate_convolve[  sH   "T"""6** w"(BJ
|R],)))$-$5gw%
 %
 	3 	3 CaD 	!3'''A	!3'''A}S""455 -aZ'',,}S""455 -aZ'',,va...H%14(((C##Hc2222Yr]]""1a((Yr]]"XBx( 	6 	6DAq"";// 6a              /CMM#s6#3445555		6 	6s   GG"	%G"	c                 :    |                      t                     d S r   )r[  r   r  s    r   test_correlatezTestNPFunctions.test_correlate|  s    %%i00000r   c                    |                                   t          j        d          }t          j        d          } t	          d          |          }||f||ffD ]\  }}|                     t                    5 } |||           d d d            n# 1 swxY w Y   t          |          dk    r)|                     dt          |j
                             |                     dt          |j
                             |                     t                    5 } |||d	
           |                     dt          |j
                             d d d            d S # 1 swxY w Y   d S )Nr   )r  r  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  r1  rY  rZ  r  r   r"  r  s           r   #_test_correlate_convolve_exceptionsz3TestNPFunctions._test_correlate_convolve_exceptions  s   !!! W4   Yq\\"T"""2&&"XBx( 	L 	LDAq"":.. &a              1vv{{3S9I5J5JKKKK3S9I5J5JKKKKz** 	CfE"b~....MM*C0@,A,ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs$   >BB	B	!7E%%E),E)c                 :    |                      t                     d S r   )ra  r   r]  s    r   test_correlate_exceptionsz)TestNPFunctions.test_correlate_exceptions  s    00;;;;;r   c                 :    |                      t                     d S r   )r[  r   r]  s    r   test_convolvezTestNPFunctions.test_convolve  s    %%h/////r   c                 :    |                      t                     d S r   )ra  r   r]  s    r   test_convolve_exceptionsz(TestNPFunctions.test_convolve_exceptions  s    00:::::r   c                 V     |di |} |di |}|                      |||           d S )Nr  r  r  )r  r  r  paramsr  r  r  s          r   _check_outputzTestNPFunctions._check_output  sI    6##F##eoofoo#w?????r   c                    t           } t          d          |          }t          | j        ||          fd} |t	          j        g d                      |t	          j        d          dz
              |t	          j        ddd	                      |t	          j        d
t          j        t          j	        t          j	         g                      |t	          j        g                       |t	          j        dd	          dz
              |t	          j        dgd	z  dgdz  z                        t          j
        t          j        t          j        t          j        fD ]!} |t	          j        d|                     " |g d            |d            |d            |d            |d            |d           d S )NTr
  c                     g d}ddg}d| i} |           |D ]}| |d} |           |D ]}| |d} |           |D ]}|D ]}| ||d} |           d S )N)Nr   r   r  rT  r]  TFr   )r   r   )r   r  r  r  )r   	n_choicesincreasing_choicesrj  rB   r  rk  s         r   _checkz1TestNPFunctions.test_vander_basic.<locals>._check  s    ---I"& 1XFM&!!!  & & q))f%%%% 1 & &
 
;;f%%%%  * *"4 * *J#$1JGGF!M&))))** *r   )r   r  rT  r  rl        %@rT  r  r  333333?r  333333?Fr]  r7  r   r   r  rT  r]  r  r  rl  )r  r  r  r  )rT  g-@A`"	@)TFr]  )r  r   r   rk  r   r  r  r<  r  r  rP  rQ  r  r  )r  r  r  rp  r8  rk  s        @r   test_vander_basicz!TestNPFunctions.test_vander_basic  s   "T"""6** 2FEBB	* 	* 	* 	* 	*0 	rx%%&&&ry||d"###r{1b!$$%%%rxbfbfrvg677888rx||ryQ#%&&& 	rx
eWq[011222 XrxRZ? 	/ 	/EF29Ru---.... 	||||r


 	 !!!     r   c                 H    t           } t          d          |                                            t          j        d          dz
   fd}ddt          j        ddgfD ]} ||                                t                    5 } d	
           d d d            n# 1 swxY w Y                        dt          |j
                              fd}t          j        d                              d           |           d |           d S )NTr
  r  r  c                                                      5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nr   z,Second argument N must be None or an integerr  r  r  r  )r   r  r  r  r   s     r   _check_nz8TestNPFunctions.test_vander_exceptions.<locals>._check_n  s    '')) Va1              MMHf.//1 1 1 1 1   044r  r   r  r  r   z#Negative dimensions are not allowedc                                          t                    5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nz.x must be a one-dimensional array or sequence.)r  r  rH  r  r  )r   r  r  r  s     r   	_check_1dz9TestNPFunctions.test_vander_exceptions.<locals>._check_1d  s    "":.. &a              M !1224 4 4 4 4   488rv  )rT  rT  rT  )r  rT  r  )r  r   r  r   r  r  r  r  r  r  r  rW  )r  r  r{  r   r  r~  r  r   s   `     @@r   test_vander_exceptionsz&TestNPFunctions.test_vander_exceptions  s   "T"""6** 	!!!IaLL3	1 	1 	1 	1 	1 	1 	1 dBFQF* 	 	AHQKKKKz** 	fE!rNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	-	4 	4 	4 	4 	4 	4 IbMM!!),,	!	!s   B**B.1B.c                     t           } t          d          |          }t          | j        ||          }d } |            D ]}d|i} ||           d S )NTr
  c                  ,    t          j        dd          S Nrm  r   r  r  r   r   n_variationsz6TestNPFunctions.test_tri_n_basic.<locals>.n_variations       9R###r   r   )r   r   r   rk  )r  r  r  rp  r  rB   rj  s          r   test_tri_n_basicz TestNPFunctions.test_tri_n_basic  s}    "T"""6**+VU;;	$ 	$ 	$  	 	A1XFF6NNNN	 	r   c                 
   t           } t          d          |          }t          | j        ||          }d }d } |            D ]}d|i} ||            |            D ]} |            D ]}||d} ||            d S )NTr
  c                  ,    t          j        dd          S r  r  r  r   r   r  z8TestNPFunctions.test_tri_n_m_basic.<locals>.n_variations  r  r   c                  b    t           j                            d gt          dd          f          S Nr  rn  r  chainfrom_iterabler  r  r   r   m_variationsz8TestNPFunctions.test_tri_n_m_basic.<locals>.m_variations  '    ?004&%A,,1GHHHr   r   r   )r   r   r   rk  )	r  r  r  rp  r  r  rB   rj  r   s	            r   test_tri_n_m_basicz"TestNPFunctions.test_tri_n_m_basic  s    "T"""6**+VU;;	$ 	$ 	$	I 	I 	I
  	 	A1XFF6NNNN  	 	A!\^^   q))v	 	r   c                 
   t           } t          d          |          }t          | j        ||          }d }d } |            D ]}d|i} ||            |            D ]} |            D ]}||d} ||            d S )NTr
  c                  ,    t          j        dd          S r  r  r  r   r   r  z8TestNPFunctions.test_tri_n_k_basic.<locals>.n_variations$  r  r   c                  ,    t          j        dd          S Nr  r  r  r   r   k_variationsz8TestNPFunctions.test_tri_n_k_basic.<locals>.k_variations'      9S"%%%r   r   r   )r   r   r   rk  )	r  r  r  rp  r  r  rB   rj  r   s	            r   test_tri_n_k_basicz"TestNPFunctions.test_tri_n_k_basic  s    "T"""6**+VU;;	$ 	$ 	$	& 	& 	&  	 	A1XFF6NNNN  	 	A!\^^   q))v	 	r   c                    t           } t          d          |          }t          | j        ||          }d }d }d } |            D ]}d|i} ||            |            D ]} |            D ]}	||	d} ||             |            D ]} |            D ]}
||
d} ||             |            D ]-} |            D ] }
 |            D ]}	||	|
d	} ||           !.d S )
NTr
  c                  ,    t          j        dd          S r  r  r  r   r   r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.n_variations:  r  r   c                  b    t           j                            d gt          dd          f          S r  r  r  r   r   r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.m_variations=  r  r   c                  ,    t          j        dd          S r  r  r  r   r   r  z:TestNPFunctions.test_tri_n_m_k_basic.<locals>.k_variationsA  r  r   r   r   r   r   )r   r   r   rk  )r  r  r  rp  r  r  r  rB   rj  r   r   s              r   test_tri_n_m_k_basicz$TestNPFunctions.test_tri_n_m_k_basic5  s   "T"""6**+VU;;	$ 	$ 	$	I 	I 	I	& 	& 	&  	 	A1XFF6NNNN  	 	A!\^^   q))v
  	 	A!\^^   q))v
  	# 	#A!\^^ # #% # #A#$1155FF6NNNN##	# 	#r   c                      t           } t          d          |                                             fd}ddt          j        ddgfD ]} ||           d S )NTr
  c                                                      5 } dd|            d d d            n# 1 swxY w Y   dt          |j                  v sJ d S )Nr  r  r   k must be an integer)r  r  r  )r   r  r  r  s     r   rp  z3TestNPFunctions.test_tri_exceptions.<locals>._checkc  s    '')) !Vaa    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !)S1A-B-BBBBBBBs   155r&  r   r  )r   r   r  r   r  )r  r  rp  r   r  s   `   @r   test_tri_exceptionsz#TestNPFunctions.test_tri_exceptions\  s    "T"""6** 	!!!	C 	C 	C 	C 	C 	C
 dBFQF* 	 	AF1IIII	 	r   c                 v      t          d                     fd}                      |          S )NTr
  c                      |           } |           }                     |j        |j                   t          j                            ||           d S r   )rH  r8  r   testingassert_array_equal)r5   r  r  r  r  r  s      r   rp  z:TestNPFunctions._triangular_matrix_tests_m.<locals>._checkn  sU    vc{{H%**CSY777J))#x88888r   r   _triangular_matrix_tests_innerr  r  rp  r  s   `` @r   _triangular_matrix_tests_mz*TestNPFunctions._triangular_matrix_tests_mk  s\    "T"""6**	9 	9 	9 	9 	9 	9 	9 224HHHr   c                 v      t          d                     fd}                      |          S )NTr
  c                 $   t           j                            d gt          dd          f          D ]]}|i }nd|i} | fi |} | fi |}                    |j        |j                   t          j                            ||           ^d S )Nr  r  r   )	r  r  r  r  rH  r8  r   r  r  )r5   r   rj  r  r  r  r  r  s        r   rp  z<TestNPFunctions._triangular_matrix_tests_m_k.<locals>._checkz  s    _22TFE#rNN3KLL 	= 	=9FF!1XF!6#0000eC**6**  HN;;;
--c8<<<<	= 	=r   r  r  s   `` @r   _triangular_matrix_tests_m_kz,TestNPFunctions._triangular_matrix_tests_m_kw  s\    "T"""6**
	= 
	= 
	= 
	= 
	= 
	= 
	= 224HHHr   c                    fd}fd} |t          j        d          dz               |t          j        d          dz
              t          j        d                              ddd	d
                      t          j        g                       t          j        d                              d          d d d                     t          j        d                              dd                     t          j        d          dz
                      d          } |            t          j        |                     d S )Nc                      |            |                      d          }  |            |                      d          }  |             | j                   d S )N)rn  rl  )rl  r   rT  rT  rW  Tr+   rp  s    r   	check_oddzATestNPFunctions._triangular_matrix_tests_inner.<locals>.check_odd  s_    F1III		&!!AF1III		,''AF1IIIF13KKKKKr   c                      |            |                      d          }  |            |                      d          }  |             | j                   d S )N)r]     r]  r  r  r]  r  r  s    r   
check_evenzBTestNPFunctions._triangular_matrix_tests_inner.<locals>.check_even  s_    F1III		'""AF1III		,''AF1IIIF13KKKKKr   ?   rq  @   ih  rT  r]  r  r  rn  )rT  rT  r  Forderr  )r   r  rW  r  asfortranarray)r  r  rp  r  r  r5   s     `   r   r  z.TestNPFunctions._triangular_matrix_tests_inner  sa   	 	 	 	 		 	 	 	 	 		")B--$&'''
29R==4'((( 	ry~~%%aAq11222rx||ry||##F++DDbD1222ry||##F##66777y}}t#,,\::sr %%&&&&&r   c                 L    t          d          |          }|                                  t          j        d          }|                                 5 } ||d           |                     dt          |j                             d d d            d S # 1 swxY w Y   d S )NTr
  r  r  r&  r  r  )r   r  r   r  r  r  r  r  )r  r  r  r+   r  s        r   _triangular_matrix_exceptionsz-TestNPFunctions._triangular_matrix_exceptions  s    "T"""6** 	!!!GFOO##%% 	IE!sOOOOMM0#f6F2G2GHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is   6BB Bc                     t          d          |          }|D ]} || } || }|                     t          |          t          |                     |                     t          |          t          |                     t	          ||          D ]%\  }}t
          j                            ||           &d S r  )r   rH  typer  r  r   r  r  )	r  r  rc   r  r   r  r  egs	            r   _triangular_indices_tests_basez.TestNPFunctions._triangular_indices_tests_base  s    "T"""6** 	4 	4AvqzH%)CT(^^T#YY777S]]CHH555Hc** 4 41
--a33334	4 	4r   c                 `    |                      |d t          d          D                        d S )Nc                     g | ]}|gS r  r  )r  rB   s     r   r  z?TestNPFunctions._triangular_indices_tests_n.<locals>.<listcomp>  s    $$$QaS$$$r   r  r  r  r  r  s     r   _triangular_indices_tests_nz+TestNPFunctions._triangular_indices_tests_n  s>    ++$$%))$$$	
 	
 	
 	
 	
r   c                 `    |                      |d t          d          D                        d S )Nc                 J    g | ] }t          | d z
  |dz             D ]}||g!S r   r  r  )r  rB   r   s      r   r  zATestNPFunctions._triangular_indices_tests_n_k.<locals>.<listcomp>  s=    EEEqb1fa!e0D0DEE1aVEEEEr   r  r  r  s     r   _triangular_indices_tests_n_kz-TestNPFunctions._triangular_indices_tests_n_k  s>    ++EEU2YYEEE	
 	
 	
 	
 	
r   c                 `    |                      |d t          d          D                        d S )Nc                 @    g | ]}t          d |z            D ]}||gS r  r  )r  rB   r   s      r   r  zATestNPFunctions._triangular_indices_tests_n_m.<locals>.<listcomp>  s3    ===a!e==1aV====r   r  r  r  s     r   _triangular_indices_tests_n_mz-TestNPFunctions._triangular_indices_tests_n_m  s>    ++==U2YY===	
 	
 	
 	
 	
r   c                     |                      |d t          d          D                         t          d          |          } |d           d S )Nc                 v    g | ]6}t          | d z
  |dz             D ]}t          d|z            D ]}|||g7S r  r  )r  rB   r   r   s       r   r  zCTestNPFunctions._triangular_indices_tests_n_k_m.<locals>.<listcomp>  su     $ $ $1QBFAE**$ $AEll$ $ AY $ $ $ $ $r   r  Tr
  r   )r  r  r   )r  r  r  s      r   _triangular_indices_tests_n_k_mz/TestNPFunctions._triangular_indices_tests_n_k_m  sk    ++$ $b		 $ $ $	
 	
 	
 #T"""6**ar   c                 V    t          d          |          }t          t          t          fD ]}t	          j        t          d          t          d                    D ]\  }}t          j        ||f|          } ||          } ||          }| 	                    t          |          t          |                     | 	                    t          |          t          |                     t          ||          D ]%\  }	}
t          j                            |	|
           &Ɍd S )NTr
  r  r   r  r  boolr  r   r  r   r  rH  r  r  r  r  r  )r  r  r  r8  rB   r   r5   r  r  r  r  s              r   "_triangular_indices_from_tests_arrz2TestNPFunctions._triangular_indices_from_tests_arr  s   "T"""6**5$' 	8 	8E (rE"II>> 8 8!gq!fe,,!6#;;eCjj  hc;;;  XC999#.. 8 8DAqJ11!Q777788	8 	8r   c           	          t          d          |          }t          t          t          fD ]}t	          j        t          d          t          d                    D ]\  }}t          j        ||f|          }t          dd          D ]} ||          } ||          }	| 	                    t          |          t          |	                     | 	                    t          |          t          |	                     t          ||	          D ]%\  }
}t          j                            |
|           &ܐd S )NTr
  r  r  r  )r  r  r  r8  rB   r   r5   r   r  r  r  r  s               r   $_triangular_indices_from_tests_arr_kz4TestNPFunctions._triangular_indices_from_tests_arr_k  s9   "T"""6**5$' 		< 		<E (rE"II>> < <!gq!fe,,sB < <A%vc{{H%**C$$T(^^T#YY???$$S]]CHH=== #Hc 2 2 < <1
55a;;;;<<<		< 		<r   c                     t          d          |          }t          |          j        }|                                 5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d|v ra|                                 5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d	|v rc|                                 5 } |dd
           d d d            n# 1 swxY w Y   |                     dt          |j                             d S d S )NTr
  r  zn must be an integerr   r   r  r  r   r   zm must be an integer)r   r   
parametersr  r  r  r  )r  r  r  r  r  s        r   _triangular_indices_exceptionsz.TestNPFunctions._triangular_indices_exceptions  s   "T"""6** ((3
##%% 	E#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	,c&2B.C.CDDD*''))  Va3                             MM0#f6F2G2GHHH*''))  Va3                             MM0#f6F2G2GHHHHH s6   AA!A%B??CC
D$$D(+D(Tc                 &    t          d          |          }dD ]y}t          j        dg|z            }|                                 5 } ||           d d d            n# 1 swxY w Y   |                     dt          |j                             z|ryt          j        ddg          }|                                 5 } ||d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S d S )	NTr
  )r   r   rT  r  zinput array must be 2-dr  r  r  )r   r   r  r  r  r  r  )r  r  test_kr  ndimsr+   r  s          r   #_triangular_indices_from_exceptionsz3TestNPFunctions._triangular_indices_from_exceptions	  s   "T"""6** 	L 	LEe$$A'')) Va              MM3S9I5J5JKKKK 	IAA''))  Va3                             MM0#f6F2G2GHHHHH		I 	Is$   
A""A&	)A&	CC #C c                 n    |                      t                     |                     t                     d S r   )r  r   r  r   r]  s    r   test_tril_basiczTestNPFunctions.test_tril_basic  0    ''///))(33333r   c                 :    |                      t                     d S r   )r  r   r]  s    r   test_tril_exceptionsz$TestNPFunctions.test_tril_exceptions      **844444r   c                    |                      t                     |                     t                     |                     t
                     |                     t                     |                     t                     |                     t                     |                     t
                     |                     t                     d S r   )	r  r   r  r   r  r   r  r   r  r]  s    r   test_tril_indicesz!TestNPFunctions.test_tril_indices      ((888**+;<<<**+;<<<,,-?@@@++N;;;++,<===++,<===++,>?????r   c                     |                      t                     |                     t                     |                     t          d           |                     t          d           d S NFT)r  r   r  r   r  r]  s    r   test_tril_indices_fromz&TestNPFunctions.test_tril_indices_from)  `    //0EFFF112IJJJ001FNNN001H$OOOOOr   c                 n    |                      t                     |                     t                     d S r   )r  r  r  r  r]  s    r   test_triu_basiczTestNPFunctions.test_triu_basic/  r  r   c                 :    |                      t                     d S r   )r  r  r]  s    r   test_triu_exceptionsz$TestNPFunctions.test_triu_exceptions3  r  r   c                    |                      t                     |                     t                     |                     t
                     |                     t                     |                     t                     |                     t                     |                     t
                     |                     t                     d S r   )	r  r	  r  r  r  r  r  r  r  r]  s    r   test_triu_indicesz!TestNPFunctions.test_triu_indices6  r  r   c                     |                      t                     |                     t                     |                     t          d           |                     t          d           d S r  )r  r  r  r  r  r]  s    r   test_triu_indices_fromz&TestNPFunctions.test_triu_indices_from@  r  r   c                     t           }t          t                     }d } |            D ]*}|                      ||           ||                     +d S )Nc               3   *   K   dV  dV  dV  dV  d S )N)r]  rT  )r]  r`  )r  r  rT  r  r  r  r   r   inputsz2TestNPFunctions.test_indices_basic.<locals>.inputsJ  s3      LLLJJJJJJr   )r  r   r  )r  r  r  r  dimss        r   test_indices_basicz"TestNPFunctions.test_indices_basicF  sm    Z  	 	 	 FHH 	? 	?D##FF4LL%%++>>>>	? 	?r   c                    t          t                    }|                                  d}|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     |t          |j                             d S )Nz5The argument "dimensions" must be a tuple of integersabc)r  r@  )r  r@  )r   r  r  r  r   r  r  r  )r  r  errmsgr  s       r   test_indices_exceptionz&TestNPFunctions.test_indices_exceptionT  s   Z  !!!H{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	f&*++	- 	- 	- {++ 	vE*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	f&*++	- 	- 	- {++ 	vE(OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	f&*++	- 	- 	- 	- 	-s6   AA!$A!*CC	CD''D+.D+c                 ^    |||          } |||          }|                      t          j        |d |                   t          j        |d |                              |                      t          j        ||d                    t          j        ||d                               d S r   r  r   uniquer  r  r  r+   r  r  r  s          r   partition_sanity_checkz&TestNPFunctions.partition_sanity_checki  s     6!S>>eAsmm 		(4C4. 9 929S#Y;O;OPPP 		(344. 9 929SY;O;OPPPPPr   c           	          |||          } |||          }|                      t          j        ||d |                            t          j        ||d |                                       |                      t          j        |||d                             t          j        |||d                                        d S r   r  r  s          r   argpartition_sanity_checkz)TestNPFunctions.argpartition_sanity_checkv  s     6!S>>eAsmm 		!HTcTN*; < < "	!CI, 7 7	9 	9 	9 		!HSTTN*; < < "	!CI, 7 7	9 	9 	9 	9 	9r   c           
      D   t           } t          d          |          }t          dd          D ]m}t          d|dz
            D ]U}t          j        |          }| j                            |           || j                            dd          z  }| j                            |j                  }d|||dz   | | g}t          j	        |          |         }| 
                     |||          |         |           | 
                     ||                                |          |         |           | 
                     |t          |                                          |          |         |           |D ]}	|                     ||||	           Wod S NTr
  r  rQ  r   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  s    "T"""6**r2 	E 	EA1a!e__ E EIaLL  ###((B///h&&qv..#q!a%#r2gajjo''ac(:(+- - -''ahhjj#(>(>s(C(+- - -''eAHHJJ.?.?(E(Ec(J(+- - -  E EA//q!DDDDEE	E 	Er   c                    t           } t          d          |          }t          dd          D ]}t          d|dz
            D ]y}t          j        |          }| j                            |           || j                            dd          z  }| j                            |j                  }d|||dz   | | g}t          j	        |          |         }| 
                    | |||          |                  ||                    | 
                    | ||                                |          |                  ||                    | 
                    | |t          |                                          |          |                  ||                    |D ]}	|                     ||||	           {d S r  )r  r   r  r   r  r  r'  r"  r  argsortr  r  r  r
  r  s
             r   test_argpartition_fuzzz&TestNPFunctions.test_argpartition_fuzz  s    "T"""6**r2 	H 	HA1a!e__ H HIaLL  ###((B///h&&qv..#q!a%#r2jmmC(''%%3--*<(=()#0 0 0''%%

C*@*@*E(F()#0 0 0''%%ahhjj0A0A3*G*G*L(M()#0 0 0  H HA2265!QGGGGHH	H 	Hr   c                      t           } t          d          |                                            t          j        d          } fd} ||d            ||d            ||d           d S )NTr
  r  c                                          t                    5 } | |           d d d            n# 1 swxY w Y   t          |j                  dk    sJ d S Nzkth out of boundsr  r  r  r  r+   r  r  r  r  s      r   rp  zETestNPFunctions.test_partition_exception_out_of_range.<locals>._check      "":.. !a              q{##':::::::   599rT  rQ  )r  r   r  r   r  r  r  r+   rp  r  s   `   @r   %test_partition_exception_out_of_rangez5TestNPFunctions.test_partition_exception_out_of_range  s     "T"""6** 	!!! IbMM	; 	; 	; 	; 	; 	;
 	q"q#q'r   c                      t           } t          d          |                                            t          j        d          } fd} ||d            ||d            ||d           d S )NTr
  r  c                                          t                    5 } | |           d d d            n# 1 swxY w Y   t          |j                  dk    sJ d S r  r  r  s      r   rp  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** 	!!! IbMM	; 	; 	; 	; 	; 	;
 	q"q#q'r   c                 ,    t           } t          d          |                                             fd}t          j        d          } ||d            ||d            ||t          j        ddt          j        f                     d S )	NTr
  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S NzPartition index must be integerrz  r+   r  r  r  r  s      r   rp  zHTestNPFunctions.test_partition_exception_non_integer_kth.<locals>._check      '')) Va              MM;f.//1 1 1 1 1   /33r        "@ffffff
@r#  r   r  )r  r   r  r   r  r  r  r  r  rp  r+   r  s   `   @r   (test_partition_exception_non_integer_kthz8TestNPFunctions.test_partition_exception_non_integer_kth  s     "T"""6** 	!!!	1 	1 	1 	1 	1 	1 IbMMq#q*q"(Aq"&>**+++++r   c                 ,    t           } t          d          |                                             fd}t          j        d          } ||d            ||d            ||t          j        ddt          j        f                     d S )	NTr
  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r(  rz  r)  s      r   rp  zKTestNPFunctions.test_argpartition_exception_non_integer_kth.<locals>._check  r*  r+  r  r,  r-  r   r  )r  r   r  r   r  r  r  r/  s   `   @r   +test_argpartition_exception_non_integer_kthz;TestNPFunctions.test_argpartition_exception_non_integer_kth  s     "T"""6** 	!!!	1 	1 	1 	1 	1 	1 IbMMq#q*q"(Aq"&>**+++++r   c                      t           } t          d          |                                             fd} |dd            |dd           d S )NTr
  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S Nz(The first argument must be an array-likerz  r)  s      r   rp  zITestNPFunctions.test_partition_exception_a_not_array_like.<locals>._check	      '')) Va              MMDf.//1 1 1 1 1r+  r]  r   Sausages)r  r   r  r  s   `  @r   )test_partition_exception_a_not_array_likez9TestNPFunctions.test_partition_exception_a_not_array_like	  s~    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	q!z1r   c                      t           } t          d          |                                             fd} |dd            |dd           d S )NTr
  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r6  rz  r)  s      r   rp  zLTestNPFunctions.test_argpartition_exception_a_not_array_like.<locals>._check	  r7  r+  r]  r   r8  )r  r   r  r  s   `  @r   ,test_argpartition_exception_a_not_array_likez<TestNPFunctions.test_argpartition_exception_a_not_array_like	  s~    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	q!z1r   c                      t           } t          d          |                                             fd} |t          j        d          d           d S )NTr
  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S Nz3The first argument must be at least 1-D (found 0-D)rz  r)  s      r   rp  zCTestNPFunctions.test_partition_exception_a_zero_dim.<locals>._check.	      '')) Va              MMOf.//1 1 1 1 1r+  r   r   )r  r   r  r   r  r  s   `  @r   #test_partition_exception_a_zero_dimz3TestNPFunctions.test_partition_exception_a_zero_dim'	  sw    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	rx{{Ar   c                      t           } t          d          |                                             fd} |t          j        d          d           d S )NTr
  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S r?  rz  r)  s      r   rp  zFTestNPFunctions.test_argpartition_exception_a_zero_dim.<locals>._check=	  r@  r+  r   r   )r  r   r  r   r  r  s   `  @r   &test_argpartition_exception_a_zero_dimz6TestNPFunctions.test_argpartition_exception_a_zero_dim6	  sw    "T"""6** 	!!!	1 	1 	1 	1 	1 	1 	rx{{Ar   c                     t           } t          d          |                                             fd} |t          j        d          t          j        d                              dd                     d S )	NTr
  c                                          t                    5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S Nzkth must be scalar or 1-Dr0  r)  s      r   rp  zNTestNPFunctions.test_partition_exception_kth_multi_dimensional.<locals>._checkL	      "":.. &a              MM5s6;K7L7LMMMMMr  r  r  rT  r  r  )r  r   r  r   r  rW  r  s   `  @r   .test_partition_exception_kth_multi_dimensionalz>TestNPFunctions.test_partition_exception_kth_multi_dimensionalE	  s    "T"""6** 	!!!	N 	N 	N 	N 	N 	N
 	ry}}")A,,"6"6q!"<"<======r   c                     t           } t          d          |                                             fd} |t          j        d          t          j        d                              dd                     d S )	NTr
  c                                          t                    5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S rG  r0  r)  s      r   rp  zQTestNPFunctions.test_argpartition_exception_kth_multi_dimensional.<locals>._checkZ	  rH  r  r  r  rT  r  rI  )r  r   r  r   r  rW  r  s   `  @r   1test_argpartition_exception_kth_multi_dimensionalzATestNPFunctions.test_argpartition_exception_kth_multi_dimensionalS	  s    "T"""6** 	!!!	N 	N 	N 	N 	N 	N
 	ry}}")A,,"6"6q!"<"<======r   c                      t            t          d                    d fd	}t          j        g           }d|_        |dt          j        g           fD ]} ||           d S )NTr
  r   c                 d     | |          } | |          }                     ||           d S r   r  r+   r  r  r  r  r  r  s       r   r  z9TestNPFunctions.test_partition_empty_array.<locals>.checkg	  =    va~~H%3--C##Hc22222r   rT  r  r   r   r  r`  )r  r   r   r  r  r  r  r+   r5   r  r  s   `   @@r   test_partition_empty_arrayz*TestNPFunctions.test_partition_empty_arraya	  s     "T"""6**	3 	3 	3 	3 	3 	3 	3 	3 HRLL b"(2,,& 	 	CE#JJJJ	 	r   c                      t            t          d                    d fd	}t          j        g           }d|_        |dt          j        g           fD ]} ||           d S )NTr
  r   c                 d     | |          } | |          }                     ||           d S r   r  rP  s       r   r  z<TestNPFunctions.test_argpartition_empty_array.<locals>.checkz	  rQ  r   rR  r  r`  )r  r   r   r  r  rS  s   `   @@r   test_argpartition_empty_arrayz-TestNPFunctions.test_argpartition_empty_arrayt	  s     "T"""6**	3 	3 	3 	3 	3 	3 	3 	3 HRLL b"(2,,& 	 	CE#JJJJ	 	r   c           	         t           } t          d          |          }t          j        g           } ||d          }|                     ||           t          j        d          } ||d          }|                     ||           t          j        g d          }|                                } |t          j        d          |           |                     ||           ddgddgddgfD ]s}t          j        |          }t          j        |          }dD ]F}	|                      |||	          |	         ||	                    | 	                    ||||	           Gtg d	g d
g dg dg dg dg dg dfD ]s}t          j        |          }t          j        |          }dD ]F}	|                      |||	          |	         ||	                    | 	                    ||||	           Gtt          j        d          }|                      ||d          |           t          j        d          }dD ]@}	| 
                     |||	          |	         |	           | 	                    ||||	           At          j        d          d d d         }||                                t          |                                          fD ]}
| 
                     ||
d          d         d           | 
                     ||
d          d         d           |                      ||
d           ||
d                     |                      ||
d           ||
d                     | 	                    |||d           t          j        d          }t          j        ||j        dz            }|j        dz  dz   }| 
                     |||          |         |           t          j        d          }t          j        ||j        dz  dz             }|j        dz  dz   }| 
                     |||          |         |           t          j        d          }d |d<   | 
                     ||d!          d         d            | 
                     ||d!          d         d           t          j        |d<   t          j         ||d!          d                   sJ t          j        d          d"z  }t          j        t          j        d          d"z            }| j                            |           t'          |j                  D ]F}| 
                     |||          |         ||                    | 	                    ||||           Gt          j        g d#          }g d$}| 
                    t           |||          |                   d%           d& t          j        t          j        fD             }|D ]/\  }}t          j        ||'          }| j                            |           t          j        t          j        ||'          d(          }t/          | j        j        |           t'          |j                  D ]} |||          }| 
                    ||         |           t          j                            |d |         ||                    t          j                            ||         ||dz   d                     | 	                    ||||           1d S ))NTr
  r   r   rQ  r  r  (   r  r   r   rT  r  r   rS  r  r   rT  r  rT  r   r   r   r   ra  r  r  r   r   r  r   r   r   r  r   1   r  r  /   r  r  r  r9  )      @B AB r  r]  r  r  rl  r   r   r  rT  r]  r  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rl  rn  r   rT     r  r   rT  rl  rl  c                      g | ]}d D ]}||fS )rn  r  r  r  dtss      r   r  z8TestNPFunctions.test_partition_basic.<locals>.<listcomp>	  )    HHH"HH1r1gHHHHr   r7  r]  r   )r  r   r   r  r  r  r  r  r  r  rH  r  r  r/  r  r  isnanr  r'  r  rP  r  tilemapr  assert_array_less)r  r  r  r  r  r  okthrB  r  r   r+   r   midr  tdrs  rt  d1r  s                      r   test_partition_basicz$TestNPFunctions.test_partition_basic	  sW    "T"""6**HRLLeAqkk3'''GAJJeAqkk3''' h{{{##xxzzbimmS!!!T***a&1a&1a&) 	A 	AAA'!**C A A''aAA???++FE1a@@@@A ))YYY			999))YYY			999> 	A 	AAA'!**C A A''aAA???++FE1a@@@@A GBKKaQ/// IbMM 	= 	=AUU1a[[^Q///''q!<<<< IbMM$$B$AHHJJahhjj 1 11 	? 	?AUU1a[[^Q///UU1b\\"-r222##EE!RLL%%2,,???##EE!SMM55B<<@@@''q#>>>> IgGAqv{##fkAoq#s+S111IgGAqv{Q''fkAoq#s+S111 GBKK!q'**2.222q'**1-q111v!xa))"-..... IbMMAgbimma'((qv 	= 	=AUU1a[[^SV444''q!<<<<H ( ( ( ) )nnuuQ}}S122LAAAHH2: 6HHH 	A 	AEB	!2&&&AHQ1B///88B "%%%16]] A AE!QKK  1q)))
,,QrrUAaD999
,,QqT1QUVV9===++FE1a@@@@A	A 	Ar   c           	         t           } t          d          |          }t          j        g t          j                  } ||d          } ||d          }|                     ||           t          j        dt          j                  } ||d          } ||d          }|                     ||           t          j        g d          }|                                } |t          j        d          |           |                     ||           ddgddgddgfD ]}t          j        |          }t          j	        |          }	d	D ]R}
|                     | |||
          |
                  ||	|
                             | 
                    ||||
           Sg d
g dg dg dg dg dg dg dfD ]}t          j        |          }t          j	        |          }	dD ]R}
|                     | |||
          |
                  ||	|
                             | 
                    ||||
           St          j        d          }|                     | ||d                   |           t          j        d          }dD ]@}
|                      |||
          |
         |
           |                     ||||
           At          j        d          d d d         }||                                t          |                                          fD ]}|                      ||d          d         d           |                      ||d          d         d           |                      ||d           ||d                     |                      ||d           ||d                     | 
                    |||d           t          j        d          }t          j        ||j        dz            }|j        dz  dz   }|                     | |||          |                  |           t          j        d           }t          j        ||j        dz  dz             }|j        dz  dz   }|                     | |||          |                  |           t          j        d!          }d"|d<   |                     | ||d#          d                  d"           |                     | ||d#          d                  d           t          j        |d<   t          j        | ||d#          d                            sJ t          j        d          d$z  }t          j        t          j        d          d$z            }	| j                            |           t-          |j                  D ]L}|                     | |||          |                  |	|                    | 
                    ||||           Mt          j        g d%          }g d&}|                     t          | |||          |                            d'           d( t          j        t          j        fD             }|D ]5\  }}t          j        ||          }| j                            |           t          j        t          j        ||          d)          }t5          | j        j        |           t-          |j                  D ]}| |||                   }|                     ||         |           t          j                            |d |         ||                    t          j                            ||         ||dz   d                     | 
                    ||||           7d S )*NTr
  r7  r   r   rY  rZ  r  r[  r\  rS  r]  r^  r_  ra  r`  ra  rb  r   rc  rd  re  r  r  r  rQ  r9  rf  rg  rh  ri  rj  r  r]  rk  rl  rl  rm  ro  c                      g | ]}d D ]}||fS rq  r  rr  s      r   r  z;TestNPFunctions.test_argpartition_basic.<locals>.<listcomp>C
  ru  r   rv  )r  r   r   r  rQ  r  r  r  r  r  r
  rH  r  r  r  r/  r  r  rw  r  r  r'  r  rP  r  rx  ry  r  rz  )r  r  r  r  r  r  r  r{  rB  r  r   r+   r   r|  r  r}  rs  rt  r~  r  s                       r   test_argpartition_basicz'TestNPFunctions.test_argpartition_basic	  s    "T"""6**HRrx(((6!Q<<eAqkk#...GARX&&&6!Q<<eAqkk#... h{{{##xxzzbimmS!!!T***a&1a&1a&) 	D 	DAA*Q--C D D''%%1++a.(91SV9EEE..vuaCCCCD ))YYY			999))YYY			999> 	D 	DAA*Q--C D D''%%1++a.(91SV9EEE..vuaCCCCD GBKK%%1++222 IbMM 	= 	=AUU1a[[^Q///''q!<<<< IbMM$$B$AHHJJahhjj 1 11 	B 	BAUU1a[[^R000UU1b\\"-r222##EE!RLL%%2,,???##EE!SMM55B<<@@@**65!SAAAA IgGAqv{##fkAo55C==-.444IgGAqv{Q''fkAo55C==-.444 GBKK!55G,,R01155555G,,Q/0!444v!x%%7++B/011111 IbMMAgbimma'((qv 	@ 	@AQuuQ{{1~.A777**65!Q????H ( ( ( ) )nnqq#s!3455|DDDHH2: 6HHH 	D 	DEB	!2&&&AHQ1B///88B "%%%16]] D DeeAqkkN  1q)))
,,QrrUAaD999
,,QqT1QUVV9===..vuaCCCCD	D 	Dr   c           	      v   d}t          j        |          D ]}t           j                            |||         ||         d|z             |                     ||d          ||         k                                    d|||d          ||         fz             |dz   }|                     ||||           d S Nr   zkth %d)err_msgzkth %d, %r not greater equal %d)r  r   )r   r  r  rz  r  allr  r  r  r  r  r  prevr   s          r   assert_partitionedz"TestNPFunctions.assert_partitionedS
  s     	= 	=AJ((46AaD19A ) ? ? ?OOQqrrUad]//11"&)*AabbE1Q4(8"9  ; ; ; q5D''q!<<<<	= 	=r   c           	      v   d}t          j        |          D ]}t           j                            |||         ||         d|z             |                     ||d          ||         k                                    d|||d          ||         fz             |dz   }|                     ||||           d S r  )r   r  r  rz  r  r  r
  r  s          r   assert_argpartitionedz%TestNPFunctions.assert_argpartitioned^
  s     	@ 	@AJ((46AaD19A ) ? ? ?OOQqrrUad]//11"&)*AabbE1Q4(8"9  ; ; ; q5D**65!Q????	@ 	@r   c                 v   t           } t          d          |          }t          | j        ||          }t	          j        g d          } ||d          } ||d            ||t	          j        |d                   d           |                     | ||d                     t	          j        d          }| j	        
                    |           |                     t	          j        d           ||t          t          |j                                                 t	          j        d          }| j	        
                    |           t	          j        g d          }| j	        
                    |            |||          } |||           | j	        
                    |           |                      |||          |           t	          j        d          d d d	         } | ||d
gdz            d
g            | ||d
gdz  ddgz             d
gdz  ddgz              d S NTr
  )rT  r]  r  r   )r   rT  )ru  r  r  )r   rT  rm  r  r  r  r  r]  r  r  )r  r   r   r  r   r  r  r  r  r  r'  r  r  r  )r  r  r  r  r  r  keyss          r   test_partition_iterativez(TestNPFunctions.test_partition_iterativei
  s<    "T"""6**$T%<feLLH\\\""E!V1f%%%1R_Q778&AAA55H#5#5666IbMM	"uuQU16]]8K8K/L/LMMM IbMMx&&E!TNN1d###a222 IbMM$$B$55QC!G,,qc22255QC!Gq"g$566a1b'8IJJJJJr   c                    t           } t          d          |          }t          | j        ||          }t	          j        g d          }| ||d                   } ||d            ||t	          j         |d                   d           |                     || ||d                              t	          j        d          }| j        	                    |           |                     t	          j        d          | ||t          t          |j                                                          t	          j        d          }| j        	                    |           t	          j        g d          }| j        	                    |           | |||                   } |||           | j        	                    |           |                     | |||                   |           t	          j        d          d d d	         } || ||d
gdz                     d
g            || ||d
gdz  ddgz                      d
gdz  ddgz              d S r  )r  r   r   r  r   r  r  r  r  r'  r  r  r  )r  r  r  r  r  r  r  s          r   test_argpartition_iterativez+TestNPFunctions.test_argpartition_iterative
  sg    "T"""6** '(B(.(-!/ !/ H\\\""eeAva(((a6 : :;VDDD1UU1h%7%7#8999IbMM	"qq$uQV}}:M:M1N1N/OPPP IbMMx&&eeAtnna&&&%%4.. 11555 IbMM$$B$aa!q 1 12QC888aa!qAr7): ; ;<qcAgB>OPPPPPr   c                 p    t            t          d                     fd}d }t          j        ddd          }t          j        |dd	<   t          j         |d
<   t          j        |d<   |                    d          } ||          D ]!}t          dd          D ]} |||           "d S )NTr
  c           	      8    | |          } | |          }                     |d d d d |f         |d d d d |f                    t          j        |j        d d                   D ]}                     t          j        ||         d |                   t          j        ||         d |                                                   t          j        ||         |d                    t          j        ||         |d                               d S Nr  )r  r   ndindexr  r  )r+   r  r  r  rt  r  r  r  s        r   r  z7TestNPFunctions.test_partition_multi_dim.<locals>.check
  s.   va~~H%3--C##HQQQ3Y$7QQQ3YHHHZss 344 A A''	(1+dsd2C(D(D(*	#a&#,(?(?A A A''	(1+cdd2C(D(D(*	#a&,(?(?A A A AA Ar   c              3     K   | V  | j         V  t          j        |           V  t          j        | t          j                  V  t          j        | t          j                  V  ddt          j         dfffV  d S Nr  r  rv  rT  r  r   r  	full_liker  r  r?   s    r   a_variationsz>TestNPFunctions.test_partition_multi_dim.<locals>.a_variations
        GGG#III#A&&&&&,qRV444444,qRV444444%"&!,.000000r   r   r  0   r]  rl  rm  rn  r]  rT  r]  ru  rT  )r  r   r   r<  r  r  rW  r  r  r  r  r+   r5   r   r  r  s   `     @@r   test_partition_multi_dimz(TestNPFunctions.test_partition_multi_dim
  s    "T"""6**		A 		A 		A 		A 		A 		A 		A	1 	1 	1 K2r""!A#w!v!IIi  <?? 	 	C2q\\  c1	 	r   c                 p    t            t          d                     fd}d }t          j        ddd          }t          j        |dd	<   t          j         |d
<   t          j        |d<   |                    d          } ||          D ]!}t          dd          D ]} |||           "d S )NTr
  c           
      8    | |          } | |          }t          j        |           } t          j        | j        d d                   }|D ]H}                    | |         ||         |                  | |         ||         |                             It          j        |j        d d                   D ]}                    t          j        | |         ||         d |                            t          j        | |         ||         d |                                                           t          j        | |         ||         |d                             t          j        | |         ||         |d                                        d S r  )r   r3  r  r  r  r  )	r+   r  r  r  r  rt  r  r  r  s	         r   r  z:TestNPFunctions.test_argpartition_multi_dim.<locals>.check
  s   va~~H%3--C
1A*QWSbS\**C ; ;''!Xa[-=(>()!SVC[(9; ; ; ; Zss 344 G G''	!A$x{4C47H2I(J(J(*	!A$s1vdsd|2D(E(EG G G''	!A$x{3447H2I(J(J(*	!A$s1vcdd|2D(E(EG G G GG Gr   c              3     K   | V  | j         V  t          j        |           V  t          j        | t          j                  V  t          j        | t          j                  V  ddt          j         dfffV  d S r  r  r?   s    r   r  zATestNPFunctions.test_argpartition_multi_dim.<locals>.a_variations
  r  r   r   r  r  r]  rl  rm  rn  r  ru  rT  )r  r   r   r<  r  r  rW  r  r  s   `     @@r   test_argpartition_multi_dimz+TestNPFunctions.test_argpartition_multi_dim
  s    "T"""6**	G 	G 	G 	G 	G 	G 	G	1 	1 	1 K2r""!A#w!v!IIi  <?? 	 	C2q\\  c1	 	r   c                     t           } t          d          |          }t          j        ddd          t          j        d          fD ]}dD ]}|                     ||||            d S NTr
  r   r  r  TFT)TFr  r   r   )r  r   r   r<  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)FF 	C 	CA, C C++FE1cBBBBC	C 	Cr   c                     t           } t          d          |          }t          j        ddd          t          j        d          fD ]}dD ]}|                     ||||            d S r  )r  r   r   r<  r  r
  r  s        r    test_argpartition_boolean_inputsz0TestNPFunctions.test_argpartition_boolean_inputs
  s    "T"""6**QB''2E)F)FF 	F 	FA, F F..vuaEEEEF	F 	Fr   c                    t           } t          d          |          }|                                  t          j        ddgddgddgg          j        }t          j        d          dfD ]c}|                                 5 } |||           d d d            n# 1 swxY w Y   |                     d	t          |j
                             dt          j        t          j        fD ]i}|                     t                    5 } |||           d d d            n# 1 swxY w Y   |                     d
t          |j
                             jdD ]i}|                     t                    5 } |||           d d d            n# 1 swxY w Y   |                     dt          |j
                             jd S )NTr
  r   r  r   r]                @)r%  z)ddof must be a real numerical scalar typez)Cannot convert non-finite ddof to integer)r  gffffffzddof must be integral value)r!  r   r  r   r  r  r  r  r  r  r  r  r  r  r  )r  r  r  r   r%  r  s         r   test_cov_invalid_ddofz%TestNPFunctions.test_cov_invalid_ddof  s   "T"""6** 	!!!Hq!fq!fq!f-..0IaLL"$ 	1 	1D'')) $Vad####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $MMEf.//1 1 1 1 FBFN 	1 	1D"":.. $&ad####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $MMEf.//1 1 1 1  	P 	PD"":.. $&ad####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $MM7V=M9N9NOOOO	P 	Ps6   BB!	$B!	DD#	&D#	1FF	F	c                       t          d          |          }t           j        ||d          } fd} |            D ]} |||i           d S )NTr
  +=ri  c               3     K   t          j        ddgddgddgg          j        V   j                            d                              dd          V  t          j        t          j        ddgddgddgg          j                  V   j                            d                              dd          d d d d df         V  t          j        g d          V  t          j        dd	
          V  t          j        t           j        dt           j	         ddg          V  t          j
        ddd                              dd          V  dV  dV  dV  dV  g dV  dV  ddgV  dV  dV  t          j        g           V  t          j        g                               dd          V  t          j        g                               dd          V  dV  d S )Nr   r  r   r  r  r  )g&S:?o_?g#~j?甇ZӼ?Q|?r  Tr  r  r  r  ru  rT  !   )皙?皙?g)\(?gRQ?)g
ףp=
?gzG?)r  r  )y        
ףp=
?y        zG?g r  g333333@rS  rj  )r  r  rs  r  )r   rT  r  rv  ))r  皙@r&  r  )r   r  r  r  randnrW  r  r   r  r  r<  r]  s   r   input_variationsz=TestNPFunctions.corr_corrcoef_basic.<locals>.input_variations&  s3     (QFQFQF3446666(..%%--a44444#BHq!fq!fq!f-E$F$F$HIIIII(..%%--a44QQQ!V<<<<(CCCDDDDD'&T222222(BFFRVGVVDEEEEE+b!R((00Q77777 ;:::<<<<!!!!OOO))OOO4444i((((KKK$$$$ (2,,(2,,&&q!,,,,,(2,,&&q!,,,,,HHHHHr   )r   r   rk  )r  r  first_arg_namer  rp  r  	input_arrs   `      r   corr_corrcoef_basicz#TestNPFunctions.corr_corrcoef_basic"  s    "T"""6**+VUEJJJ	 	 	 	 	: *)++ 	0 	0IFNI.////	0 	0r   c                 B    t           }|                     |d           d S )Nr   r  )r'  r  r  s     r   test_corrcoef_basicz#TestNPFunctions.test_corrcoef_basicF  s&       <<<<<r   c                 B    t           }|                     |d           d S )Nr   r  )r!  r  r  s     r   test_cov_basiczTestNPFunctions.test_cov_basicK  s&       <<<<<r   c                 `   t           } t          d          |          }t          | j        ||d          }| j                            d                              dd          }d |d d d         f}d	}d	}d
}t          j        ||||          }	|	D ]\  }
}}}||
|||d} ||           d S )NTr
  r  ri  i   r  rl  r  FT)Nr  r   r   r@  T)r   r"  r%  r$  r#  )	r!  r   r   rk  r  r  rW  r  r   )r  r  r  rp  r   	y_choicesrowvar_choicesbias_choicesddof_choiceproductsr"  r#  r$  r%  rj  s                  r   test_cov_explicit_argumentsz+TestNPFunctions.test_cov_explicit_argumentsP  s    "T"""6**+VUEJJJHNN3''A..!DDbD'M	$"/$Y%1;@ @%- 	 	!AvtT1d"f6 6FF6NNNN	 	r   c                 H   t           } t          d          |          }t          | j        ||d          }| j                            d                              dd          }d |d d d         f}d	}t          j        ||          D ]\  }}|||d
}	 ||	           d S )NTr
  r  ri  r  r  rl  r  r  r(  )	r'  r   r   rk  r  r  rW  r  r   )
r  r  r  rp  r   r  r  r"  r#  rj  s
             r    test_corrcoef_explicit_argumentsz0TestNPFunctions.test_corrcoef_explicit_argumentsc  s    "T"""6**+VUEJJJHNN3''A..!DDbD'M	$"*9nEE 	 	IAv177FF6NNNN	 	r   c                     t          d          |          }t          | j        ||d          }t          j        g d          }t          j        g d          }||d|i} ||           t          j        g d          }t          j        g d	g          }||d|i} ||           t          j        g d          }d	}||d|i} ||           ||d|i} ||           t          j        g d          }d
}||d|i} ||           ||d|i} ||           t          j        g           }t          j        g           }||d|i} ||           d}d}||d|i} ||           | j                            dd          }t          j        g d                              dd          dz  }||d|i} ||           t          j        g d          }t          j        g dg dg          }||d|i} ||           dD ][}t          j        g d          }t          j        g dg dg dg          }||d|d|i} ||           ||d|d|i} ||           \d S )NTr
  r  ri  r  )rT  r  Q?r"  rS  r  r  r  )r  r  rT  r  r  r  rT  r   r  )r]  r  r  r#  )r   r   rk  r   r  r  r  rW  )	r  r  r  r  rp  r   r"  rj  r#  s	            r   cov_corrcoef_edge_casesz'TestNPFunctions.cov_corrcoef_edge_casesq  s   "T"""6**+VUEJJJ H___%%H^^^$$ !S!,vHYYYHlll^$$ !S!,vHYYY !S!,v !S!,vHYYY !S!,v !S!,vHRLLHRLL !S!,v !S!,vHNN2q!!H___%%--a33b8 !S!,vH___%%Hnnnnnn566 !S!,v! 	 	F))A.........IJJA$aa6BFF6NNN$aa6BFF6NNNN	 	r   c                     t           }|                     |d            t          d          |          }t          | j        ||d          }t
          j        t
          j         ddfD ]}d|i} ||           d S )	Nr   r  Tr
  r  ri  rv  r   )r'  r  r   r   rk  r   r  r  r  r  r  rp  r   rj  s         r   test_corrcoef_edge_casesz(TestNPFunctions.test_corrcoef_edge_cases  s    $$VC$@@@"T"""6**+VUEJJJ&26'5!, 	 	A1XFF6NNNN	 	r   c                     t           } t          d          |          }t          | j        ||d          }d}d|i} ||           d S )NTr
  r  ri  ))r  }Ô%IT)r  r  r   )r'  r   r   rk  r  s         r   &test_corrcoef_edge_case_extreme_valuesz6TestNPFunctions.test_corrcoef_edge_case_extreme_values  s[    "T"""6**+VUEJJJ /qvr   c                    t           }|                     |d            t          d          |          }t          | j        ||d          }t          j        ddgd	d	gddgg          j        }|d
d} ||           d S )Nr   r  Tr
  r  ri  r   r  r   r  )r   r%  )r!  r  r   r   rk  r   r  r  )r  r  r  rp  r   rj  s         r   test_cov_edge_casesz#TestNPFunctions.test_cov_edge_cases  s    $$VC$@@@"T"""6**+VUEJJJ Hq!fq!fq!f-..0!$$vr   c                     t           } t          d          |                                             fd}t          j        d          } ||           d} ||           g dgg} ||            fd}t          j        d          }t          j        d          } |||           t          j        d          }d	} |||           t          j        d
          }t          j        d          }                     t                    5 } ||           d d d            n# 1 swxY w Y    	                    dt          |j                             t          j        g d                              dd
          }                     t                    5 } |           d d d            n# 1 swxY w Y    	                    dt          |j                             d S )NTr
  c                                                      5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nzm has more than 2 dimensionsrz  )r   r  r  r  s     r   _check_mz5TestNPFunctions.test_cov_exceptions.<locals>._check_m  s    '')) Va              MM8#f>N:O:OPPPPPs   .22r  r  rl  )))rS  r  c                                                      5 } | |           d d d            n# 1 swxY w Y                       dt          |j                             d S )NrG  zy has more than 2 dimensionsrz  )r   r"  r  r  r  s      r   _check_yz5TestNPFunctions.test_cov_exceptions.<locals>._check_y  s    '')) Va1              MM8#f>N:O:OPPPPPr|  r  )r  r  r  )))rr  r  r3  rT  r]  rG  z$m and y have incompatible dimensionsr  r   z/2D array containing a single row is unsupported)r!  r   r  r   r  r  r  r  r  r  r  r  rW  RuntimeError)r  r  r  r   r  r"  r  r  s   `      @r   test_cov_exceptionsz#TestNPFunctions.test_cov_exceptions  s   "T"""6** 	!!!	Q 	Q 	Q 	Q 	Q 	Q
 GI(ii[M	Q 	Q 	Q 	Q 	Q 	Q
 GFOOGIAH_%%!AIaLLIaLLz** 	fE!qMMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<&*++	- 	- 	-
 H___%%--a33|,, 	E!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	G&*++	- 	- 	- 	- 	-s$   D22D69D6)GGGc                 z   t           } t          d          |          }t          | j        ||          }d }d } |t	          j        ddd                    D ]^}d|i} ||            ||          D ]A}||d	} ||           ||d
} ||            ||          D ]}	|||	d} ||           B_d S )NTr
  c              3   \   K   d V  | V  |                      t          j                  V  d S r   )r  r   r  r?   s    r   to_variationsz9TestNPFunctions.test_ediff1d_basic.<locals>.to_variations	  s8      JJJGGG((28$$$$$$$r   c              3      K   | V  |                      ddd          V  |                     t          j                  V  d S )NrT  r  )rW  r  r   rP  r?   s    r   ary_variationsz:TestNPFunctions.test_ediff1d_basic.<locals>.ary_variations  sK      GGG))Aq!$$$$$((28$$$$$$$r   r  rl  r\  r+  )r+  r-  )r+  r,  )r+  r-  r,  )r*  r   r   rk  r   r<  )
r  r  r  rp  r  r  r+  rj  r+   r,   s
             r   test_ediff1d_basicz"TestNPFunctions.test_ediff1d_basic  s*   "T"""6**+VU;;	% 	% 	%
	% 	% 	%
 ">"+b!R"8"899 	# 	#CS\FF6NNN"]3'' 	# 	#!$!44v!$22v&s++ # #A%(a1EEFF6NNNN#	#		# 	#r   c                 4   t           } t          d          |          }|                                  |                                 5 } |t	          j        d                     d d d            n# 1 swxY w Y   d}|t          |j                  v sJ d S )NTr
  )TTFz+Boolean dtype is unsupported (as per NumPy))r*  r   r  r  r   r  r  r  )r  r  r  r  r  s        r   test_ediff1d_exceptionsz'TestNPFunctions.test_ediff1d_exceptions"  s    "T"""6** 	!!!##%% 	1E"(.//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 <c!+&&&&&&&&s   	A33A7:A7c                    t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          j        z  t          |j	                             d S )NTr
  c               3      K   t          j        d                              dd          V  t          j        d                              ddd          V  dV  ddgddgfV  d S )	Nr  r  r  r  r  r   rT  r]  r  r  r   r   r  z7TestNPFunctions.test_fliplr_basic.<locals>.a_variations3  sx      )B--''1-----)B--''1a00000OOOq6Aq6######r   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_basic/  s(   "T"""6**	$ 	$ 	$  	3 	3AvayyH%((C##Hc2222{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3e6HH&*++	- 	- 	- 	- 	-   7BBBc                    t           } t          d          |          }|                                  |                     t                    5 } |t          j        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     dt          |j	                             d S )NTr
  rT  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_exceptionD  s    "T"""6** 	!!!{++ 	 vE")A,,	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	*C0@,A,ABBB&F,<(=(=>>>>>s   A99A= A=c                    t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          j        z  t          |j	                             d S )NTr
  c               3     K   dgV  t          j        d          V  t          j        d                              dd          V  t          j        d                              ddd          V  dV  ddgddgfV  d S )	Nr   r  r  r  r  r  rT  r]  r  r  r   r   r  z7TestNPFunctions.test_flipud_basic.<locals>.a_variationsU  s      #III)B--)B--''1-----)B--''1a00000OOOq6Aq6######r   r  zCannot np.flipud on %s type)
r   r   r  r  r   r  r	   r  r  r  r  s           r   test_flipud_basicz!TestNPFunctions.test_flipud_basicQ  s(   "T"""6**	$ 	$ 	$  	3 	3AvayyH%((C##Hc2222{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3e6HH&*++	- 	- 	- 	- 	-r  c                    t           } t          d          |          }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     dt          |j                             d S )NTr
  r   r  zwith 1 indices)r   r   r  r  r   r  r  r  r  s       r   test_flipud_exceptionz%TestNPFunctions.test_flipud_exceptionh  s    "T"""6** 	!!!{++ 	vE!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	*C0@,A,ABBB&F,<(=(=>>>>>s   A''A+.A+c                    t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NTr
  c               3     K   t          j        d          V  t          j        d          V  t          j        d                              dd          V  t          j        d                              ddd          V  d S )Nr   r  r  r  r  rV  r  r   r   r  z5TestNPFunctions.test_flip_basic.<locals>.a_variationsy  s~      (1++)B--)B--''1-----)B--''1a0000000r   rS  zCannot np.flip on UniTuple)r   r   r  r  r   r  r  r  r  s           r   test_flip_basiczTestNPFunctions.test_flip_basicu  s   "T"""6**	1 	1 	1  	3 	3AvayyH%((C##Hc2222{++ 	vE)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2C8H4I4IJJJJJr  c                     d }t           } t          d          |          } |            D ]9\  }}t          j                             |||           |||                     :d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t           j        fV  d	t           j        fV  t          j        d
          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  d S N)r   re  )r  re  )r  r  r  )re  r  r        N@      Nr  )r  r  r  r   r  r  r        ?       @      @      @      ?             @                   @r   r  pir  r  r   r   r  z4TestNPFunctions.test_logspace2_basic.<locals>.inputs  S     KKKLLLMMMMMMLLLOOOrt)OOOru*,q//2<??2222,r""BL$4$44444,q//2<#3#33333,v&&V(<(<<<<<,v&&V(<(<<<<<,w''f)=)=======r   Tr
  )r   r   r   r  assert_allcloser  r  r  r  r   r   s         r   test_logspace2_basicz$TestNPFunctions.test_logspace2_basic      	> 	> 	>& "T"""6**!688 	P 	PKE4J&&vveT':':EE%<N<NOOOO	P 	Pr   c                     t          d          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )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  sr   "T"""9--!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- {++ 	vE!UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- 	- 	-s$   A&&A*-A*3CCCc                     d }t           } t          d          |          } |            D ]9\  }}t          j                             |||           |||                     :d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t           j        fV  d	t           j        fV  t          j        d
          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  d S 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 ]<\  }}}t          j                             ||||           ||||                     =d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t           j        d
fV  d	t           j        dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  d S )N)r   re  r  )r  re  rQ  )r  r  rZ  r  r  r   )re  r  re  r  r  F   r  r  P   )r  r  Z   r  r  rQ  r   r  rZ  r  r  r   re  r  r	  r!  r
  r  r#  r  r$  r  r  r   r   r  z=TestNPFunctions.test_logspace3_with_num_basic.<locals>.inputs  su     OOO!!!!    rtR-rub.   ,q//2<??B6666,r""BL$4$4b8888,q//2<#3#3R7777,v&&V(<(<b@@@@,v&&V(<(<b@@@@,w''f)=)=rAAAAAAr   Tr
  r  r  r  r  r  r   r   r   s          r   test_logspace3_with_num_basicz-TestNPFunctions.test_logspace3_with_num_basic  s    	B 	B 	B& "T"""6** & 	@ 	@E4J&&vveT3'?'?',uUD#'>'>@ @ @ @	@ 	@r   c                     t          d          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	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E%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- {++ 	vE!UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- {++ 	vE!Q	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C&*++	- 	- 	- 	- 	-s6   A&&A*-A*3CCCD33D7:D7c                     d }t           } t          d          |          } |            D ]1\  }}|                      |||           |||          d           2d S )Nc               3   r  K   dV  dV  dV  dV  dV  dV  dV  dt          j        d	          fV  t          j        d	          dfV  d
t          j        d	          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d	          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  t          j        d          t          j        d          fV  d S )Nr  r  r  )r   r  )r  r   )r      )r  r  r  r  r               @@r  r  r   r  r  r  r	  r
  r  r  r   r  r  r   r   r  z5TestNPFunctions.test_geomspace2_basic.<locals>.inputs   s     MMMOOOMMMMMMLLLOOObl2&&&&&&,r""B&&&&R((((((,r""BL$7$77777,w''f)=)=====,q//2<??2222,r""BL$4$44444,q//2<#3#33333,v&&V(<(<<<<<,v&&V(<(<<<<<,w''f)=)=======r   Tr
  g-q=ri  )r   r   r  r  s         r   test_geomspace2_basicz%TestNPFunctions.test_geomspace2_basic  s    	> 	> 	>* "T"""6**!688 	3 	3KE4##FF5$$7$7$)E%$6$6,1 $ 3 3 3 3	3 	3r   c                     t          d          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	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  s   "T""":..!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	=&*++	- 	- 	- {++ 	vE!UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<&*++	- 	- 	- z** 	fE!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- z** 	fE!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- 	- 	-sH   A&&A*-A*3CCCD22D69D6?FFFc           	          d }t           } t          d          |          } |            D ]4\  }}}|                      ||||           ||||          d           5d S )Nc               3     K   dV  dV  dV  dV  dV  dV  dV  dV  d	t          j        d
          dfV  t          j        d
          d	dfV  dt          j        d
          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d
          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          dfV  t          j        d          t          j        d          d fV  t          j        d!          t          j        d          d"fV  d S )#Nr  r   r"  )r   r  r]  )r   r  rT  )r  r   r]  )r   r+  rn  )r,  r  r]  r  r  r  r  r  rQ  r  r-  r]  r  r  r  r   r  rZ  r  r   re  r  r	  r!  r
  r  r#  r  r$  r.  r  r   r   r  z5TestNPFunctions.test_geomspace3_basic.<locals>.inputs8  s     !!!!OOObl2&&****,r""B****R((",,,,,r""BL$7$7::::,w''f)=)=q@@@@,q//2<??B6666,r""BL$4$4b8888,q//2<#3#3R7777,v&&V(<(<b@@@@,v&&V(<(<b@@@@,w''f)=)=rAAAAAAr   Tr
  r  ri  )r   r   r  r%  s          r   test_geomspace3_basicz%TestNPFunctions.test_geomspace3_basic6  s    	B 	B 	B, "T"""6** & 	3 	3E4##FF5$$<$<$)E%s$;$;,1 $ 3 3 3 3	3 	3r   c                 p    t          d          t                    }|                                  |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |d	dd           d d d            n# 1 swxY w Y   |                     d
t          |j                             |                     t                    5 } |dd	d           d d d            n# 1 swxY w Y   |                     d
t          |j                             d S )NTr
  r  r  r  r1  r2  z%The argument "num" must be an integerr   r3  )	r   r   r  r  r   r  r  r  r  r  s      r   test_geomspace3_exceptionz)TestNPFunctions.test_geomspace3_exceptionV  s_   "T""":..!!!{++ 	 vE%B	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 =&*++	- 	- 	- {++ 	 vE!UB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 <&*++	- 	- 	- {++ 	 vE!R	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 =&*++	- 	- 	- z** 	fE!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- z** 	fE!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	>&*++	- 	- 	- 	- 	-sZ   A''A+.A+4CCCD55D9<D9FF #F )HH
Hc                 
    t          d          t                    } t          d          t                    }t          } |dd          }|                     t	          |          d            |ddd          }|                     |d         d	            |ddd
          }|                     | |ddd
                      |ddd          }|                     | |ddd                     |                     d |j        D                         |ddd          }|                     | |ddd                     |                     d |j        D                         |ddd          }|                     | |ddd                     |                     d |j        D                        d}d} |||d          }|                     |d         |            |||d          }|                     |d         |           |                     |d         |           t          j	        d          5   |ddd          }d d d            n# 1 swxY w Y   |                     |d         d           |                     t          j
        |dd                                                              |                     |d         d            |ddd          }|                     | |ddd          d           |                     d  |j        D                         |d!d"d          }|                     | |d!d"d          d#           |                     d$ |j        D                         |d%d&d          }|                     | |d%d&d          d#            |d'd(d          }|                     | |d'd(d          d#            |d)d*d          }|                     | |d)d*d                      |d+d,d          }|                     | |d+d,d          d-            |d+d.d          }|                     | |d+d.d          d-            |d,d/d          }|                     | |d,d/d          d-            |d+d,d          }|                     | |d+d,d          d-            |d0d1d
          }|                     | |d0d1d
          d            |d+d2d          }|                     | |d+d2d                      |d2d+d          }|                     | |d2d+d                     d S )3NTr
  r   r  r   r  r   r  ri  rl  rm  r  rT  c                     g | ]}|d k    	S r`  r  r  s     r   r  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>      000Aa000r   ic                     g | ]}|d k    	S r`  r  r  s     r   r  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r<  r   c                     g | ]}|d k    	S r`  r  r  s     r   r  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r<  r   rs  gL4@r   ignore)invalidru  r]  g      r@  r  y              0@r  r  ri  c                     g | ]}|d k    	S r`  r  r  s     r   r  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r<  r   y             y            @tvIh%<=c                     g | ]}|d k    	S r`  r  r  s     r   r  z8TestNPFunctions.test_geomspace_numpy.<locals>.<listcomp>  r<  r   r  y     @@     @@y            ?y     @     @@r  r  r  y              gV瞯<y      @        y              y             y      @      @r  )r   r   r   rH  r  r  r  imagr   errstaterw  r  real)r  cfunc2cfunc3pfunc3r"  r   r   s          r   test_geomspace_numpyz$TestNPFunctions.test_geomspace_numpyt  s   #d###J//#d###J// F1cNNQ$$$F1cs###2(((F1cq!!!66!CQ#7#7#7888F1aQ66!QA#6#6#677700000111F2t###66"d#:#:#:;;;00000111F4###66$#:#:#:;;;00000111 F5$A&&&!e,,,F5$A&&&!e,,,"t,,, [*** 	% 	%r1!$$$A	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	!d+++1R4))--//000!c*** F2s"""66"cq#9#9#95III00000111F31%%%66#u!#<#<#<eLLL00000111F6<Q/// &v| C C C(- 	  	/ 	/ 	/ F7Mq111 &w1 E E E(- 	  	/ 	/ 	/
 F7F***66'6q#A#A#ABBBF67A&&66&'1#=#=uMMMF661%%66&&!#<#<eLLLF7FA&&66'61#=#=uMMMF67A&&66&'1#=#=uMMMF7FA&&66'61#=#=uMMMF2r166"b!#4#4555F2r166"b!#4#455555s   I--I14I1c                     t           } t          d          |          }d } |            D ].} ||          } ||          }|                     ||           /d S )NTr
  c               3     K   t          j        d                              dd          V  t          j        d                              ddd          V  t          j        d                              dddddd          V  d S Nr  r  r  r  r  r  r  r   r   r  z6TestNPFunctions.test_rot90_basic.<locals>.a_variations        )B--''1-----)B--''1a00000)B--''1aAq9999999r   )r   r   r  )r  r  r  r  r+   r  r  s          r   test_rot90_basicz TestNPFunctions.test_rot90_basic  s    "T"""6**	: 	: 	:
  	3 	3AvayyH%((C##Hc2222	3 	3r   c                     t           } t          d          |          }d } |            D ]C}t          dd          D ]0} |||          } |||          }|                     ||           1Dd S )NTr
  c               3     K   t          j        d                              dd          V  t          j        d                              ddd          V  t          j        d                              dddddd          V  d S rM  r  r  r   r   r  z=TestNPFunctions.test_rot90_with_k_basic.<locals>.a_variations  rN  r   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  s    "T"""6**	: 	: 	:
  	7 	7A2q\\ 7 7!6!Q<<eAqkk''#66667	7 	7r   c                 @   t           } t          d          |          }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          
                    dd          d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d	                     d d d            n# 1 swxY w Y   |                     d
t          |j                             d S )NTr
  r  z'The first argument "m" must be an arrayr]  r  r  z*The second argument "k" must be an integerrT  zInput must be >= 2-d.)r   r   r  r  r   r  r  r  r   r  rW  r  s       r   test_rot90_exceptionz$TestNPFunctions.test_rot90_exception  s7   "T"""6** 	!!!{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	?&*++	- 	- 	- {++ 	7vE")A,,&&q!,,6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	B&*++	- 	- 	- {++ 	 vE")A,,	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	-s63C/D/DEEEEEs6   A''A+.A+44C44C8;C8E++E/2E/c                     |} t          d          |          }d } |            D ]9} || } || }t          j                            |t	          |                     :d S )NTr
  c               3   0  K   t          j        d          } | dfV  | ddfV  | g dfV  t          |           g dfV  t          |           g dfV  | g ddfV  t          |           g ddfV  t          |           g ddfV  t          j        d                              ddd          } | dfV  | ddfV  | ddfV  | g dfV  | g ddfV  | g ddfV  | dd	gfV  | dd	gdfV  | dd	gdfV  | dgd
fV  | dgdfV  | dgdfV  | t          j        g t           j                  dfV  t          j        d                              dd
          } | dfV  | ddfV  | dgdfV  | ddfV  | t          j        ddd          dfV  | dfV  | t          j        d          dffV  t          j        g           } | dfV  | dfV  | ddfV  | ddfV  t          j        g g          } | dfV  | ddfV  | ddfV  | ddfV  d S )Nr  r  r   )r   r]  H   r  r]  r   )r  r   r  rT  r  r  ru  r7  r   r  r   r  )r   r  r  r  rW  r  rQ  rP  r?   s    r   args_variationsz5TestNPFunctions._check_split.<locals>.args_variations  s.     	#AQ$JJJQ'MMMZZZ-q'':::%%%%((JJJ&&&&ZZZ""""q'':::q((((((JJJ))))	"%%aA..AQ$JJJQ'MMMQ'MMMYYY,YYY/!!!YYY/!!!aV)OOOaVQ,aVQ,aS"*aS"*aS"*RXb11114444	#&&q"--AQ$JJJQ'MMMaS!)OOOR(NNNRYr2r**A----T'MMMbhqkk2&&&&&AQ$JJJQ$JJJVQ,Q'MMM"AQ$JJJVQ,Q'MMMQ'MMMMMr   r   r   r  assert_equalr  r  rB  r  r  rY  rc   r  r  s           r   _check_splitzTestNPFunctions._check_split  s    "T"""6**-	 -	 -	^ $O%% 	9 	9Dvt}H%,CJ##Hd3ii8888		9 	9r   c                     |} t          d          |          }d } |            D ]9} || } || }t          j                            |t	          |                     :d S )NTr
  c               3   &  K   t          j        d          dfV  t          t          j        d                    dfV  t          t          j        d                    dfV  t          j        d                              dd          dfV  d S )Nrm  rT  r  r\  r  r  )r   r  r  r  rW  r  r   r   rY  z;TestNPFunctions._check_array_split.<locals>.args_variations=  s      )A,,/!!!ry||$$a''''	!%%q(((()B--''A..111111r   rZ  r\  s           r   _check_array_splitz"TestNPFunctions._check_array_split8  s    "T"""6**	2 	2 	2 $O%% 	9 	9Dvt}H%,CJ##Hd3ii8888		9 	9r   c                 n    |                      t                     |                     t                     d S r   )r]  r   r`  r]  s    r   test_array_split_basicz&TestNPFunctions.test_array_split_basicI  s0    +&&&,,,,,r   c                    |                      t                     |                                  |                     t                    5 } t          t                    t          j        d          d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } t          t                    t          j        d          dgd           d d d            n# 1 swxY w Y   |                     dt          |j
                             d S )Nr  r  z0array split does not result in an equal divisionrT  ru  r2   z%np.split: Argument axis out of bounds)r]  r   r  r  r  r   r   r  r  r  r  )r  r  s     r   test_split_basicz TestNPFunctions.test_split_basicM  s   %   !!!z** 	'fDKK

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

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

QCb1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2=&*++	- 	- 	- 	- 	-s$   	1BB
B
4DDDc           
      X   d }d }d } |             |             |            g}t           ddft          ddft          dd	ffD ]e\  }}}|}t          |          }	t	          |d
          D ]=}
||
dz
           D ]/\  }}|                      |||           |	||                     0>fd S )Nc               3   r   K   t          j        g d          dfV  t          j        g d          dfV  d S )Nrw  r  r  r  r@        @r  r  r   r   inputs1Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs1Da  sM      (<<<((!++++(+++,,a//////r   c               3   h  K   t          j        g dg dg          dfV  t          j        g dg dg          dfV  t          j        d                              dd          dfV  t          j        d                              dd          t          j        ddg          fV  t          j        d                              dd          ddgfV  t          j        d                              dd          dfV  t          j        d	                              ddd          dfV  d S )
Nrw  r  rg        0@r]  rT  r  rT  r  rA  rV  r  r   r   inputs2Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs2Df  sC     (LLL,,,788!;;;;(,,,.>.>.>?@@!CCCC)D//))!Q//2222)D//))!Q//1a&1A1AAAAA)D//))!Q//!Q7777)D//))!Q//7777)C..((Aq111444444r   c               3   @  K   t          j        g dg dgg dg dgg          df t          j        d                              ddd          dfV  t          j        d                              ddd          t          j        ddg          fV  t          j        d                              ddd          ddgfV  t          j        d                              ddd          dfV  t          j        d                              ddd          dfV  d S )	Nrw  r  rk  r]  rT  r  rl  rA  rV  r  r   r   inputs3Dz5TestNPFunctions.test_vhdsplit_basic.<locals>.inputs3Dp  s?     H|||#||%#||#||%& ' ' )** * )D//))!Q22A5555)D//))!Q22BHaV4D4DDDDD)D//))!Q22QF::::)D//))!Q22F::::)C..((Aq111444444r   r  r   r   r   rT  r   r]  )r   r   r   r   r  r  )r  ri  rm  ro  r  fmindimnamer  r  r  r+   r   s                r   test_vhdsplit_basicz#TestNPFunctions.test_vhdsplit_basic]  s'   	0 	0 	0
	5 	5 	5
	5 
	5 
	5 (**hhjj((**5#)1h"7#)1h"7#)1h"7"9 	B 	BQ FLLE61%% B B%+AE] B BMAz++FF1j,A,A,1E!Z,@,@B B B BBB	B 	Br   c           	      \   t           ddft          ddft          ddffD ]\  }}} t          d          |          }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     d	t          |j	                             |                     t                    5 } |d
d           d d d            n# 1 swxY w Y   |                     d	t          |j	                             |                     t                    5 } |t          j        g dg dg          d
           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   |                     |dz   t          |          z   dz   t          |j	                             d S )Nr  r   r   r   rT  r   Tr
  z#The argument "ary" must be an arrayr  rw  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  rp  rq  rr  r  r  s         r   test_vhdsplit_exceptionz'TestNPFunctions.test_vhdsplit_exception  s6   #)1h"7#)1h"7#)1h"7"9 	1 	1Q 'C&&&q))E##%%%"";// 6a              MM?f.//1 1 1"";//  6eQ                             MM?f.//1 1 1"";// E6bhlll;<<eDDDE E E E E E E E E E E E E E EMM &f.//1 1 1 "":.. &&bhqkk1%%%& & & & & & & & & & & & & & &MM$!<<s6{{J/0f.//1 1 1 1)	1 	1sH   ,BB		B		C++C/	2C/	8%E))E-	0E-	6G!!G%	(G%	c                     t           } t          d          |          }d }d } |            D ]=} |            D ]0} |||          } |||          }|                     ||           1>d S )NTr
  c               3   p  K   t          j        d          V  t          j        d                              ddd          V  g dV  dV  dV  dV  d	V  t          j        t          j        d
t           j        gt           j        dgg                    V  t          j        g           V  dV  d S )Nrl  re  rT  r]  r  )r  r  r.  r  F)rn  r  g333333@r  )r   r  rW  r  r  r  r  r  r   r   r  z5TestNPFunctions.test_roll_basic.<locals>.a_variations  s      )A,,)I&&..q!Q77777!//!!!%%%%KKKGGGJJJ#BHsBFmbfc]-K$L$LMMMMM(2,,HHHHHr   c                  `    t           j                            dt          dd          f          S )NrU  r  r  r  r  r   r   shift_variationsz9TestNPFunctions.test_roll_basic.<locals>.shift_variations  s2    ?00-27R..2B C C Cr   )r/  r   r  )	r  r  r  r  ry  r+   r0  r  r  s	            r   test_roll_basiczTestNPFunctions.test_roll_basic  s    "T"""6**
	 
	 
		C 	C 	C  	7 	7A))++ 7 7!6!U++eAuoo''#66667	7 	7r   c                 @   t           } t          d          |          }|                                  dD ]f}|                                 5 } |t	          j        d          |           d d d            n# 1 swxY w Y   d}|t          |j                  v sJ gd S )NTr
  )r  r  r  zshift must be an integer)r/  r   r  r  r   r  r  r  )r  r  r  r0  r  r  s         r   test_roll_exceptionsz$TestNPFunctions.test_roll_exceptions  s    "T"""6** 	!!!  	+ 	+E'')) ,QbimmU+++, , , , , , , , , , , , , , , -C#ak*******	+ 	+s   A88A<	?A<	c           	         t           } t          d          |          }t          | j        ||          }t	          j        d          }| j                            |           t          dd          D ]}||k    } |||d           t	          j        d          	                    dd	d
          }|dk    } |||d           d}t	          j
        d
                                          } |||d           g d}g d} |||d           t	          j        ddd          }ddt          j        ddddddf	}t          j        |d          D ]D} |||d            |t	          j        |          	                    dd          |d           Et	          j        g d          }t	          j        g           } |||d           t	          j        g d          }t	          j        g d          } |||d           t	          j        g dg dg          }g d} |||d           t	          j        g dg dg          }t	          j        g d          	                    ddd          } |||d           t	          j        t	          j        d          	                    d
dd	                    }t	          j        dd          } |||d            |||d d d         d           t	          j        d          }dD ]} |||d           d}d} |||d           t	          j        d          }t	          j        ddg          } |||d           t	          j        d          }t	          j        g d           	                    dd
          d!z  } |||d           d S )"NTr
  r  ru  r  rB  re  r]  r  rT  gffffff&@)rS  rT  r]  r  rj  )r  r  r.  r#  r5  r  r  Fr  r  g333333r   r  y              ?r  rS  )r   r   r   r   rj  )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r[  rQ  )r   r   r   r   r   r   r  )rA  r   r   rk  r   r  r  r'  r  rW  eyeflattenr<  r  r  combinations_with_replacementr  r  ra  )r  r  r  rp  r+   	thresholdr  r  s           r   test_extract_basicz"TestNPFunctions.test_extract_basic  s8   "T"""6**+VU;;IbMMr2 	2 	2Iy=DFa001111IbMM!!!Q**4xT!,,----vayy  ""T!,,---   ||T!,,---KB""eRVRtQTJ;L!LL 	J 	JDFa00111F$!7!71!=!=aHHIIIIHYYYx||T!,,---HYYYx%%T!,,---Hiii+,,!!!T!,,---Hiii+,,x0001199!QBBT!,,---bimm33Aq!<<==y$$T!,,---T!DDbD'22333HQKK 	2 	2DFa001111T!,,---HQKKxu&&T!,,---IaLLx***++33Aq99B>T!,,-----r   c                 ~    t           } t          d          |                                            t          j        g           }t          j        g d          }                     t                    5 } ||           d d d            n# 1 swxY w Y                        dt          |j	                              fd}t          j        g dg dg          }g d} |||           t          j        g d          }t          j        g d          } |||           t          j        d          }d	} |||           t          j
        d
          }t          j        g d          } |||           t          j
        d
          }t          j        g d          } |||           d S )NTr
  rS  z"Cannot extract from an empty arrayc                     d}                     t                    5 } | |           d d d            n# 1 swxY w Y                       |t          |j                             d S )Nz+condition shape inconsistent with arr shaper0  )r  r+   r  r  r  r  s       r   rp  z7TestNPFunctions.test_extract_exceptions.<locals>._check  s    ?C"":.. !dA              MM#s1;//00000s   7;;)r   r   r   r   r   r   r   )r   r   r   r   r   re  r[  r]  )TFFFT)TFTFFTF)rA  r   r  r   r  r  r  r  r  r  r  )r  r  r+   r  r  rp  r  s   `     @r   test_extract_exceptionsz'TestNPFunctions.test_extract_exceptions  s   "T"""6** 	!!!HRLLx			""z** 	aE$NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	:C<L<LMMM	1 	1 	1 	1 	1 	1 Hiii+,,$$$tQHYYYx((tQHRLLtQIaLLx999::tQIaLLxFFFGGtQs   ;BBBc                    t           } t          d          |          }t          | j        ||          }g d} |d|i           d} |d|i           t	          j        d                              dd          } |d|i           t	          j        d	d
d                              ddd          } |d|id           | j        	                    |            |d|id           t	          j
        g           } |d|i           t	          j
        dt          j        t          j        t          j         dg          } |d|i           t	          j        d          t	          j        dd
d          dz  z   } |d|i           t	          j
        g t          j                  } |d|i           d} |d|i           d S )NTr
  rS  r"  )rT  r   r  r  r  r  rT  r  r  r  re  r]  rB  ri  rv  r  r   r  r7  r  )rH  r   r   rk  r   r  rW  r<  r  r'  r  r  r  r  r  r  r  rp  r"  s        r   test_np_trapz_basicz#TestNPFunctions.test_np_trapz_basic3  s   "T"""6**+VU;;IIQxQxIbMM!!!Q''QxKR$$,,Q155Qx''''Qx''''HRLLQxHeRVRVbfWa899QxIbMMBK2r22R77QxHRr}---QxQxr   c                    t           } t          d          |          }t          | j        ||          }g d}g d} |||d           g d}d} |||d           d}g d} |||d           t	          j        g d          }d	d	g} |||d           t	          j        g           }t	          j        d
dg          } |||d           d}d } |||d           t	          j        d                              dd	          }t	          j        d	dg          } |||d           t	          j        d                              dd	          }t	          j        g d          } |||d           t	          j        d                              dd	d          }t	          j        d	dg          } |||d           t	          j        d                              dd	d          }t	          j        g d          } |||d           t	          j        d                              dd	d          }| j        	                    |           |dz   }| j        	                    |            |||d           t	          j        d          }|t	          j
        ddd          dz  z   } |||d           t	          j        g d          }t	          j        ddg          } |||d           d S )NTr
  rS  r]  r  rm  rJ  rt  )r]  r  r]  r  r  rl  rm  r]  r  rT  r  r  ru  re  )r]  r  rl  r  r   r  r  r  r  )rK  r   r   rk  r   r  r  rW  r  r'  r<  )r  r  r  rp  r"  r   s         r   test_np_trapz_x_basicz%TestNPFunctions.test_np_trapz_x_basicV  sP   "T"""6**+VU;;IIIIQQ   OOQQ   OOQQ   H___%%FQQ   HRLLHaVQQ   QQ   IbMM!!!Q''HaVQQ   IbMM!!!Q''H\\\""QQ   IbMM!!!Q**HaVQQ   IbMM!!!Q**HYYYQQ   IbMM!!!Q**GQQ   IbMMAr2&&++QQ   HYYYHff%&&QQ     r   zNumPy behaviour questionablec                 .   t           } t          d          |          }t          | j        ||          }t	          j        g d                              t                    } |d|i           t	          j        g d          } |d|i           d S )NTr
  )TFTTr"  )rH  r   r   rk  r   r  r  r  r  s        r   test_trapz_numpy_questionablez-TestNPFunctions.test_trapz_numpy_questionable  s     "T"""6**+VU;; H...//66s;;Qx H...//Qxr   c                    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          	                    dd	d          dz  }t	          j        d          	                    dd	d          } |||d           t	          j        dd
d          } |t	          j
        d|dz  z            t	          j        dt          j        z            z  d          }t          j                            |dd           t	          j        d          }d} |||d           t	          j        d          }t	          j        d	g          } |||d           d S )NTr
  rS  r  rO  rt  )r   r]  r  r  r  r  r  rn  rB  ri  re  r]  rT  r  rZ  r  r  r  rM  r   rl  r  )rP  r   r   rk  r   r<  r  r  r  rW  expr  r  r  assert_almost_equalr  )r  r  r  rp  r"  rN  r   rB  s           r   test_np_trapz_dx_basicz&TestNPFunctions.test_np_trapz_dx_basic  s}   "T"""6**+VU;;IIQb!!"""OO\\Qb!!"""OO\\Qb!!"""KAr""VQb!!"""KAr""VQb!!"""KAr""[Q""Qb!!51111IbMM!!!Q**R/Yr]]""1a++Qb!!"""Ic2r""E"&qAv&&RU););;DDD

&&q!Q///IbMMQb!!"""IbMMXqc]]Qb!!"""""r   c                     t           } t          d          |          }t          | j        ||          }d dt	          j        g d          fD ]}g d}g d} ||||d           g d}dd	g} ||||d           g d}g d
} ||||d           t	          j        d                              ddd          }| j        	                    |           |dz  }t          j
        |d<    ||||d           d S )NTr
  r  rt  rS  r  rR  r]  r  r  re  r  rT  r  r  )rS  r   r   rk  r   r  r  rW  r  r'  r  )r  r  r  rp  rN  r"  r   s          r   test_np_trapz_x_dx_basicz(TestNPFunctions.test_np_trapz_x_dx_basic  sO   "T"""6**+VU;; BH___556 	/ 	/B		A		AF"--...AAAF"--...AAF"--...	"%%aA..AHQCAAgJF"--....#	/ 	/r   c                     t           } t          d          |                                             fd}g d}g dg dfD ]} |||df           t          j        d                              d	d
d          }t          j        d                              d	d
d	          } |||df           t          j        d                              d	d
d          }t          j        g d          } |||df           g d}t          j        ddg          } ||d |f           t          j        d                              d	d
d          }t          j        d                              d	d
d          } ||d |f                                            5 }t          j        d
          } ||d df           d d d            n# 1 swxY w Y                        dt          |j
                             ddt          j        fD ]c}                                 5 } |d d           d d d            n# 1 swxY w Y                        dt          |j
                             dd S )NTr
  c                                          t                    5 } |   d d d            n# 1 swxY w Y                       dt          |j                             d S )Nzunable to broadcastr0  )rj  r  r  r  s     r   check_not_okzCTestNPFunctions.test_np_trapz_x_dx_exceptions.<locals>.check_not_ok  s    "":.. !v               MM/Q[1A1ABBBBBs   .22rt  )r]  r  r  rl  rm  rn  rj  r  re  rT  r]  r  $   ru  r  zy cannot be 0DFzy cannot be a scalar)rS  r   r  r   r  rW  r  r  r  r  r  r  )r  r  r  r"  r   rN  r  r  s   `      @r   test_np_trapz_x_dx_exceptionsz-TestNPFunctions.test_np_trapz_x_dx_exceptions  s)   "T"""6** 	!!!	C 	C 	C 	C 	C 	C OO###YYY. 	& 	&AL!Q%%%%IbMM!!!Q**IbMM!!!Q**aC[!!!IbMM!!!Q**H\\\""aC[!!!OOXsCj!!ar]###IbMM!!!Q**Yr]]""1a++ar]#####%% 	)AL!T3(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	&AK(8(8999E26! 	D 	DA'')) $Qas###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ MM0#ak2B2BCCCC		D 	Ds$   ##GGG*II	I	c                 h    d}t           j                            |          dz  }t           j                            |          dz  }t          j        |          }t           j                            |          dk    }t           j                            |          dk    }t           j                            d|          }t           j                            d|          }d}	d}
d}t           j                            |	|
|          dz  }t           j                            |	|
|          dz  }t          } t          d          |                                |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 |||	           ||	          d
                                 ||           |          d
                                 ||           |          d
            fd} |||	            fd} fd}t          j	        d          
                    d          }t          j        ddg          } |||	            ||d|           d S )Nr  r  e   r  r   r  Tr
  rK   r  )placesc                                          t                    5 } | |           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )NrK   z)Weights sum to zero, can't be normalized.)r  ZeroDivisionErrorr  rH  r  datarL   r  errr  r  s       r   test_weights_zero_sumz;TestNPFunctions.test_average.<locals>.test_weights_zero_sumF  s    ""#455 -dG,,,,- - - - - - - - - - - - - - -+CSXXHJ J J J J   6::c                                          t                    5 } | |           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )NrK   zCNumba does not support average when shapes of a and weights differ.r  	TypeErrorr  rH  r  r  s       r   test_1D_weightsz5TestNPFunctions.test_average.<locals>.test_1D_weightsP  s    ""9-- -dG,,,,- - - - - - - - - - - - - - -+CSXX56 6 6 6 6r  c                                          t                    5 } | ||           d d d            n# 1 swxY w Y   |j        }                    t	          |          d           d S )NrX  z)Numba does not support average with axis.r  )r  r3   rL   r  r  r  r  s        r   test_1D_weights_axisz:TestNPFunctions.test_average.<locals>.test_1D_weights_axisX  s    ""9-- 7dg66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7+CSXXHJ J J J Js   7;;r  r\  g      ?g      ?r   rX  )r   r  ranfrf  r"  r   rZ  r   assertAlmostEqualr  rW  r3  )r  r   r+   rM   w0a_boolw_boola_intw_intd0r~  d2a_3dw_3dr  r  r  r  r  r  s   `                  @r   test_averagezTestNPFunctions.test_average  s    INN1#INN1#Xa[[ ""S(""S( 	!!#A!..	!!#A!.. y~~bB''#-y~~bB''#-"T"""6** 	q 3 3 3 %a 2 2 22 	 	? 	? 	?tD 9 9 9 %d4 8 8 8 	 	E 	E 	E
 	uU ; ; ; %eE : : :2 	 	G 	G 	G 	q 8 8 8 %a 7 7 7 	 	D 	D 	Dva 8 8 8 %fQ 7 7 7 	 	D 	D 	Dvv > > > %ff = = =b 	 	J 	J 	J 	vvayy%%((2>>>vvd||UU4[[DDD	J 	J 	J 	J 	J 	J 	a,,,,	6 	6 	6 	6 	6 	6	J 	J 	J 	J 	J 	J y||##G,,J'(( 	a(((( 	T1555555r   c           
         t           } t          d          |          }t          j        t          j                  j        }t          j        |gt          j                  }t          j        ddg          t          j        ddg          ft          j        ddg          t          j        ddg          ft          j        ddg          t          j        d	dg          ft          j        dg          t          j        d	dg          fd
t          j        t          j        dg          t          j        dt          j        g          f||fg}|D ]3\  }} |||          } |||          }| 	                    ||           4t          j        dt          j
        g          }t          j        dt          j
        g          }|                      |||                     | 	                     |||d           |||d                     t          j        t          j
        dg          }| 	                     |||           |||                     g d}	t          j        d          }
t          j                            d          }|	D ]G}|	D ]@}|	D ]9} ||
|||          } ||
|||          }| 	                    ||            |||
||          } |||
||          }| 	                    ||            |t          j        |g          |
||          } |t          j        |g          |
||          }| 	                    ||            ||||z   ||          } ||||z   ||          }| 	                    ||            |||z   |||          } |||z   |||          }| 	                    ||           ;BId S )NTr
  r7  r  r  r  r~   r  r  )r  r  r   r   r  r   )r  r  g{Gz?gMbP?-C6?r}   gư>r  )r  r]  )r   r   )rV  r   r   r   int_r=  r  r3  r  rH  r  assertFalserf  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_allclosei  sO   "T"""6**(27##'HgYbg... Zt%%rz:t2D'E'EFZt%%rz:t2D'E'EFZt%%rz9d2C'D'DEZY,=!>!>?Xrvqk""BHa[$9$9:F
   	2 	2DAqq!IuQ{{HY1111JRV}%%JRV}%%q!%%%1555q!t444	6 	6 	6 J}%%1uuQ{{333EEEXg&&
INN7##! 	: 	:E$ : :( : :D &z5,0t!= != !=I$uZ*.T ;  ;  ;H$$Y999 &uj,0t!= != !=I$uUJ*.T ;  ;  ;H$$Y999 &rz5'':':J,0t!= != !=I$uRZ%8%8**.T ;  ;  ;H$$Y999 &q!e)$T J J JI$uQE	4HHHH$$Y999 &q5y!$T J J JI$uQY4HHHH$$Y99993::	: 	:r   c                 6   t           } t          d          |          }t          j        ddg          }t          j        d                              t          j                                      d          }d}d	}t          j        d
dg          t          j        d
dg          ft          j        |g          t          j        dg          ft          j        dg          t          j        d
|z   |z   g          f||||z  z   f||||z  z   |dz  z   f||||z  z   ft          j	        t          j	        ft          j	        t          j        t          j	        g          fg}|D ]/\  }}	| 
                     |||	           |||	                     0d S )NTr
  g      Y@g     @@}   r7  r  r  r  r~   r}   r   r   r  r  r  )rV  r   r   r  r  r  r  rW  r3  r  rH  )
r  r  r  r5   r  r   r   
numpy_datar   r"  s
             r   test_ip_allclose_numpyz&TestNPFunctions.test_ip_allclose_numpy  s   "T"""6**hv''y~~$$2:$66>>yII ZAQF!3!34ZSE!2!23Z
AHtO+< = =>#d
"##d
"TAX-.4$+%&VRVVRZ))*	

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

 ! 	8 	8FQVVAq\\55A;;7777	8 	8r   c                     t           } t          d          |          } G d dt          j                  } |dg          }|                     t           |||                    t          u            d S )NTr
  c                       e Zd Zd ZdS )?TestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Fooc                 J    t          j        |i |                    |           S r   )r   r  r!  )clsrc   r  s      r   __new__zGTestNPFunctions.test_return_class_is_ndarray_numpy.<locals>.Foo.__new__  s%    x00055c:::r   N)__name__
__module____qualname__r  r  r   r   Foor    s#        ; ; ; ; ;r   r  r   )rV  r   r   ndarrayr  r  r  )r  r  r  r  r+   s        r   "test_return_class_is_ndarray_numpyz2TestNPFunctions.test_return_class_is_ndarray_numpy  s     "T"""6**	; 	; 	; 	; 	;"* 	; 	; 	; CHHUU1a[[))T122222r   c                     t           } t          d          |          }t          j        dt          j        g          }|                      |||d           |||d                     d S )NTr
  r  r  )rV  r   r   r  r  rH  )r  r  r  r   s       r   test_equalnan_numpyz#TestNPFunctions.test_equalnan_numpy  s    "T"""6**Hc26]##1555q!t444	6 	6 	6 	6 	6r   c                    t           } t          d          |          }t          j        t          j        dg          }t          j        dt          j        g          } |||           t          j                            |t          j        t          j        dg                     t          j                            |t          j        dt          j        g                     d S )NTr
  r   r   )rV  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**Hbfa[!!Ha[!!a

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

%%a1bf+)>)>?????r   c                 "   t           } t          d          |          }t          j        t          j                  j        }t          j        |gt          j                  }|                      |||           |||                     d S )NTr
  r7  )rV  r   r   r   r  r=  r  rH  )r  r  r  r  r+   s        r   test_min_int_numpyz"TestNPFunctions.test_min_int_numpy  s     "T"""6**(27##'HgYbg...1uuQ{{33333r   c                    |                                   t          } t          d          |          }t          j        ddt          j        g          t          j        ddg          dddd	t          fd
dddddt          fdd
ddddt          fddddddt          fddddddt          fddddddt          fg}|D ]G\  }}}}}}	}
|                     |
|	          5   ||||||           d d d            n# 1 swxY w Y   Hd S r  )	r  rV  r   r   r3  r  r  r   r  r  s              r   test_allclose_exceptionz'TestNPFunctions.test_allclose_exception  s   !!!"T"""6** ZtRV,--ZD)**E5L	
 au8 u9 5%A 5%B 5%?%
. :> 	3 	35Aq$i#''W55 3 3aD$	2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3s   C66C:	=C:	c                    t           } t          d          |          }t          | j        ||d          }t	          j        ddd          }t	          j        dd	          }|d
z   } ||||d           | j                            |            ||||d           | j                            |            ||||d           t          j	        |d d<   t          j
        |dd <   | j                            |            ||||d           t          j	        |d d<   t          j
         |dd <   | j                            |            ||||d           t	          j        dd	          }|dz   }|dz   } ||||d           d}d}d} ||||d           d}t	          j        ddd          }t	          j        dd          } ||||d           t	          j        dt          j	        t          j
        t          j
         ddg          }|                    ddd          }t	          j        ddd          }t	          j        dd          } ||||d           t          dd          D ]}g d}d} ||||d           t	          j        g           }g d}d} ||||d           t	          j        ddd                              ddd          }t	          j        d           }|dz
  } ||||d           t          j	        }t	          j        d          }t	          j        dt          j	                  } ||||d           t          j	        }dg}dg} ||||d           t	          j        dd	          }|}|} ||||d           dd!g}t	          j        dd	          }|} ||||d           t          j
         d"dd#t          j
        g}t	          j        dd	          }|d$z  } ||||d           t	          j        d%dd          }t	          j        t          j
         d"dd#t          j
        g          }|d$z  } ||||d           | j                            d&          }t	          j        d'dd&          }t	          j        d&d()          } ||||d           d*D ]3}t	          j        g d          |z  }ddg}ddg} ||||d           4d}dg}dg} ||||d           t	          j        ddd          }t	          j        ddd          }t	          j        ddd+          }	 ||	||          }
t          j                            |
|	           t	          j        g d,          }t	          j        g d,          }t	          j        g d-          } ||||d           dg}t          j
        g} |d||d           t	          j        g d.          }t	          j        g d,          }t	          j        ddt          j	        dg          } ||||d           t	          j        g d/          }t	          j        g d0          }t	          j        t          j	        dt          j	        dt          j	        g          } ||||d           t	          j        g d.          }t	          j        g d,          }t	          j        ddt          j
        dg          } ||||d           t	          j        dd
t          j	        d1t          j
         dd2dt          j
        dd3g          }t	          j        g d4          }t	          j        ddt          j	        ddt          j
        g          } ||||d           t	          j        g d5          }t	          j        ddd6          }t	          j        |d7z            } ||||d           | j                            ddt          j        z  d8          }t	          j        ddt          j        z  d9          }t	          j        |          }t	          j        |          } ||||          }t          j                            ||d:;           | j                            d          }t	          j        d%dd9          }t	          j        |          } ||||d           | j                            d9          }t	          j        d%dd          }t	          j        |          } ||||d           d S )<NTr
  r  ri  r  r  r  r  rm  r&  r]  )rj  r   r  r  r.  g      r  rT  r]  r  )r  )rr  ?rh  r]  r  gffffff?r  g333333"rT  r  r  r  rb  r~  r   re  r  Fr  r  r  r  r  ru  rv  r  )r   r  r   rw  )r   r  gGz@r]  )r   r        @rT  r]  )	r   r&  r  r  rT  r]  r  r  g      @rt  r  r  rl  )r   r  rT  r]  r  r  )g~@g<ԛ@g3@i!N  r  )r  r  r}   )r   )r\  r   r   rk  r   r<  r  r  r'  r  r  r  rW  r  r   r  r  r  sinuniformr  cosr  	ones_like)r  r  r  rp  r   r^  r_  factorr"  x0ry   exactr  s                r   test_interp_basicz!TestNPFunctions.test_interp_basic-  s
   "T"""6**+VUEJJJKAr""Yr1#XARr223333ARr223333ARr223333"1""##ARr2233332A26'233ARr223333Ib!UUARr223333ARr223333/[Q##Yr1ARr223333Hc2626BF7C>??IIa#I&&[Q##Yr1ARr223333r1 	8 	8ABBF26677777HRLLYYARr223333K2r""**1a33Yr]]"WARr223333FYq\\WQARr223333FSSARr223333Ib!ARr2233335MYr1ARr223333fWdCbf-Yr1#XARr223333KR$$Xwc3788#XARr223333HNN3[Q$$WSU+++ARr223333 	8 	8F##f,AQBQBF26677777SVARr223333K1a  K1a  [Ar""eB1oo

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

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

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

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

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

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

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

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

&&uuRUB';';SAAAAAr   c                 H   t           } t          d          |          }t          j        ddd          }t          j        ddd          dt          j        ddd          z   dz  z   }d}|d|z   dz  z   }t          j                             ||||          |           d S )NTr
  r   r   r  r  rs  )r\  r   r   r<  r  r  )r  r  r  r   r"  r  y0s          r   &test_interp_supplemental_complex_testsz6TestNPFunctions.test_interp_supplemental_complex_tests  s     "T"""6**K1a  K1a  AAq!(<(<$<#DD1r6T/!

&&uuRA;;;;;r   c                    t           } t          d          |          }t          j        t          j        t          j        t          j        g}t          j        |d          D ]~}|\  }}}t          j	        d|          }|dz  
                    |          }	t          j        ddd|          }
 ||
||	          } ||
||	          }|                     ||           d S )NTr
  rT  r  r7  r  )r\  r   r   r  r  rP  rQ  r  r  r  r  r<  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***bj"(BH=<VQGG 	3 	3E*/'Hh2X...B'!!(++BAq"G444AvaR((H%2r""C##Hc2222	3 	3r   c                 &   d }t           } t          d          |          } |            D ]b} ||          } ||          }t          |t          j                  r|                     |||f           K|                     |||           cd S )Nc               3     K   t          j        d          V  t          j        d          V  t          j        dd          V  t          j        dd          V  t          j        d          V  t          j        dd          V  t          j        dd          V  dD ]<} t          j        g dd	| z  
          V  t          j        g dd| z  
          V  =d S )Nz
2016-01-01NaTmsnsz2038-01-19T03:14:07"   )r  r   WDhr   rt  r  usr  psfsas){   ir  z<datetime64[%s]r7  z<timedelta64[%s])r   r  r  r  )units    r   r6   z*TestNPFunctions.test_isnat.<locals>.values  s>     -------&&&&&-t,,,,,-t,,,,,- 566666.-----.T*****1 @ @ h111%6%=? ? ? ? ? ?h111%7$%>@ @ @ @ @ @ @@ @r   Tr
  )r   r   r  r   r  r  rH  r  s          r   
test_isnatzTestNPFunctions.test_isnat  s    	@ 	@ 	@$ "T"""6** 	3 	3AvayyH%((C!RZ(( 3''#t<<<<  32222	3 	3r   c                 0    d } fd}t           t          fD ]} t          d          |          }t           j        ||          } |            D ]}d|i}d|j        v r"d t          j        fD ]}||d<    ||           n ||           t          j        dt          j	        	          }d|i}d|j        v rKd |d<    ||d|           t          j        |d<    ||d
|           t          j	        |d<    ||d|            ||d|           d S )Nc               3     K   dV  dV  dV  dV  g dV  ddgV  dV  dV  g dg dfV  t          j        g           V  t          j        d          V  t          j        d                              d	d          V  t          j        d                              d	d          j        V  d
 }  | d          V   | d          V   | d          V   | d          V  dS )a}  
            To quote from: https://docs.scipy.org/doc/numpy/reference/generated/numpy.asarray.html    # noqa: E501
            Input data, in any form that can be converted to an array.
            This includes:
            * lists
            * lists of tuples
            * tuples
            * tuples of tuples
            * tuples of lists
            * ndarrays
            r  rr  Fr   rS  rR  r]  r\  rT  c                 V    t                      }| D ]}|                    |           |S r   r
   r4   )r6   r+   r  s      r   	make_listzITestNPFunctions.test_asarray.<locals>.input_variations.<locals>.make_list(  s0    FF    AHHQKKKKr   )r  r  r@  r  r  N)r   r  r  rW  r  )r(  s    r   r  z6TestNPFunctions.test_asarray.<locals>.input_variations  s[      HHHIIIKKKGGG))OOOi((((OOO((((99iii(((((2,,)A,,)B--''1-----)B--''1--////  
 )I&&&&&)O,,,,,)L))))))/0000000r   c                 (    | di |}|r                     ||d         u            d S                      ||d         u           t          j                            ||d                                         |j        |d         k               d S )Nr+   r8  r  )r  r   r  r  r8  )jittedexpect_samerj  returnedr  s       r   check_pass_throughz8TestNPFunctions.test_asarray.<locals>.check_pass_through5  s    v''''H CF3K 788888s ;<<<
**8VC[AAA&/ ABBBBBr   Tr
  r+   kwsr8  r  r7  F)
r3  r:  r   r   rk  r  r   r  r  r  )	r  r  r-  r  r  rp  r   rj  rs  s	   `        r   test_asarrayzTestNPFunctions.test_asarray  s   #	1 #	1 #	1P	C 	C 	C 	C 	C , 	< 	<F&C&&&v..ET/??F%%'' < <qFO++#R]3 ' '*,wv' F6NNN Ib
333qFO++&*F7O&&udF;;;&(mF7O&&ueV<<<&(jF7O&&udF;;;;&&udF;;;;)<		< 	<r   c                     d }d }d }d }||||g}|D ]E} t          d          |          } |            } |            }	|                     ||	           Fd S )Nc                  *    t          j        d          S Nr  r2  r  r   r   case1z3TestNPFunctions.test_asarray_literal.<locals>.case1[  s    :m,,,r   c                  .    d} t          j        |           S r2  r2  rt  s    r   case2z3TestNPFunctions.test_asarray_literal.<locals>.case2^  s    A:a== r   c                  .    d} t          j        |           S )Nu+   大处 着眼，小处着手。大大大处r2  r5  s    r   case3z3TestNPFunctions.test_asarray_literal.<locals>.case3b  s    =A:a== r   c                  .    d} t          j        |           S )N r2  r5  s    r   case4z3TestNPFunctions.test_asarray_literal.<locals>.case4f  s    A:a== r   Tr
  )r   r  )
r  r3  r6  r8  r;  funcsr  r  r  r  s
             r   test_asarray_literalz$TestNPFunctions.test_asarray_literalY  s    	- 	- 	-	! 	! 	!	! 	! 	!	! 	! 	! ue, 	3 	3F&C&&&v..EvxxH%''C##Hc2222		3 	3r   c                 *                                        t          d          t                     fd}d }d }d }d } | |                        | |                        | |                        | |                       d S )NTr
  c                                          t                    5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )Nz?asarray support for List is limited to Boolean and Number types)r  r   r  r  r  )alistr  r  r  s     r   test_rejectzQTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.test_rejectv  s    "";// 1e              MM.AK  " " " " "r  c                  L    t                      } |                     d            | S r   r'  )ls    r   make_none_typed_listzZTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_none_typed_list~  s    AHHTNNNHr   c                      t                      } t                      }|                    d           |                     |           | S )Nr   r'  )rC  r   s     r   make_nested_listzVTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list  s7    AAHHQKKKHHQKKKHr   c                  r    t                      } t                      }d|d<   |                     |           | S )Nr+   r   )r
   r   r4   )rC  r  s     r   make_nested_list_with_dictz`TestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_nested_list_with_dict  s1    AAAaDHHQKKKHr   c                  V    t                      } dD ]}|                     |           | S )N)r+   bcdefr'  )rC  r  s     r   make_unicode_listzWTestNPFunctions.test_asarray_rejects_List_with_illegal_dtype.<locals>.make_unicode_list  s0    A'  Hr   )r  r   r3  )r  rA  rD  rF  rH  rL  r  s   `     @r   ,test_asarray_rejects_List_with_illegal_dtypez<TestNPFunctions.test_asarray_rejects_List_with_illegal_dtyper  s    !!!"T"""7++	" 	" 	" 	" 	" 	"	 	 	
	 	 		 	 		 	 	 	((**+++$$&&'''..00111%%''(((((r   c                    d }t           } t          d          |          } |            D ]\  }}| ||          } ||          }n |||          } |||          }|                     ||           |                     t	          j        |j        t          j                  |j                   t          } t          d          |          }t	          j	        g d          } ||          } ||          }|                     ||           |                     t	          j        |j        t          j                  |j                   d S )Nc               3     K   t          j        g d          d fV  t          j        ddgt           j                  t           j        fV  t          j        ddgt           j                  t           j        fV  t          j        ddgt           j                  t           j        fV  t          j        ddgt           j                  t           j        fV  d S )NrS  r  rT  r7  )r   r  r  r  r  r  r  r   r   r  z-TestNPFunctions.test_asfarray.<locals>.inputs  s      (999%%t++++(Aq6444bj@@@@(Aq611127::::(Aq61112<????(Aq61112=@@@@@@r   Tr
  r7  rS  )
r=  r   r  r  r   rR  r8  inexactr?  r  )r  r  r  r  r5   rs  r  r  s           r   test_asfarrayzTestNPFunctions.test_asfarray  sh   	A 	A 	A "T"""6**vxx 		M 		MGCz!6#;;eCjj!6#R000eCr***##Hc222OOBM#)RZ@@#)LLLL ("T"""6**hyyy!!6#;;eCjj#...ci<<ciHHHHHr   c           	      "    t           }t          |          }t          }t          |          }||f||ffD ]U\   fd}t          j        d          t          j        d          t          j        ddgddgg          t          j        g           t          j        g g g          g}t          j        t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        g}d t          j        ||          D             }ddd	d
g ddg}	t          j        ||	          D ]C}
 ||
d            ||
d            ||
d            ||
d            ||
d           Dt          j        d          }dgdgdgfD ].}
 |||
            ||t          j        |
                     /t          j        d          }ddgddgddgddgddgddgddgfD ].}
 |||
            ||t          j        |
                     / ||t          j        ddgt          j                              |t          j        d          t          j        d                     Wd S )Nc                 \                          | |           | |                     d S r   r  )r+   rc  nbfuncr  r  s     r   r  z*TestNPFunctions.test_repeat.<locals>.check  s7    ''q'(:(:FF1g<N<NOOOOOr   r   r  r   r  rT  c              3   H   K   | ]\  }}t          j        ||           V  dS )r7  Nr  )r  r+   ts      r   	<genexpr>z.TestNPFunctions.test_repeat.<locals>.<genexpr>  sM       #J #J31Q28AA#6#6#6 #J #J #J #J #J #Jr   r  Tr  rb  )rc  r  r7  r  )rd  r   rf  r   r  r  r  uint32rP  uint64rQ  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tworT  r  s   `            @@r   test_repeatzTestNPFunctions.test_repeat  s    	OO	 $L)) )95 ,l;= :	8 :	8NFFP P P P P P P
 

	$1a&1a&)**"b""# 		

	"#J #J#,#45H5G$I $I#J #J #J
 		'# _%8%<> > & &a####a####a####a####a%%%%% )A,,CcA3_ 0 0c1%%%%c28A;;/////)A,,C!fq!fq!fq!fq!fq!fq!fM 0 0c1%%%%c28A;;/////E#rxAbh???@@@@E")B--277777u:	8 :	8r   c           	      l   t           }t          |          }t          }t          |          }|                                  ||f||ffD ]i\  }}|                     t
                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } |t          j        d          d           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t
                    5 } |t          j        d          t          j        ddg                     d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t
                    5 } |t          j        d          t          j        g d                     d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t
                    5 } |t          j        d	          t          j        g d
                     d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } |t          j        d          ddg           d d d            n# 1 swxY w Y   |                     dt          |j
                             dD ]R}|                     t                    5   |t          j        d          |           d d d            n# 1 swxY w Y   Skd S )Nr   r  z#negative dimensions are not allowedr  zIThe repeats argument must be an integer or an array-like of integer dtyper  r_  z(operands could not be broadcast togetherr  r;  )Tr+   r
  )rd  r   rf  r  r  r  r   r  r  r  r  r   r  )	r  rZ  r[  r\  r]  r  rT  r  reps	            r   test_repeat_exceptionz%TestNPFunctions.test_repeat_exception   s$   	OO	 $L))!!! )95 ,l;= -	, -	,NFF "":.. '!rwqzz2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' 'MM?ak**, , , "";// (1rwqzz3'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (MM4AK  " " " "":.. 6!rwqzz28QG#4#45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6MM?ak**, , , "":.. 8!rwqzz28III#6#67778 8 8 8 8 8 8 8 8 8 8 8 8 8 8MMDak**, , , "":.. ;!rwqzz28LLL#9#9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;MMDak**, , , "";// /1rwqzzC:.../ / / / / / / / / / / / / / /MM4AK  " " "
 ( , ,&&{33 , ,F271::s+++, , , , , , , , , , , , , , ,,W-	, -	,s~   )BB	B	!DD	D	3FF	F	%3H$$H(	+H(	13J00J4	7J4	=!L**L.	1L.	;N&&N*-N*c                 H   t           }t          t                     }t          j        g d          t          j        g d          t          j        g d          gt          j        g d          t          j        g d          t          j        g d          gdft          j        dg          t          j        d	g          gt          j        d
g          t          j        dg          gdft          j        d	g          gdz  t          j        d
g          gdz  dft          j        t          j        d
ddt          j        ddg                    gdz  t          j        d
ddt          j        ddg          gdz  dft          j        t          j        d
ddt          j        ddgg                    gdz  t          j        d
ddt          j        ddgg          gdz  dft          j        t          j        d
ddt          j        ddg                    gdz  t          j        d
ddt          j        ddg          gdz  dfg}t          j        d          t          j        d                              d          fD ]}|                    |dk     |dk    g||dz  gdf           |                    |dk     |dk    f||dz  fdf           |                    |dk     |dk    g||dz  fdf           |                    |dk     |dk    f||dz  gdf           |D ]2\  }}}| 	                     ||||           ||||                     3t          }t          t                    }	| 	                     |||           |	||                     d S )N)FFFFTF)FFTrS  rj  rk  g.@TFr   r  r   r  rT  r  rl  y      @       @r  )r  r  )rm  r   r   r  rw  r  r  rW  r4   r  ro  )
r  rZ  r[  
test_casesr   rk  rl  rh  np_pyfunc_defaultsnp_nbfunc_defaultss
             r   test_selectzTestNPFunctions.test_select:  s   	OO	 h,,,--h+++,,h+++,,. hyyy!!hyyy!!hyyy!!#$(* hvhw!#%8QC=="(A3--"@!E hw 3&1##(=qAhrxAq"&!Q 78899:Q>h1aA.//014a9 hrx!Q261a!8 9::;;<q@hAq"&!Q/0112Q6; hrxAvrvq! <==>>?!Ch1fbfa344591>/

6 )B--2!6!6v!>!>? 	@ 	@AAq1u~16{A>???Aq1u~16{A>???Aq1u~16{A>???Aq1u~16{A>????.8 	N 	N*Hz7##IIh
G$L$L$-Ih
G$L$LN N N N 0!"455 2 28Z H H 2 28Z H H	J 	J 	J 	J 	Jr   c                    t          t                    }t          j        d          }|                                  t          j        d          t          j        g d          gt          j        d          t          j        d                              dd          gdt          d	ft          j        d          t          j        d
          gt          j        dg          t          j        dg          gdt          dft          j        dg          t          j        d
g          gt          j        dgg          t          j        dgg          gdt          dft          j        d          t          j        d
          gt          j        d          t          j        d          gdt          d	ft          j        t          j        dddt          j	        ddg                    t          j        dddt          j	        ddg          dt          dfdgdgdgt          df|dk     
                    t                    |dk    
                    t                    g||dz  gdt          df|dk    |dk    |dk    |dk    g||dz  |gdt          dfdgdz  t          j        dg          gdz  dt          dft          j        d
g          gdz  dgdz  dt          dff
D ]j\  }}}}}|                     |          5 } ||||           d d d            n# 1 swxY w Y   |                     |t          |j                             kd S )Nr  Tri  r   r\  r]  rT  r   z/condlist arrays must be of at least dimension 1Fr  zHcondlist and choicelist elements must have the same number of dimensionsr  rl  z"condlist must be a List or a Tuplezdefault must be a scalarz%condlist arrays must contain booleansrn  rm  r  z7list of cases must be same length as list of conditionsr8  r  z items of condlist must be arraysrX  z"items of choicelist must be arrays)r   rm  r   r  r  r  rW  r   rw  r  r  r  r  r  r  r  r  )	r  r[  r   rk  rl  rh  expected_errorexpected_textr  s	            r   test_select_exceptionz%TestNPFunctions.test_select_exceptionm  sY   OO	IbMM!!! htnnbh';';';<<=hqkk29R==00A667KM htnnbhuoo.1#!0N 9: hv% 1 12huoorx!/K)*
 htnnbhuoo.!bhqkk0JAKM Xbh1aA67788Xq!Q1-..;13 VaS1#{') 1unnS!!AE>>##6#67!Q!VaAC !eQUAE1q5)Aq!tQ<JFH Z#!4a/1 hw 3&a13Y.M
 1	; 1	;HHj'>=^ "">22 9a	(J8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9MM-Q[)9)9::::c1	; 1	;s    LL	!L	c                 V     fd} |t                       |t                      |t                      |t                     t          }t          t                    }dD ]n}dD ]i} |||          } |||          }t          st          j                    dv r 	                    ||dd           P 	                    ||dd           jodD ]h} 
                    t                    5 } ||d	           d d d            n# 1 swxY w Y                        d
t          |j                             idD ]h} 
                    t                    5 } |d|           d d d            n# 1 swxY w Y                        dt          |j                             id S )Nc                 d   | }t          |           }dD ]0} ||          } ||          }                    ||d           1dD ]g}                    t                    5 } |d           d d d            n# 1 swxY w Y                       dt          |j                             hd S )Nr   r   r  r\  r  )r  r+   r  r  r  M must be an integer)r   r  r  r   r  r  r  )rB  rZ  r[  r   r  r  r  r  s          r   check_windowz4TestNPFunctions.test_windowing.<locals>.check_window  s   IT

I" F F$9Q<<ill''#H'EEEE# M M&&{33 #vIcNNN# # # # # # # # # # # # # # #4c&:J6K6KLLLLM Ms   $A<<B 	B 	rt  )r  r  g      ,@)ppc64leaarch64r  r  rF  ru  r  rv  )r+   r  r  z beta must be an integer or float)rs  rv  ry  r|  r  r   r   platformmachiner  r  r   r  r  r  )	r  rw  rZ  r[  r   r  r  r  r  s	   `        r   test_windowingzTestNPFunctions.test_windowing  s   	M 	M 	M 	M 	M 	[!!![!!!Z   Z    	OO	 
	4 
	4A( 	4 	4$9Q--i4(( 4 0 2 26L L L++H,/hQ , H H H H ++Hc12 , 4 4 4 4	4   	I 	IA"";// "6	!S!!!" " " " " " " " " " " " " " "MM0#f6F2G2GHHHH 	1 	1D"";// #6	!T"""# # # # # # # # # # # # # # #MM<f.//1 1 1 1	1 	1s$   1D

D	D	E55E9	<E9	c                    t           } t          d          |          }t          j        g dg dg          t          j        g dg dg          ft          j        g dg dg          dft          j        g dt          j                  t          j        g dt          j                  fdt          j        dd	g          t          j        g d          ft          j        g d          t          j        g dg dg          ft          j        g dg dg          t          j        g d          ft          j        d
                              dd	d          t          j        d                              d	d	          fg}|D ]3\  }} |||          } |||          }|                     ||           4d S )NTr
  rS  rj  r  r  r7  )rS  rj  r   r  r  r  rT  r]  )	r  r   r   r  rQ  r  r  rW  r  r  r  r  pairsr   r"  r  r  s           r   
test_crosszTestNPFunctions.test_cross  s   "T"""6** )))YYY/00)))YYY/00 )))YYY/00  "(333"*555
 !Q  ## ##)))YYY/00 )))YYY/00## 	"%%aA..	!$$Q**K)
V  	3 	3DAqva||H%1++C##Hc2222	3 	3r   c                    t           } t          d          |          }|                                  |                     t                    5 } |t          j        d          t          j        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j
        d          t          j
        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     d	t          |j	                             |                     t                    5 } |t          j        d
                              d          t          j        d          d d d                             d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        d
                              d          t          j        d
          d d d                             d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          g d          t          g d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTr
  r]  rT  z)Incompatible dimensions for cross productr  r~  z Dimensions for both inputs is 2.z+`cross2d(a, b)` from `numba.np.extensions`.rm  r  r]  r  r  r  )r]  r  zDimensions for both inputs is 2rS  rj  Inputs must be array-like.)r  r   r  r  r  r   r  r  r  r  r  rW  r   setr  s       r   test_cross_exceptionsz%TestNPFunctions.test_cross_exceptions  sc   "T"""6**!!! z** 	fE	!	!  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	7 !!	
 	
 	
 z** 	fE      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	. !!	
 	
 	

 	9 !!	
 	
 	
 z** 	fE	!$$V,,	!TTrT"**622  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	7 !!	
 	
 	
 z** 	fE	!$$V,,	!TTrT"**622  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	- !!	
 	
 	
 {++ 	vEIIIIII  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	( !!	
 	
 	
 	
 	
s\   1BBB1DDDA G77G;>G;A J00J47J4=+L44L8;L8c                 ,   t           }t          t                    }t          j        ddgddgg          t          j        ddgddgg          ft          j        ddgddgg          dft          j        ddgt          j                  t          j        ddgt          j                  fdt          j        ddg          t          j        ddgddgg          ft          j        ddgddgg          t          j        ddg          ft          j        d                              d	d
d          t          j        d	                              d
d          fg}|D ]3\  }} |||          } |||          }| 	                    ||           4d S )Nr   r  r]  r  r~  r7  )r  r  r  r  rT  )
r  r   r  r   r  rQ  r  r  rW  r  r  s           r   test_cross2dzTestNPFunctions.test_cross2dG  s   Z   1a&1a&)**1a&1a&)** 1a&1a&)**  !Qrx000!Qrz222
 !Q  1a&1a&)** 1a&1a&)**!Q   	"%%aA..	!$$Q**A$
L  	3 	3DAqva||H%1++C##Hc2222	3 	3r   c                    t          t                    }|                                  |                     t                    5 } |t          j        d          t          j        d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j
        d                              d          t          j
        d          d d d                             d                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          ddg          t          d	d
g                     d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NrS  rj  z,Incompatible dimensions for 2D cross productr  r  r  r   r  r]  r  r  )r   r  r  r  r  r   r  r  r  r  r  rW  r   r  r  s      r   test_cross2d_exceptionsz'TestNPFunctions.test_cross2d_exceptionsu  s   Z  !!! z** 	fE####  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	: !!	
 	
 	
 z** 	fE	!$$V,,	!TTrT"**622  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	: !!	
 	
 	
 {++ 	vEQFQF  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	( !!	
 	
 	
 	
 	
s7   1B  BBA D99D= D=+F==GGc                 @   d }d }t           } t          d          |          } |            D ].} ||          } ||          }|                     ||           / |            D ]3\  }} |||          } |||          }|                     ||           4d S )Nc               3   h  K   t          j        g           V  t          j        d          V  t          j        d          V  t          j        g d          V  t          j        g d          V  t          j        dddt           j        dg          V  t          j        g d          V  d S )	Nr  r   rS  rt  r  r  r  )0Helloworld)r   r  rf  r  r  r   r   rX  z/TestNPFunctions.test_trim_zeros.<locals>.arrays  s      (2,,(1++(1++(999%%%%%(<<<((((((BB344444(2223333333r   c               3     K   t          j        g d          dfV  t          j        g d          dfV  t          j        t           j        ddddg          dfV  t          j        g d	          d
fV  t          j        g d          dfV  t          j        g d          dfV  t          j        g d          d
fV  d S )N)r   r   r  r   r   FBrb  Br  rr  r3  r,   )r   r   r   r  r  rp  )r   r   r  r   abf)r   r]  r   r  ) r
  r  )r   r  r  r  r   r   explicit_trimz6TestNPFunctions.test_trim_zeros.<locals>.explicit_trim  s      (???++T1111(999%%s****(BFBS"566;;;;(???++S0000(<<<((%////(999%%s****(+++,,c111111r   Tr
  )r  r   r  )	r  rX  r  r  r  r5   r  r  r  s	            r   test_trim_zeroszTestNPFunctions.test_trim_zeros  s    	4 	4 	4	2 	2 	2 "T"""6**688 	3 	3Cvc{{H%**C##Hc2222& 	3 	3ICvc4((H%T""C##Hc2222	3 	3r   c                 z   t          j        g d          }|                    t                    }|                    t                    }|||g}t           j        dd         }|D ]-}t          |          }|                     |||                    .t           j        d d         }|D ]/}t          |d          }|                     |||                    0t           j        dd          }|D ]/}t          |d          }|                     |||                    0|D ]i}t          j        ||j	                  }t          |d          }	t          |	          d	k    sJ t          |d
          }
t          |
          d	k    sJ jt          j        d	          }t          |          }|                     ||           t          j        g d          t          j        g d          t          j        g d          fD ]A}t           j        dd         }t          |          }|                     |||                    Bt          j        g d          }t          |          }|                     ||           t          |                                          }t          |t                    sJ d S )N)r   r   r   r   r  rT  r]  r   r  r  r,   )r  r  r7  r  r   rp  )r   l            r   )r   l            r   )r   l            r   r   )Nr   N)r   r  r  r  r  s_r  r  
zeros_liker8  r  rf  r  r  r  )r  r+   r,   r  r6   slcr5   res_arrres1res2s              r   test_trim_zeros_numpyz%TestNPFunctions.test_trim_zeros_numpy  s   H---..HHUOOHHWQ eAbDk 	3 	3C$$C##CS2222 eCRCj 	3 	3C#...C##CS2222 eABBi 	3 	3C#...C##CS2222  	" 	"D-DJ777C 3///Dt99>>>> 3///Dt99>>>>> hqkkC  S))) H]]]++RXmmm-D-DH]]]++- 	3 	3C%!*C$$C##CS2222 h''C  S))) AHHJJ''#t$$$$$$$r   c                    |                                    t          d          t                    }|                     t                    5 } |t          j        g dg dg                     d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |h d           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |t          j        g d	          d
           d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )NTr
  rS  rj  zarray must be 1DrT  z#The first argument must be an array>   r   r   r  rb  r   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  s   !!!"T"""=11{++ 	4vE"(IIIyyy122333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 !!	
 	
 	

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

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

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

 
	2 	2 
	2 {++ 	0vUGQ///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	04c&:J6K6KLLL{++ 	=vCCFF5"(Aq6;;;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=?&*++	- 	- 	- {++ 	$vCCIIeU###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$?&*++	- 	- 	- z** 	<fCCFF5"'&	:::;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<.F4D0E0EFFF!!!!!s   B**B.1B.7DD D&FFFG77G;>G;I&&I*-I*3*K))K-0K-M  M$'M$-6O//O36O3<QQ"%Q"+4S++S/2S/c                    t           j        dddt          t           j         t           j                  t          t           j        t           j                  t          j        dgt
                    t          j        t          t           j         t           j                  t          dt           j                  t          t           j        d          t          t           j        t           j                   g          t          j        g d          t          j        g d          t          j        g dg dg          t          j        dt           j        d	g          t          j        dt           j        d	gt           j        d
dgg          t          j        t           j         t           j        t           j        g          t          j        t           j         t           j        t           j        gt           j                  g}ddg}t          }t          t                    }t          ||          D ]5\  }} |||          } |||          }| 
                    ||           6d S )Nr   r  r  r7  )r  r  皙?rS  )r  rr  rh  r  r  rr  rh  r  r  )r  )r   r  r  r  r  r  r  r  r   r   r  )	r  r6   r  r  r  valuer  r  r  s	            r   test_nan_to_numzTestNPFunctions.test_nan_to_num  s    FRVGRV$$BFBF##HaS$$$Hgrvgrv..260B0Bbfa(('"&26'*B*BD E EH___%%HYYYHooo788Hc263'((HsBFC(263*<=>>Hrvgrvrv.//Hrvgrvrv.bjAAA!
$ RyZ  !&$// 	3 	3JE3ve---H%3'''C##Hc2222	3 	3r   c                    t          t                    }t          j        ddt          j        g          }d} ||d|           |                     |d         |           t          j        ddt          t          j        t          j                  g          } ||d|           |                     |d         d           d S )Nr  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  Hc3'((ae****"x000Hc3(?(?@AA	ie2222	"x88888r   c                     t          t                    }|                                 5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Ninvalid_inputz4The first argument must be a scalar or an array-like)r   r  r  r  r  r  r  s      r    test_nan_to_num_invalid_argumentz0TestNPFunctions.test_nan_to_num_invalid_argument  s    Z  ##%% 	#E/"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#L&*++	- 	- 	- 	- 	-s   AAAc                 (   t           }t          |          }t          }t          |          }d } |            D ]W\  }}|                      ||           ||                     |                      |||           |||                     Xd S )Nc               3     K   t          j        ddg          dfV  t          j        ddgddgg          dfV  t          j        d                              d          dfV  ddgdfV  t          j        g           dfV  d S )Nr   r  rT  r]  r  rm  r  rV  r  r   r   r  z3TestNPFunctions.test_diagflat_basic.<locals>.inputs  s      (Aa5//1$$$$(QqE1Q%=))2----)A,,&&w//2222a&!)OOO(2,,/!!!!!r   )r  r   r  r  )r  r<  r  r=  rG  r  rV   r   s           r   test_diagflat_basicz#TestNPFunctions.test_diagflat_basic  s    gg	" 	" 	" FHH 	A 	ADAq##GGAJJq		:::##GGAqMM66!Q<<@@@@	A 	Ar   c                 $   t           }t          |          }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr  #The argument "v" must be array-like)r  r   r  r  r   r  r  r  r  s       r   test_diagflat1_exceptionz(TestNPFunctions.test_diagflat1_exception  s    V!!!{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 	- 	-s   AA!$A!c                    t           }t          |          }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |ddgd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr  r  r  r   z#The argument "k" must be an integerr@  )r  r   r  r  r   r  r  r  r  s       r   test_diagflat2_exceptionz(TestNPFunctions.test_diagflat2_exception  s   V!!!{++ 	vE%OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- {++ 	!vE1a&%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!;&*++	- 	- 	- {++ 	vE1a&#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 	- 	-s6   AA"%A"+CC
C
D..D25D2)NNFNr   r7  )r  r  r  __doc__r  r  r  r  r4  r?  rK  rN  rZ  r^  rb  rg  ro  rq  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r6  r>  rC  rM  r[  r^  ra  rc  re  rg  rk  rw  r  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%  r0  r3  r9  r<  rA  rD  rJ  rM  rT  rW  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r(  r/  r4  r7  r9  rJ  rO  rR  rT  r]  r`  rb  rd  rs  ru  rz  r|  r  r  r  r  unittestskipr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX  r  r  r  r   r	  r  r  r#  r/  r=  rM  rQ  rd  rg  rm  rq  r|  r  r  r  r  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    s        - - - - - EIKO+C +C +C +CZ7) 7) 7)r	" 	" 	"68 68 68p%! %! %!N, , , 	" 	" 	"3 3 34	
 	
 	
3 3 3.3 3 3$3 3 3$" " "B3 3 3<!" !" !"F	 	 	  7 7 7" " "*/ / /.7 7 7@7 7 7&7 7 7(D? D? D?L3 3 3<  3 3 3" " "	7 	7 	7- - -&
7 
7 
7- - -&U U Un@ @ @D&8 &8 &8P'> '> '>R  4<# <# <#|: : : ! ! !F6 6 6B1 1 1C C C*< < <0 0 0; ; ;@ @ @ @
3! 3! 3!j! ! !F    .  ,%# %# %#N  
I 
I 
II I I" ' ' \'>	I 	I 	I	4 	4 	4
 
 

 
 

 
 

 
 
8 8 8< < <I I I$I I I I4 4 45 5 5@ @ @P P P4 4 45 5 5@ @ @P P P? ? ?- - -*Q Q Q9 9 9E E E0H H H0  *  *, , ,(, , ,(          > > >> > >  &  &cA cA cAJeD eD eDN	= 	= 	=	@ 	@ 	@ K  K  KD"Q "Q "QH     D$ $ $LC C CF F F P P ZP4"0 "0 "0H = = Z= = = Z=   Z$   Z; ; ;z 	 	 Z	   Z 
 
 Z
 /- /- Z/-b# # #<' ' '- - -*? ? ?- - -.? ? ?K K K(P P P6- - -P P P6@ @ @8- - -(3 3 3>- - -23 3 3@- - -<S6 S6 S6j3 3 37 7 7F F F089 89 89t9 9 9"- - -- - - (B (B (BT1 1 147 7 74+ + +@. @. @.D& & &P! ! !F9! 9! 9!v X]122  32,# ,# ,#\/ / /2+D +D +DZS6 S6 S6j>: >: >:@8 8 828 8 863 3 36 6 6@ @ @	4 	4 	43 3 3Bb- b- b-HL L L+7 +7 +7Z/A /A /AbF F F6C; C; C;J  &'B 'B 'BR
< 
< 
<3 3 3 3 3 3<L< L< L<\3 3 32() () ()TI I I>C8 C8 C8J8, 8, 8,t1J 1J 1Jf5; 5; 5;n-1 -1 -1^13 13 13f?
 ?
 ?
B,3 ,3 ,3\#
 #
 #
J3 3 3B7% 7% 7%r
 
 
@"3 "3 "3H0
 0
 0
d*3 *3 *3XM M M28? 8? 8?t( ( (:; ; ; #- #- #-JH H H.6 6 6,@" @" @"D3 3 3>9 9 9- - -A A A"	- 	- 	-- - - - - - -r   r  c                       e Zd ZdZd Zd Z ej        edk    d          d             Z	d Z
d Z ej        edk     d	          ej        d
                         ZdS )TestNPMachineParametersz0
def foo():
    ty = np.%s
    return np.%s(ty)
c                     |} t          d          |          } || } || }|D ]4}|                     t          ||          t          ||                     5d S r  )r   r  getattr)	r  rB  attrsrc   r  r  r  r  attrs	            r   r  zTestNPMachineParameters.check  s    "T"""6**64=eTl  	8 	8D##GHd$;$;$+C$6$68 8 8 8	8 	8r   c                     |j         }|j         }| j        ||fz  }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%  sL     #-5'"22WWj&11222xxr   )r   r  zNumPy < 1.24 requiredc                 @    d}|                      t          |           d S )N)ibetaitmachepr  negepepsnegiexpminexpxminmaxexpxmaxirndngrdepsilontinyhuge	precision
resolution)r  rh   )r  r  s     r   test_MachArz#TestNPMachineParameters.test_MachAr.  s&    H 	

65!!!!!r   c                     t           j        t           j        t           j        t           j        g}d}|D ]]}|                     t          | |d                     |                     t           j        |          }|                     ||           ^|                     t                    5 } t          d          t                    } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             |                                 5   t          d          t                    } |t          j        d                     d d d            d S # 1 swxY w Y   d S )N)r  r  r   r  r  r#  r  nexpnmantr*  r+  r(  bitsr   Tr
  r  z(Unknown attribute 'machar' of type finforl  )r   r  r  r  r  r  r   r  r  r   r   r   r  r  r  r  rP  )r  r	   r  r  hc_funcr  r  r  s           r   
test_finfoz"TestNPMachineParameters.test_finfo5  s   RZr}EN 	' 	'BJJueRRUU+++2228R@@GJJw&&&& {++ 	v&C&&&|44EE"III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9c3v/00111 ##%% 	 	&C&&&u--EE"(1++	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   +*C!!C%(C%*<E33E7:E7c                 N   t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        g}d}|D ]]}| 	                    t          | |d                     |                     t           j
        |          }| 	                    ||           ^|                                 5   t          d          t                    } |t          j        d                     d d d            d S # 1 swxY w Y   d S )N)r=  r  r0  r   Tr
  rl  )r   r  r  rP  rQ  r#  uint16rX  rY  r  r   r  r  r   r  )r  r	   r  r  r1  r  s         r   
test_iinfoz"TestNPMachineParameters.test_iinfoJ  s5   "(BHbh")BI'' 	' 	'BJJueRRUU+++2228R@@GJJw&&&& ##%% 	! 	!&C&&&u--EE"*Q--   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   <DD!DzNeeds NumPy < 1.24c                    d}t          j        d          5 }t          j        d           t          j        d|t                     t          d           } |             d d d            n# 1 swxY w Y   |                     t          |          d           |                     d	t          |d
                              d S )Nz*.*`np.MachAr` is deprecated \(NumPy 1.22\)T)recordr?  always)messagecategoryc                  2    t          j                    j        S r   )r   rg   r  r  r   r   <lambda>zJTestNPMachineParameters.test_np_MachAr_deprecation_np122.<locals>.<lambda>g  s    bikko r   r   z`np.MachAr` is deprecatedr   )
warningscatch_warningssimplefilterfilterwarningsr   r   rH  r  r  r  )r  r  rM   rp  s       r    test_np_MachAr_deprecation_np122z8TestNPMachineParameters.test_np_MachAr_deprecation_np122Y  s    <$D111 	Q!(+++#Hc-DG G G G--..AACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Q###13qt99=====s   AA//A36A3N)r  r  r  r  r  r  r  skipIfr   r,  r2  r5  
skipUnlessr   run_test_in_subprocessrA  r  r   r   r	  r	    s        H
8 
8 
8   X_]g-/FGG" " HG"  *! ! ! X02FGG$> > %$ HG> > >r   r	  c                       e Zd Zd ZdS )TestRegistryImportsc                     t          d          }t          |          \  }}|                     d|                                           |                     d|                                           d S )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   rH  strip)r  coderesulterrors       r   test_unsafe_import_in_registryz2TestRegistryImports.test_unsafe_import_in_registryp  sm         *$/////ekkmm,,,,,r   N)r  r  r  rL  r  r   r   rF  rF  n  s#        - - - - -r   rF  __main__)Nr   r   )r}   r~   F)r   rX  r`  )r   )r   )r   N)NF)NTFN)NT)NN)r  )Nr  r  )Tr  )r  r  rz  	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/   r4   r8   r:   r@   rC   rH   rN   rQ   rT   r\   r_   ra   re   rh   rj   rm   rp   rr   ru   rw   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  r  r  r  r!  r'  r*  r/  r3  r:  r  r=  r?  rA  rH  rK  rP  rS  rV  rZ  r\  rd  rf  rm  ro  rs  rv  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  rF  r  mainr  r   r   <module>rZ     sz	                                # # # # # # # # # #       " " " " " " " " 0 0 0 0 0 0 B B B B B B B B ' ' ' ' ' ' ( ( ( ( ( ( ' ' ' ' ' '@ @ @ @ @ @ @ @ @ @ @ @                 - - -, , ,        % % %( ( ( (! ! !. . ./ / /                      3 3 3 3      " " "      $ $ $- - - -% % %. . . .     1 1 1 1+ + + +$ $ $$ $ $$ $ $) ) ) )( ( ( (                  ! ! ! !# # # #$ $ $ $% % %( ( ( (       ! ! ! !# # # #$ $ $ $% % %( ( ( (' ' ' '     # # #, , , ,% % % %- - - -    & & & j ' ' ' '  & & &        4 4 4 45 5 5 5     ! ! !) ) )< < < <+ + +            " " " "        * * * *6 6 6 6  ' ' '8 8 8  " " "0 0 0 0" " "     sX- sX- sX- sX- sX-ox sX- sX- sX-lq[> [> [> [> [>h [> [> [>|- - - - -( - - -( zHMOOOOO r   