
    pi                       d dl mZmZ d dlZd dlZd dlZd dl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mZ d dlmZmZmZmZmZ dZd	Zd
 Zd Zd Zd Z d Z!d Z"d Z#dVdZ$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8d& Z9d' Z:d( Z;d) Z<d* Z=ej|                  d+d fd,ej~                  fd-Z@dWd.ZAdWd/ZBd0 ZCd1 ZDd2 ZEd3 ZFd4 ZGd5 ZHd6 ZId7 ZJd8 ZKd9 ZLd: ZMd; ZNd< ZOd= ZPd> ZQd? ZRd@ ZSdA ZTdB ZUdC ZVdD ZWdE ZXdXdFZYdXdGZZdYdHZ[dYdIZ\dJ Z]dK Z^dL Z_dM Z`dN ZadO ZbdP Zc G dQ dRee      Zd G dS dTe      ZeefdUk(  r ej                          yy)Z    )productcycleN)jitnjittypeof)types)TypingErrorNumbaValueError)as_dtypenumpy_version)TestCaseMemoryLeakMixin
needs_blasskip_if_numpy_2expected_failure_np2ztimedelta64[M]ztimedelta64[Y]c                 2    t        j                  | ||       y Nnparoundarrdecimalsouts      `/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/numba/tests/test_array_methods.pynp_around_arrayr          IIc8S!    c                 .    t        j                  | |      S r   r   valr   s     r   np_around_binaryr"      s    99S(##r   c                 ,    t        j                  |       S r   r   r!   s    r   np_around_unaryr%      s    99S>r   c                 2    t        j                  | ||       y r   r   roundr   s      r   np_round_arrayr)      s    HHS(C r   c                 2    t        j                  | ||       y r   )r   round_r   s      r   np_round__arrayr,   !   r   r   c                 .    t        j                  | |      S r   r'   r    s     r   np_round_binaryr.   $   s    88C""r   c                 ,    t        j                  |       S r   r'   r$   s    r   np_round_unaryr0   '   s    88C=r   c                    |]| j                   j                  dk(  rDt        | j                  ||j                         t        | j                  ||j                         |S t        j                  | ||      }|pd }t        | t        t
        j                  f      rDt         || j                  |j                         || j                  |j                              }|S  || |      }|S )z4
    A slightly bugfixed version of np.round().
    cc                 F    |dk(  r| dk  rt        j                  |       S |S )N        r   )r   abs)argress     r   fixup_signed_zeroz*_fixed_np_round.<locals>.fixup_signed_zero7   s$    #:#'FF3K<'Jr   )
dtypekind_fixed_np_roundrealimagr   r(   
isinstancecomplexcomplexfloating)r   r   r   r7   r8   s        r   r;   r;   *   s     399>>S0(CHH5(CHH5
hhsHc*;
 #););<=/#((C/#((CE 
 (S1
r   c                     | j                   S r   )Tr   s    r   array_TrD   D   s    55Lr   c                 "    | j                         S r   )	transposerC   s    r   array_transposerG   G   s    ==?r   c                 "    | j                         S r   )copyrC   s    r   
array_copyrJ   J   s    88:r   c                 ,    t        j                  |       S r   )r   rI   rC   s    r   np_copyrL   M   s    773<r   c                 ,    t        j                  |       S r   )r   asfortranarrayrC   s    r   np_asfortranarrayrO   P   s    S!!r   c                 ,    t        j                  |       S r   )r   ascontiguousarrayrC   s    r   np_ascontiguousarrayrR   S   s    $$r   c                 $    | j                  |      S r   viewr   newtypes     r   
array_viewrX   V       88Gr   c                 $    | j                  |      S r   take)r   indicess     r   
array_taker^   Y   rY   r   c                 (    | j                  ||      S Naxisr[   )r   r]   rb   s      r   array_take_kwsrc   \   s    88G$8''r   c                 ,    t        j                  |       S r   r   arange)arg0s    r   np_arange_1rh   _   s    99T?r   c                 .    t        j                  | |      S r   re   )rg   arg1s     r   np_arange_2rk   b   s    99T4  r   c                 0    t        j                  | ||      S r   re   )rg   rj   arg2s      r   np_arange_3rn   e   s    99T4&&r   c                 2    t        j                  | |||      S r   re   )rg   rj   rm   arg3s       r   np_arange_4rq   h   s    99T4t,,r   c                 0    t        j                  | |      S N)stopre   )rg   rt   s     r   np_arange_1_stopru   k       99T%%r   c                 0    t        j                  | |      S Nstepre   )rg   rz   s     r   np_arange_1_stepr{   n   rv   r   c                 0    t        j                  | |      S Nr9   re   )rg   r9   s     r   np_arange_1_dtyper   q   s    99T''r   c                 2    t        j                  | ||      S rx   re   )rg   rj   rz   s      r   np_arange_2_stepr   t   s    99T4d++r   c                 2    t        j                  | ||      S r}   re   )rg   rj   r9   s      r   np_arange_2_dtyper   w   s    99T4u--r   c                 0    t        j                  | |      S rs   re   )startrt   s     r   np_arange_start_stopr   z   s    99U&&r   c                 2    t        j                  | ||      S N)rt   rz   re   )r   rt   rz   s      r   np_arange_start_stop_stepr   }   s    99UD11r   c                 4    t        j                  | |||      S )N)rt   rz   r9   re   )r   rt   rz   r9   s       r   np_arange_start_stop_step_dtyper      s    99UD>>r   c                 $    | j                  |      S r   )fill)r   r!   s     r   
array_fillr      s    88C=r   c                       fd}|S )Nc                 &    | j                        S r   rT   rV   s    r   rX   z#make_array_view.<locals>.array_view   s    xx  r    )rW   rX   s   ` r   make_array_viewr      s    !r   c                 L    | dd j                  t        j                        d   S )Nr      )rU   r   float32rC   s    r   array_sliced_viewr      s     q8==$Q''r   c                       fd}|S )Nc                 &    | j                        S r   )astyperV   s    r   array_astypez'make_array_astype.<locals>.array_astype   s    zz'""r   r   )rW   r   s   ` r   make_array_astyper      s    #r   r9   c                 4    t        j                  | |||      S )z7
    np.frombuffer() on a Python-allocated buffer.
    r9   countoffsetr   
frombuffer)br9   r   r   s       r   np_frombufferr      s     ==%uVDDr   c                 P    t        j                  | t         j                  ||      S )Nr   )r   r   	complex64r   r   r   s      r   np_frombuffer_dtyper      s    ==",,eFKKr   c                 4    t        j                  | d||      S )Nr   r   r   r   s      r   np_frombuffer_dtype_strr      s    ==+U6JJr   c                 v    t        j                  | t         j                        }t        j                  |      S )z6
    np.frombuffer() on a Numba-allocated buffer.
    r~   )r   onesint32r   shaper   s     r   np_frombuffer_allocatedr      s'     ''%rxx
(C==r   c                     t        j                  | t         j                        }t        j                  |t         j                        S r}   )r   r   r   r   r   r   s     r   np_frombuffer_allocated_dtyper      s+    
''%rxx
(C==BLL11r   c                     | |u | |ufS r   r   ar   s     r   identity_usecaser      s    Faqj!!r   c                 "    | j                         S r   )tobytesr   s    r   array_tobytesr          99;r   c                 "    | j                         S r   )nonzeror   s    r   array_nonzeror      r   r   c                 ,    t        j                  |       S r   )r   r   r   s    r   
np_nonzeror      s    ::a=r   c                 ,    t        j                  |       S r   r   where)r2   s    r   
np_where_1r      s    88A;r   c                 0    t        j                  | ||      S r   r   )r2   xys      r   
np_where_3r      s    88Aq!r   c                 "    | j                         S r   )itemr   s    r   
array_itemr          668Or   c                 &    | j                  |       y r   )itemset)r   vs     r   array_itemsetr      s    IIaLr   c                       | j                   | S r   sumr   argss     r   	array_sumr      s    155$<r   c                 &    | j                  |      S r`   r   r   rb   s     r   array_sum_axis_kwsr      s    55d5r   c                 &    | j                  |      S r}   r   )r   r9   s     r   array_sum_dtype_kwsr      s    55u5r   c                 (    | j                  ||      S )Nrb   r9   r   )r   r9   rb   s      r   array_sum_axis_dtype_kwsr      s    55d%5((r   c                 &    | j                  ||      S r   r   )r   a1a2s      r   array_sum_axis_dtype_posr      s    55R=r   c                     t        j                  | d      }t        j                  | d      }t        j                  | |      }| j                  d      }t        j                  | d      }|||||fS )Nr   ra         r   )r   r   )r   rb   r   r   r2   des          r   array_sum_const_multir      sb     	sA
sAA
sDAQA
sAaAq=r   c                 &    | j                  d      S )Nr   ra   r   r   s     r   array_sum_const_axis_neg_oner      s     55b5>r   c                       | j                   | S r   cumsumr   s     r   array_cumsumr      s    188T?r   c                 &    | j                  |      S r`   r   r   s     r   array_cumsum_kwsr      s    888r   c                 ,    t        j                  |       S r   )r   r<   r   s    r   
array_realr          771:r   c                 ,    t        j                  |       S r   )r   r=   r   s    r   
array_imagr      r   r   c                 0    t        j                  | ||      S r   r   clipr   a_mina_maxs      r   np_clip_no_outr      s    771eU##r   c                 2    t        j                  | |||      S r   r   r   r   r   r   s       r   np_clipr      s    771eUC((r   c                 4    t        j                  | |||      S Nr   r   r   s       r   np_clip_kwargsr     s    771eU,,r   c                 (    | j                  |||      S r   r   r   s       r   
array_clipr     s    66%$$r   c                 *    | j                  |||      S r  r  r   s       r   array_clip_kwargsr     s    66%C6((r   c                 &    | j                  ||      S r   r  r   s      r   array_clip_no_outr
    s    66%r   c                 "    | j                         S r   )conjr   s    r   
array_conjr    r   r   c                 "    | j                         S r   )	conjugater   s    r   array_conjugater    s    ;;=r   c                 ,    t        j                  |       S r   )r   uniquer   s    r   	np_uniquer  
  s    99Q<r   c                 $    | j                  |      S r   dotr   s     r   	array_dotr    s    558Or   c                 B    | j                  |      j                  |      S r   r  r   s     r   array_dot_chainr    s    558<<?r   c                 0    t        j                  | |      S r}   )r   r   )nr9   s     r   
array_ctorr    s    771E""r   c                   Z    e Zd ZdZ fdZd Zd Zd Zd Zd Z	d Z
e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ej4                  d fdZd Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:ed7        Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKdH ZLdI ZMdJ ZNdK ZOdL ZPdM ZQdN ZRdO ZSdP ZTeUdQ        ZVdR ZWdS ZXdT ZYdU ZZdV Z[dW Z\dX Z] xZ^S )YTestArrayMethodszA
    Test various array methods and array-related functions.
    c                 *    t         t        |           y r   )superr  setUp)self	__class__s    r   r!  zTestArrayMethods.setUp  s    +-r   c                    g d}|D cg c]  }|dz  	 }}|D cg c]  }t        |       }}t        j                  t        j                  t        j                  t        j
                  t        j                  f}|||||g}|}	t        ||      D ]e  \  }
} t        |
t        j                  f      |	      }dD ]:  }|D ]3  }|dkD  r|dz  }t        ||      } |||      }| j                  ||       5 < g |}	t        ||      D ]C  \  }
} t        |
f      |	      }|D ]'  }t        |      } ||      }| j                  ||       ) E y c c}w c c}w )Ng      g      g      g            ?g      @      @g      @      ?      )   r   r   r   
   )intr   float64r   r   r   
complex128zipr   r;   assertPreciseEqual)r"  unary_pyfuncbinary_pyfuncbase_valuesr   complex_values
int_valuesargtypes	argvaluespyfunctyvaluescfuncr   r   expectedgots                    r   check_round_scalarz#TestArrayMethods.check_round_scalar  so   E0;<1!v,<<&12c!f2
2MM5==%++OOU%5%57 +z#^5	 h	2 	;JB+D"ekk*+F3E& ; ;A!|R.q(;H8,C++C:;;	; h	2 	7JBD"K'E 7*1-Ah''X67	7' =2s
   EEc                 8    | j                  t        t               y r   )r=  r0   r.   r"  s    r   test_round_scalarz"TestArrayMethods.test_round_scalar;  s    @r   c                 8    | j                  t        t               y r   )r=  r%   r"   r?  s    r   test_around_scalarz#TestArrayMethods.test_around_scalar>  s    1ABr   c                      fdfd}t        j                  g d      }t        j                  t        j                  f} ||||       t        j
                  t        j                  f} ||||dz          j                          y )Nc                    |j                  t        |            }t        j                  |      j                  t        |            }|j	                         }t        |||       	j                           | |||       	j                          t        j                  j                  ||       	j                  t              5 } | |||dd         d d d        	j                  t        j                        d       y # 1 sw Y   /xY w)Nr)  zinvalid output shape)r   r   r   
zeros_likerI   r;   memory_leak_setupmemory_leak_teardowntestingassert_allcloseassertRaises
ValueErrorassertEqualstr	exception)
r:  r9  intyouttyr   r   r   pyoutraisesr"  s
            r   check_roundz7TestArrayMethods.check_round_array.<locals>.check_roundB  s    --/C--$++HUO<CHHJEC51""$#x%%%'JJ&&sE2"":. .&c8SW-.S!1!1235. .s   DD
c                 N   t        | |      D ]  \  }}t        j                  |dd      t        j                  t        j                  |dd      f} t	        |            } ||||d        ||||d       t        |t        j                        s ||dz  ||d        y )Nr)  Ar   r*  r   )r   r   Arrayr   r   r>   Integer)	r5  outtypesr9  rO  rP  argtysr:  rS  r7  s	          r   check_typesz7TestArrayMethods.check_round_array.<locals>.check_typesR  s    &x: e++dAs3U[[++eQ46$VV,E64:E64:!%7v{D%D r   r%  r(  )r   arrayr   r,  r   r   r-  disable_leak_check)r"  r7  rZ  r9  r5  rS  s   ``   @r   check_round_arrayz"TestArrayMethods.check_round_arrayA  so    	5 	 IJMM5==1Hh/OOU%5%56Hh&(9: 	!r   c                 .    | j                  t               y r   )r]  r)   r?  s    r   test_round_arrayz!TestArrayMethods.test_round_arrayk  s    ~.r   c                 .    | j                  t               y r   )r]  r   r?  s    r   test_around_arrayz"TestArrayMethods.test_around_arrayn  s    /r   c                 .    | j                  t               y r   )r]  r,   r?  s    r   test_round__arrayz"TestArrayMethods.test_round__arrayq  s    /r   c                     t         t        fD ]=  } t        d      |      }d}| j                  t        |      5   |d        d d d        ? y # 1 sw Y   JxY w)NTnopython'.*The argument "a" must be array-like.*)r0   r%   r   assertRaisesRegexr	   r"  r7  r:  msgs       r   test_around_bad_arrayz&TestArrayMethods.test_around_bad_arrayu  s]    %7 	F&C&v.E;C''S9 d 	 s   	AA	c                     t         t        g}t        dk  r|j                  t               |D ]@  } t        d      |      }d}| j                  t        |      5   |ddd       d d d        B y # 1 sw Y   MxY w)	N   r   Tre  9.*The argument "out" must be an array if it is provided.*r   r      r  )r)   r   r   appendr,   r   rh  r	   )r"  funcspy_funcr:  rj  s        r   test_around_bad_outz$TestArrayMethods.test_around_bad_out|  s{    16!LL) 	#G&C&w/EMC''S9 #a"# #	## #s   A11A:	c                 	    d  fd} fd} fd} fd} fd} fd}t        j                  dt         j                  fd	t         j                  fg      }t        j                  d
t         j                  fdt         j                  fg      }t        j                  dt         j                  fdt         j                  fg      }	t        dk\  r	|}
|}|}|}n|}
|}|}|}t        j
                  dt         j                        } ||t        j                  d              ||t         j                          ||t         j                          ||t         j                          ||t         j                          |||        |||        |
|t         j                         |j                  d      } ||t         j                          ||t         j                          ||t         j                          |||        |
||        |
|t         j                         t        j
                  dt         j                        j                  d      j                  }t        j                  d      j                  d d dd d df   }t        dk\  r|}n|} ||t         j                          ||t         j                          ||t         j                          ||t         j                          |||        |||        ||t         j                          ||t         j                         t        j
                  dt         j                        d d d   } ||t         j                          ||t         j                          |||	        ||t         j                          ||t         j                          ||t         j                          |||        |||       t        j                   dgt         j                        j                  d      } ||t         j                          ||t         j                          |||	        ||t         j                          ||t         j                          ||t         j                          |||        |||       t        j                   dg      } ||t         j                          j#                          y )Nc                 :    t        |      } t        |      |       S r   )r   r   r   r9   r7  s      r   runz-TestArrayMethods.test_array_view.<locals>.run  s    $U+F4<$$r   c                     | j                  |      }j                           | |      }j                  ||       ~j                          y r   )rU   rF  r/  rG  r   r9   r;  r<  rx  r"  s       r   checkz/TestArrayMethods.test_array_view.<locals>.check  sF    xxH""$c5/C##C2%%'r   c                     j                  t              5 } | |       d d d        j                  t        j                        d       y # 1 sw Y   /xY w)Nz"new type not compatible with array)rJ  rK  rL  rM  rN  )r   r9   rR  rx  r"  s      r   	check_errz3TestArrayMethods.test_array_view.<locals>.check_err  sP    "":.  &C S!1!12AC      
AAc                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzJTo change to a dtype of a different size, the last axis must be contiguousrJ  rK  r   rL  rM  rN  r   r9   rj  rR  rx  r"  s       r   check_err_noncontig_last_axiszGTestArrayMethods.test_array_view.<locals>.check_err_noncontig_last_axis  s    (C"":. ,&&&s+,S!1!12C8"":.  &C S!1!12C8, ,      B%-
B1%B.1B:c                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzOChanging the dtype of a 0d array is only supported if the itemsize is unchangedr  r  s       r   check_err_0dz6TestArrayMethods.test_array_view.<locals>.check_err_0d  s    2C"":. ,&&&s+,S!1!12C8"":.  &C S!1!12C8, ,   r  c                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzZWhen changing to a smaller dtype, its size must be a divisor of the size of original dtyper  r  s       r   check_err_smaller_dtypezATestArrayMethods.test_array_view.<locals>.check_err_smaller_dtype  s    ;C"":. ,&&&s+,S!1!12C8"":.  &C S!1!12C8, ,   r  c                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzuWhen changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.r  r  s       r   check_err_larger_dtypez@TestArrayMethods.test_array_view.<locals>.check_err_larger_dtype  s    #C "":. ,&&&s+,S!1!12C8"":.  &C S!1!12C8, ,   r  r   r   ur   r   r   )r)        r~   int16r      r   r   rn     *   r   abcdef)r   r9   int8r  r   rf   r   r   r-  reshaperB   zerosuint64r   uint32int64r[  r\  )r"  r{  r}  r  r  r  r  dt1dt2dt3check_error_larger_dtcheck_error_smaller_dtcheck_error_noncontigcheck_error_0dr   f_arrnot_f_or_c_arrcheck_maybe_errorrx  s   `                 @r   test_array_viewz TestArrayMethods.test_array_view  s   	%	(	C
	9
	9
	9	9 hhbggbgg78hhbhh#rww89hhbhh#rxx9:
 G#$:!%<"$A!)N$-!%."$-!&N ii"''*c288G$%c288c277c2::c2<< c3c3c2==1 kk&!c277c2::c2<< c3c3'c2==1 		"BGG,44V<>>&)++CaC1H5 G# = %eRWWnbii(%,%.%%eS)eR]]3nbgg6 ii"((+CaC0c299c2::c3c277+c288,c288,c3'c3' hht288,44R8c299c2::c3sBGG$sBHH%sBHH%sC sC  hhz"sBMM2 	!r   c                 &   t         } t        t        j                  dd f      |      }t	        j
                  ddgt        j                        }|j                  t        j                        } ||      } ||      }| j                  ||       y)zX
        Test .view() on A layout array but has contiguous innermost dimension.
        Nr&  rn  r~   )	r   r   r   uint8r   r[  r   rU   rL  )r"  r7  r:  origbytearyexpectr<  s          r   test_array_sliced_viewz'TestArrayMethods.test_array_sliced_view$  sq     #'ekk!n&'/xxa

