
    ܙd                        d dl mZmZmZ d dlZd dlZd dlZd dlZd dl	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d dlmZmZmZmZmZmZ d dlZd	Z d
Z!d Z"d Z#d Z$d Z%d Z&d Z'dSd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+ ZBd, ZCd- ZDd. ZEd/ ZFd0 ZGd1 ZHd2 ZId3 ZJd4 ZKd5 ZLd6 ZMd7 ZNd8 ZOd9 ZPd: ZQd; ZRd< ZSd= ZTd> ZUd? ZVd@ ZWdA ZXdB ZYdTdCZZdTdDZ[dUdEZ\dUdFZ]dG Z^dH Z_dI Z`dJ ZadK ZbdL ZcdM Zd G dN dOee          Ze G dP dQe          ZfegdRk    r ejh                     dS dS )V    )productcyclepermutationsN)jittypeof)types)compile_isolated)TypingErrorLoweringErrorNumbaValueErrorNumbaExperimentalFeatureWarning)as_dtypenumpy_version)TestCaseCompilationCache
MemoryLeakMemoryLeakMixintag
needs_blasztimedelta64[M]ztimedelta64[Y]c                 2    t          j        | ||           d S Nnparoundarrdecimalsouts      >lib/python3.11/site-packages/numba/tests/test_array_methods.pynp_around_arrayr       s    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                 ,    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_zero5   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   B   s	    5Lr!   c                 *    |                                  S r   )	transposerC   s    r   array_transposerG   E   s    ==??r!   c                 *    |                                  S r   copyrC   s    r   
array_copyrK   H   s    88::r!   c                 *    t          j        |           S r   )r   rJ   rC   s    r   np_copyrM   K   s    73<<r!   c                 *    t          j        |           S r   )r   asfortranarrayrC   s    r   np_asfortranarrayrP   N   s    S!!!r!   c                 *    t          j        |           S r   )r   ascontiguousarrayrC   s    r   np_ascontiguousarrayrS   Q   s    $$$r!   c                 ,    |                      |          S r   viewr   newtypes     r   
array_viewrY   T       88Gr!   c                 ,    |                      |          S r   take)r   indicess     r   
array_taker_   W   rZ   r!   c                 0    |                      ||          S Naxisr\   )r   r^   rc   s      r   array_take_kwsrd   Z   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   `   s    9T4   r!   c                 .    t          j        | ||          S r   rf   )rh   rk   arg2s      r   np_arange_3ro   c   s    9T4&&&r!   c                 0    t          j        | |||          S r   rf   )rh   rk   rn   arg3s       r   np_arange_4rr   f   s    9T4t,,,r!   c                 .    t          j        | |          S N)stoprf   )rh   ru   s     r   np_arange_1_stoprv   i       9T%%%%r!   c                 .    t          j        | |          S Nsteprf   )rh   r{   s     r   np_arange_1_stepr|   l   rw   r!   c                 .    t          j        | |          S Nr9   rf   )rh   r9   s     r   np_arange_1_dtyper   o   s    9T''''r!   c                 0    t          j        | ||          S ry   rf   )rh   rk   r{   s      r   np_arange_2_stepr   r   s    9T4d++++r!   c                 0    t          j        | ||          S r~   rf   )rh   rk   r9   s      r   np_arange_2_dtyper   u   s    9T4u----r!   c                 .    t          j        | |          S )Nstartru   rf   r   s     r   np_arange_start_stopr   x   s    95t,,,,r!   c                 0    t          j        | ||          S )Nr   ru   r{   rf   r   s      r   np_arange_start_stop_stepr   {   s    95t$7777r!   c                 2    t          j        | |||          S )Nr   ru   r{   r9   rf   r   s       r   np_arange_start_stop_step_dtyper   ~   s    95t$eDDDDr!   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
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* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKdH ZLdI ZMdJ ZNdK ZOdL ZPdM ZQeRdN             ZSdO ZT xZUS )PTestArrayMethodszA
    Test various array methods and array-related functions.
    c                 |    t          t          |                                            t                      | _        d S r   )superr  setUpr   ccache)self	__class__s    r   r  zTestArrayMethods.setUp  s1    %%++---&((r!   c                    g d}d |D             }d |D             }t           j        t           j        t           j        t           j        t           j        f}|||||g}|}t          ||          D ]o\  }	}
t          ||	t           j        f          }|j        }dD ]D}|
D ]?}|dk    r|dz  }t          ||          } |||          }| 
                    ||           @Ep|}t          ||          D ]R\  }	}
t          ||	f          }|j        }|
D ]2}t          |          } ||          }| 
                    ||           3Sd 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	   entry_pointr;   assertPreciseEqual)r   unary_pyfuncbinary_pyfuncbase_valuescomplex_values
int_valuesargtypes	argvaluespyfunctyvaluescres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#FR,=>>D$E& ; ; ; ;A!||R.q(;;H%8,,C++C::::;; h	22 	7 	7JB#FRE22D$E 7 7*1--eAhh''X66667	7 	7r!   c                 F    |                      t          t                     d S r   )rB  r0   r.   r   s    r   test_round_scalarz"TestArrayMethods.test_round_scalar9  s    @@@@@r!   c                 F    |                      t          t                     d S r   )rB  r(   r%   rD  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?  r=  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                    t          | |          D ]\  }}t          t          j        |dd          t          j        t          j        |dd          f          }|j        } |j        |||d            |j        |||d           t          |t          j                  s |j        |dz  ||d           d S )Nr-  Ar   r.  r   )r   r	   r   Arrayr   r2  r>   Integer)	r9  outtypesr=  rT  rU  r>  r?  rX  r;  s	          r   check_typesz7TestArrayMethods.check_round_array.<locals>.check_typesP  s    &x::  e').T1c)B)B).).UAs)C)C)EF F (D,fdE1EEED,fdE1EEE!%77 K 0&2+tUBOOOO  r!   r#  r'  )r   arrayr   r/  r   r   r0  disable_leak_check)r   r;  r^  r=  r9  rX  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   )ra  r,   rD  s    r   test_round_arrayz!TestArrayMethods.test_round_arrayk  s    ~.....r!   c                 :    |                      t                     d S r   )ra  r    rD  s    r   test_around_arrayz"TestArrayMethods.test_around_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   r;  r?  msgs       r   test_around_bad_arrayz&TestArrayMethods.test_around_bad_arrayq  s    %7 	 	F&C&&&v..E;C''S99  d              	 	s   AA#	&A#	c                     t           t          fD ]^} t          d          |          }d}|                     t          |          5   |ddd           d d d            n# 1 swxY w Y   _d S )NTrg  9.*The argument "out" must be an array if it is provided.*r   r      r   )r,   r    r   rj  r
   )r   py_funcr?  rl  s       r   test_around_bad_outz$TestArrayMethods.test_around_bad_outx  s    &8 	# 	#G&C&&&w//EMC''S99 # #a""""# # # # # # # # # # # # # # #	# 	#s   A""A&	)A&	c                 	     fd fd} fd} fd} fd} fd} fd}t          j        dt           j        fd	t           j        fg          }t          j        d
t           j        fdt           j        fg          }t          j        dt           j        fdt           j        fg          }	t          dk    r	|}
|}|}|}n|}
|}|}|}t          j        dt           j                  } ||t          j        d                      ||t           j                    ||t           j                    ||t           j                    ||t           j                    |||            |||            |
|t           j                   |	                    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          dk    r|}n|} ||t           j                    ||t           j                    ||t           j                    ||t           j                    |||            |||            ||t           j                    ||t           j                   t          j        dt           j                  d d d         } ||t           j                    ||t           j                    |||	            ||t           j                    ||t           j                    ||t           j                    |||            |||           t          j        dgt           j                  	                    d          } ||t           j                    ||t           j                    |||	            ||t           j                    ||t           j                    ||t           j                    |||            |||           t          j        dg          } ||t           j                                                     d S )Nc                     t          |          }j                            |t          |           f          }|                    |           S r   )r   r  compiler   r2  r   r9   r;  r>  r   s       r   runz-TestArrayMethods.test_array_view.<locals>.run  sC    $U++F;&&vs~>>D##C(((r!   c                     |                      |          }                                  | |          }                    ||           ~                                 d S r   )rV   rK  r3  rL  r   r9   r@  rA  rw  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)rO  rP  rQ  rR  rS  )r   r9   rW  rw  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rO  rP  r   rQ  rR  rS  r   r9   rl  rW  rw  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-        r   int16r      r   r         *   r   abcdef)r   r9   int8r  r   rg   r   r   r0  reshaperB   zerosuint64r   uint32int64r_  r`  )r   rz  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_errorrw  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::
 G##$:!%<"$A!)NN$-!%."$-!&N 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 G## = %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                 X   t           }| j                            |t          j        dd         f          }|j        }t          j        ddgt          j                  }|	                    t          j                  } ||          } ||          }| 
                    ||           dS )zX
        Test .view() on A layout array but has contiguous innermost dimension.
        Nr$  r  r   )r   r  ru  r   uint8r2  r   r_  r   rV   rQ  )r   r;  r>  r?  origbytearyexpectrA  s           r   test_array_sliced_viewz'TestArrayMethods.test_array_sliced_view  s     #{""6EKN+<== xa
