
    J/Ph(                        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#dSd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=d+ Z>d, Z?d- Z@d. ZAd/ ZBd0 ZCd1 ZDd2 ZEd3 ZFd4 ZGd5 ZHd6 ZId7 ZJd8 ZKd9 ZLd: ZMd; ZNd< ZOd= ZPd> ZQd? ZRd@ ZSdA ZTdB ZUdTdCZVdTdDZWdUdEZXdUdFZYdG ZZdH Z[dI Z\dJ Z]dK Z^dL Z_dM Z` G dN dOee          Za G dP dQe          ZbecdRk    r ejd                     dS dS )V    )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        | ||           d S Nnparoundarrdecimalsouts      ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_array_methods.pynp_around_arrayr          Ic8S!!!!!    c                 ,    t          j        | |          S r   r   valr   s     r   np_around_binaryr"      s    9S(###r   c                 *    t          j        |           S r   r   r!   s    r   np_around_unaryr%      s    9S>>r   c                 2    t          j        | ||           d S r   r   roundr   s      r   np_round_arrayr)      s    HS(C     r   c                 2    t          j        | ||           d S r   )r   round_r   s      r   np_round__arrayr,   !   r   r   c                 ,    t          j        | |          S r   r'   r    s     r   np_round_binaryr.   $   s    8C"""r   c                 *    t          j        |           S r   r'   r$   s    r   np_round_unaryr0   '   s    8C==r   c                    |H| j         j        dk    r8t          | j        ||j                   t          | j        ||j                   |S t          j        | ||          }|id }t          | t          t
          j	        f          r9t           || j        |j                   || j        |j                            }n || |          }|S )z4
    A slightly bugfixed version of np.round().
    Ncc                 H    |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(    #::#''F3KK<'Jr   )
dtypekind_fixed_np_roundrealimagr   r(   
isinstancecomplexcomplexfloating)r   r   r   r7   r8   s        r   r;   r;   *   s     39>S00(CH555(CH555
hsHc**;  
 #);<== 2//#(CC//#(CCE E ('S11
r   c                     | j         S r   )Tr   s    r   array_TrD   D   s	    5Lr   c                 *    |                                  S r   )	transposerC   s    r   array_transposerG   G   s    ==??r   c                 *    |                                  S r   copyrC   s    r   
array_copyrK   J   s    88::r   c                 *    t          j        |           S r   )r   rJ   rC   s    r   np_copyrM   M   s    73<<r   c                 *    t          j        |           S r   )r   asfortranarrayrC   s    r   np_asfortranarrayrP   P   s    S!!!r   c                 *    t          j        |           S r   )r   ascontiguousarrayrC   s    r   np_ascontiguousarrayrS   S   s    $$$r   c                 ,    |                      |          S r   viewr   newtypes     r   
array_viewrY   V       88Gr   c                 ,    |                      |          S r   take)r   indicess     r   
array_taker_   Y   rZ   r   c                 0    |                      ||          S Naxisr\   )r   r^   rc   s      r   array_take_kwsrd   \   s    88G$8'''r   c                 *    t          j        |           S r   r   arange)arg0s    r   np_arange_1ri   _   s    9T??r   c                 ,    t          j        | |          S r   rf   )rh   arg1s     r   np_arange_2rl   b   s    9T4   r   c                 .    t          j        | ||          S r   rf   )rh   rk   arg2s      r   np_arange_3ro   e   s    9T4&&&r   c                 0    t          j        | |||          S r   rf   )rh   rk   rn   arg3s       r   np_arange_4rr   h   s    9T4t,,,r   c                 .    t          j        | |          S N)stoprf   )rh   ru   s     r   np_arange_1_stoprv   k       9T%%%%r   c                 .    t          j        | |          S Nsteprf   )rh   r{   s     r   np_arange_1_stepr|   n   rw   r   c                 .    t          j        | |          S Nr9   rf   )rh   r9   s     r   np_arange_1_dtyper   q   s    9T''''r   c                 0    t          j        | ||          S ry   rf   )rh   rk   r{   s      r   np_arange_2_stepr   t   s    9T4d++++r   c                 0    t          j        | ||          S r~   rf   )rh   rk   r9   s      r   np_arange_2_dtyper   w   s    9T4u----r   c                 .    t          j        | |          S rt   rf   )startru   s     r   np_arange_start_stopr   z   s    9U&&&&r   c                 0    t          j        | ||          S N)ru   r{   rf   )r   ru   r{   s      r   np_arange_start_stop_stepr   }   s    9UD1111r   c                 2    t          j        | |||          S )N)ru   r{   r9   rf   )r   ru   r{   r9   s       r   np_arange_start_stop_step_dtyper      s    9UD>>>>r   c                 ,    |                      |          S r   )fill)r   r!   s     r   
array_fillr      s    88C==r   c                       fd}|S )Nc                 .    |                                S r   rU   rW   s    r   rY   z#make_array_view.<locals>.array_view   s    xx   r    )rX   rY   s   ` r   make_array_viewr      s"    ! ! ! ! !r   c                 \    | dd                              t          j                  d         S )Nr      )rV   r   float32rC   s    r   array_sliced_viewr      s#    qs8==$$Q''r   c                       fd}|S )Nc                 .    |                                S r   )astyperW   s    r   array_astypez'make_array_astype.<locals>.array_astype   s    zz'"""r   r   )rX   r   s   ` r   make_array_astyper      s"    # # # # #r   c                 *    t          j        |           S )z7
    np.frombuffer() on a Python-allocated buffer.
    r   
frombufferbs    r   np_frombufferr      s     =r   c                 B    t          j        | t           j                  S r~   )r   r   	complex64r   s    r   np_frombuffer_dtyper      s    =",////r   c                 .    t          j        | d          S )Nr   r   r   r   s    r   np_frombuffer_dtype_strr      s    =+....r   c                 j    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*     '%rx
(
(
(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/    
'%rx
(
(
(C=BL1111r   c                     | |u | |ufS r   r   ar   s     r   identity_usecaser      s    Faqj!!r   c                 *    |                                  S r   )nonzeror   s    r   array_nonzeror      s    99;;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    8A;;r   c                 .    t          j        | ||          S r   r   )r2   xys      r   
np_where_3r      s    8Aq!r   c                 *    |                                  S r   )itemr   s    r   
array_itemr          6688Or   c                 0    |                      |           d S r   )itemset)r   vs     r   array_itemsetr      s    IIaLLLLLr   c                      | j         | S r   sumr   argss     r   	array_sumr      s    15$<r   c                 .    |                      |          S ra   r   r   rc   s     r   array_sum_axis_kwsr      s    55d5r   c                 .    |                      |          S r~   r   )r   r9   s     r   array_sum_dtype_kwsr      s    55u5r   c                 0    |                      ||          S )Nrc   r9   r   )r   r9   rc   s      r   array_sum_axis_dtype_kwsr      s    55d%5(((r   c                 .    |                      ||          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        | |          }|                     d          }t          j        | d          }|||||fS )Nr   rb         )r   r   )r   rc   r   r   r2   des          r   array_sum_const_multir      sm     	sA
sAA
sDAQA
sAaAq=r   c                 .    |                      d          S )Nr   rb   r   r   s     r   array_sum_const_axis_neg_oner      s     55b5>>r   c                      | j         | S r   cumsumr   s     r   array_cumsumr      s    18T?r   c                 .    |                      |          S ra   r   r   s     r   array_cumsum_kwsr      s    888r   c                 *    t          j        |           S r   )r   r<   r   s    r   
array_realr          71::r   c                 *    t          j        |           S r   )r   r=   r   s    r   
array_imagr      r   r   c                 .    t          j        | ||          S r   r   clipr   a_mina_maxs      r   np_clip_no_outr      s    71eU###r   c                 0    t          j        | |||          S r   r   r   r   r   r   s       r   np_clipr      s    71eUC(((r   c                 2    t          j        | |||          S Nr   r   r   s       r   np_clip_kwargsr      s    71eU,,,,r   c                 0    |                      |||          S r   r   r   s       r   
array_clipr      s    66%$$$r   c                 2    |                      |||          S r   r   r   s       r   array_clip_kwargsr     s    66%C6(((r   c                 .    |                      ||          S r   r   r   s      r   array_clip_no_outr     s    66%r   c                 *    |                                  S r   )conjr   s    r   
array_conjr    r   r   c                 *    |                                  S r   )	conjugater   s    r   array_conjugater
    s    ;;==r   c                 *    t          j        |           S r   )r   uniquer   s    r   	np_uniquer    s    9Q<<r   c                 ,    |                      |          S r   dotr   s     r   	array_dotr    s    5588Or   c                 R    |                      |                               |          S r   r  r   s     r   array_dot_chainr    s    5588<<??r   c                 .    t          j        | |          S r~   r   r   )nr9   s     r   