3))BHH%Gn%r   c                     d  fd}t        j                  dt         j                        } ||t        j                  d              ||t         j                          ||t         j
                          ||t         j                          ||d       t        j                  dt         j                        j                  d      j                  } ||t         j
                         t        j                  dt         j                        d d d	   } ||t         j                         t        j                  dt         j                        }d
|j                  _         ||t         j                         t        j                  dt         j                  fg      } j                         5 } |||       d d d         j                  dt        j                               d} j                         5 }t!        d      d        } ||       d d d         j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nc                 :    t        |      } t        |      |       S r   )r   r   rw  s      r   rx  z/TestArrayMethods.test_array_astype.<locals>.run5  s    &u-F4<$$r   c                 ~    | j                  |      j                  d      } | |      }j                  ||       y )NrU  order)r   rI   r/  rz  s       r   r{  z1TestArrayMethods.test_array_astype.<locals>.check9  s:    zz%(--C-8Hc5/C##C2r   r  r~   r  r   r  r  rn  Fr   z#cannot convert from int32 to RecordTre  c                 N    t        j                  dg      j                  |        y Nr)  )r   r[  r   r~   s    r   fooz/TestArrayMethods.test_array_astype.<locals>.foo\  s    !$$U+r   z5array.astype if dtype is a string it must be constant)r   rf   r  r9   r   r   r-  r  rB   r  flags	writeableassertTypingErrorassertInrM  rN  r   )r"  r{  r   dtrR  unicode_valr  rx  s   `      @r   test_array_astypez"TestArrayMethods.test_array_astype3  s   	%	3 ii"''*c288G$%c288c2::c2==!c9 ii"''*226:<<c2:: ii"((+CaC0c299 ii"((+#		c288 XXRWW~&'##% 	#rN	;&**+	-  ##% 	$,  ,		
 	M&**+	-	 		 	s   5
I>IIIc                 4    | j                  t        d        y )Nc                 t    t        j                  | t         j                        j                  j                  S r}   )r   r   r  ctypesdatar   s    r   <lambda>z5TestArrayMethods.test_array_tobytes.<locals>.<lambda>f  s!    q!A!H!H!M!M r   )
memoryaddr)check_layout_dependent_funcr   r?  s    r   test_array_tobytesz#TestArrayMethods.test_array_tobytesc  s    ((M 	) 	
r   c                     t               fd}t        t        d            } ||        |t        |              |t	        |              |t        j                  d             t        j                  d      j                  d      } ||        j                           j                  t              5 } t        d             d d d         j                  dt        j                               y # 1 sw Y   /xY w)Nc                    t        j                  |       } |       }j                           |       }j                  ||       ~t	        j
                          j                  t        j                  |       |dz          ~t	        j
                          j                  t        j                  |       |       j                          y r  )sysgetrefcountrF  r/  gccollectrL  rG  )buf