333))BH%%eGnn%%%%%r!   c                      f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                     t          |          }j                            |t          |           f          }|                    |           S r   )r   r  ru  r   r2  rv  s       r   rw  z/TestArrayMethods.test_array_astype.<locals>.run-  sC    &u--F;&&vs~>>D##C(((r!   c                     |                      |                              d          } | |          }                    ||           d S )NrZ  order)r   rJ   r3  ry  s       r   rz  z1TestArrayMethods.test_array_astype.<locals>.check1  sP    zz%((--C-88H#c5//C##C22222r!   r  r   r  r   r  r  r  Fr   z#cannot convert from int32 to RecordTrg  c                 V    t          j        dg                              |            d S Nr-  )r   r_  r   r   s    r   fooz/TestArrayMethods.test_array_astype.<locals>.fooT  s&    !$$U+++++r!   z5array.astype if dtype is a string it must be constant)r   rg   r  r9   r   r   r0  r  rB   r  flags	writeableassertTypingErrorassertInrR  rS  r   )r   rz  r   dtrW  unicode_valr  rw  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$   F77F;>F; %H11H58H5c                 ~     fd 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                     j                             t          |           f          }|                    |           S r   r  ru  r   r2  )bufr>  r;  r   s     r   rw  z1TestArrayMethods.check_np_frombuffer.<locals>.run\  s6    ;&&vs~>>D##C(((r!   c                    t          j        |           } |           }                                  |           }                    ||           ~t	          j                                         t          j        |           |dz              ~t	          j                                         t          j        |           |                                            d S r  )sysgetrefcountrK  r3  gccollectrQ  rL  )r  
old_refcntr@  rA  r;  rw  r   s       r   rz  z3TestArrayMethods.check_np_frombuffer.<locals>.check_  s    --Jvc{{H""$$$#c((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)	bytearrayrangebytes
memoryviewr   rg   r  r`  rO  rP  rQ  rR  rS  )r   r;  rz  r   rW  rw  s   ``   @r   check_np_frombufferz$TestArrayMethods.check_np_frombuffer[  s   	) 	) 	) 	) 	) 	)	( 	( 	( 	( 	( 	( 	(  eBii  aeAhhjmmbimmIbMM!!&))a 	!!!z** 	#fC	&!!"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#IV-..	0 	0 	0 	0 	0s   %D

DDc                 :    |                      t                     d S r   )r  r   rD  s    r   test_np_frombufferz#TestArrayMethods.test_np_frombuffer  s      /////r!   c                 :    |                      t                     d S r   )r  r   rD  s    r   test_np_frombuffer_dtypez)TestArrayMethods.test_np_frombuffer_dtype  s      !455555r!   c                 :    |                      t                     d S r   )r  r   rD  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 )NTrg  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   rO  r
   r  r  rR  rS  r  )r   r  rW  excstrrl  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 )NTrg  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   rj  r
   )r   r  rl  rW  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   r2  r3  rQ  )r   r>  r@  rA  r  r;  r   s       r   	check_arrz?TestArrayMethods.check_layout_dependent_func.<locals>.check_arr  s    #FVC[[N;;Dvc{{H""3''C##Hc222WWXs33WWS#5F5FGGGGGr!   r  r  r  r  r   r   r   r   )r  rB   r   r_  )r   r;  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   rD  s    r   test_array_transposez%TestArrayMethods.test_array_transpose  s    ((99999r!   c                 :    |                      t                     d S r   )r  rD   rD  s    r   test_array_TzTestArrayMethods.test_array_T      ((11111r!   c                 :    |                      t                     d S r   )r  rK   rD  s    r   test_array_copyz TestArrayMethods.test_array_copy  s    ((44444r!   c                 :    |                      t                     d S r   )r  rM   rD  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   r2  r3  )r   r>  r@  rA  r;  r   s       r   check_scalarzETestArrayMethods.check_ascontiguousarray_scalar.<locals>.check_scalar  sV    #FVAYYM::DvayyH""1%%C##Hc22222r!   r  g      E@y              E@T)r   r   r/  )r   r;  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 )Nri  hello)rj  r
   r	   r   )r   r;  rl  rW  r>  s        r   check_bad_arrayz TestArrayMethods.check_bad_array  s    7##K55 	A#FVG__,?@@D	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   A

AAc                     |                      t                     |                     t                     |                     t                     d S r   )r  rP   r  r  rD  s    r   test_np_asfortranarrayz'TestArrayMethods.test_np_asfortranarray  sG    (():;;;.///++,=>>>>>r!   c                     |                      t                     |                     t                     |                     t                     d S r   )r  rS   r  rP   r  rD  s    r   test_np_ascontiguousarrayz*TestArrayMethods.test_np_ascontiguousarray  sG    (()=>>>.///++,@AAAAAr!   c                 h      fd fd} |d            |d            |d           d S )Nc                     j                             t          |           f          }|                    |           S r   r  )r   r>  r;  r   s     r   rw  z;TestArrayMethods.check_np_frombuffer_allocated.<locals>.run  s7    ;&&vu/?@@D##E***r!   c                 `     |           } |           }                     ||           d S r   r3  )r   r@  rA  r;  rw  r   s      r   rz  z=TestArrayMethods.check_np_frombuffer_allocated.<locals>.check  s9    ve}}H#e**C##C22222r!   )r  r  r-  r   r-  r   )r   r;  rz  rw  s   `` @r   check_np_frombuffer_allocatedz.TestArrayMethods.check_np_frombuffer_allocated  sx    	+ 	+ 	+ 	+ 	+ 	+	3 	3 	3 	3 	3 	3 	3
 	efir!   c                 :    |                      t                     d S r   )r  r   rD  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   rD  s    r   test_np_frombuffer_allocated2z.TestArrayMethods.test_np_frombuffer_allocated2  s    **+HIIIIIr!   c                 >    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