array_ctorr    s    71E""""r   c                   .    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ej        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* Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8ed4             Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIdE ZJdF ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdL ZQdM ZReSdN             ZTdO ZU xZVS )PTestArrayMethodszA
    Test various array methods and array-related functions.
    c                 V    t          t          |                                            d S r   )superr  setUp)self	__class__s    r   r  zTestArrayMethods.setUp  s&    %%++-----r   c                    g d}d |D             }d |D             }t           j        t           j        t           j        t           j        t           j        f}|||||g}|}t          ||          D ]p\  }	}
 t          |	t           j        f          |          }dD ]D}|
D ]?}|dk    r|dz  }t          ||          } |||          }| 	                    ||           @Eq|}t          ||          D ]S\  }	}
 t          |	f          |          }|
D ]2}t          |          } ||          }| 	                    ||           3Td S )Ng      g      g      g            ?g      @      @g      @c                     g | ]}|d z  S )      ?      r   .0r   s     r   
<listcomp>z7TestArrayMethods.check_round_scalar.<locals>.<listcomp>  s    <<<1!v,<<<r   c                 ,    g | ]}t          |          S r   )intr%  s     r   r'  z7TestArrayMethods.check_round_scalar.<locals>.<listcomp>  s    222c!ff222r   )   r   r   r   
   )
r   float64r   r   r   
complex128zipr   r;   assertPreciseEqual)r  unary_pyfuncbinary_pyfuncbase_valuescomplex_values
int_valuesargtypes	argvaluespyfunctyvaluescfuncr   r   expectedgots                   r   check_round_scalarz#TestArrayMethods.check_round_scalar  s   EEE<<<<<22k222
M5=%+OU%57 +z#^5	 h	22 	; 	;JB+D"ek*++F33E& ; ; ; ;A!||R.q(;;H%8,,C++C::::;; h	22 	7 	7JBD"KK''E 7 7*1--eAhh''X66667	7 	7r   c                 F    |                      t          t                     d S r   )r=  r0   r.   r  s    r   test_round_scalarz"TestArrayMethods.test_round_scalar8  s    @@@@@r   c                 F    |                      t          t                     d S r   )r=  r%   r"   r?  s    r   test_around_scalarz#TestArrayMethods.test_around_scalar;  s    1ABBBBBr   c                      fdfd}t          j        g d          }t          j        t          j        f} ||||           t          j        t          j        f} ||||dz                                               d S )Nc                    |                     t          |                    }t          j        |                               t          |                    }|                                }t          |||           	                                  | |||           	                                 t          j        	                    ||           	
                    t                    5 } | |||dd                     d d d            n# 1 swxY w Y   	                    t          |j                  d           d S )Nr*  zinvalid output shape)r   r   r   
zeros_likerJ   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_round?  s`   --//C-$$++HUOO<<CHHJJEC5111""$$$E#x%%%%%'''J&&sE222"":.. .&c8SW---. . . . . . . . . . . . . . .S!12235 5 5 5 5s   ,DDDc                 h   t          | |          D ]\  }}t          j        |dd          t          j        t          j        |dd          f} t	          |                    } ||||d            ||||d           t          |t          j                  s ||dz  ||d           d S )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_typesO  s    &x::  e+dAs33U[+eQ446$VV,,E64:::E64:::!%77 Kv{D%DD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_array>  s    	5 	5 	5 	5 	5 	 	 	 	 	 	 IIIJJM5=1Hh///OU%56Hh&(9::: 	!!!!!r   c                 :    |                      t                     d S r   )r]  r)   r?  s    r   test_round_arrayz!TestArrayMethods.test_round_arrayh  s    ~.....r   c                 :    |                      t                     d S r   )r]  r   r?  s    r   test_around_arrayz"TestArrayMethods.test_around_arrayk  s    /////r   c                 :    |                      t                     d S r   )r]  r,   r?  s    r   test_round__arrayz"TestArrayMethods.test_round__arrayn  s    /////r   c                     t           t          fD ][} t          d          |          }d}|                     t          |          5   |d            d d d            n# 1 swxY w Y   \d S )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_arrayr  s    %7 	 	F&C&&&v..E;C''S99  d              	 	s   AA#	&A#	c                 .   t           t          g}t          dk     r|                    t                     |D ]^} t          d          |          }d}|                     t          |          5   |ddd           d d d            n# 1 swxY w Y   _d S )	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_outy  s    16!!LL))) 	# 	#G&C&&&w//EMC''S99 # #a""""# # # # # # # # # # # # # # #	# 	#s   .B		B	B	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          j        dt           j                  } ||t          j        d                      ||t           j                    ||t           j                    ||t           j                    ||t           j                    |||            |||            |
|t           j                   |                    d          } ||t           j                    ||t           j                    ||t           j                    |||            |
||            |
|t           j                   t          j        dt           j                                      d          j	        }t          j
        d          j	        d d dd d df         }|} ||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                                      d          } ||t           j                    ||t           j                    |||	            ||t           j                    ||t           j                    ||t           j                    |||            |||           t          j        dg          } ||t           j                                                     d S )Nc                 P    t          |          } t          |          |           S r   )r   r   r   r9   r7  s      r   runz-TestArrayMethods.test_array_view.<locals>.run  s%    $U++F4<<$$$r   c                     |                      |          }                                  | |          }                    ||           ~                                 d S r   )rV   rF  r/  rG  r   r9   r;  r<  rx  r  s       r   checkz/TestArrayMethods.test_array_view.<locals>.check  sd    xxH""$$$#c5//C##C222%%'''''r   c                                          t                    5 } | |           d d d            n# 1 swxY w Y                       t          |j                  d           d S )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  s    "":..  &C                             S!122AC C C C C   599c                    d}                     t                    5 } t          |          |            d d d            n# 1 swxY w Y                       t	          |j                  |                                t                    5 } | |           d d d            n# 1 swxY w Y                       t	          |j                  |           d S )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  sE   (C"":.. ,&&&&s+++, , , , , , , , , , , , , , ,S!122C888"":..  &C                             S!122C88888#   AA
AB))B-0B-c                    d}                     t                    5 } t          |          |            d d d            n# 1 swxY w Y                       t	          |j                  |                                t                    5 } | |           d d d            n# 1 swxY w Y                       t	          |j                  |           d S )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  sE   2C"":.. ,&&&&s+++, , , , , , , , , , , , , , ,S!122C888"":..  &C                             S!122C88888r  c                    d}                     t                    5 } t          |          |            d d d            n# 1 swxY w Y                       t	          |j                  |                                t                    5 } | |           d d d            n# 1 swxY w Y                       t	          |j                  |           d S )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  sE   ;C"":.. ,&&&&s+++, , , , , , , , , , , , , , ,S!122C888"":..  &C                             S!122C88888r  c                    d}                     t                    5 } t          |          |            d d d            n# 1 swxY w Y                       t	          |j                  |                                t                    5 } | |           d d d            n# 1 swxY w Y                       t	          |j                  |           d S )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  sG   #C "":.. ,&&&&s+++, , , , , , , , , , , , , , ,S!122C888"":..  &C                             S!122C88888r  r   r   ur   r   r      r   int16r      r   r   rn     *   r   abcdef)r   r9   int8r  rg   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 	C 	C 	C 	C 	C
	9 
	9 
	9 
	9 
	9 
	9
	9 
	9 
	9 
	9 
	9 
	9
	9 
	9 
	9 
	9 
	9 
	9	9 	9 	9 	9 	9 	9 hbgbg788hbh#rw899hbh#rx9:: 6!8 =% i"'***c28G$$%%%c28c27c2:c2<   c3c3c2=111 kk&!!c27c2:c2<   c3c3'''c2=111 	"BG,,,44V<<>&))+CCaC1H59eRWnbi(((%,,,%...%%%%eS)))eR]333nbg666 i"(+++CCaC0c29c2:c3c27+++c28,,,c28,,,c3'''c3''' ht28,,,44R88c29c2:c3sBG$$$sBH%%%sBH%%%sC   sC    hz""sBM222 	!!!!!r   c                 D   t           } t          t          j        dd         f          |          }t	          j        ddgt          j                  }|                    t          j                  } ||          } ||          }|                     ||           dS )zX
        Test .view() on A layout array but has contiguous innermost dimension.
        Nr!  rn  r   )	r   r   r   uint8r   r[  r   rV   rL  )r  r7  r:  origbytearyexpectr<  s          r   test_array_sliced_viewz'TestArrayMethods.test_array_sliced_view  s     #'ek!!!n&''//xa