old_refcntr;  r<  r:  r7  r"  s       r   r{  z3TestArrayMethods.check_np_frombuffer.<locals>.checkm  s    -Jc{H""$*C##C2 JJLS__S1:>BJJLS__S1:>%%'r   r     )r   r   s   xxxz.buffer size must be a multiple of element size)r   	bytearrayrangebytes
memoryviewr   rf   r  r\  rJ  rK  rL  rM  rN  )r"  r7  r{  r   rR  r:  s   ``   @r   check_np_frombufferz$TestArrayMethods.check_np_frombufferi  s    V	(  eBi aeAhjmbiimIIbM!!&)a 	!z* 	%f)F#$	%IV--.	0	% 	%s    D  D	c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_frombufferz#TestArrayMethods.test_np_frombuffer  s      /r   c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_frombuffer_dtypez)TestArrayMethods.test_np_frombuffer_dtype  s      !45r   c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_frombuffer_dtype_strz-TestArrayMethods.test_np_frombuffer_dtype_str  s      !89r   c                    t        d      d        }| j                  t              5 } |t        t	        d            d       d d d        t        j                        }d}| j                  ||       y # 1 sw Y   3xY w)NTre  c                 2    t        j                  | |       y r}   r   )r  r  s     r   funczETestArrayMethods.test_np_frombuffer_dtype_non_const_str.<locals>.func  s    MM#R(r   r  r   z@If np.frombuffer dtype is a string it must be a string constant.)r   rJ  r	   r  r  rM  rN  r  )r"  r  rR  excstrrj  s        r   &test_np_frombuffer_dtype_non_const_strz7TestArrayMethods.test_np_frombuffer_dtype_non_const_str  sz    	d		) 
	) {+ 	0v59%w/	0 V%%&"c6"	0 	0s   A66A?c                     t        d      d        }d}| j                  t        |      5 } |d        d d d        y # 1 sw Y   y xY w)NTre  c                 ,    t        j                  |       S r   r   )r  s    r   r  z<TestArrayMethods.test_np_frombuffer_bad_buffer.<locals>.func  s    ==%%r   z).*Argument "buffer" must be buffer-like.*)r   rh  r	   )r"  r  rj  rR  s       r   test_np_frombuffer_bad_bufferz.TestArrayMethods.test_np_frombuffer_bad_buffer  sN    	d		& 
	& :##K5 	J	 	 	s	   	=Ac                 .    | j                   j                  S r   )r  r  r  s    r   r  zTestArrayMethods.<lambda>  s    !((-- r   c                      fd} |d      } ||        ||j                  d              ||j                  d      j                          ||j                  d      d d d           ||j                  d              ||j                  d      j                          ||j                  d      d d d          t        j                  dg      j                  d      } ||       y )Nc                     t        t        |       f            } |       } ||       }j                  ||       j                  | j                  j
                   |      k(  | j                  j
                   |      k(         y r   )r   r   r/  rL  r  r  )r   r:  r;  r<  r  r7  r"  s       r   	check_arrz?TestArrayMethods.check_layout_dependent_func.<locals>.check_arr  ss    (D&+(0Ec{H*C##Hc2

:h#77

:c?2r   r  r  rn  rn  r   r   r   r   )r  rB   r   r[  )r"  r7  facr  r  r   s   `` `  r   r  z,TestArrayMethods.check_layout_dependent_func  s    	 "g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.hhsm##B'#r   c                 .    | j                  t               y r   )r  rG   r?  s    r   test_array_transposez%TestArrayMethods.test_array_transpose  s    ((9r   c                 .    | j                  t               y r   )r  rD   r?  s    r   test_array_TzTestArrayMethods.test_array_T  s    ((1r   c                 .    | j                  t               y r   )r  rJ   r?  s    r   test_array_copyz TestArrayMethods.test_array_copy  s    ((4r   c                       fd} |d        |g d        |d       d} j                  t        |      5 } t        t        d      f             d d d        y # 1 sw Y   y xY w)Nc                      t        t        |       f            } |       } ||       }j                  ||       y r   r   r   r/  )objr:  r;  r<  r7  r"  s       r   	check_objz5TestArrayMethods.check_object_copy.<locals>.check_obj  s<    (D&+(0Ec{H*C##Hc2r   r)  rn  r   )      ?       @      @rp  rg  hellorh  r	   r   r   )r"  r7  r  rj  rR  s   ``   r   check_object_copyz"TestArrayMethods.check_object_copy  sc    	3 	)/"!7##K5 	.%D&/$%f-	. 	. 	.s   A  A)c                 X    | j                  t               | j                  t               y r   )r  rL   r  r?  s    r   test_np_copyzTestArrayMethods.test_np_copy  s    ((1w'r   c                       fd}dddt        j                  d      t        j                  d      dfD ]
  } ||        y )Nc                      t        t        |       f            } |       } ||       }j                  ||       y r   r  )r   r:  r;  r<  r7  r"  s       r   check_scalarzETestArrayMethods.check_ascontiguousarray_scalar.<locals>.check_scalar  s<    &D&)&v.EayH(C##Hc2r   r  g      E@y              E@T)r   r   r,  )r"  r7  r  r   s   ``  r   check_ascontiguousarray_scalarz/TestArrayMethods.check_ascontiguousarray_scalar  s=    	3
 dCBBF 	AO	r   c                     d}| j                  t        |      5 } t        t        d      f      |       d d d        y # 1 sw Y   y xY w)Nrg  r  r  )r"  r7  rj  rR  s       r   check_bad_arrayz TestArrayMethods.check_bad_array  sD    7##K5 	.%D&/$%f-	. 	. 	.s	   >Ac                     | j                  t               | j                  t               | j                  t               y r   )r  rO   r  r  r?  s    r   test_np_asfortranarrayz'TestArrayMethods.test_np_asfortranarray  s/    (():;./++,=>r   c                     | j                  t               | j                  t               | j	                  t               y r   )r  rR   r  rO   r  r?  s    r   test_np_ascontiguousarrayz*TestArrayMethods.test_np_ascontiguousarray  s/    (()=>./++,@Ar   c                 ^     t               fd} |d        |d        |d       y )Nc                 J     |       } |       }j                  ||       y r   r/  )r   r;  r<  r:  r7  r"  s      r   r{  z=TestArrayMethods.check_np_frombuffer_allocated.<locals>.check  s%    e}H,C##C2r   )r  r  r)  r   r)  )r   )r"  r7  r{  r:  s   `` @r   check_np_frombuffer_allocatedz.TestArrayMethods.check_np_frombuffer_allocated  s)    V	3
 	efir   c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_frombuffer_allocatedz-TestArrayMethods.test_np_frombuffer_allocated  s    **+BCr   c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_frombuffer_allocated2z.TestArrayMethods.test_np_frombuffer_allocated2  s    **+HIr   c                     d } fd}t        j                  g d      } ||       t        j                  g d      } ||        |d      } ||        ||j                  d              ||j                  d      j                          ||j                  d      d d d           ||j                  d              ||j                  d      j                          ||j                  d      d d d          t        j
                  g d	      } ||       d