t          d          fD ]5}t          j        |g                              d          } ||           6t          j        g d          } ||           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   r3  r2  )r   r>  r@  r;  r   s      r   r  z1TestArrayMethods.check_nonzero.<locals>.check_arr  sd    #FVC[[N;;Dvc{{H33(333H##D$4$4S$9$98DDDDDr!   r-  r   r   r   r  r  r  r  r  r4   r$  r  r   )Hello world)r   r  bool_r  rB   r  r_  )r   r;  r  r  r   r   s   ``    r   check_nonzerozTestArrayMethods.check_nonzero  s   	 	 		E 	E 	E 	E 	E 	E h}}}%%	#hyyy!!	#c"gg	#	#++f%%&&&	#++f%%'(((	#++f%%ccc*+++	#++i(()))	#++i((*+++	#++i((1-...sE%LL) 	 	A(A3--''++CIcNNNNh---..	#r!   c                 :    |                      t                     d S r   )r  r   rD  s    r   test_array_nonzeroz#TestArrayMethods.test_array_nonzero  s    =)))))r!   c                 :    |                      t                     d S r   )r  r   rD  s    r   test_np_nonzeroz TestArrayMethods.test_np_nonzero      :&&&&&r!   c                 :    |                      t                     d S r   )r  r   rD  s    r   test_np_where_1z TestArrayMethods.test_np_where_1  r  r!   c                 ~   d}t           }t          j        d          } t          d          t                    }t          j        d          5 } ||dk     |d|z             d}|D ]%}|t          |j                  v r|j	        |k    rd}&| 
                    |           d d d            d S # 1 swxY w Y   d S )Nz>Use of isinstance() detected. This is an experimental feature.r.  Trg  )recordr   F)r   r   rg   r   r   warningscatch_warningsrR  messagecategoryassertFalse)r   rl  r   r   r?  catchfoundws           r    test_np_where_no_isinstance_warnz1TestArrayMethods.test_np_where_no_isinstance_warn  s    O2IbMM"T""":..$D111 	$UE!a%BF###E ! !#ai..((QZ8-C-C EU###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AB22B69B6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FrZ  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  shufflerJ  rJ   nextr   r	   r   r2  r3  )r   layoutr   r   r>  r@  rA  _typeslayoutsr;  r   s          r   r  z3TestArrayMethods.test_np_where_3.<locals>.check_arr4  s7   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#FVC[[&))VAYY,OPPDvc1a((H""31--C##C22222r!   c                 z   d}d}t           j                                        d         d          } d         d          }t          t	          |           t	          |          t	          |          f          } | ||          }|                    | ||          }                    ||           d S )Nr   r   r   r-  )r   r  r-  r	   r   r2  r3  )	scalr   r   r>  r@  rA  r0  r;  r   s	         r   