333))BH%%eGnn%%%%%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                                      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          }                                 5 } |||           d d d            n# 1 swxY w Y                        dt          |j                             d}                                 5 }t!          d          d             } ||           d d d            n# 1 swxY w Y                        dt          |j                             d S )Nc                 P    t          |          } t          |          |           S r   )r   r   rw  s      r   rx  z/TestArrayMethods.test_array_astype.<locals>.run$  s%    &u--F4<<$$$r   c                     |                      |                              d          } | |          }                    ||           d S )NrU  order)r   rJ   r/  rz  s       r   r{  z1TestArrayMethods.test_array_astype.<locals>.check(  sP    zz%((--C-88H#c5//C##C22222r   r  r   r  r   r  r  rn  Fr   z#cannot convert from int32 to RecordTre  c                 V    t          j        dg                              |            d S Nr*  )r   r[  r   r   s    r   fooz/TestArrayMethods.test_array_astype.<locals>.fooK  s&    !$$U+++++r   z5array.astype if dtype is a string it must be constant)r   rg   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_astype"  s   	% 	% 	%	3 	3 	3 	3 	3 	3 i"'***c28G$$%%%c28c2:c2=!!!c9 i"'***226::<c2: i"(+++CCaC0c29 i"(+++#	c28 XRW~&''##%% 	E#rNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	-  ##%% 	$, ,  ,C		 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	M&*++	- 	- 	- 	- 	-s$   F55F9<F9>%H//H36H3c                     t                     fd}t          t          d                    } ||            |t          |                      |t	          |                      |t          j        d                     t          j        d                              d          } ||                                              	                    t                    5 } t          d                     d d d            n# 1 swxY w Y                        dt          |j                             d S )Nc                    t          j        |           } |           }                                  |           }                    ||           ~t	          j                                         t          j        |           |dz              ~t	          j                                         t          j        |           |                                            d S r  )sysgetrefcountrF  r/  gccollectrL  rG  )buf
old_refcntr;  r<  r:  r7  r  s       r   r{  z3TestArrayMethods.check_np_frombuffer.<locals>.checkV  s    --Jvc{{H""$$$%**C##C222 JLLLS_S11:>BBBJLLLS_S11:>>>%%'''''r   r     )r   r   s   xxxz.buffer size must be a multiple of element size)r   	bytearrayrangebytes
memoryviewr   rg   r  r\  rJ  rK  rL  rM  rN  )r  r7  r{  r   rR  r:  s   ``   @r   check_np_frombufferz$TestArrayMethods.check_np_frombufferR  s   V	( 	( 	( 	( 	( 	( 	(  eBii  aeAhhjmmbimmIbMM!!&))a 	!!!z** 	%fE)F##$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%IV-..	0 	0 	0 	0 	0s   .DDDc                 :    |                      t                     d S r   )r  r   r?  s    r   test_np_frombufferz#TestArrayMethods.test_np_frombufferv  s      /////r   c                 :    |                      t                     d S r   )r  r   r?  s    r   test_np_frombuffer_dtypez)TestArrayMethods.test_np_frombuffer_dtypey  s      !455555r   c                 :    |                      t                     d S r   )r  r   r?  s    r   test_np_frombuffer_dtype_strz-TestArrayMethods.test_np_frombuffer_dtype_str|  s      !899999r   c                 @   t          d          d             }|                     t                    5 } |t          t	          d                    d           d d d            n# 1 swxY w Y   t          |j                  }d}|                     ||           d S )NTre  c                 2    t          j        | |           d S r~   r   )r  r  s     r   funczETestArrayMethods.test_np_frombuffer_dtype_non_const_str.<locals>.func  s    M#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  s    	d				) 	) 
		) {++ 	0vD599%%w///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 V%&&"c6"""""s   'A''A+.A+c                     t          d          d             }d}|                     t          |          5 } |d            d d d            d S # 1 swxY w Y   d S )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  s    	d				& 	& 
		& :##K55 	DJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 R    d  fd} |d          } ||            ||                     d                      ||                     d          j                    ||                     d          d d d                     ||                     d                      ||                     d          j                    ||                     d          d d d                    t          j        dg                               d          } ||           d S )	Nc                 6    | j         j        |j         j        k    S r   )ctypesdatar   s     r   is_samez=TestArrayMethods.check_layout_dependent_func.<locals>.is_same  s    8=AHM11r   c                      t          t          |           f                    } |           } ||           }                    ||                                ||            ||                      d S r   )r   r   r/  rL  )r   r:  r;  r<  r  r7  r  s       r   	check_arrz?TestArrayMethods.check_layout_dependent_func.<locals>.check_arr  s    (D&++((00Evc{{H%**C##Hc222WWXs33WWS#5F5FGGGGGr   r  r  rn  rn  r   r   r   r   )r  rB   r   r[  )r  r7  facr  r   r  s   ``   @r   check_layout_dependent_funcz,TestArrayMethods.check_layout_dependent_func  sL   	2 	2 	2	H 	H 	H 	H 	H 	H 	H c"gg	#	#++f%%&&&	#++f%%'(((	#++f%%ccc*+++	#++i(()))	#++i((*+++	#++i((1-...hsmm##B''	#r   c                 :    |                      t                     d S r   )r  rG   r?  s    r   test_array_transposez%TestArrayMethods.test_array_transpose  s    ((99999r   c                 :    |                      t                     d S r   )r  rD   r?  s    r   test_array_TzTestArrayMethods.test_array_T      ((11111r   c                 :    |                      t                     d S r   )r  rK   r?  s    r   test_array_copyz TestArrayMethods.test_array_copy  s    ((44444r   c                 :    |                      t                     d S r   )r  rM   r?  s    r   test_np_copyzTestArrayMethods.test_np_copy  r  r   c                       fd}dddt          j        d          t          j        d          dfD ]} ||           d S )Nc                      t          t          |           f                    } |           } ||           }                    ||           d S r   r   r   r/  )r   r:  r;  r<  r7  r  s       r   check_scalarzETestArrayMethods.check_ascontiguousarray_scalar.<locals>.check_scalar  sX    &D&))&&v..EvayyH%((C##Hc22222r   r  g      E@y              E@T)r   r   r,  )r  r7  r  r   s   ``  r   check_ascontiguousarray_scalarz/TestArrayMethods.check_ascontiguousarray_scalar  si    	3 	3 	3 	3 	3 	3
 dCBBF 	 	ALOOOO	 	r   c                     d}|                      t          |          5 } t          t          d          f          |           d d d            d S # 1 swxY w Y   d S )Nrg  hello)rh  r	   r   r   )r  r7  rj  rR  s       r   check_bad_arrayz TestArrayMethods.check_bad_array  s    7##K55 	.%D&//$%%f---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   'AAAc                     |                      t                     |                     t                     |                     t                     d S r   )r  rP   r  r  r?  s    r   test_np_asfortranarrayz'TestArrayMethods.test_np_asfortranarray  sG    (():;;;.///++,=>>>>>r   c                     |                      t                     |                     t                     |                     t                     d S r   )r  rS   r  rP   r  r?  s    r   test_np_ascontiguousarrayz*TestArrayMethods.test_np_ascontiguousarray  sG    (()=>>>.///++,@AAAAAr   c                 z     t                     fd} |d            |d            |d           d S )Nc                 `     |           } |           }                     ||           d S r   r/  )r   r;  r<  r:  r7  r  s      r   r{  z=TestArrayMethods.check_np_frombuffer_allocated.<locals>.check  s9    ve}}H%,,C##C22222r   )r  r  r*  r   r*  )r   )r  r7  r{  r:  s   `` @r   check_np_frombuffer_allocatedz.TestArrayMethods.check_np_frombuffer_allocated  se    V	3 	3 	3 	3 	3 	3 	3
 	efir   c                 :    |                      t                     d S r   )r  r   r?  s    r   test_np_frombuffer_allocatedz-TestArrayMethods.test_np_frombuffer_allocated  s    **+BCCCCCr   c                 :    |                      t                     d S r   )r  r   r?  s    r   test_np_frombuffer_allocated2z.TestArrayMethods.test_np_frombuffer_allocated2  s    **+HIIIIIr   c                 h    d } fd}t          j        g d          } ||           t          j        g d          } ||            |d          } ||            ||                    d                      ||                    d          j                    ||                    d          d d d                     ||                    d                      ||                    d          j                    ||                    d          d d d                    t          j        g d	          } ||           d