dt        d      fD ]  }t        j
                  |g      j                  d      }t        dk  r	 ||       : j                  t        t        f      5 } t        t        |      f             d d d        d} j                  |t        j                                y # 1 sw Y   3xY w)Nc                     t         j                  j                  d       t         j                  j                  |       }d||dk  <   t        d      ||dkD  <   |S Nr  r4   g333333?nangffffff?r   randomseedfloatNr   s     r   r  z+TestArrayMethods.check_nonzero.<locals>.fac  I    IINN2))""1%C Cc	N"5\Cc	NJr   c                      t        t        |       f            } |       }|D cg c]  }|j                          }}j                   ||       |       y c c}w r   )r   r   rI   r/  )r   r:  r;  r   r7  r"  s       r   r  z1TestArrayMethods.check_nonzero.<locals>.check_arr  sU    (D&+(0Ec{H*23Q3H3##E#J9 4s   Ar)  r   r   r   r  r  r  rn  r  )Hello worldr4   r&  r  r   )rn  r)  zYCalling nonzero on 0d arrays is not allowed. Use np.atleast_1d(scalar).nonzero() instead.)r   r  bool_r  rB   r[  r  r   rJ  rK  r	   r   r   r  rM  rN  )r"  r7  r  r  r   r   rR  rj  s   ``      r   check_nonzerozTestArrayMethods.check_nonzero  s   		: hh}%#hhy!#"g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.hh-.#sE%L) 		:A((A3-''+Cv%#&&
K'@A 1V(D&+(01Ac3v'7'7#89		:
1 1s   GG	c                 .    | j                  t               y r   )r  r   r?  s    r   test_array_nonzeroz#TestArrayMethods.test_array_nonzero5  s    =)r   c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_nonzeroz TestArrayMethods.test_np_nonzero8      :&r   c                 .    | j                  t               y r   )r  r   r?  s    r   test_np_where_1z TestArrayMethods.test_np_where_1;  r"  r   c                    	 t         	d }t        g d      t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  gt        j                  j                  d       d	 fd	}	 fd}t        j                  g d      } ||       t        j                  g d      } ||        |d      } ||        ||j                  d	              ||j                  d	      j                          ||j                  d	      d d d
           ||j                  d              ||j                  d      j                          ||j                  d      d d d
           ||j                  d      d        ||j                  d      j                  d        ||j                  d      d d d
   d       ddt        d      fD ]/  }t        j                   |g      j                  d      } ||       1 dD ]
  } ||        y )Nc                     t         j                  j                  d       t         j                  j                  |       }d||dk  <   t        d      ||dkD  <   |S r  r  r  s     r   r  z-TestArrayMethods.test_np_where_3.<locals>.fac@  r  r   CFrU  r  c                 ^   t         j                  j                         |dk7  rIt        j                  | d   |      }t        j                  | d   |      }| j	                  |      } nHt        j                  | d   t                    }t        j                  | d   t                    }|j                  d       |j                  d        t        t        |       t        |      t        |      f      	      } 	| ||      } || ||      }
j                  ||       y )NFr   )r9   r  r)  r  r   	   )
r   r  shufflerE  rI   nextr   r   r   r/  )r   layoutr   r   r:  r;  r<  _typeslayoutsr7  r"  s          r   r  z3TestArrayMethods.test_np_where_3.<locals>.check_arrM  s    IIf%MM#VAYfEMM#VAYfEhhVh,MM#VAYd7mLMM#VAYd7mLFF1IFF1I=D&+vay&)<=fEEc1a(HQ"C##C2r   c                 "   d}d}t         j                  j                          d   d      } d   d      } t        t	        |       t	        |      t	        |      f            } | ||      } || ||      }j                  ||       y )Nr   r   r   r)  )r   r  r,  r   r   r/  )	scalr   r   r:  r;  r<  r/  r7  r"  s	         r   
check_scalz4TestArrayMethods.test_np_where_3.<locals>.check_scal]  s    AAIIf%q	!Aq	!A>D&,q	6!9=>vFEdAq)Ha#C##C2r   r  r  r  r  rn  r  r)  )r.  r4   r&  r  r   )r   r)  TFr'  y                F)r   r   r   r   r  r   r,  r   r-  r  r  r  r  r  rB   r  r[  )
r"  r  r  r3  r   r   r   r/  r0  r7  s
   `      @@@r   test_np_where_3z TestArrayMethods.test_np_where_3>  s   	 (((BHHbjj"**bll--! 			r	3 	3 		3 hh}%#hhy!#"g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.#++i(5#++i(**37#++i(1-c:sE%L) 	A((A3-''+CcN	 . 	AqM	r   c                      t          t        d             fd} fd} |       D ]@  }|dkD  ddf} ||       |dk  t        j                  df} ||       |dkD  ddf} ||       B y )	NTre  c                 >     |  } |  }j                  ||       y r   r  )r   r;  r<  r:  r7  r"  s      r   check_okzGTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.check_ok  s%    t}H,C##C2r   c               3     K   t        j                  ddd      } j                  j                  |        |  | j	                  ddd       | j	                  ddd       | j	                  ddd      d d d    y w)	Nr      rn  r   r)  r  r   )r   linspacer  r,  r  )r   r"  s    r   a_variationszKTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.a_variations  st     B2&AKK"G))Aq!$$))Aq),,))Aq!$TrT**s   A>Br   r)  y      ?      @F)r   r   r   r  )r"  r8  r=  r   paramsr:  r7  s   `    @@r   $test_np_where_3_broadcast_x_y_scalarz5TestArrayMethods.test_np_where_3_broadcast_x_y_scalar  s    "T"6*	3
	+  	A!eQ]FV!eRVVV,FV!eT5)FV	r   c                     	
 t         
 t        d      
      		
 fd}d }d } |       D ]5  } |       D ])  }t        j                  |      }||kD  }|||f} ||       + 7 y )NTre  c                     | \  }}} |||      } |||      }j                  ||        |||      } |||      }j                  ||       y r   r  )	r   	conditionr   r   r;  r<  r:  r7  r"  s	         r   r8  zJTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.check_ok  sh    "OIq!iA.H	1a(C##C2 iA.H	1a(C##C2r   c               3     K   t        j                  d      j                  dd      } |  | dz   t        j                  |        | d d d    t        j                  ddd      j                  ddd	      d
z   y w)Nr+  r   g?r   r*  <   r   r                 ?)r   rf   r  rN   r<  r  s    r   array_permutationszTTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.array_permutations  ss     		!$$Q*AGc'M##A&&DbD'M++c2r*221a;b@@s   B Bc               3   P   K   d d t         j                   d d y w)Nr   g333333@Ty       @      @)r   r  r   r   r   scalar_permutationszUTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.scalar_permutations  s#     GI&&LJLs   $&)r   r   r   mean)r"  r8  rG  rI  r   r   x_meanrB  r>  r:  r7  s   `        @@r   'test_np_where_3_broadcast_x_or_y_scalarz8TestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar  sy    "T"6*
	3	A	 $% 	!A(* !J	#Q* 	!	!r   c                 l   t         } t        d      |      }t        t        j                  t        j
                  t        j                  t        j                  t        j                  g}|D ]  }t        j                  dt              }t        j                  j                   || |d       |d             |d             t        j                  j                   ||  |d       |d             |d             t        j                  j                   |d |d       |d             |d             t        j                  j                   |d |d       |d             |d             t        j                  |      j                  |      }t        j                  |      }|j                  |      }d|d<   |d   |d<   t        j                  j                   ||||      |       t        j                  j                   ||||      |       t        j                  j                   ||||d         |       t        j                  j                   |||d   |      |       t        j                  j                   ||d d d	   |d d d	   |d d d	         |d d d	          t        j                  j                   ||dd d	   |dd d	   |dd d	         |dd d	          t        j                  j                   ||d d d
   |d d d
   |d d d
         |d d d
          t        j                  j                   ||dd d
   |dd d
   |dd d
         |dd d
          t        j                  j                   ||d d d   |d d d   |d d d         |d d d          t        j                  j                   ||d d d   |d d d   |d d d         |d d d          t        j                  j                   ||dd d   |dd d   |dd d         |dd d           y )NTre  5   r~   r   r)  F   rn  r   r:  )r   r   boolr   r  r   r  doubler-  r   rH  assert_equal	ones_liker   rE  )	r"  r7  r:  dtsr  r2   r   r   rs	            r   test_np_where_numpy_basicz*TestArrayMethods.test_np_where_numpy_basic  s   "T"6* RXXrxx299bmmL 	SB$'AJJ##E1beRU$;RUCJJ##E1"beRU$;RUCJJ##E$1r!u$=r!uEJJ##E%A1$>1FQ&&r*Aa AAAaDQ4AaDJJ##E!QNA6JJ##E!QNA6JJ##E!Q!$5q9JJ##E!QqT1$5q9JJ##E!CaC&!CaC&!CaC&$A1SqS6JJJ##E!ADqD'1QTT7AaddG$Da1gNJJ##E!CaC&!CaC&!CaC&$A1SqS6JJJ##E!ADqD'1QTT7AaddG$Da1gNJJ##E!DbD'1TrT7AddG$Da"gNJJ##E!DbD'1TrT7AddG$Da"gNJJ##E!AErE(AaeeHa2h$G15b5R+	Sr   c                    t         } t        d      |      }ddg}t        j                  d      }t        j                  d      } |t        j
                  |      d d t        j                  f   ||      }t        j                  j                  |d   |d          t        j                  j                  |d   |d          |j                  }|j                  } ||||      }t        j                  j                  |d d df   |d d df          t        j                  j                  |d d df   |d d df          y )NTre  F)rn     r   r)  )
r   r   r   r  r   r[  newaxisrH  assert_array_equalrB   )r"  r7  r:  r2   r   r   rV  s          r   test_np_where_numpy_ndimz)TestArrayMethods.test_np_where_numpy_ndim  s    "T"6*5MHHWGGG"((1+a

l+Q2


%%adAaD1


%%adAaD1CCCC!QN


%%a!fa!f5


%%a!fa!f5r   c                 B   t         } t        d      |      }t        j                  g d      }t        j                  d      }t        j                  g dt        j
                        }t        j                  g dt        j
                        }t        j                  j                   ||||      |       |j                  t        j                        }|j                  t        j                        }t        j                  j                   ||||      |       |j                  t              }d||d	k7  <   t        j                  j                   ||||      |       |d	k7  }d