check_scalz4TestArrayMethods.test_np_where_3.<locals>.check_scalD  s    AAIf%%%q	!Aq	!A#FVD\\6!99fQii,PQQDvdAq))H""4A..C##C22222r!   r  r  r  r  r  r  r*  )r/  r4   r$  r  r   )r   r-  TFr%  y                F)r   r   r   r   r  r   r/  r   r0  r  r  r  r  r  rB   r  r_  )
r   r  r  r4  r   r   r   r0  r1  r;  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 )	NTrg  c                 H     |  } |  }                     ||           d S r   r  )r   r@  rA  r?  r;  r   s      r   check_okzGTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.check_okl  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      r  r   r*  r  r   )r   linspacer  r-  r  )r   r   s    r   a_variationszKTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.a_variationsq  s      B2&&AK"""GGG))Aq!$$$$$))Aq),,,,,))Aq!$$TTrT******r!   r   r-  y      ?      @F)r   r   r   r  )r   r9  r>  r   paramsr?  r;  s   `    @@r   $test_np_where_3_broadcast_x_y_scalarz5TestArrayMethods.test_np_where_3_broadcast_x_y_scalarh  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 )NTrg  c                     | \  }}} |||          } |||          }                     ||            |||          } |||          }                     ||           d S r   r  )	r   	conditionr   r   r@  rA  r?  r;  r   s	         r   r9  zJTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.check_ok  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   r9  rI  rK  r   r   x_meanrC  r?  r?  r;  s   `        @@r   'test_np_where_3_broadcast_x_or_y_scalarz8TestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar  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 )NTrg  5   r   r   r-  F   r  r   r;  )r   r   boolr   r  r   r  doubler0  r   rM  assert_equal	ones_liker   rJ  )	r   r;  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 )NTrg  F)r     r   r-  )
r   r   r   r  r   r_  newaxisrM  assert_array_equalrB   )r   r;  r?  r2   r   r   rX  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 )NTrg  )FTFFFFTFFFTFr-  )      @r4         @       @            r4         $      $@      ?r4   ra  r   )r`  rg  ra  rb  rc  rd  rg  re  rf  rg  rg  ra  i
r   iau)r   r   r   r_  r  r/  rM  rU  r   r   r  r,  )r   r;  r?  r2   r   r   rX  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 )NTrg  )r   r   )r   r   zobjects cannot be broadcastr   )r   r   r   r   r`  rj  rP  )r   r;  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 )NTrg  z+The argument "condition" must be array-liker  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   rj  r
   rk  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   rH  s    r   <lambda>z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>  s    bi2&& r!   c           	      d    t          j        dt          dt          |                               S )NrQ  r-  rz   )r   rg   maxr5   rH  s    r   rp  z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>   s#    biAs1vv777 r!   Trg  c                 t     |           } |           }t           j                            ||           d S r   r   rM  rN  )rh   r@  rA  r?  r;  s      r   r9  z4TestArrayMethods.test_arange_1_arg.<locals>.check_ok&  s;    !6$<<eDkk
**8S99999r!   r   r-  r   g      @rR  )ri   r   r?   r   r  )r   all_pyfuncsr9  r?  r;  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                 8   d }t           t          t          t          d d f}|D ]} t	          d          |          } |dd||            |dd||            |d	d
||            |d
d	||            |t          dd          t          d	d	          ||            |t          d	d	          t          dd          ||            |dd ||           t          } t	          d          |          } |dt          j        ||            |dt          j	        ||            |dt          j
        ||            |t          j        d          t          j
        ||            |dd ||            |t          j        d          d ||           d S )Nc                 v     || |          } || |          }t           j                            ||           d S r   rt  )rh   rk   r;  r?  r@  rA  s         r   r9  z4TestArrayMethods.test_arange_2_arg.<locals>.check_ok4  sB    vdD))H%d##CJ&&x55555r!   c                 .    t          j        | |d          S )Nr   rf   r   r   s     r   rp  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>>  s    1a++ r!   c                 0    t          j        d||           S )Nr  rz   rf   rz  s     r   rp  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>?  s    1aa000 r!   Trg  r   r   r         ?r-  r   rb  r.  rQ  r   )rl   r   rv   r|   r   r?   r   r   r   r   r0  r   r  )r   r9  ru  r;  r?  s        r   test_arange_2_argz"TestArrayMethods.test_arange_2_arg3  s   	6 	6 	6  ++00
 " 		- 		-F&C&&&v..EHRFE***HRVU+++HQVU+++HS!VU+++HWQ]]GAqMM65AAAHWQ]]GAqMM65AAAHQfe,,,,""T"""6**BJ...bh...R]FE222b!!2=&%@@@D&%(((T6511111r!   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t          dd          t          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          } t          d          |          } |d	dt          j        ||            |ddt          j        ||            |ddt          j        ||            |dt          j        d          t          j        ||            |d	dd ||            |t          j
        d          t          j        d          d ||d           d S )Nwin32l        Fc                      || ||          } || ||          }t           j                            ||           	s"                    |j        |j                   d S d S r   )r   rM  rN  rQ  r9   )