dt          d          fD ]}t          j        |g                              d          }t          dk     r ||           A                     t          t          f          5 } t          t          |          f                     d d d            n# 1 swxY w Y   d}                     |t          |j                             d S )Nc                     t           j                            d           t           j                            |           }d||dk     <   t          d          ||dk    <   |S Nr  r4   g333333?nangffffff?r   randomseedfloatNr   s     r   r  z+TestArrayMethods.check_nonzero.<locals>.fac  P    INN2)""1%%C Cc	N"5\\Cc	NJr   c                      t          t          |           f                    } |           }d |D             }                     ||           |           d S )Nc                 6    g | ]}|                                 S r   rI   )r&  r   s     r   r'  zETestArrayMethods.check_nonzero.<locals>.check_arr.<locals>.<listcomp>  s     333Q333r   r  )r   r:  r;  r7  r  s      r   r  z1TestArrayMethods.check_nonzero.<locals>.check_arr  sf    (D&++((00Evc{{H33(333H##EE#JJ99999r   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   	 	 		: 	: 	: 	: 	: 	: h}}}%%	#hyyy!!	#c"gg	#	#++f%%&&&	#++f%%'(((	#++f%%ccc*+++	#++i(()))	#++i((*+++	#++i((1-...h---..	#sE%LL) 		: 		:A(A3--''++Cv%%	#&&
K'@AA 1V(D&++((0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1Ac3v'7#8#89999		: 		:s   	'G<<H 	H 	c                 :    |                      t                     d S r   )r  r   r?  s    r   test_array_nonzeroz#TestArrayMethods.test_array_nonzero
  s    =)))))r   c                 :    |                      t                     d S r   )r  r   r?  s    r   test_np_nonzeroz TestArrayMethods.test_np_nonzero      :&&&&&r   c                 :    |                      t                     d S 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	        
                    d           d	 fd	}	 fd}t          j        g d          } ||           t          j        g d          } ||            |d	          } ||            ||                    d
                      ||                    d
          j                    ||                    d
          d d d                     ||                    d                      ||                    d          j                    ||                    d          d d d                     ||                    d          d            ||                    d          j        d            ||                    d          d d d         d           ddt          d          fD ]5}t          j        |g                              d          } ||           6dD ]} ||           d S )Nc                     t           j                            d           t           j                            |           }d||dk     <   t          d          ||dk    <   |S r  r  r  s     r   r  z-TestArrayMethods.test_np_where_3.<locals>.fac  r  r   CFrU  r  Fc                    t           j                                       |dk    rQt          j        | d         |          }t          j        | d         |          }|                     |          } nTt          j        | d         t                              }t          j        | d         t                              }|                    d           |                    d            t          t          |           t          |          t          |          f          	          } 	| ||          } || ||          }
	                    ||           d S )NFr   )r9   r  r*  r  r   	   )
r   r  shufflerE  rJ   nextr   r   r   r/  )r   layoutr   r   r:  r;  r<  _typeslayoutsr7  r  s          r   r  z3TestArrayMethods.test_np_where_3.<locals>.check_arr"  s;   If%%%M#VAYfEEEM#VAYfEEEhhVh,,M#VAYd7mmLLLM#VAYd7mmLLLFF1IIIFF1III=D&++vayy&))<==fEEEvc1a((H%Q""C##C22222r   c                 v   d}d}t           j                                        d         d          } d         d          } t          t	          |           t	          |          t	          |          f                    } | ||          } || ||          }                    ||           d S )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_scal2  s    AAIf%%%q	!Aq	!A>D&,,q		6!99=>>vFFEvdAq))H%a##C##C2222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  r%  r   r   r   r!  r"  r7  s
   `      @@@r   test_np_where_3z TestArrayMethods.test_np_where_3  s   	 	 	 (((BHbj"*bl-! 		r	3 	3 	3 	3 	3 	3 	3 	3 	3 		3 		3 		3 		3 		3 		3 		3 h}}}%%	#hyyy!!	#c"gg	#	#++f%%&&&	#++f%%'(((	#++f%%ccc*+++	#++i(()))	#++i((*+++	#++i((1-...	#++i((5555	#++i((*37777	#++i((1-c::::sE%LL) 	 	A(A3--''++CIcNNNN- 	 	AJqMMMM	 	r   c                 
    t            t          d                     fd} fd} |            D ]H}|dk    ddf} ||           |dk     t          j        df} ||           |dk    ddf} ||           Id S )	NTre  c                 H     |  } |  }                     ||           d S r   r  )r   r;  r<  r:  r7  r  s      r   check_okzGTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.check_okZ  s5    vt}H%,C##C22222r   c               3     K   t          j        ddd          } j                            |            | V  |                     ddd          V  |                     ddd          V  |                     ddd          d d d         V  d S )	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_  s      B2&&AK"""GGG))Aq!$$$$$))Aq),,,,,))Aq!$$TTrT******r   r   r*  y      ?      @F)r   r   r   r   )r  r*  r/  r   paramsr:  r7  s   `    @@r   $test_np_where_3_broadcast_x_y_scalarz5TestArrayMethods.test_np_where_3_broadcast_x_y_scalarV  s    "T"""6**	3 	3 	3 	3 	3 	3 	3
	+ 	+ 	+ 	+ 	+  	 	A!eQ]FHV!eRVV,FHV!eT5)FHV	 	r   c                     	
 t           
 t          d          
          		
 fd}d }d } |            D ]9} |            D ],}t          j        |          }||k    }|||f} ||           -:d S )NTre  c                     | \  }}} |||          } |||          }                     ||            |||          } |||          }                     ||           d S r   r  )	r   	conditionr   r   r;  r<  r:  r7  r  s	         r   r*  zJTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.check_oku  s    "OIq!viA..H%	1a((C##C222 viA..H%	1a((C##C22222r   c               3     K   t          j        d                              dd          } | V  | dz  V  t          j        |           V  | d d d         V  t          j        ddd                              ddd	          d