||d	k(  <   d	||<   t        j                  j                   ||||      |       y )NTre  )FTFFFFTFFFTFr)  )      @r4   r  r              r4         $      $@r  r4   r  r~   )r^  r  r  r  r_  r`  r  ra  rb  r  r  r  i
r   iau)r   r   r   r[  r  r,  rH  rS  r   r   r  r+  )r"  r7  r:  r2   r   r   rV  tmpmasks           r   test_np_where_numpy_dtype_mixz.TestArrayMethods.test_np_where_numpy_dtype_mix  s7   "T"6*HH 0 1IIaLHHJJJ(HHJ::'


aA2HHRZZ HHRXX


aA2 HHSM!q&	


aA2q&!q&	'



aA2r   c                    t         } t        d      |      }ddg}t        j                  d      }t        j                  d      }| j	                          | j                  t        d      5   ||||       d d d        | j                  t        d      5   ||d   ||       d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w)NTre  )r   r   )r   r   zobjects cannot be broadcastr   )r   r   r   r   r\  rh  rK  )r"  r7  r:  r2   r   r   s         r   test_np_where_numpy_test_errorz/TestArrayMethods.test_np_where_numpy_test_error  s    "T"6*4LGGFOGGFO!##J0MN 	!QN	 ##J0MN 	!A$1	 		 		 	s   -B-B9-B69Cc                    t         } t        d      |      }d}| j                  t        |      5   |d dd       d d d        d}| j                  t        |      5   |ddd       d d d        d	}| j                  t        |      5   |ddd
       d d d        d}| j                  t        |      5   |dd d        d d d        y # 1 sw Y   xY w# 1 sw Y   lxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)NTre  z+The argument "condition" must be array-likern  r   z/The argument "x" must be array-like if providedr)  r  z/The argument "y" must be array-like if providedr  z"Argument "x" or "y" cannot be None)r   r   rh  r	   ri  s       r   test_np_where_invalid_inputsz-TestArrayMethods.test_np_where_invalid_inputs  s    "T"6*;##K5 	$1	 @##K5 	!!Wa 	! @##K5 	!!Q 	! 3##K5 	!!T4 	! 	!	 		! 	!	! 	!
	! 	!s/   CCC2C*CCC'*C3c                    t         d d f}|D ]o   t        d            fd} |d        |d        |d        |d	        |d
        |t        dd              |t        j                  d             q y )Nc                 .    t        j                  | d      S )Nr*  re   r  s    r   r  z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>8  s    bii2& r   c           	      V    t        j                  dt        dt        |                   S )NrO  r)  ry   )r   rf   maxr5   r  s    r   r  z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>9  s    biiAs1v7 r   Tre  c                 f     |       } |       }t         j                  j                  ||       y r   r   rH  rI  )rg   r;  r<  r:  r7  s      r   r8  z4TestArrayMethods.test_arange_1_arg.<locals>.check_ok?  s)    !$<Dk

**8S9r   r   r)  r   g      @rP  )rh   r   r?   r   r  )r"  all_pyfuncsr8  r:  r7  s      @@r   test_arange_1_argz"TestArrayMethods.test_arange_1_arg4  s     &7
 " 	!F&C&v.E:
 QKQKQKSMRLWQ]#RWWQZ 	!r   c                    d }t         t        t        t        d d f}|D ]  } t	        d      |      } |dd||        |dd||        |d	d
||        |d
d	||        |dd ||       t
        dk  sV |t        dd      t        d	d	      ||        |t        d	d	      t        dd      ||        t        } t	        d      |      } |dt        j                  ||        |dt        j                  ||        |dd ||        |t        j                  d      d ||       t
        dk  rF |dt        j                  ||        |t        j                  d      t        j                  ||       y y )Nc                 h     || |      } || |      }t         j                  j                  ||       y r   rn  )rg   rj   r7  r:  r;  r<  s         r   r8  z4TestArrayMethods.test_arange_2_arg.<locals>.check_okM  s.    dD)Hd#CJJ&&x5r   c                 0    t        j                  | |d      S )Nr   re   r   r   s     r   r  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>W  s    1a+ r   c                 2    t        j                  d||       S )Nrn  ry   re   rt  s     r   r  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>X  s    1aa0 r   Tre  r   r   r         ?r   rm  r)  r  rO  r   r*  )rk   r   ru   r{   r   r   r?   r   r   r   r   r  r-  r   )r"  r8  ro  r7  r:  s        r   test_arange_2_argz"TestArrayMethods.test_arange_2_argL  sb   	6  +0
 " 
	FF&C&v.ERFE*RVU+QVU+S!VU+Qfe,v%A1vuEA1vuE
	F #"T"6*BJJ.bhh.D&%(T6516!R6R\\"%r}}feD "r   c           	      R    t         j                  j                  d      xr t         j                  dkD  d fd	}t        t
        t        fD ]y  } t        d      |      } |ddd||        |d	d
d||        |ddd||        |ddd||        |ddd||        |ddd ||        |dd d ||        |t        j                  d      t        j                  d      t        j                  d      ||        |t        j                  d      t        j                  d      t        j                  d      ||       t        j                  } | |d       |d       |d      ||d        |t        j                  d       |d       |d      ||d       t        dk  sZ |dt        dd      t        dd      ||       | t        } t        d      |      } |ddt        j                   ||        |ddt        j                  ||        |ddd ||        |t        j                  d      t        j                  d      d ||d       t        dk  rH |ddt        j"                  ||        |dt        j$                  d      t        j"                  ||       y y )Nwin32l        c                      || ||      } || ||      }t         j                  j                  ||       	s'j                  |j                  |j                         y y r   )r   rH  rI  rL  r9   )
rg   rj   rm   r7  r:  check_dtyper;  r<  r"  	windows64s
           r   r8  z4TestArrayMethods.test_arange_3_arg.<locals>.check_okv  sU    dD$/HdD)CJJ&&x5   ; r   Tre  r   r   r)  rv  r   r   rD  r:  rw  r   rn  皙?rp  rm  r  r  rO  r*  r4  )r  platform
startswithmaxsizern   r   r   r   r   r  r  r   r  r   r?   r   r   r-  r   )r"  r8  r7  r:  i8r}  s   `    @r   test_arange_3_argz"TestArrayMethods.test_arange_3_args  s4   LL++G4Nw9N		< #$46OP 	IF&C&v.EQ1fe,RQ.QR/S!Q.Q3.Q4/QdFE2RWWQZRWWQZGRWWQZ!bhhqk65IBRUBqE2a5&%>RXXa["Q%AtDv%GAqM71a=&%H#	I& #"T"6*Arzz651a651AtVU+RXXa[$tD6!RR]]FE:QR("--G "r   c           	         t         t        fD ]   t        d            fd} |dddt        j                          |ddd	t        j
                          |dd
dt        j                          |dddd         |d	dd d         |d	d d d        t        dk  s |dddt        j                          |dt        dd      t        dd      t        j                          y )NTre  c                 r     | |||      } | |||      }t         j                  j                  ||       y r   rn  )rg   rj   rm   rp   r;  r<  r:  r7  s         r   r8  z4TestArrayMethods.test_arange_4_arg.<locals>.check_ok  s7    !$dD9D$d3

**8S9r   r   r   r)  rv  r   r   rD  r:  rw  r   rn  rp  rm  r~  )
rq   r   r   r   r,  r   r   r   r-  r?   )r"  r8  r:  r7  s     @@r   test_arange_4_argz"TestArrayMethods.test_arange_4_arg  s    "$CD 	IF&C&v.E:
 Q1bjj)RQ)QR,S!Q%Q4&QdD)v%AsBMM2GAqM71a="--H!	Ir   c           	      &   | j                          d d d g}d d g}|D ]:  }| j                  t              5 } t        d      |      } |d       d d d        < |D ];  }| j                  t              5 } t        d      |      } |dd	       d d d        = t        } t        d      |      }||fD ]  }d
t        j                  d      dfdfD ]  }t        t        f}| j                  |      5 }t        j                         5  t        j                  d        ||  d d d        | j                  dt        |j                               d d d          y # 1 sw Y   JxY w# 1 sw Y   xY w# 1 sw Y   UxY w# 1 sw Y   xY w)Nc                 .    t        j                  |       S rs   re   r  s    r   r  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>      biiQ' r   c                 .    t        j                  |       S rx   re   r  s    r   r  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  r  r   c                 .    t        j                  |       S r}   re   r  s    r   r  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    biia( r   c                 0    t        j                  | |      S r   re   rt  s     r   r  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    2 r   c                 0    t        j                  | |      S )N)rt   r9   re   rt  s     r   r  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    3 r   Tre  rn  rp  r)  r   )r)  rn  r   ignorezMaximum allowed size exceeded)r\  rJ  r	   r   rn   r   r  ZeroDivisionErrorrK  warningscatch_warningssimplefilterr  rM  rN  )	r"  bad_funcs_1bad_funcs_2r7  rR  r:  finputspermitted_errorss	            r   test_arange_throwsz#TestArrayMethods.test_arange_throws  s   ! ('(
 33

 " 	F"";/ 6*T*62a 	 " 	F"";/ 6*T*62a 	 "T"6*%! 	7Arxx{A.	: 
7 %6z#B &&'78 7F!002 # --h76
# MM"A #F$4$4 577 7	
7	7  # #7 7s;   E!8E.7FE;	'-F!E+	.E8	;F FFc                 z    t        d      d        }d}| j                   ||      |j                  |             y )NTre  c                 6    t        j                  dd| z   |       S )Nr   r)  re   ry   s    r   r  z2TestArrayMethods.test_arange_accuracy.<locals>.foo  s    99QD$//r   g[R֯?)r   r/  rs  )r"  r  r   s      r   test_arange_accuracyz%TestArrayMethods.test_arange_accuracy  s>     
d		0 
	0 !AA7r   c                     t          t        d             fd} fd} j                           |t        j                  dg              |t        j
                  dgg              |t        j                  d              |t        j                  d              |t        j                  d              |t        j                  ddg              |t        j                  g              y )	NTre  c                 J     |       } |       }j                  ||       y r   r  )r6   r;  r<  r:  r7  r"  s      r   r8  z,TestArrayMethods.test_item.<locals>.check_ok  s%    c{H*C##C2r   c                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz>item(): can only convert an array of size 1 to a Python scalarrJ  rK  r  rM  rN  )r6   rR  r:  r"  s     r   r}  z-TestArrayMethods.test_item.<locals>.check_err  sL    "":. &c