rh   rk   rn   r;  r?  check_dtyper@  rA  r   	windows64s
           r   r9  z4TestArrayMethods.test_arange_3_arg.<locals>.check_okZ  su    vdD$//H%dD))CJ&&x555  <  ;;;;;< <r!   Trg  r   r   r-  r|  r   r   rE  r;  r}  r   r  皙?rp  rb  r  r.  rQ  r5  )r  platform
startswithmaxsizero   r   r   r   r?   r   r  r  r   r  r   r   r0  r   )r   r9  r;  r?  i8r  s   `    @r   test_arange_3_argz"TestArrayMethods.test_arange_3_argW  s   L++G44Nw9N		< 	< 	< 	< 	< 	< 	< #$46OP 	E 	EF&C&&&v..EHQ1fe,,,HRQ...HQR///HS!Q...HQ3...HQ1wq!}}feDDD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D""T"""6**Arz65111a65111R666BL$$bmVUCCCAtVU+++RXa[[$tDDDDDr!   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t          j                    |dt          dd          t          dd          t          j                    |d	dd d             |d	d d d            d S )NTrg  c                      | |||          } | |||          }t           j                            ||           d S r   rt  )rh   rk   rn   rq   r@  rA  r?  r;  s         r   r9  z4TestArrayMethods.test_arange_4_arg.<locals>.check_ok  sK    !6$dD99eD$d33
**8S99999r!   r   r   r-  r|  r   r   rE  r;  r}  r   r  r  rp  )	rr   r   r   r   r/  r   r   r0  r?   )r   r9  r?  r;  s     @@r   test_arange_4_argz"TestArrayMethods.test_arange_4_arg  s*   "$CD 	* 	*F&C&&&v..E: : : : : :
 HQ1bj)))HRQ)))HQR,,,HS!Q%%%HQ3...HQ1wq!}}bmDDDHQ4&&&HQdD))))	* 	*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   rH  s    r   rp  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>      biQ''' r!   c                 ,    t          j        |           S ry   rf   rH  s    r   rp  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  r  r!   c                 ,    t          j        |           S r~   rf   rH  s    r   rp  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    bia((( r!   c                 .    t          j        | |          S )N)ru   r{   rf   rz  s     r   rp  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    222 r!   c                 .    t          j        | |          S )N)ru   r9   rf   rz  s     r   rp  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    333 r!   Trg  r  rp  r-  r   )r-  r  r   ignorezMaximum allowed size exceeded)r`  rO  r
   r   ro   r   r  ZeroDivisionErrorrP  r  r  simplefilterr  rR  rS  )	r   bad_funcs_1bad_funcs_2r;  rW  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 )NTrg  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   r3  rq  )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 )	NTrg  c                 `     |           } |           }                     ||           d S r   r  )r6   r@  rA  r?  r;  r   s      r   r9  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rO  rP  r  rR  rS  )r6   rW  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-  r  )r   r   r`  r   r   r0  r_  r  r   r9  r|  r?  r;  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 )