z  V  d S )Nr  r   g?r   r+  <   r   r                 ?)r   rg   r  rO   r.  r   s    r   array_permutationszTTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.array_permutations  s      	!$$Q**AGGGc'MMM#A&&&&&DDbD'MMM+c2r**221a;;b@@@@@@r   c               3   F   K   dV  dV  t           j        V  dV  dV  d S )Nr   g333333@Ty       @      @)r   r   r   r   r   scalar_permutationszUTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.scalar_permutations  s9      GGGIII&LLLJJJLLLLLr   )r   r   r   mean)r  r*  r:  r<  r   r   x_meanr4  r0  r:  r7  s   `        @@r   'test_np_where_3_broadcast_x_or_y_scalarz8TestArrayMethods.test_np_where_3_broadcast_x_or_y_scalarq  s    "T"""6**
	3 
	3 
	3 
	3 
	3 
	3 
	3	A 	A 	A	 	 	 $#%% 	! 	!A((** ! !J	#Q*    	!	! 	!r   c                 	   t           } t          d          |          }t          t          j        t          j        t          j        t          j        t          j        g}|D ]x}t          j	        dt                    }t          j
                             || |d           |d                     |d                     t          j
                             ||  |d           |d                     |d                     t          j
                             |d |d           |d                     |d                     t          j
                             |d |d           |d                     |d                     t          j        |                              |          }t          j        |          }|                    |          }d|d<   |d         |d<   t          j
                             ||||          |           t          j
                             ||||          |           t          j
                             ||||d                   |           t          j
                             |||d         |          |           t          j
                             ||d d d	         |d d d	         |d d d	                   |d d d	                    t          j
                             ||dd d	         |dd d	         |dd d	                   |dd d	                    t          j
                             ||d d d
         |d d d
         |d d d
                   |d d d
                    t          j
                             ||dd d
         |dd d
         |dd d
                   |dd d
                    t          j
                             ||d d d         |d d d         |d d d                   |d d d                    t          j
                             ||d d d         |d d d         |d d d                   |d d d                    t          j
                             ||dd d         |dd d         |dd d                   |dd d                    zd S )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  sz   "T"""6** RXrx29bmL 	S 	SB$'''AJ##EE1bbeeRRUU$;$;RRUUCCCJ##EE1"bbeeRRUU$;$;RRUUCCCJ##EE$1rr!uu$=$=rr!uuEEEJ##EE%A1$>$>1FFFQ&&r**Aa  AAAaDQ4AaDJ##EE!QNNA666J##EE!QNNA666J##EE!Q!$5$5q999J##EE!QqT1$5$5q999J##EE!CCaC&!CCaC&!CCaC&$A$A1SSqS6JJJJ##EE!ADqD'1QTT7AaddG$D$Da1gNNNJ##EE!CCaC&!CCaC&!CCaC&$A$A1SSqS6JJJJ##EE!ADqD'1QTT7AaddG$D$Da1gNNNJ##EE!DDbD'1TTrT7AdddG$D$Da"gNNNJ##EE!DDbD'1TTrT7AdddG$D$Da"gNNNJ##EE!AErE(AaeeHa2h$G$G15b5RRRR+	S 	Sr   c                    t           } t          d          |          }ddg}t          j        d          }t          j        d          } |t          j        |          d d t          j        f         ||          }t          j                            |d         |d                    t          j                            |d         |d                    |j	        }|j	        } ||||          }t          j                            |d d df         |d d df                    t          j                            |d d df         |d d df                    d S )NTre  F)rn     r   r*  )
r   r   r   r  r   r[  newaxisrH  assert_array_equalrB   )r  r7  r:  r2   r   r   rI  s          r   test_np_where_numpy_ndimz)TestArrayMethods.test_np_where_numpy_ndim  s7   "T"""6**5MHWGGE"(1++aaa
l+Q22

%%adAaD111

%%adAaD111CCE!QNN

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

%%a!fa!f55555r   c                 d   t           } t          d          |          }t          j        g d          }t          j        d          }t          j        g dt          j                  }t          j        g dt          j                  }t          j                             ||||          |           |                    t          j	                  }|                    t          j
                  }t          j                             ||||          |           |                    t                    }d||d	k    <   t          j                             ||||          |           |d	k    }d
||d	k    <   d	||<   t          j                             ||||          |           d S )NTre  )FTFFFFTFFFTFr*  )      @r4         @       @            r4         $      $@      ?r4   rR  r   )rQ  rX  rR  rS  rT  rU  rX  rV  rW  rX  rX  rR  i
r   iau)r   r   r   r[  r  r,  rH  rF  r   r   r  r)  )r  r7  r:  r2   r   r   rI  tmpmasks           r   test_np_where_numpy_dtype_mixz.TestArrayMethods.test_np_where_numpy_dtype_mix  s   "T"""6**H 0 0 0 1 1IaLLHJJJJ( ( (HJJJ:' ' '

aA222HHRZ  HHRX

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

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

aA22222r   c                    t           } t          d          |          }ddg}t          j        d          }t          j        d          }|                                  |                     t          d          5   ||||           d d d            n# 1 swxY w Y   |                     t          d          5   ||d         ||           d d d            d S # 1 swxY w Y   d S )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  sh   "T"""6**4LGFOOGFOO!!!##J0MNN 	 	E!QNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##J0MNN 	 	E!A$1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   <BBB<CC!$C!c                 X   t           } t          d          |          }d}|                     t          |          5   |d dd           d d d            n# 1 swxY w Y   d}|                     t          |          5   |ddd           d d d            n# 1 swxY w Y   d	}|                     t          |          5   |ddd
           d d d            n# 1 swxY w Y   d}|                     t          |          5   |dd d            d d d            d S # 1 swxY w Y   d S )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  sH   "T"""6**;##K55 	 	E$1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 @##K55 	! 	!E!Wa   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! @##K55 	! 	!E!Q   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 3##K55 	! 	!E!T4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!sG   AAA BB!BCC #C DD#&D#c                 D   t           d d f}|D ] t          d                    fd} |d            |d            |d            |d	            |d
            |t          dd                      |t          j        d                     d S )Nc                 ,    t          j        | d          S )Nr+  rf   r9  s    r   <lambda>z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>  s    bi2&& r   c           	      d    t          j        dt          dt          |                               S )NrB  r*  rz   )r   rg   maxr5   r9  s    r   ra  z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>  s#    biAs1vv777 r   Tre  c                 t     |           } |           }t           j                            ||           d S r   r   rH  rI  )rh   r;  r<  r:  r7  s      r   r*  z4TestArrayMethods.test_arange_1_arg.<locals>.check_ok  s;    !6$<<eDkk
**8S99999r   r   r*  r   g      @rC  )ri   r   r?   r   r  )r  all_pyfuncsr*  r:  r7  s      @@r   test_arange_1_argz"TestArrayMethods.test_arange_1_arg	  s     &&77
 " 	! 	!F&C&&&v..E: : : : : :
 HQKKKHQKKKHQKKKHSMMMHRLLLHWQ]]###HRWQZZ    	! 	!r   c                 h   d }t           t          t          t          d d f}|D ]} t	          d          |          } |dd||            |dd||            |d	d
||            |d
d	||            |dd ||           t
          dk     rT |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     rD |dt          j        ||            |t          j        d          t          j        ||           d S d S )Nc                 v     || |          } || |          }t           j                            ||           d S r   re  )rh   rk   r7  r:  r;  r<  s         r   r*  z4TestArrayMethods.test_arange_2_arg.<locals>.check_ok"  sB    vdD))H%d##CJ&&x55555r   c                 .    t          j        | |d          S )Nr   rf   r   r   s     r   ra  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>,  s    1a++ r   c                 0    t          j        d||           S )Nrn  rz   rf   rk  s     r   ra  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>-  s    1aa000 r   Tre  r   r   r         ?r   rm  r*  rS  rB  r   r+  )rl   r   rv   r|   r   r   r?   r   r   r   r   r  r-  r   )r  r*  rf  r7  r:  s        r   test_arange_2_argz"TestArrayMethods.test_arange_2_arg!  s   	6 	6 	6  ++00
 " 
	F 
	FF&C&&&v..EHRFE***HRVU+++HQVU+++HS!VU+++HQfe,,,v%%A1vuEEEA1vuEEE""T"""6**BJ...bh...D&%(((T651116!!HR666HR\"%%r}feDDDDD "!r   c           	          t           j                            d          ot           j        dk    d fd	}t          t
          t          fD ]} 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     r+ |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     rF |ddt          j        ||            |dt          j        d          t          j        ||           d S d S )Nwin32l        Fc                      || ||          } || ||          }t           j                            ||           	s"                    |j        |j                   d S d S r   )r   rH  rI  rL  r9   )
rh   rk   rn   r7  r:  check_dtyper;  r<  r  	windows64s
           r   r*  z4TestArrayMethods.test_arange_3_arg.<locals>.check_okK  su    vdD$//H%dD))CJ&&x555  <  ;;;;;< <r   Tre  r   r   r*  rm  r   r   r6  r,  rn  r   rn  皙?rp  rm  rS  r  rB  r+  r&  )r  platform
startswithmaxsizero   r   r   r   r   r  r  r   r  r   r?   r   r   r-  r   )r  r*  r7  r:  i8rt  s   `    @r   test_arange_3_argz"TestArrayMethods.test_arange_3_argH  s   L++G44Nw9N		< 	< 	< 	< 	< 	< 	< #$46OP 	I 	IF&C&&&v..EHQ1fe,,,HRQ...HQR///HS!Q...HQ3...HQ4///HQdFE222HRWQZZRWQZZGGGHRWQZZ!bhqkk65IIIBHRRUUBBqEE22a55&%>>>HRXa[[""Q%%AtDDDv%%GAqMM71a==&%HHH""T"""6**Arz65111a65111AtVU+++RXa[[$tDDD6!!HRR]FE:::HQR(("-GGGG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     rL |dddt          j                    |dt          dd          t          dd          t          j                   d S )NTre  c                      | |||          } | |||          }t           j                            ||           d S r   re  )rh   rk   rn   rq   r;  r<  r:  r7  s         r   r*  z4TestArrayMethods.test_arange_4_arg.<locals>.check_okw  sK    !6$dD99eD$d33
**8S99999r   r   r   r*  rm  r   r   r6  r,  rn  r   rn  rp  rm  ru  )
rr   r   r   r   r,  r   r   r   r-  r?   )r  r*  r:  r7  s     @@r   test_arange_4_argz"TestArrayMethods.test_arange_4_args  s7   "$CD 	I 	IF&C&&&v..E: : : : : :
 HQ1bj)))HRQ)))HQR,,,HS!Q%%%HQ4&&&HQdD)))v%%AsBM222GAqMM71a=="-HHH!	I 	Ir   c           	         |                                   d d d g}d d g}|D ]X}|                     t                    5 } t          d          |          } |d           d d d            n# 1 swxY w Y   Y|D ]Y}|                     t                    5 } t          d          |          } |dd	           d d d            n# 1 swxY w Y   Zt          } t          d          |          }||fD ]}d