MMZf../1 s   	AAr&                ?r)  rn  )r   r   r\  r   r   r-  r[  r  r"  r8  r}  r:  r7  s   `  @@r   	test_itemzTestArrayMethods.test_item  s    "T"6*	3
	1 	! 	SE"#x()#$ C!"((Aq6"#"((2,r   c                     t          t        d             fd} fd} j                           |t        j                  dg      d        |t        j
                  dgg      d        |t        j                  d      d        |t        j                  dd	g              |t        j                  g              y )
NTre  c                     | j                         }| j                         } ||        ||       j                  ||       y r   )rI   r/  )r   r   r;  r<  r:  r7  r"  s       r   r8  z/TestArrayMethods.test_itemset.<locals>.check_ok  s<    vvxH&&(C8Q#qM##C2r   c                     j                  t              5 } | d       d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nr  z/itemset(): can only write to an array of size 1r  )r   rR  r:  r"  s     r   r}  z0TestArrayMethods.test_itemset.<locals>.check_err
  sN    "":. &aMMKf../1 r~  r&  r  r  r)  rn  )r   r   r\  r   r   r-  r[  r  s   `  @@r   test_itemsetzTestArrayMethods.test_itemset  s    "T"6*	3	1 	! 	SE"B'x("-##"((Aq6"#"((2,r   c           	      f   t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  g}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      dz  gH }}t        j                  t        j                  t        j                  g}|D cg c].  }t        j                  d|      t        j                  d|      g0 }}|D ]Z  }|D ]S  }| j                  dj                  |j                               5  | j#                   ||       ||             ddd       U \ yc c}w c c}w # 1 sw Y   lxY w)	zK test sum over a whole range of dtypes, no axis or dtype parameter
        Tre  rO  rp  r   r   r   r)  rO  r   zTest np.sum with {} input N)r   r   r   r,  r   r  r   r   r-  timedelta64r   r  r  r  subTestformatr9   r/  )	r"  r7  r:  
all_dtypes	arr_dtypeall_test_arraysunsigned_dtypesarr_listr   s	            r   test_sumzTestArrayMethods.test_sum  sz    "T"6*jj"**bhhllBMM2>>C
 (	)  WW_i0WWQ	"WWVY'",.) ) 99bii: -.  WW_i0WWQ	"$. .
 ( 	EH E\\">"E"Ecii"PQ E++F3KsDE EE	E).E Es   AF3F"1F''F0c                 l   t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  t        j                  t        g}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      dz  gH }}t        j                  t        j                  g}||D cg c].  }t        j                  d|      t        j                  d|      g0 c}z  }|D ]  }|D ]z  }dD ]s  }	|	t        |j                        dz
  kD  r| j                  dj                  |j                               5  | j#                   |||		       |||		             d
d
d
       u |  y
c c}w c c}w # 1 sw Y   xY w)z< test sum with axis parameter over a whole range of dtypes  Tre  r  r)  r  r  r   r)  rn  #Testing np.sum(axis) with {} input ra   N)r   r   r   r,  r   r  r   r-  TIMEDELTA_Mr   r  r  lenr   r  r  r9   r/  )
r"  r7  r:  r  r  r  r  r  r   rb   s
             r   test_sum_axis_kws1z#TestArrayMethods.test_sum_axis_kws13  s   #"T"6*jj"**bhhmm[2
 (	)  WW_i0WWQ	"WWVY'",.) ) 99bhh/ -.  WW_i0WWQ	"$. 	.
 ( 	GH G% GDc#))nQ..  '//5vcii/@B G//s0F05c0EGG GGG	G).G Gs   /AF !3F%.#F*	*F3c                    t         } t        d      |      }t        j                  g}t        j                  d      t        j
                  t        j                  d      t        j                  t        j                  d      t        j
                  t        j                  t              t        j                  t              i}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      d	z  gH }}t        j                  g}||D cg c].  }t        j                  d|      t        j                  d|      g0 c}z  }|D ]  }|D ]  }	d
D ]  }
|
t        |	j                        dz
  kD  r| j                  dj                  |	j                              5   ||	|
      } ||	|
      }t        |t        j                        rK| j!                  |j#                  ||	j                           |j#                  ||	j                                  n| j%                  ||       ddd          yc c}w c c}w # 1 sw Y   xY w)a    testing uint32 and int32 separately

        uint32 and int32 must be tested separately because Numpy's current
        behaviour is different in 64bits Windows (accumulates as int32)
        and 64bits Linux (accumulates as int64), while Numba has decided to always
        accumulate as int64, when the OS is 64bits. No testing has been done
        for behaviours in 32 bits platforms.
        Tre  r   r  r  r  r)  r  r  r  r  ra   N)r   r   r   r   r9   r  r  r  r   r  r  r   r  r  r>   ndarrayr/  r   rL  )r"  r7  r:  r  
out_dtypesr  r  r  r  r   rb   npy_res	numba_ress                r   test_sum_axis_kws2z#TestArrayMethods.test_sum_axis_kws2O  s#    $"T"6*hhZ
hhw'288H3Eryyhhw'hh{+RXXk-BD
 (	)  WW_i0WWQ	"WWVY'",.) ) 99+ -.  WW_i0WWQ	"$. 	.
 ( 	AH A% ADc#))nQ..  '//5vcii/@B 
A"(4"8$)#D$9	%i< 33 'z#))/D E ) 0 0CII1F GI
 !,,Wi@
A 
AAA	A).
A 
As   	AI,3I9BI	I'c                    t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  g}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      dz  gH }}t        j                  t        j                  t        j                  g}|D cg c].  }t        j                  d|      t        j                  d|      g0 }}t        j                  d      t        j                  gt        j                  d      t        j                  t        j                  gt        j                  d	      t        j                  t        j
                  t        j                  gt        j                  d
      t        j                  t        j
                  t        j                  t        j                  gt        j                  d      t        j                  t        j
                  t        j                  gt        j                  d      t        j                  t        j
                  gt        j                  d      t        j                  t        j
                  t        j                  t        j                  t        j                  gt        j                  d      t        j                  t        j                  gt        j                  d      t        j                  gi	}|D ]u  }|D ]n  }	||	j                     D ]Z  }
dj                  |	j                  |
      }| j                  |      5  | j!                   ||	|
       ||	|
             ddd       \ p w yc c}w c c}w # 1 sw Y   uxY w)z< test sum with dtype parameter over a whole range of dtypes Tre  r  r)  r  r  r,  r   r  r   r  r  rQ  r   r-  z*Testing np.sum with {} input and {} outputr~   N)r   r   r   r,  r   r  r   r   r-  r   r  r  r  r9   r  r  r/  )r"  r7  r:  r  r  r  r  r  r  r   	out_dtypesubtest_strs               r   test_sum_dtype_kwsz#TestArrayMethods.test_sum_dtype_kws|  s   $"T"6*jj"**bhhllBMM3
 (	)  WW_i0WWQ	"WWVY'",.) ) 99bii: -.  WW_i0WWQ	"$. .
 hhy)BJJ<hhy)BJJ

+Chhw'"**bhh

)Khhw'"**bhh

BHH)Uhhx(2::rxx*Lhhx(2::rxx*@hhv&RXXrzz288UWU]U](^hh{+bllBMM-Jhh|,r}}o?
 ( 	QH Q!+CII!6 QI#O$*F399i$@  k2 Q 33F3i4P49#Y4OQQ QQQ	Q-).(Q Qs   9AO93O#O	Oc                     t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  g}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      dz  gH }}t        j                  t        j                  t        j                  g}|D cg c].  }t        j                  d|      t        j                  d|      g0 }}t        j                  d      t        j                  gt        j                  d      t        j                  t        j                  gt        j                  d	      t        j                  t        j
                  t        j                  gt        j                  d
      t        j                  t        j
                  t        j                  t        j                  gt        j                  d      t        j                  t        j
                  t        j                  gt        j                  d      t        j                  t        j                  gt        j                  d      t        j                  t        j
                  t        j                  t        j                  t        j                  gt        j                  d      t        j                  t        j                  gt        j                  d      t        j                  gi	}|D ]  }|D ]  }	||	j                     D ]  }
dD ]|  }|t        |	j                        dz
  kD  rdj!                  |	j                  |
      }| j#                  |      5   ||	||
      } ||	||
      }| j%                  ||       ddd       ~    yc c}w c c}w # 1 sw Y   xY w)zF test sum with axis and dtype parameters over a whole range of dtypes Tre  r  r)  r  r  r,  r   r  r   r  r  rQ  r   r-  r  z+Testing np.sum with {} input and {} output r   N)r   r   r   r,  r   r  r   r   r-  r   r  r  r  r9   r  r   r  r  r/  )r"  r7  r:  r  r  r  r  r  r  r   r  rb   r  py_resnb_ress                  r   test_sum_axis_dtype_kwsz(TestArrayMethods.test_sum_axis_dtype_kws  s   )"T"6*jj"**bhhllBMM3
 (	)  WW_i0WWQ	"WWVY'",.) ) 99bii: -.  WW_i0WWQ	"$. .
 hhy)BJJ<hhy)BJJ

+Chhw'"**bhh

)Khhw'"**bhh

BHH)Uhhx(2::rxx*Lhhx(2::ryy*Ahhv&RXXrzz288UWU]U](^hh{+bllBMM-Jhh|,r}}o?
 ( 	DH 
D!+CII!6 	DI ) D#cii.1"44$'T(.syy)(D $!\\+6 D%+Cd)%LF%*3T%KF 33FFCD DD	D
D	D-)..D Ds   9AO*93O/0)O44O=c                    t         } t        d      |      }t        j                  }t        j                  d      }| j                   ||d|       ||d|             | j                   ||d|       ||d|             y)zC testing that axis and dtype inputs work when passed as positional Tre  r  r)  rn  N)r   r   r   r,  r   r/  )r"  r7  r:  r9   r   s        r   test_sum_axis_dtype_pos_argz,TestArrayMethods.test_sum_axis_dtype_pos_arg  s{    )"T"6*

GGO$q!U 3 %a!U 3	5 	q!U 3 %aE 2	4r   c                 @   t         } t        d      |      }t        j                  d      }| j	                   ||d       ||d             t
        } t        d      |      }t        j                  d      }| j	                   ||d       ||d             y )NTre  rb  r   ra   r   )r   r   r   rf   r/  r   r"  r7  r:  r   s       r   test_sum_1d_kwsz TestArrayMethods.test_sum_1d_kws  s    #"T"6*IIcNqq 153CD-"T"6*IIcNqr 2E!"4EFr   c                     t         } t        d      |      }t        j                  d      }d}| j	                   |||       |||             d}| j	                   |||       |||             y )NTre  )r   r   r   rp  rO  r  r)  rn  )r   r   r   r   r/  )r"  r7  r:  r   rb   s        r   test_sum_constzTestArrayMethods.test_sum_const  sm    &"T"6*gg()sD 15d3CDsD 15d3CDr   c                    | j                          t        } t        d      |      }t        j                  d      }t        j                  d      }| j                  t              5   ||d       d d d        | j                  t              5   ||d       d d d        | j                  t              5   ||d       d d d        y # 1 sw Y   XxY w# 1 sw Y   =xY w# 1 sw Y   y xY w)NTre  r  r   r   rn  r   r   )r\  r   r   r   r   rJ  rK  r"  r7  r:  r   r   s        r   test_sum_exceptionsz$TestArrayMethods.test_sum_exceptions  s    !"T"6*GGO$GGFOz* 	!QK	 z* 	!RL	 z* 	!QK	 		 		 		 	s$   (
C	
C6
C!	CC!C*c                    | j                          t        d      d        }t        j                  d      }| j	                   ||      |j                  |             t        j                  d      }| j	                   ||      |j                  |             t        j                  d      }| j                  t              5 } ||       d d d        d}| j                  |t        j                               | j                  t              5 }|j                  |       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)	NTre  c                 &    | j                  d      S )NrP  ra   r   rC   s    r   r  z5TestArrayMethods.test_sum_const_negative.<locals>.foo  s    777##r   )r)  rn  r   r   r  )r)  rn  z"'axis' entry (-1) is out of boundszout of bounds)r\  r   r   r   r/  rs  rJ  r
   r  rM  rN  rK  )r"  r  r   rR  errmsgs        r   test_sum_const_negativez(TestArrayMethods.test_sum_const_negative  s   !	d		$ 
	$ GGL!AA7GGIAA7GGFO/ 	6F	5fc&"2"234z* 	fKKN	os6+;+;'<=	 		 	s   	EEEE'c                    t         } t        d      |      }t        j                  d      }| j	                   ||       ||             | j                  t              5   ||d       d d d        t        } t        d      |      }| j                  t              5   ||d       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)NTre  )rn  r   r)  ra   )r   r   r   r   r/  rJ  r	   r   r  s       r   test_cumsumzTestArrayMethods.test_cumsum  s    "T"6*GGFOq	584{+ 	!QK	 ""T"6*{+ 	!!	 		 	
	 	s   !
B4 C 4B= C	c                    
 t          t        d            

 fd}g }|j                  d       |j                  d       |j                  d       |j                  d       |j                  t        j                  g d             |j                  t        j                  g d	g d
gd             |j                  t        j                  g d	g d
gg             |j                  t        j                  ddggddggddgggg             |j                  g d       |j                  d	       |j                  d       |j                  d       t        g d      }t        j                  t        j                  t        j                  fD ]C  }t        j                  d|      j                  dt        |            }|D ]  } |||        E t        j                  d      j                  dt        |            }|j                  }|| dz
  t        j                  |      t        j                  | dz
        |g| dz
  gg}|D ])  }	 j                  t              5   
||	       d d d        +  j                  t              5   
|dg       d d d         j!                          y # 1 sw Y   nxY w# 1 sw Y   &xY w)NTre  c                      | |      } | |      }j                  ||       t        |d      r)j                  |j                  |j                  k(         y y )Nr  )r/  hasattrrL  r  )r   indr;  r<  r:  r7  r"  s       r   r{  z)TestArrayMethods.test_take.<locals>.check)  sT    c3'HS/C##Hc2x)  399!<= *r   r)  r      r:  )r)  r   r)  r  r   r)  r   r)  )r  r   r   r)  r  r   rn  )r  )r  r   rn  ))r)  )r   r  ))r  )r   )rn  r'  r  r~   r  333333?)r^   r   rq  r   r[  r   r,  r  r-  rf   r  r-  sizerJ  
IndexErrorr	   r\  )r"  r{  test_indicesr0  r  rU  r  szAillegal_indicesr   r:  r7  s   `         @@r   	test_takezTestArrayMethods.test_take%  sq   "T"6*	> AABBBHH%567BHHi%<CHIBHHy*&=%>?@BHHAx2q'aVH&E%FGH,-I&34EF(::rxx7 	B		"B'//d7m/LA# a	 IIb#++F$w-+Hffq"((3-3$(9K5C4!8*.  	A"":. a 	
 {+ 	!cUO	 	! 	 	s   2
J?K?K	Kc                     t          t        d             fd}t        j                  d      }t        j                  t        j
                  fD ]  } || |d              t        j                  d      j                  dd      }t        j                  t        j
                  fD ]  } || |d              t        j                  d	t        j                  
      j                  dddd      }t        j                  t        j                  t        j
                  fD ]  } || |d              y )NTre  c                     t        j                  |       } ||      }j                  |d u        t        j                  |       } ||      }j                  |d u        j                  ||       y r   )r   rI   