NTrg  c                     |                                  }|                                  } ||            ||                               ||           d S r   )rJ   r3  )r   r   r@  rA  r?  r;  r   s       r   r9  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   rW  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-  r  )r   r   r`  r   r   r0  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           	         t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        t          j        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
        Trg  c                     g | ]C}t          j        d |          t          j        d|          t          j        d|          dz  gDS rQ  rp  r   r   r   r-  )rQ  r   r  r)  	arr_dtypes     r   r*  z-TestArrayMethods.test_sum.<locals>.<listcomp>  ^     ) ) )  W_i00WQ	""WVY''",.) ) )r!   zTest np.sum with {} input N)r   r   r   r/  r   r  r   r   r0  r  r  timedelta64subTestformatr9   r3  )r   r;  r?  
all_dtypesall_test_arraysarr_listr   s          r   test_sumzTestArrayMethods.test_sum  sW    "T"""6**j"*bhlBM29biY
) ) (	) ) ) ( 	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   )C<<D D c                 *   t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        t          j        t          g}d |D             }|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  Trg  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!   r   r-  r  r-  #Testing np.sum(axis) with {} input rb   N)r   r   r   r/  r   r  r  r   r0  TIMEDELTA_Mlenr   r  r  r9   r3  )r   r;  r?  r  r  r  r   rc   s           r   test_sum_axis_kws1z#TestArrayMethods.test_sum_axis_kws1  s   #"T"""6**j"*bh	2<m[2
) ) (	) ) )
 ( 	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        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             }|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.
        Trg  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>2  r  r!   r  r-  r  rb   N)r   r   r   r   r  r9   r  r  r  r  r   r  r  r>   ndarrayr3  r   rQ  )r   r;  r?  r  
out_dtypesr  r  r   rc   npy_res	numba_ress              r   test_sum_axis_kws2z#TestArrayMethods.test_sum_axis_kws2"  sA    $"T"""6**h	,
hw''28H3E3Eryhw''h{++RXk-B-BD
) ) (	) ) ) ( 	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        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
        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 Trg  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>O  r  r!   r/  r   r  r   r  r  r   r0  z*Testing np.sum with {} input and {} outputr   N)r   r   r   r/  r   r  r   r  r  r   r0  r9   r  r  r3  )
r   r;  r?  r  r  r  r  r   	out_dtypesubtest_strs
             r   test_sum_dtype_kwsz#TestArrayMethods.test_sum_dtype_kwsI  s]   $"T"""6**j"*bh")ir}>
) ) (	) ) ) hy))BJ<hy))BJ
+Chw''"*bh
)Khw''"*bh
BH)Uhx((2:rx*Lhx((2:rx*@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   6-I/	/I36I3c                 L   t           } t          d          |          }t          j        t          j        t          j        t          j        t          j        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
        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 Trg  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>m  r  r!   r/  r   r  r   r  r  r   r0  r  r-  z+Testing np.sum with {} input and {} output r   N)r   r   r   r/  r   r  r   r  r  r   r0  r9   r  r   r  r  r3  )r   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_kwsg  s   )"T"""6**j"*bh")ir}>
) ) (	) ) ) hy))BJ<hy))BJ
+Chw''"*bh
)Khw''"*bh
BH)Uhx((2:rx*Lhx((2:ry*A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   3JJJ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 Trg  r  r-  r  N)r   r   r   r/  r   r3  )r   r;  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 )NTrg  rf  r   rb   r   )r   r   r   rg   r3  r   r   r;  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 )NTrg  )r   r   r   rp  rQ  r  r-  r  )r   r   r   r   r3  )r   r;  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 )NTrg  r  r   r   r  r   r   )r`  r   r   r   r   rO  rP  r   r;  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 )	NTrg  c                 .    |                      d          S )NrR  rb   r   rC   s    r   r  z5TestArrayMethods.test_sum_const_negative.<locals>.foo  s    777###r!   )r-  r  r   r   )r-  r  r   )r-  r  z"'axis' entry (-1) is out of boundszout of bounds)r`  r   r   r   r3  rq  rO  r   r  rR  rS  rP  )r   r  r   rW  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 )NTrg  )r  r   r-  rb   )r   r   r   r   r3  rO  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                     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                        t                    5   t          d          t                     }
 |