t          j        d          dfdfD ]}t          t          f}|                     |          5 }t          j
                    5  t          j        d            ||  d d d            n# 1 swxY w Y   |                     dt          |j                             d d d            n# 1 swxY w Y   d S )Nc                 ,    t          j        |           S rt   rf   r9  s    r   ra  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>      biQ''' r   c                 ,    t          j        |           S ry   rf   r9  s    r   ra  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  r  r   c                 ,    t          j        |           S r~   rf   r9  s    r   ra  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    bia((( r   c                 .    t          j        | |          S r   rf   rk  s     r   ra  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    222 r   c                 .    t          j        | |          S )N)ru   r9   rf   rk  s     r   ra  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    333 r   Tre  rn  rp  r*  r   )r*  rn  r   ignorezMaximum allowed size exceeded)r\  rJ  r	   r   ro   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233

 " 	 	F"";// 6*T***622a               " 	 	F"";// 6*T***622a              
 "T"""6**%! 	7 	7Arx{{A.	: 
7 
7 %6z#B &&'788 7F!022 # # -h7776

# # # # # # # # # # # # # # # MM"A #F$4 5 57 7 77 7 7 7 7 7 7 7 7 7 7 7 7 7 7	
7	7 	7sZ   %A22A6	9A6	&CC	C	>F7E8	,F78E<<F7?E< +F77F;>F;c                     t          d          d             }d}|                      ||          |                    |                     d S )NTre  c                 4    t          j        dd| z   |           S )Nr   r*  rf   rz   s    r   r  z2TestArrayMethods.test_arange_accuracy.<locals>.foo  s    9QD$///r   g[R֯?)r   r/  rs  )r  r  r   s      r   test_arange_accuracyz%TestArrayMethods.test_arange_accuracy  s^     
d				0 	0 
		0 !AA77777r   c                 .    t            t          d                     fd} fd}                                   |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                      d S )	NTre  c                 `     |           } |           }                     ||           d S r   r  )r6   r;  r<  r:  r7  r  s      r   r*  z,TestArrayMethods.test_item.<locals>.check_ok  s9    vc{{H%**C##C22222r   c                                          t                    5 } |            d d d            n# 1 swxY w Y                       dt          |j                             d S )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  s    "":.. &c


              MMZf.//1 1 1 1 1s   488r!                ?r*  rn  )r   r   r\  r   r   r-  r[  r  r  r*  r}  r:  r7  s   `  @@r   	test_itemzTestArrayMethods.test_item  s9   "T"""6**	3 	3 	3 	3 	3 	3 	3
	1 	1 	1 	1 	1 	1 	!!! 	SE""###x(()))#$   C!!!	"(Aq6""###	"(2,,r   c                     t            t          d                     fd} fd}                                   |t          j        dg          d            |t          j        dgg          d            |t          j        d          d            |t          j        dd	g                      |t          j        g                      d S )
NTre  c                     |                                  }|                                  } ||            ||                               ||           d S r   )rJ   r/  )r   r   r;  r<  r:  r7  r  s       r   r*  z/TestArrayMethods.test_itemset.<locals>.check_ok  sZ    vvxxH&&((CF8QE#qMMM##C22222r   c                                          t                    5 } | d           d d d            n# 1 swxY w Y                       dt          |j                             d S )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  s    "":.. &a              MMKf.//1 1 1 1 1r~  r!  r  r  r*  rn  )r   r   r\  r   r   r-  r[  r  s   `  @@r   test_itemsetzTestArrayMethods.test_itemset  s   "T"""6**	3 	3 	3 	3 	3 	3 	3	1 	1 	1 	1 	1 	1 	!!! 	SE""B'''x(("---####	"(Aq6""###	"(2,,r   c           	      H   t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}d |D             }t          j
        t          j        t          j        g}d |D             }|D ]t}|D ]o}|                     d                    |j                            5  |                      ||           ||                     ddd           n# 1 swxY w Y   pudS )zK test sum over a whole range of dtypes, no axis or dtype parameter
        Tre  c                     g | ]C}t          j        d |          t          j        d|          t          j        d|          dz  gDS rB  rp  r   r   r   r*  )rB  r   r  r&  	arr_dtypes     r   r'  z-TestArrayMethods.test_sum.<locals>.<listcomp>  ^     ) ) )  W_i00WQ	""WVY''",.) ) )r   c                 b    g | ],}t          j        d |          t          j        d|          g-S r  r*  r  r  s     r   r'  z-TestArrayMethods.test_sum.<locals>.<listcomp>  J     . . .  W_i00WQ	""$. . .r   zTest np.sum with {} input N)r   r   r   r,  r   r  r   r   r-  timedelta64r  r  r  subTestformatr9   r/  )r  r7  r:  
all_dtypesall_test_arraysunsigned_dtypesarr_listr   s           r   test_sumzTestArrayMethods.test_sum  s    "T"""6**j"*bhlBM2>C
) ) (	) ) ) 9bi:. . -. . .
 ( 	E 	EH E E\\">"E"Eci"P"PQQ E E++FF3KKsDDDE E E E E E E E E E E E E E EE	E 	Es    )DDDc                 b   t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        t          g}d |D             }t          j	        t          j
        g}|d |D             z  }|D ]}|D ]}dD ]}|t          |j                  dz
  k    r|                     d                    |j                            5  |                      |||           |||                     d	d	d	           n# 1 swxY w Y   d	S )
z< test sum with axis parameter over a whole range of dtypes  Tre  c                     g | ]C}t          j        d |          t          j        d|          t          j        d|          dz  gDS r  r  r  s     r   r'  z7TestArrayMethods.test_sum_axis_kws1.<locals>.<listcomp>  r  r   c                 b    g | ],}t          j        d |          t          j        d|          g-S r  r  r  s     r   r'  z7TestArrayMethods.test_sum_axis_kws1.<locals>.<listcomp>  J     . . .  W_i00WQ	""$. . .r   r   r*  rn  r*  #Testing np.sum(axis) with {} input rb   N)r   r   r   r,  r   r  r   r-  TIMEDELTA_Mr  r  lenr   r  r  r9   r/  )	r  r7  r:  r  r  r  r  r   rc   s	            r   test_sum_axis_kws1z#TestArrayMethods.test_sum_axis_kws1  s   #"T"""6**j"*bhm[2
) ) (	) ) ) 9bh/ . . -. . . 	.
 ( 	G 	GH G G% G GDc#)nnQ...  '//5vci/@/@B B G G//s0F0F0F05c0E0E0EG G GG G G G G G G G G G G G G G GGG	G 	Gs   (-D!	!D%(D%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 |D             }t          j        g}|d |D             z  }|D ]}|D ]}dD ]}	|	t          |j
                  d	z
  k    r|                     d
                    |j                            5   |||	          }
 |||	          }t          |t          j                  rS|                     |
                    ||j                           |                    ||j                                      n|                     |
|           ddd           n# 1 swxY w Y   
dS )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  c                     g | ]C}t          j        d |          t          j        d|          t          j        d|          dz  gDS r  r  r  s     r   r'  z7TestArrayMethods.test_sum_axis_kws2.<locals>.<listcomp>4  r  r   c                 b    g | ],}t          j        d |          t          j        d|          g-S r  r  r  s     r   r'  z7TestArrayMethods.test_sum_axis_kws2.<locals>.<listcomp>;  r  r   r  r*  r  rb   N)r   r   r   r   r9   r  r  r  r  r  r   r  r  r>   ndarrayr/  r   rL  )r  r7  r:  r  
out_dtypesr  r  r  r   rc   npy_res	numba_ress               r   test_sum_axis_kws2z#TestArrayMethods.test_sum_axis_kws2$  so    $"T"""6**hZ
hw''28H3E3Eryhw''h{++RXk-B-BD
) ) (	) ) ) 9+ . . -. . . 	.
 ( 	A 	AH A A% A ADc#)nnQ...  '//5vci/@/@B B 
A 
A"(&4"8"8"8$)E#D$9$9$9	%i<< A 33 'z#)/D E E ) 0 0CI1F G GI I I I
 !,,Wi@@@
A 
A 
A 
A 
A 
A 
A 
A 
A 
A 
A 
A 
A 
A 
AAA	A 	As   :BG$	$G(+G(c                    t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        t          j        g}d |D             }t          j	        t          j
        t          j        g}d |D             }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 ]v}	d                    |j        |	          }
|                     |
          5  |                      |||	           |||	                     ddd           n# 1 swxY w Y   wdS )z< test sum with dtype parameter over a whole range of dtypes Tre  c                     g | ]C}t          j        d |          t          j        d|          t          j        d|          dz  gDS r  r  r  s     r   r'  z7TestArrayMethods.test_sum_dtype_kws.<locals>.<listcomp>W  r  r   c                 b    g | ],}t          j        d |          t          j        d|          g-S r  r  r  s     r   r'  z7TestArrayMethods.test_sum_dtype_kws.<locals>.<listcomp>^  r  r   r,  r   r  r   r  r  rD  r   r-  z*Testing np.sum with {} input and {} outputr   N)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   	out_dtypesubtest_strs              r   test_sum_dtype_kwsz#TestArrayMethods.test_sum_dtype_kwsQ  s   $"T"""6**j"*bhlBM3
) ) (	) ) ) 9bi:. . -. . .
 hy))BJ<hy))BJ