assertTruer/  )	r   r!   r;  ervr<  grvr:  r7  r"  s	         r   r{  z)TestArrayMethods.test_fill.<locals>.check_  sd    wws|H3'COOC4K(''#,CS/COOC4K(##Hc2r   r)  r*  r  r   r   0   r~   rn  )	r   r   r   rf   r,  r  r  r   r-  )r"  r{  rU  r   r:  r7  s   `   @@r   	test_fillzTestArrayMethods.test_fill\  s    "T"6*	3 IIaL**bhh' 	A!QrUO	 IIbM!!!Q'**bhh' 	A!QrUO	 IIb-55aAqA**bmmRXX6 	A!QrUO	r   c                 R   t         } t        d      |      }t        j                  dd      }t        j                  j                   ||       ||             t        j                  ||      \  }}|d|z  z   }t        j                  j                   ||       ||             y NTre  rD  r*  rF  )r   r   r   r<  rH  rS  meshgridr"  r7  r:  r   r   zs         r   	test_realzTestArrayMethods.test_realx      "T"6*KKR 


q	584{{1a 11H


q	584r   c                 R   t         } t        d      |      }t        j                  dd      }t        j                  j                   ||       ||             t        j                  ||      \  }}|d|z  z   }t        j                  j                   ||       ||             y r  )r   r   r   r<  rH  rS  r  r  s         r   	test_imagzTestArrayMethods.test_imag  r  r   c                     fd}t         j                  j                   ||        t        d      |      |             y )Nc                 >    t        j                   |             S r   )r   expm1)r   r   r   r  s    r   lower_clip_resultzHTestArrayMethods._lower_clip_result_test_util.<locals>.lower_clip_result  s    88DE5122r   Tre  )r   rH  assert_almost_equalr   )r"  r  r   r   r   r  s    ` `` r   _lower_clip_result_test_utilz-TestArrayMethods._lower_clip_result_test_util  s<    	3 	

&&a 1C01!4	6r   c                    t         t        t        t        f}t        t
        f}t        j                  ddd      t        j                  ddd      j                  ddd      fD ]p  }||z   D ]d  } t        d	      |      }d
}| j                  t        |      5   ||d d        d d d        t        j                  j                   ||dd        ||dd              t        j                  j                   ||d d       ||d d             t        j                  j                   ||dd       ||dd             ||v r|t        j                  |      }t        j                  |      }t        j                  j                   ||dd|       ||dd|             t        j                  j                  ||       | j                  ||dd       g s y # 1 sw Y   5xY w)NrD  r*  e   (   r   rn  r   Tre  &array_clip: must set either max or minr   r  )r   r  r  r  r   r
  r   r<  r  r   rh  rK  rH  rS  
empty_liker  )	r"  has_out
has_no_outr   r7  r:  rj  rQ  couts	            r   	test_clipzTestArrayMethods.test_clip  s   NJ8IJ$&78
++c2s+++c2r*221a;= 	CA!J. C*T*62>++J< )!T4() 

''q!T(:E!Q<MN

''q$(:E!T1<MN

''q"a(8%2q/JW$MM!,E==+DJJ++F1b!U,C,1!RD,ACJJ++E4811%BB'C	C) )s   GG!c                    t         t        t        t        f}t        t
        f}t        j                  ddd      j                  ddd      }t        j                  dd      j                  |j                        j                  dd      }t        j                  dd	      j                  |j                        j                  dd      }dd
|d g}dd|d g}||z   D ]  } t        d      |      }	|D ]  }
|D ]  }|
.|,d}| j                  t        |      5   |	|d d        d d d        3t        j                  j!                   |||
|       |	||
|             ||v r|t        j"                  |      }t        j"                  |      }t        j                  j!                   |||
||       |	||
||             t        j                  j!                  ||       | j%                  |	||
|          y # 1 sw Y   xY w)NrD  r*  r  r   rn  r   rv  r   r  r  Tre  r   )r   r  r  r  r   r
  r   r<  r  rf   r   r9   r   rh  rK  rH  rS  r  r  )r"  r  r  r   	a_min_arr	a_max_arrminsmaxsr7  r:  r   r   rj  rQ  r  s                  r   test_clip_array_min_maxz(TestArrayMethods.test_clip_array_min_max  s   NJ8IJ$&78