|dd           d d d            n# 1 swxY w Y                        t                    5   t          d          t                     }
 |
|dd           d d d            n# 1 swxY w Y                                     d S )NTrg  c                      | |          } | |          }                     ||           t          |d          r%                    |j        |j        k               d S d S )Nr  )r3  hasattrrQ  r  )r   indr@  rA  r?  r;  r   s       r   rz  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   r  )r  )r  r   r  ))r-  )r   r  ))r  )r   )r  r(  r  r   r  333333?rb   )r_   r   appendr   r_  r   r/  r  r0  rg   r  r.  sizerO  
IndexErrorr
   rd   r`  )r   rz  test_indicesr1  r  rZ  r  szAillegal_indicesr   take_kwsr?  r;  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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 {++ 	 	)sD))).99HHQ1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 {++ 	# 	#)sD))).99HHQ""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
 	!!!!!sH   (KK	K	'LLL&,MM"%M"-N<<O O 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 )NTrg  c                    t          j        |           } ||          }                    |d u            t          j        |           } ||          }                    |d u                                ||           d S r   )r   rJ   
assertTruer3  )	r   r$   r@  ervrA  grvr?  r;  r   s	         r   rz  z)TestArrayMethods.test_fill.<locals>.check(  s    ws||H&3''COOC4K((('#,,C%S//COOC4K(((##Hc22222r!   r-  r.  r  r   r   0   r   r  )	r   r   r   rg   r/  r  r  r   r0  )r   rz  rZ  r   r?  r;  s   `   @@r   	test_fillzTestArrayMethods.test_fill%  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 NTrg  rE  r.  rG  )r   r   r   r=  rM  rU  meshgridr   r;  r?  r   r   zs         r   	test_realzTestArrayMethods.test_realA      "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=  rM  rU  r  r  s         r   	test_imagzTestArrayMethods.test_imagL  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_resultZ  s!    8DDE511222r!   Trg  )r   rM  assert_almost_equalr   )r   r  r   r   r   r  s    ` `` r   _lower_clip_result_test_utilz-TestArrayMethods._lower_clip_result_test_utilW  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 )NrE  r.  e   (   r   r  r   Trg  &array_clip: must set either max or minr   r  )r   r   r  r  r   r  r   r=  r  r   rj  rP  rM  rU  
empty_liker  )	r   has_out
has_no_outr   r;  r?  rl  rV  couts	            r   	test_clipzTestArrayMethods.test_clipa  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 )NrE  r.  r  r   r  r   r|  r   r  r  Trg  r  )r   r   r  r  r   r  r   r=  r  rg   r   r9   r   rj  rP  rM  rU  r  r  )r   r  r  r   	a_min_arr	a_max_arrminsmaxsr;  r?  r   r   rl  rV  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 )NTrg  ri  r   r.  r   r   rj  r
   r   r?  rl  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 )NTrg  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 )NTrg  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 )	NTrg  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 )NTrg  zA.*shape mismatch: objects cannot be broadcast to a single shape.*rE  r.  r  r   r  r   r  r   r-  )r`  r   r   r   r=  r  rg   r   r9   rj  rP  )	r   r?  rl  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=  rM  rU  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 )NTrg  c                 l    t           j                             |            |                      d S r   )r   rM  rU  )r   r?  r;  s    r   rz  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   rz  r?  r;  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 )NTrg  g      4@r   r   r`  g      0@)r  r   r   rg   r  rM  rU  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 )NTrg  r  r   f4)r  r   r   r   rM  r]  r9   r   )r   r;  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!   )V__name__