+Chw''"*bh
)Khw''"*bh
BH)Uhx((2:rx*Lhx((2:rx*@hv&&RXrz28UWU](^h{++blBM-Jh|,,r}o?
 ( 	Q 	QH Q Q!+CI!6 Q QI#O$*F39i$@$@  k22 Q Q 33FF3i4P4P4P49E#Y4O4O4OQ Q QQ Q Q Q Q Q Q Q Q Q Q Q Q Q QQQ	Q 	Qs   -K	KKc                    t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        t          j        g}d |D             }t          j	        t          j
        t          j        g}d |D             }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
  k    rd                    |j        |	          }|                     |          5   |||
|	          } |||
|	          }|                     ||           ddd           n# 1 swxY w Y   dS )zF test sum with axis and dtype parameters over a whole range of dtypes Tre  c                     g | ]C}t          j        d |          t          j        d|          t          j        d|          dz  gDS r  r  r  s     r   r'  z<TestArrayMethods.test_sum_axis_dtype_kws.<locals>.<listcomp>|  r  r   c                 b    g | ],}t          j        d |          t          j        d|          g-S r  r  r  s     r   r'  z<TestArrayMethods.test_sum_axis_dtype_kws.<locals>.<listcomp>  r  r   r,  r   r  r   r  r  rD  r   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  r9   r  r   r  r  r/  )r  r7  r:  r  r  r  r  r  r   r  rc   r  py_resnb_ress                 r   test_sum_axis_dtype_kwsz(TestArrayMethods.test_sum_axis_dtype_kwsv  s   )"T"""6**j"*bhlBM3
) ) (	) ) ) 9bi:. . -. . .
 hy))BJ<hy))BJ
+Chw''"*bh
)Khw''"*bh
BH)Uhx((2:rx*Lhx((2:ry*Ahv&&RXrz28UWU](^h{++blBM-Jh|,,r}o?
 ( 	D 	DH 
D 
D!+CI!6 	D 	DI ) D D#ci..1"444$'T(.sy)(D(D $!\\+66 D D%+VCd)%L%L%LF%*U3T%K%K%KF 33FFCCCD D D D D D D D D D D D D D DD	D
D	D 	Ds   :3K99K= K=c                 6   t           } t          d          |          }t          j        }t          j        d          }|                      ||d|           ||d|                     |                      ||d|           ||d|                     dS )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**
GO$$q!U 3 3 %a!U 3 3	5 	5 	5 	q!U 3 3 %aE 2 2	4 	4 	4 	4 	4r   c                    t           } t          d          |          }t          j        d          }|                      ||d           ||d                     t
          } t          d          |          }t          j        d          }|                      ||d           ||d                     d S )NTre  rW  r   rb   r   )r   r   r   rg   r/  r   r  r7  r:  r   s       r   test_sum_1d_kwsz TestArrayMethods.test_sum_1d_kws  s    #"T"""6**IcNNqq 1 1 1553C3C3CDDD-"T"""6**IcNNqr 2 2 2EE!"4E4E4EFFFFFr   c                    t           } t          d          |          }t          j        d          }d}|                      |||           |||                     d}|                      |||           |||                     d S )NTre  )r   r   r   rp  rB  r  r*  rn  )r   r   r   r   r/  )r  r7  r:  r   rc   s        r   test_sum_constzTestArrayMethods.test_sum_const  s    &"T"""6**g())sD 1 155d3C3CDDDsD 1 155d3C3CDDDDDr   c                 4   |                                   t          } t          d          |          }t          j        d          }t          j        d          }|                     t                    5   ||d           d d d            n# 1 swxY w Y   |                     t                    5   ||d           d d d            n# 1 swxY w Y   |                     t                    5   ||d           d d d            d S # 1 swxY w Y   d S )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**GO$$GFOOz** 	 	E!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	E!RLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 z** 	 	E!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   7BBB5CCC3DDDc                 L   |                                   t          d          d             }t          j        d          }|                      ||          |                    |                     t          j        d          }|                      ||          |                    |                     t          j        d          }|                     t                    5 } ||           d d d            n# 1 swxY w Y   d}|                     |t          |j
                             |                     t                    5 }|                    |           d d d            n# 1 swxY w Y   |                     dt          |j
                             d S )	NTre  c                 .    |                      d          S )NrC  rb   r   rC   s    r   r  z5TestArrayMethods.test_sum_const_negative.<locals>.foo  s    777###r   )r*  rn  r   r   )r*  rn  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				$ 	$ 
		$ GL!!AA777GIAA777GFOO// 	6CFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	5fc&"233444z** 	fKKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	os6+;'<'<=====s$   (D  DDE11E58E5c                    t           } t          d          |          }t          j        d          }|                      ||           ||                     |                     t                    5   ||d           d d d            n# 1 swxY w Y   t          } t          d          |          }|                     t                    5   ||d           d d d            d S # 1 swxY w Y   d S )NTre  )rn  r   r*  rb   )r   r   r   r   r/  rJ  r	   r   r  s       r   test_cumsumzTestArrayMethods.test_cumsum  sz   "T"""6**GFOOq		5588444{++ 	 	E!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ""T"""6**{++ 	 	E!!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   7BBBC00C47C4c                 D   
 t            t          d                    

 fd}g }|                    d           |                    d           |                    d           |                    d           |                    t          j        g d                     |                    t          j        g d	g d
gd                     |                    t          j        g d	g d
gg                     |                    t          j        ddggddggddgggg                     |                    g d           |                    d	           |                    d           |                    d           t          g d          }t          j        t          j        t          j        fD ]K}t          j	        d|          
                    dt          |                    }|D ]} |||           Lt          j	        d|          
                    dt          |                    }|j        }|| dz
  t          j        |          t          j        | dz
            |g| dz
  gg}|D ]@}	                     t                    5   
||	           d d d            n# 1 swxY w Y   A                     t                    5   
|dg           d d d            n# 1 swxY w Y                                     d S )NTre  c                      | |          } | |          }                     ||           t          |d          r%                    |j        |j        k               d S d S )Nr  )r/  hasattrrL  r  )r   indr;  r<  r:  r7  r  s       r   r{  z)TestArrayMethods.test_take.<locals>.check  sx    vc3''H%S//C##Hc222x)) >  39!<=====> >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-  rg   r  r  sizerJ  
IndexErrorr	   r\  )r  r{  test_indicesr"  r  rU  r  szAillegal_indicesr   r:  r7  s   `         @@r   	test_takezTestArrayMethods.test_take  s   "T"""6**	> 	> 	> 	> 	> 	> 	> AABBBH%5%5%566777BHiii%<CHHHIIIBHyyy***&=%>??@@@BHAx2q'aVH&E%FGGHHH,,,---I&&&3444EFFF((:rx7 	 	B	"B'''//d7mm/LLA#  a Ib###++F$w--+HHfq"(3--3$(9K9K5C4!8*.  	 	A"":..  a               {++ 	 	E!cUOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!!!!s$   (KK	K	'LLLc                 t    t            t          d                     fd}t          j        d          }t          j        t          j        fD ]} || |d                     t          j        d                              dd          }t          j        t          j        fD ]} || |d                     t          j        d	t          j        
                              dddd          }t          j        t          j        t          j        fD ]} || |d                     d S )NTre  c                    t          j        |           } ||          }                    |d u            t          j        |           } ||          }                    |d u                                ||           d S r   )r   rJ   
assertTruer/  )	r   r!   r;  ervr<  grvr:  r7  r  s	         r   r{  z)TestArrayMethods.test_fill.<locals>.check4  s    ws||H&3''COOC4K((('#,,C%S//COOC4K(((##Hc22222r   r*  r+  r  r   r   0   r   rn  )	r   r   r   rg   r,  r  r  r   r-  )r  r{  rU  r   r:  r7  s   `   @@r   	test_fillzTestArrayMethods.test_fill1  sB   "T"""6**	3 	3 	3 	3 	3 	3 	3 IaLL*bh' 	 	AE!QQrUUOOOO IbMM!!!Q''*bh' 	 	AE!QQrUUOOOO Ib---55aAqAA*bmRX6 	 	AE!QQrUUOOOO	 	r   c                 x   t           } t          d          |          }t          j        dd          }t          j                             ||           ||                     t          j        ||          \  }}|d|z  z   }t          j                             ||           ||                     d S NTre  r6  r+  r8  )r   r   r   r.  rH  rF  meshgridr  r7  r:  r   r   zs         r   	test_realzTestArrayMethods.test_realM      "T"""6**KR  

q		5588444{1a  11H

q		558844444r   c                 x   t           } t          d          |          }t          j        dd          }t          j                             ||           ||                     t          j        ||          \  }}|d|z  z   }t          j                             ||           ||                     d S r  )r   r   r   r.  rH  rF  r  r  s         r   	test_imagzTestArrayMethods.test_imagX  r  r   c                     fd}t           j                             ||            t          d          |          |                     d S )Nc                 B    t          j         |                     S r   )r   expm1)r   r   r   r  s    r   lower_clip_resultzHTestArrayMethods._lower_clip_result_test_util.<locals>.lower_clip_resultf  s!    8DDE5112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_utilc  s    	3 	3 	3 	3 	3 	3 	3 	
&&a  1C011!44	6 	6 	6 	6 	6r   c                 (   t           t          t          t          f}t          t
          f}t          j        ddd          t          j        ddd                              ddd          fD ]}||z   D ]} t          d	          |          }d
}| 
                    t          |          5   ||d d            d d d            n# 1 swxY w Y   t          j                             ||dd            ||dd                      t          j                             ||d d           ||d d                     t          j                             ||dd           ||dd                     ||v rt          j        |          }t          j        |          }t          j                             ||dd|           ||dd|                     t          j                            ||           |                     ||dd           d S )Nr6  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  rF  