KKR$,,Q15IIb!$++AGG4<<QB	IIaO**1773;;AqA	2y$'1i&
* 	NF&C&v.E N! NE}F!33JD 1!!T401 JJ++F1eU,CU1eUZE[\( "a 0!}}Q/

//q%0N05at0LN

//t<55eQuM#NN	N1 1s   G6	6G?c                      t        d      t              }d}| j                  t        |      5   |d dd       d d d        y # 1 sw Y   y xY w)NTre  rg  r   r*  r   r   rh  r	   r"  r:  rj  s      r   test_clip_bad_arrayz$TestArrayMethods.test_clip_bad_array  sI    "T"7+7##K5 	$2	 	 	   AAc                      t        d      t              }d}| j                  t        |      5   |ddd       d d d        y # 1 sw Y   y xY w)NTre  z).*The argument "a_min" must be a number.*r)  r   r*  r  r  s      r   test_clip_bad_minz"TestArrayMethods.test_clip_bad_min  sI    "T"7+9##K5 	!S"	 	 	r  c                      t        d      t              }d}| j                  t        |      5   |ddd       d d d        y # 1 sw Y   y xY w)NTre  z).*The argument "a_max" must be a number.*r)  r   r  r  s      r   test_clip_bad_maxz"TestArrayMethods.test_clip_bad_max  sI    "T"7+9##K5 	!Q	 	 	r  c                      t        d      t              }d}| j                  t        |      5   |dddd       d d d        y # 1 sw Y   y xY w)	NTre  ro  r   r)  r*  rp  r  r  r  s      r   test_clip_bad_outz"TestArrayMethods.test_clip_bad_out  sK    "T"7+I##K5 	#!Q"	# 	# 	#s   AAc                 @   | j                           t        d      t              }d}t        j                  ddd      j                  ddd	      }t        j                  d
d      j                  |j                        j                  dd      }t        j                  dd      j                  |j                        j                  dd      }d|fd
|f||f|df|dfg}|D ].  \  }}| j                  t        |      5   ||||       d d d        0 y # 1 sw Y   ;xY w)NTre  zA.*shape mismatch: objects cannot be broadcast to a single shape.*rD  r*  r  r   rn  r   r  r   r)  )r\  r   r   r   r<  r  rf   r   r9   rh  rK  )	r"  r:  rj  r   r  r  min_maxr   r   s	            r   test_clip_no_broadcastz'TestArrayMethods.test_clip_no_broadcast  s   !"T"7+QKKR$,,Q15IIb!$++AGG4<<QB	IIaO**1773;;AqA	y>B	?y)q>Iq>3 $ 	'LE5''
C8 'a&' '	'' 's   >DD	c                 h   t         t        fD ]  } t        d      |      }t        j                  dd      }t        j
                  j                   ||       ||             t        j                  ||      \  }}|d|z  z   }t        j
                  j                   ||       ||              y r  )r  r  r   r   r<  rH  rS  r  r  s         r   	test_conjzTestArrayMethods.test_conj  s    !?3 	9F&C&v.EC$AJJ##F1IuQx8;;q!$DAqBqDAJJ##F1IuQx8	9r   c           
         t          t        d            fd} |t        j                  g dg dg              |t        j                  t        j                  d                    |t        j                  ddgdd	gd
dgg              |t        j                  g               |t        j                  t        j
                  t        j
                  g              |t        j                  g dd              |t        j                  t        j                  d      t        j                  d      t        j                  d      t        j                  d      g             y )NTre  c                 ^    t         j                  j                   |        |              y r   )r   rH  rS  )r   r:  r7  s    r   r{  z+TestArrayMethods.test_unique.<locals>.check  s    JJ##F1IuQx8r   )r)  r)  r   )r   r   r   r   g@r  gRQ@gffffff
@)rU  rU  Bz<U16r~   z
2001-01-01z
2001-01-02NAT)r  r   r   r[  r  r  
datetime64)r"  r{  r:  r7  s     @@r   test_uniquezTestArrayMethods.test_unique  s    "T"6*	9 	bhh	9-./bhhrxx{#$bhhc
S$K#s<=>bhhrlbhh'()bhhf56bhhl3l3l3e,. / 	0r   c                    t         } t        d      |      }t        j                  d      j	                  dd      }t        j                  d      }t        j
                  j                   |||       |||             t        } t        d      |      }t        j                  d      j	                  dd      }t        j
                  j                   |||       |||             y )NTre  g      4@r   r   r^  g      0@)r  r   r   rf   r  rH  rS  r  r  s        r   test_array_dotzTestArrayMethods.test_array_dot  s     "T"6*IIcN""1a(IIbM


q!eAqk: !"T"6*IIcN""1a(


q!eAqk:r   c                    t         } t        d      |      }d}|t        j                  f}t        j                  j                   ||  ||        |t        j                  d      f}t        j                  j                   ||  ||        |t        j                  f}t        j                  j                   ||  ||        |t        j                  d      f}t        j                  j                   ||  ||        y )NTre  rn  r   f4)r  r   r   r   rH  r[  r9   r   )r"  r7  r:  r  r   s        r   test_array_ctor_with_dtype_argz/TestArrayMethods.test_array_ctor_with_dtype_arg&  s    "T"6*"(({


%%fdmUD\B"((7##


%%fdmUD\B"**}


%%fdmUD\B"((4. 


%%fdmUD\Br   c                    t        j                  dt         j                        }d}t        ||j                  |      }t        j
                  g d|j                        }t         j                  j                  ||       y )Nr  r~   rn  r9   r   )rn  r   r   r   rp  rO  r   rf   r  r   r9   r[  rH  r[  )r"  bufferr   resultr;  s        r   test_frombuffer_offsetz'TestArrayMethods.test_frombuffer_offset4  sV    1BHH-vV\\&I88.fllC


%%fh7r   c                    t        j                  dt         j                        }d}t        ||j                  |      }t        j
                  g d|j                        }t         j                  j                  ||       y )Nr  r~   r   r9   r   )r   r)  rn  r   r)  )r"  r*  r   r+  r;  s        r   test_frombuffer_countz&TestArrayMethods.test_frombuffer_count<  sU    2RXX.vV\\G88L=


%%fh7r   c                    t        j                  dt         j                        }t        ||j                  d      }t        j
                  g d|j                        }t         j                  j                  ||       y )Nr  r~   r   r.  )r   r)  rn  r   r   r   rp  rO  r)  )r"  r*  r+  r;  s       r   (test_frombuffer_count_negative_means_allz9TestArrayMethods.test_frombuffer_count_negative_means_allD  sQ    1BHH-vV\\D884FLLI


%%fh7r   c                    t        j                  dt         j                        }d}d}t        ||j                  ||      }t        j
                  g d|j                        }t         j                  j                  ||       y )Nr  r~   rn  r   )r9   r   r   r  r)  )r"  r*  r   r   r+  r;  s         r    test_frombuffer_offset_and_countz1TestArrayMethods.test_frombuffer_offset_and_countK  s]    2RXX.vV\\&PUV88IV\\:


%%fh7r   c                     t        j                  dt         j                        }t        |      dz   }d}| j	                  t
        |      5  t        ||j                  |       d d d        y # 1 sw Y   y xY w)Nr  r~   r)  z=offset must be non-negative and no greater than buffer lengthr(  )r   rf   r  r  rh  rK  r   r9   )r"  r*  r   rj  s       r   test_frombuffer_invalid_offsetz/TestArrayMethods.test_frombuffer_invalid_offsetT  sa    2RXX.VqM##J4 	E&VD	E 	E 	Es   A..A7c                    t        j                  dt         j                        }t        |      dz   }d}| j	                  t
        |      5  t        j                  ||j                  |       d d d        y # 1 sw Y   y xY w)Nr  r~   r)  z%buffer is smaller than requested sizer.  )r   rf   r  r  rh  rK  r   r9   )r"  r*  r   rj  s       r   test_frombuffer_invalid_countz.TestArrayMethods.test_frombuffer_invalid_count\  se    2RXX.Fa5##J4 	CMM&EB	C 	C 	Cs   #A88B)___name__
__module____qualname____doc__r!  r=  r@  rB  r]  r_  ra  r   rc  rk  rt  r  r  r  r  r  r  r  r  r  r  r   rf   r  r  r  r  r  r  r  r  r   r  r  r	  r  r  r  r!  r$  r5  r?  rL  rW  r\  rd  rf  rh  rp  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r   r#  r&  r,  r/  r1  r3  r5  r7  __classcell__)r#  s   @r   r  r    s   .78AC("T/0 0 0#\"|&.-`
"0H06:# ))0G0:25.(.
?
B
DJ(:T*''AF6$!LS>6$38 !*!0%EN)HVI&%7N8 8    8E0G8+AZ#QJ'DR4	GE$>05"n8	5	56C6N@#'	90$ ; ;C8888ECr   r  c                       e Zd Zd Zy)TestArrayComparisonsc                 Z     fd}t         t        j                  dt        j                        j	                  d      } |||d        |||d d  d        |||j                         d        |||j                  d      d        |||j                  d        |||d d d       y )	Nc                      t        t        |       t        |      f            }j                   || |      || f       y r   r  )r   r   r;  r:  r7  r"  s       r   r{  z1TestArrayComparisons.test_identity.<locals>.checkh  sA    0D&)VAY/08E##E!QK%-8|$<>r   r*  r~   )rn  r   TFr  r   )r   r   r  r   r  rI   rU   rB   )r"  r{  r   r7  s   `  @r   test_identityz"TestArrayComparisons.test_identityg  s    	>
 "hhr*226:c3c3q64 c388:u%c388H%u-c355% c3s8U#r   N)r8  r9  r:  rA  r   r   r   r>  r>  e  s    $r   r>  __main__)r   N)r   r   r   )NNN)h	itertoolsr   r   r  r  unittestr  numpyr   numbar   r   r   
numba.corer   numba.core.errorsr	   r
   numba.np.numpy_supportr   r   numba.tests.supportr   r   r   r   r   r  TIMEDELTA_Yr   r"   r%   r)   r,   r.   r0   r;   rD   rG   rJ   rL   rO   rR   rX   r^   rc   rh   rk   rn   rq   ru   r{   r   r   r   r   r   r   r   r   r   r   r,  r9   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>  r8  mainr   r   r   <module>rM     s   $ 	 
    # #  : :7 7 "$!"#4"%(!'-&&(,.'2?
( (*zzA EBHH ELK2")
$)-%) #KC KC\2$8 $* zHMMO r   