__module____qualname____doc__r  rB  rE  rG  ra  rc  re  rm  rr  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%  r6  r@  rN  rY  r^  ri  rk  rm  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/  __classcell__)r!  s   @r   r  r    s+        ) ) ) ) )7 7 7<A A AC C C*" *" *"X/ / /0 0 0  # # #Z" Z" Z"x& & & .- .- .-`"0 "0 "0H0 0 06 6 6: : :# # #   79i    (: : :2 2 25 5 52 2 2  A A A
? ? ?
B B B
  D D DJ J J     D* * *' ' '' ' '$ $ $"A A AF  6$! $! $!LS S S>6 6 6$3 3 38   ! ! !*! ! !0"2 "2 "2H'E 'E 'ER* * *$%7 %7 %7N8 8 8     8     8E E E$G G G*%A %A %ANQ Q Q< D  D  DD4 4 4	G 	G 	GE E E  $> > >0  ?" ?" ?"B  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>  r;  r   s       r   rz  z1TestArrayComparisons.test_identity.<locals>.check  sa    #FVAYYq		,BCCD##D$4$4Q$:$:%-8|$<> > > > >r!   r.  r   )r  r   TFr  r   )r   r   r  r   r  rJ   rV   rB   )r   rz  r   r;  s   `  @r   test_identityz"TestArrayComparisons.test_identity  s    	> 	> 	> 	> 	> 	>
 "hr***226::c3c3qqq64   c388::u%%%c388H%%u---c35%   c3ss8U#####r!   N)r0  r1  r2  r9  r   r!   r   r6  r6    s#        $ $ $ $ $r!   r6  __main__)r   Nr   )NNN)i	itertoolsr   r   r   r  r  r  numpyr   numbar   r   
numba.corer   numba.core.compilerr	   numba.core.errorsr
   r   r   r   numba.np.numpy_supportr   r   numba.tests.supportr   r   r   r   r   r   unittestr  TIMEDELTA_Yr    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  r6  r0  mainr   r!   r   <module>rF     s   2 2 2 2 2 2 2 2 2 2 				 



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