empty_liker  )	r  has_out
has_no_outr   r7  r:  rj  rQ  couts	            r   	test_clipzTestArrayMethods.test_clipm  se   NJ8IJ$&78
+c2s+++c2r**221a;;= 	C 	CA!J. C C*T***622>++J<< ) )E!T4((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 
''q!T(:(:EE!Q<M<MNNN
''q$(:(:EE!T1<M<MNNN
''q"a(8(8%%2q//JJJW$$M!,,E=++DJ++FF1b!U,C,C,1E!RD,A,AC C CJ++E488811%BBBBB'C	C 	Cs   +CC	C	c                 \   t           t          t          t          f}t          t
          f}t          j        ddd                              ddd          }t          j	        dd          
                    |j                                      dd          }t          j	        dd	          
                    |j                                      dd          }dd
|d g}dd|d g}||z   D ]C} t          d          |          }	|D ]#}
|D ]}|
E|Cd}|                     t          |          5   |	|d d            d d d            n# 1 swxY w Y   Jt          j                             |||
|           |	||
|                     ||v rt          j        |          }t          j        |          }t          j                             |||
||           |	||
||                     t          j                            ||           |                     |	||
|           %Ed S )Nr6  r+  r  r   rn  r   rm  r   r  r  Tre  r  )r   r   r   r  r   r  r   r.  r  rg   r   r9   r   rh  rK  rH  rF  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
KR$$,,Q155Ib!$$++AG44<<QBB	IaOO**1733;;AqAA	2y$'1i&
* 	N 	NF&C&&&v..E N N! N NE}F!33JDD 1 1!E!T40001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 J++FF1eU,C,CUU1eUZE[E[\\\(( "a 0 0!}Q//
//q%0N0N05at0L0LN N N
//t<<<55eQuMMMM#NN	N 	Ns   .E	EEc                      t          d          t                    }d}|                     t          |          5   |d dd           d d d            d S # 1 swxY w Y   d S )NTre  rg  r   r+  r   r   rh  r	   r  r:  rj  s      r   test_clip_bad_arrayz$TestArrayMethods.test_clip_bad_array  s    "T"""7++7##K55 	 	E$2	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                      t          d          t                    }d}|                     t          |          5   |ddd           d d d            d S # 1 swxY w Y   d S )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  s    "T"""7++9##K55 	 	E!S"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                      t          d          t                    }d}|                     t          |          5   |ddd           d d d            d S # 1 swxY w Y   d S )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  s    "T"""7++9##K55 	 	E!Q	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                      t          d          t                    }d}|                     t          |          5   |dddd           d d d            d S # 1 swxY w Y   d S )	NTre  ro  r   r*  r+  rp  r   r  r  s      r   test_clip_bad_outz"TestArrayMethods.test_clip_bad_out  s    "T"""7++I##K55 	# 	#E!Q""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   AA Ac                 z   |                                    t          d          t                    }d}t          j        ddd                              ddd	          }t          j        d
d                              |j                                      dd          }t          j        dd                              |j                                      dd          }d|fd
|f||f|df|dfg}|D ]E\  }}| 	                    t          |          5   ||||           d d d            n# 1 swxY w Y   Fd S )NTre  zA.*shape mismatch: objects cannot be broadcast to a single shape.*r6  r+  r  r   rn  r   r  r   r*  )r\  r   r   r   r.  r  rg   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KR$$,,Q155Ib!$$++AG44<<QBB	IaOO**1733;;AqAA	y>B	?y)q>Iq>3 $ 	' 	'LE5''
C88 ' 'a&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's   D//D3	6D3	c                    t           t          fD ]} t          d          |          }t          j        dd          }t          j                             ||           ||                     t          j        ||          \  }}|d|z  z   }t          j                             ||           ||                     d S r  )r  r
  r   r   r.  rH  rF  r  r  s         r   	test_conjzTestArrayMethods.test_conj  s    !?3 	9 	9F&C&&&v..EC$$AJ##FF1IIuuQxx888;q!$$DAqBqDAJ##FF1IIuuQxx8888	9 	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                      d S )NTre  c                 l    t           j                             |            |                      d S r   )r   rH  rF  )r   r:  r7  s    r   r{  z+TestArrayMethods.test_unique.<locals>.check  s1    J##FF1IIuuQxx88888r   )r*  r*  r   )r   r   r   r   g@r  gRQ@gffffff
@)r  r   r   r[  r  )r  r{  r:  r7  s     @@r   test_uniquezTestArrayMethods.test_unique  s    "T"""6**	9 	9 	9 	9 	9 	9 	bh			999-..///bhrx{{##$$$bhc
S$K#s<==>>>bhrllr   c                    t           } t          d          |          }t          j        d                              dd          }t          j        d          }t          j                             |||           |||                     t          } t          d          |          }t          j        d                              dd          }t          j                             |||           |||                     d S )NTre  g      4@r   r   rQ  g      0@)r  r   r   rg   r  rH  rF  r  r  s        r   test_array_dotzTestArrayMethods.test_array_dot  s     "T"""6**IcNN""1a((IbMM

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

q!eeAqkk:::::r   c                 
   t           } t          d          |          }d}|t          j        f}t          j                             ||  ||            |t          j        d          f}t          j                             ||  ||            |t          j        f}t          j                             ||  ||            |t          j        d          f}t          j                             ||  ||            d S )NTre  rn  r   f4)r  r   r   r   rH  rN  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**"({

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

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

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

%%ffdmUUD\BBBBBr   )W__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   rg   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r1  r?  rJ  rO  rZ  r\  r^  rg  ro  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  r   r&  r)  __classcell__)r  s   @r   r  r    sG        . . . . .7 7 78A A AC C C(" (" ("T/ / /0 0 0 0 0 _0  # # #N" N" N"`& & &.- .- .-`"0 "0 "0H0 0 06 6 6: : :# # #   79i    (: : :2 2 25 5 52 2 2  . . .
? ? ?
B B B
  D D DJ J J(: (: (:T* * *' ' '' ' 'A A AF  6$! $! $!LS S S>6 6 6$3 3 38   ! ! !*! ! !0%E %E %EN)H )H )HVI I I&%7 %7 %7N8 8 8     8     _ 8E E E0G G G8+A +A +AZ#Q #Q #QJ'D 'D 'DR4 4 4	G 	G 	GE E E  $> > >0  5" 5" 5"n  8	5 	5 	5	5 	5 	56 6 6C C C6N N N@      # # #' ' '	9 	9 	9
 
 
 ; ; Z;C C C C C C Cr   r  c                       e Zd Zd ZdS )TestArrayComparisonsc                      fd}t           t          j        dt          j                                      d          } |||d            |||d d          d            |||                                d            |||                    d          d            |||j        d            |||d d         d           d S )	Nc                      t          t          |           t          |          f                    }                     || |          || f           d S r   r  )r   r   r;  r:  r7  r  s       r   r{  z1TestArrayComparisons.test_identity.<locals>.check  sc    0D&))VAYY/0088E##EE!QKK%-8|$<> > > > >r   r+  r   )rn  r   TFr  r   )r   r   r  r   r  rJ   rV   rB   )r  r{  r   r7  s   `  @r   test_identityz"TestArrayComparisons.test_identity  s    	> 	> 	> 	> 	> 	>
 "hr***226::c3c3qqq64   c388::u%%%c388H%%u---c35%   c3ss8U#####r   N)r*  r+  r,  r3  r   r   r   r0  r0    s#        $ $ $ $ $r   r0  __main__)r   Nr   )NNN)e	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   rK   rM   rP   rS   rY   r_   rd   ri   rl   ro   rr   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r  r0  r*  mainr   r   r   <module>r?     s   $ $ $ $ $ $ $ $ 				 



       # # # # # # # # # #       : : : : : : : : : : : : : : : :7 7 7 7 7 7 7 7 7 7 7 7 7 7 " " "$ $ $  ! ! !" " "# # #     4        " " "% % %    ( ( (  ! ! !' ' '- - -& & && & &( ( (, , ,. . .' ' '2 2 2? ? ?    
( ( (    0 0 0/ / /  2 2 2" " "                  ) ) )      
        $ $ $) ) ) )- - - -% % % %) ) ) )               # # #mC mC mC mC mC mC mC mC^/$ $ $ $ $8 $ $ $* zHMOOOOO r   