
    sh(                        S SK JrJr  S SKrS SKrS SKrS SKrS SKrS SK	J
r
JrJr  S SKJr  S SKJrJr  S SKJrJr  S SKJrJrJrJrJr  SrS	rS
 rS rS rS r S r!S r"S r#SSS jr$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S  r3S! r4S" r5S# r6S$ r7S% r8S& r9S' r:S( r;S) r<S* r=S+ r>S, r?S- r@S. rAS/ rBS0 rCS1 rDS2 rES3 rFS4 rGS5 rHS6 rIS7 rJS8 rKS9 rLS: rMS; rNS< rOS= rPS> rQS? rRS@ rSSA rTSB rUSTSC jrVSTSD jrWSUSE jrXSUSF jrYSG rZSH r[SI r\SJ r]SK r^SL r_SM r` " SN SO\\5      ra " SP SQ\5      rb\cSR:X  a  \R                  " 5         gg)V    )productcycleN)jitnjittypeof)types)TypingErrorNumbaValueError)as_dtypenumpy_version)TestCaseMemoryLeakMixin
needs_blasskip_if_numpy_2expected_failure_np2ztimedelta64[M]ztimedelta64[Y]c                 2    [         R                  " XU5        g Nnparoundarrdecimalsouts      r/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_array_methods.pynp_around_arrayr          IIcS!    c                 .    [         R                  " X5      $ r   r   valr   s     r   np_around_binaryr"      s    99S##r   c                 .    [         R                  " U 5      $ r   r   r!   s    r   np_around_unaryr%      s    99S>r   c                 2    [         R                  " XU5        g r   r   roundr   s      r   np_round_arrayr)      s    HHSC r   c                 2    [         R                  " XU5        g r   )r   round_r   s      r   np_round__arrayr,   !   r   r   c                 .    [         R                  " X5      $ r   r'   r    s     r   np_round_binaryr.   $   s    88C""r   c                 .    [         R                  " U 5      $ r   r'   r$   s    r   np_round_unaryr0   '   s    88C=r   c                    Ub\  U R                   R                  S:X  aB  [        U R                  XR                  5        [        U R                  XR                  5        U$ [
        R                  " XU5      nUct  S n[        U [        [
        R                  45      (       aD  [        U" U R                  UR                  5      U" U R                  UR                  5      5      nU$ U" X5      nU$ )z,
A slightly bugfixed version of np.round().
cc                 L    US:X  a  U S:  a  [         R                  " U5      * $ U$ )N        r   )r   abs)argress     r   fixup_signed_zero*_fixed_np_round.<locals>.fixup_signed_zero7   s$    #:#'FF3K<'Jr   )
dtypekind_fixed_np_roundrealimagr   r(   
isinstancecomplexcomplexfloating)r   r   r   r7   r8   s        r   r<   r<   *   s     399>>S0(HH5(HH5
hhsc*;
 #););<==/#((C/#((CE 
 (1
r   c                     U R                   $ r   )Tr   s    r   array_TrE   D   s    55Lr   c                 "    U R                  5       $ r   )	transposerD   s    r   array_transposerH   G   s    ==?r   c                 "    U R                  5       $ r   )copyrD   s    r   
array_copyrK   J   s    88:r   c                 .    [         R                  " U 5      $ r   )r   rJ   rD   s    r   np_copyrM   M   s    773<r   c                 .    [         R                  " U 5      $ r   )r   asfortranarrayrD   s    r   np_asfortranarrayrP   P   s    S!!r   c                 .    [         R                  " U 5      $ r   )r   ascontiguousarrayrD   s    r   np_ascontiguousarrayrS   S   s    $$r   c                 $    U R                  U5      $ r   viewr   newtypes     r   
array_viewrY   V       88Gr   c                 $    U R                  U5      $ r   take)r   indicess     r   
array_taker_   Y   rZ   r   c                      U R                  XS9$ Naxisr\   )r   r^   rc   s      r   array_take_kwsrd   \   s    88G8''r   c                 .    [         R                  " U 5      $ r   r   arange)arg0s    r   np_arange_1ri   _   s    99T?r   c                 .    [         R                  " X5      $ r   rf   )rh   arg1s     r   np_arange_2rl   b   s    99T  r   c                 0    [         R                  " XU5      $ r   rf   )rh   rk   arg2s      r   np_arange_3ro   e   s    99T&&r   c                 0    [         R                  " XX#5      $ r   rf   )rh   rk   rn   arg3s       r   np_arange_4rr   h   s    99T,,r   c                 *    [         R                  " XS9$ N)stoprf   )rh   ru   s     r   np_arange_1_stoprv   k       99T%%r   c                 *    [         R                  " XS9$ Nsteprf   )rh   r{   s     r   np_arange_1_stepr|   n   rw   r   c                 *    [         R                  " XS9$ Nr:   rf   )rh   r:   s     r   np_arange_1_dtyper   q   s    99T''r   c                 ,    [         R                  " XUS9$ ry   rf   )rh   rk   r{   s      r   np_arange_2_stepr   t   s    99Td++r   c                 ,    [         R                  " XUS9$ r~   rf   )rh   rk   r:   s      r   np_arange_2_dtyper   w   s    99Tu--r   c                 *    [         R                  " XS9$ rt   rf   )startru   s     r   np_arange_start_stopr   z   s    99U&&r   c                 ,    [         R                  " XUS9$ N)ru   r{   rf   )r   ru   r{   s      r   np_arange_start_stop_stepr   }   s    99UD11r   c                 ,    [         R                  " XX#S9$ )N)ru   r{   r:   rf   )r   ru   r{   r:   s       r   np_arange_start_stop_step_dtyper      s    99UD>>r   c                 $    U R                  U5      $ r   )fill)r   r!   s     r   
array_fillr      s    88C=r   c                    ^  U 4S jnU$ )Nc                 &   > U R                  T5      $ r   rU   rW   s    r   rY   #make_array_view.<locals>.array_view   s    xx  r    )rX   rY   s   ` r   make_array_viewr      s    !r   c                 L    U SS R                  [        R                  5      S   $ )Nr      )rV   r   float32rD   s    r   array_sliced_viewr      s     q8==$Q''r   c                    ^  U 4S jnU$ )Nc                 &   > U R                  T5      $ r   )astyperW   s    r   array_astype'make_array_astype.<locals>.array_astype   s    zz'""r   r   )rX   r   s   ` r   make_array_astyper      s    #r   c                 .    [         R                  " U 5      $ )z/
np.frombuffer() on a Python-allocated buffer.
r   
frombufferbs    r   np_frombufferr      s     ==r   c                 H    [         R                  " U [         R                  S9$ r~   )r   r   	complex64r   s    r   np_frombuffer_dtyper      s    ==",,//r   c                 ,    [         R                  " U SS9$ )Nr   r   r   r   s    r   np_frombuffer_dtype_strr      s    ==+..r   c                 t    [         R                  " U [         R                  S9n[         R                  " U5      $ )z.
np.frombuffer() on a Numba-allocated buffer.
r   )r   onesint32r   shaper   s     r   np_frombuffer_allocatedr      s'     ''%rxx
(C==r   c                     [         R                  " U [         R                  S9n[         R                  " U[         R                  S9$ r~   )r   r   r   r   r   r   s     r   np_frombuffer_allocated_dtyper      s+    
''%rxx
(C==BLL11r   c                     XL XL4$ r   r   ar   s     r   identity_usecaser      s    Faj!!r   c                 "    U R                  5       $ r   )nonzeror   s    r   array_nonzeror      s    99;r   c                 .    [         R                  " U 5      $ r   )r   r   r   s    r   
np_nonzeror      s    ::a=r   c                 .    [         R                  " U 5      $ r   r   where)r2   s    r   
np_where_1r      s    88A;r   c                 0    [         R                  " XU5      $ r   r   )r2   xys      r   
np_where_3r      s    88A!r   c                 "    U R                  5       $ r   )itemr   s    r   
array_itemr          668Or   c                 &    U R                  U5        g r   )itemset)r   vs     r   array_itemsetr      s    IIaLr   c                      U R                   " U6 $ r   sumr   argss     r   	array_sumr      s    55$<r   c                      U R                  US9$ ra   r   r   rc   s     r   array_sum_axis_kwsr      s    55d5r   c                      U R                  US9$ r~   r   )r   r:   s     r   array_sum_dtype_kwsr      s    55u5r   c                      U R                  X!S9$ )Nrc   r:   r   )r   r:   rc   s      r   array_sum_axis_dtype_kwsr      s    55d5((r   c                 $    U R                  X5      $ r   r   )r   a1a2s      r   array_sum_axis_dtype_posr      s    55=r   c                     [         R                  " U SS9n[         R                  " U S5      n[         R                  " X5      nU R                  SS9n[         R                  " U SS9nX#XEU4$ )Nr   rb         )r   r   )r   rc   r   r   r2   des          r   array_sum_const_multir      s\     	sA
sAA
sAQA
sAq=r   c                      U R                  SS9$ )Nr   rb   r   r   s     r   array_sum_const_axis_neg_oner      s     55b5>r   c                      U R                   " U6 $ r   cumsumr   s     r   array_cumsumr      s    88T?r   c                      U R                  US9$ ra   r   r   s     r   array_cumsum_kwsr      s    888r   c                 .    [         R                  " U 5      $ r   )r   r=   r   s    r   
array_realr          771:r   c                 .    [         R                  " U 5      $ r   )r   r>   r   s    r   
array_imagr      r   r   c                 0    [         R                  " XU5      $ r   r   clipr   a_mina_maxs      r   np_clip_no_outr      s    771U##r   c                 0    [         R                  " XX#5      $ r   r   r   r   r   r   s       r   np_clipr      s    771U((r   c                 ,    [         R                  " XX#S9$ Nr   r   r   s       r   np_clip_kwargsr      s    771U,,r   c                 &    U R                  XU5      $ r   r   r   s       r   
array_clipr     s    66%$$r   c                 "    U R                  XUS9$ r   r  r   s       r   array_clip_kwargsr     s    66%C6((r   c                 $    U R                  X5      $ r   r  r   s      r   array_clip_no_outr     s    66%r   c                 "    U R                  5       $ r   )conjr   s    r   
array_conjr	    r   r   c                 "    U R                  5       $ r   )	conjugater   s    r   array_conjugater    s    ;;=r   c                 .    [         R                  " U 5      $ r   )r   uniquer   s    r   	np_uniquer    s    99Q<r   c                 $    U R                  U5      $ r   dotr   s     r   	array_dotr    s    558Or   c                 B    U R                  U5      R                  U5      $ r   r  r   s     r   array_dot_chainr    s    558<<?r   c                 *    [         R                  " XS9$ r~   )r   r   )nr:   s     r   
array_ctorr    s    771""r   c                   2  ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 r\S
 5       rS rS rS rS rS rS rS rS rS rS rS r\R4                  4S jrS rS rS rS rS r S r!S r"S r#S r$S  r%S! r&S" r'S# r(S$ r)S% r*S& r+S' r,S( r-S) r.S* r/S+ r0S, r1S- r2S. r3S/ r4S0 r5S1 r6S2 r7S3 r8S4 r9\S5 5       r:S6 r;S7 r<S8 r=S9 r>S: r?S; r@S< rAS= rBS> rCS? rDS@ rESA rFSB rGSC rHSD rISE rJSF rKSG rLSH rMSI rNSJ rOSK rPSL rQSM rRSN rS\TSO 5       rUSP rVSQrWU =rX$ )RTestArrayMethodsi  z9
Test various array methods and array-related functions.
c                 *   > [         [        U ]  5         g r   )superr  setUp)self	__class__s    r   r  TestArrayMethods.setUp  s    +-r   c                    / SQnU Vs/ s H  oDS-  PM	     nnU Vs/ s H  n[        U5      PM     nn[        R                  [        R                  [        R                  [        R
                  [        R                  4nX3UXU/nUn	[        Xx5       Hh  u  p[        U
[        R                  45      " U	5      nS H<  nU H3  nUS:  a  US-  n[        X5      nU" X5      nU R                  UU5        M5     M>     Mj     Un	[        Xx5       HE  u  p[        U
45      " U	5      nU H(  n[        U5      nU" U5      nU R                  UU5        M*     MG     g s  snf s  snf )Ng      g      g      g            ?g      @      @g      @      ?      )   r   r   r   
   )intr   float64r   r   r   
complex128zipr   r<   assertPreciseEqual)r  unary_pyfuncbinary_pyfuncbase_valuesr   complex_values
int_valuesargtypes	argvaluespyfunctyvaluescfuncr   r   expectedgots                    r   check_round_scalar#TestArrayMethods.check_round_scalar  sB   E0;<1v,<&12kc!fk
2MM5==%++OOU%5%57 z#5	 h2JB"ekk*+F3E&A!|R.q;H,C++C:   ' 3 h2JB"K'E*1-Ah''X6  3' =2s
   EEc                 8    U R                  [        [        5        g r   )r:  r0   r.   r  s    r   test_round_scalar"TestArrayMethods.test_round_scalar8  s    @r   c                 8    U R                  [        [        5        g r   )r:  r%   r"   r=  s    r   test_around_scalar#TestArrayMethods.test_around_scalar;  s    1ABr   c                   ^ ^^ U 4S jmUU4S jn[         R                  " / SQ5      n[        R                  [        R                  4nU" XDU5        [        R
                  [        R                  4nU" XDUS-  5        T R                  5         g )Nc                   > UR                  [        U5      5      n[        R                  " U5      R                  [        U5      5      nUR	                  5       n[        XTU5        T	R                  5         U " XTU5        T	R                  5         [        R                  R                  Xg5        T	R                  [        5       nU " XTUSS  5        S S S 5        T	R                  [        WR                  5      S5        g ! , (       d  f       N4= f)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)
r7  r6  intyouttyr   r   r   pyoutraisesr  s
            r   check_round7TestArrayMethods.check_round_array.<locals>.check_round?  s    --/C--$++HUO<CHHJEC51""$#%%%'JJ&&s2"":.&cSW- /S!1!1235 /.s   C>>
Dc                 R  > [        X5       H  u  p4[        R                  " USS5      [        R                  [        R                  " USS5      4n[	        U5      " T5      nT" XbX4S5        T" XbX4S5        [        U[        R                  5      (       d  T" XbS-  X4S5        M  M     g )Nr&  Ar   r'  r   )r   r   Arrayr   r   r?   Integer)	r2  outtypesr6  rO  rP  argtysr7  rS  r4  s	          r   check_types7TestArrayMethods.check_round_array.<locals>.check_typesO  s    &x:++dAs3U[[++eQ46VV,E4:E4:!%77{DD   ;r   r"  r%  )r   arrayr   r)  r   r   r*  disable_leak_check)r  r4  r[  r6  r2  rS  s   ``   @r   check_round_array"TestArrayMethods.check_round_array>  sk    	5 	 IJMM5==1H/OOU%5%56H&(9: 	!r   c                 .    U R                  [        5        g r   )r_  r)   r=  s    r   test_round_array!TestArrayMethods.test_round_arrayh  s    ~.r   c                 .    U R                  [        5        g r   )r_  r   r=  s    r   test_around_array"TestArrayMethods.test_around_arrayk  s    /r   c                 .    U R                  [        5        g r   )r_  r,   r=  s    r   test_round__array"TestArrayMethods.test_round__arrayn  s    /r   c                     [         [        4 H;  n[        SS9" U5      nSnU R                  [        U5         U" S 5        S S S 5        M=     g ! , (       d  f       MO  = f)NTnopython'.*The argument "a" must be array-like.*)r0   r%   r   assertRaisesRegexr	   r  r4  r7  msgs       r   test_around_bad_array&TestArrayMethods.test_around_bad_arrayr  sM    %7F&v.E;C''S9d :9 8 :9s   	A
A	c                     [         [        /n[        S:  a  UR                  [        5        U H;  n[        SS9" U5      nSnU R                  [        U5         U" SSSS9  S S S 5        M=     g ! , (       d  f       MO  = f)	N   r   Trk  9.*The argument "out" must be an array if it is provided.*r   r      r   )r)   r   r   appendr,   r   rn  r	   )r  funcspy_funcr7  rp  s        r   test_around_bad_out$TestArrayMethods.test_around_bad_outy  sk    16!LL)G&w/EMC''S9a" :9  :9s   	A..
A=	c                 	  ^ ^ S mUU 4S jnUU 4S jnUU 4S jnUU 4S jnUU 4S jnUU 4S jn[         R                  " S[         R                  4S	[         R                  4/5      n[         R                  " S
[         R                  4S[         R                  4/5      n[         R                  " S[         R                  4S[         R                  4/5      n	Un
UnUnUn[         R                  " S[         R                  S9nU" U[         R                  " S5      5        U" U[         R                  5        U" U[         R                  5        U" U[         R
                  5        U" U[         R                  5        U" X5        U" X5        U
" U[         R                  5        UR                  S5      nU" U[         R                  5        U" U[         R
                  5        U" U[         R                  5        U" X5        U
" X5        U
" U[         R                  5        [         R                  " S[         R                  S9R                  S5      R                  n[         R                  " S5      R                  S S S2S S S24   nUnU" U[         R                  5        U" U[         R                  5        U" U[         R
                  5        U" U[         R                  5        U" X5        U" X5        U" U[         R                  5        U" U[         R                  5        [         R                  " S[         R                  S9S S S2   nU" U[         R                  5        U" U[         R
                  5        U" X5        U" U[         R                  5        U" U[         R                  5        U" U[         R                  5        U" X5        U" X5        [         R                  " S/[         R                  S9R                  S5      nU" U[         R                  5        U" U[         R
                  5        U" X5        U" U[         R                  5        U" U[         R                  5        U" U[         R                  5        U" X5        U" X5        [         R                  " S/5      nU" U[         R                  5        T R!                  5         g )Nc                 :    [        U5      n[        U5      " U 5      $ r   )r   r   r   r:   r4  s      r   run-TestArrayMethods.test_array_view.<locals>.run  s    $U+F<$$r   c                    > U R                  U5      nTR                  5         T" X5      nTR                  X25        ATR                  5         g r   )rV   rF  r,  rG  r   r:   r8  r9  r  r  s       r   check/TestArrayMethods.test_array_view.<locals>.check  sB    xxH""$c/C##C2%%'r   c                    > TR                  [        5       nT" X5        S S S 5        TR                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nz"new type not compatible with array)rJ  rK  rL  rM  rN  )r   r:   rR  r  r  s      r   	check_err3TestArrayMethods.test_array_view.<locals>.check_err  sG    "":.&C /S!1!12AC /.   	A
Ac                   > SnTR                  [        5       n[        U5      " U 5        S S S 5        TR                  [	        WR
                  5      U5        TR                  [        5       nT" X5        S S S 5        TR                  [	        UR
                  5      U5        g ! , (       d  f       N= f! , (       d  f       NE= f)NzJTo change to a dtype of a different size, the last axis must be contiguousrJ  rK  r   rL  rM  rN  r   r:   rp  rR  r  r  s       r   check_err_noncontig_last_axisGTestArrayMethods.test_array_view.<locals>.check_err_noncontig_last_axis  s    (C"":.&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.   B$-	B5$
B25
Cc                   > SnTR                  [        5       n[        U5      " U 5        S S S 5        TR                  [	        WR
                  5      U5        TR                  [        5       nT" X5        S S S 5        TR                  [	        UR
                  5      U5        g ! , (       d  f       N= f! , (       d  f       NE= f)NzOChanging the dtype of a 0d array is only supported if the itemsize is unchangedr  r  s       r   check_err_0d6TestArrayMethods.test_array_view.<locals>.check_err_0d  s    2C"":.&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.r  c                   > SnTR                  [        5       n[        U5      " U 5        S S S 5        TR                  [	        WR
                  5      U5        TR                  [        5       nT" X5        S S S 5        TR                  [	        UR
                  5      U5        g ! , (       d  f       N= f! , (       d  f       NE= f)NzZWhen changing to a smaller dtype, its size must be a divisor of the size of original dtyper  r  s       r   check_err_smaller_dtypeATestArrayMethods.test_array_view.<locals>.check_err_smaller_dtype  s    ;C"":.&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.r  c                   > SnTR                  [        5       n[        U5      " U 5        S S S 5        TR                  [	        WR
                  5      U5        TR                  [        5       nT" X5        S S S 5        TR                  [	        UR
                  5      U5        g ! , (       d  f       N= f! , (       d  f       NE= f)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_dtype@TestArrayMethods.test_array_view.<locals>.check_err_larger_dtype  s    #C "":.&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.r  r   r   ur   r   r      r   int16r      r   r   ru     *   r   abcdef)r   r:   int8r  rg   r   r   r*  reshaperC   zerosuint64r   uint32int64r]  r^  )r  r  r  r  r  r  r  dt1dt2dt3check_error_larger_dtcheck_error_smaller_dtcheck_error_noncontigcheck_error_0dr   f_arrnot_f_or_c_arrcheck_maybe_errorr  s   `                 @r   test_array_view TestArrayMethods.test_array_view  s]   	%	(	C
	9
	9
	9	9 hhbggbgg78hhbhh#rww89hhbhh#rxx9: 6!8 =% ii"''*c288G$%c288c277c2::c2<< ccc2==1 kk&!c277c2::c2<< cc'c2==1 		"BGG,44V<>>&)++CaC1H59eRWWnbii(%,%.%%e)eR]]3nbgg6 ii"((+CaC0c299c2::cc277+c288,c288,c'c' hht288,44R8c299c2::csBGG$sBHH%sBHH%s s  hhz"sBMM2 	!r   c                     [         n[        [        R                  SS 45      " U5      n[        R
                  " SS/[        R                  S9nUR                  [        R                  5      nU" U5      nU" U5      nU R                  XV5        g)zH
Test .view() on A layout array but has contiguous innermost dimension.
Nr#  ru  r   )	r   r   r   uint8r   r]  r   rV   rL  )r  r4  r7  origbytearyexpectr9  s          r   test_array_sliced_view'TestArrayMethods.test_array_sliced_view  sm     #ekk!n&'/xxa

3))BHH%Gn%r   c                   ^ ^ S mUU 4S jn[         R                  " S[         R                  S9nU" U[         R                  " S5      5        U" U[         R                  5        U" U[         R
                  5        U" U[         R                  5        U" US5        [         R                  " S[         R                  S9R                  S5      R                  nU" U[         R
                  5        [         R                  " S[         R                  S9S S S	2   nU" U[         R                  5        [         R                  " S[         R                  S9nS
UR                  l        U" U[         R                  5        [         R                  " S[         R                  4/5      nT R                  5        nU" X#5        S S S 5        T R                  S[        WR                  5      5        SnT R                  5        n[!        SS9S 5       nU" U5        S S S 5        T R                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nc                 :    [        U5      n[        U5      " U 5      $ r   )r   r   r  s      r   r  /TestArrayMethods.test_array_astype.<locals>.run$  s    &u-F<$$r   c                 t   > U R                  U5      R                  SS9nT" X5      nTR                  X25        g )NrV  order)r   rJ   r,  r  s       r   r  1TestArrayMethods.test_array_astype.<locals>.check(  s6    zz%(--C-8Hc/C##C2r   r  r   r  r   r  r  ru  Fr   z#cannot convert from int32 to RecordTrk  c                 P    [         R                  " S/5      R                  U 5        g Nr&  )r   r]  r   r   s    r   foo/TestArrayMethods.test_array_astype.<locals>.fooK  s    !$$U+r   z5array.astype if dtype is a string it must be constant)r   rg   r  r:   r   r   r*  r  rC   r  flags	writeableassertTypingErrorassertInrM  rN  r   )r  r  r   dtrR  unicode_valr  r  s   `      @r   test_array_astype"TestArrayMethods.test_array_astype"  s   	%	3 ii"''*c288G$%c288c2::c2==!c9 ii"''*226:<<c2:: ii"((+CaC0c299 ii"((+#		c288 XXRWW~&'##%#N &;&**+	-  ##%$,  ,	 &
 	M&**+	- &% &%s   0	H>8I>
I
Ic                 (  ^ ^^ [        T5      mUUU 4S jn[        [        S5      5      nU" U5        U" [        U5      5        U" [	        U5      5        U" [
        R                  " S5      5        [
        R                  " S5      R                  S5      nU" U5        T R                  5         T R                  [        5       nT" [        S5      5        S S S 5        T R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                   > [         R                  " U 5      nT" U 5      nTR                  5         T" U 5      nTR                  X25        A[        R
                  " 5         TR                  [         R                  " U 5      US-   5        A[        R
                  " 5         TR                  [         R                  " U 5      U5        TR                  5         g r  )sysgetrefcountrF  r,  gccollectrL  rG  )buf
old_refcntr8  r9  r7  r4  r  s       r   r  3TestArrayMethods.check_np_frombuffer.<locals>.checkV  s    -Jc{H""$*C##C2 JJLS__S1:>BJJLS__S1:>%%'r   r     )r   r   s   xxxz.buffer size must be a multiple of element size)r   	bytearrayrangebytes
memoryviewr   rg   r  r^  rJ  rK  rL  rM  rN  )r  r4  r  r   rR  r7  s   ``   @r   check_np_frombuffer$TestArrayMethods.check_np_frombufferR  s    V	(  eBi aeAhjmbiimIIbM!!&)a 	!z*f)F#$ +IV--.	0 +*s   D
Dc                 .    U R                  [        5        g r   )r  r   r=  s    r   test_np_frombuffer#TestArrayMethods.test_np_frombufferv  s      /r   c                 .    U R                  [        5        g r   )r  r   r=  s    r   test_np_frombuffer_dtype)TestArrayMethods.test_np_frombuffer_dtypey  s      !45r   c                 .    U R                  [        5        g r   )r  r   r=  s    r   test_np_frombuffer_dtype_str-TestArrayMethods.test_np_frombuffer_dtype_str|  s      !89r   c                    [        SS9S 5       nU R                  [        5       nU" [        [	        S5      5      S5        S S S 5        [        WR                  5      nSnU R                  XC5        g ! , (       d  f       N7= f)NTrk  c                 ,    [         R                  " XS9  g r~   r   )r  r  s     r   funcETestArrayMethods.test_np_frombuffer_dtype_non_const_str.<locals>.func  s    MM#(r   r  r   z@If np.frombuffer dtype is a string it must be a string constant.)r   rJ  r	   r  r  rM  rN  r  )r  r  rR  excstrrp  s        r   &test_np_frombuffer_dtype_non_const_str7TestArrayMethods.test_np_frombuffer_dtype_non_const_str  sq    	d		) 
	) {+v59%w/ , V%%&"c" ,+s   A22
B c                     [        SS9S 5       nSnU R                  [        U5       nU" S 5        S S S 5        g ! , (       d  f       g = f)NTrk  c                 .    [         R                  " U 5      $ r   r   )r  s    r   r  <TestArrayMethods.test_np_frombuffer_bad_buffer.<locals>.func  s    ==%%r   z).*Argument "buffer" must be buffer-like.*)r   rn  r	   )r  r  rp  rR  s       r   test_np_frombuffer_bad_buffer.TestArrayMethods.test_np_frombuffer_bad_buffer  sE    	d		& 
	& :##K5J 655s	   	:
Ac                   ^ ^^ S mUUU 4S jnU" S5      nU" U5        U" UR                  S5      5        U" UR                  S5      R                  5        U" UR                  S5      S S S2   5        U" UR                  S5      5        U" UR                  S5      R                  5        U" UR                  S5      S S S2   5        [        R                  " S/5      R                  S5      nU" U5        g )	Nc                 \    U R                   R                  UR                   R                  :H  $ r   )ctypesdatar   s     r   is_same=TestArrayMethods.check_layout_dependent_func.<locals>.is_same  s    88==AHHMM11r   c                    > [        [        U 5      45      " T5      nT" U 5      nU" U 5      nTR                  X#5        TR                  T" X 5      T" X05      5        g r   )r   r   r,  rL  )r   r7  r8  r9  r  r4  r  s       r   	check_arr?TestArrayMethods.check_layout_dependent_func.<locals>.check_arr  sR    &+(0Ec{H*C##H2WX3WS5FGr   r  r  ru  ru  r   r   r   r   )r  rC   r   r]  )r  r4  facr  r   r  s   ``   @r   check_layout_dependent_func,TestArrayMethods.check_layout_dependent_func  s    	2	H "g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.hhsm##B'#r   c                 .    U R                  [        5        g r   )r  rH   r=  s    r   test_array_transpose%TestArrayMethods.test_array_transpose  s    ((9r   c                 .    U R                  [        5        g r   )r  rE   r=  s    r   test_array_TTestArrayMethods.test_array_T      ((1r   c                 .    U R                  [        5        g r   )r  rK   r=  s    r   test_array_copy TestArrayMethods.test_array_copy  s    ((4r   c                 .    U R                  [        5        g r   )r  rM   r=  s    r   test_np_copyTestArrayMethods.test_np_copy  r  r   c                    ^ ^ UU 4S jnSSS[         R                  " S5      [         R                  " S5      S4 H  nU" U5        M     g )Nc                 ~   > [        [        U 5      45      " T5      nT" U 5      nU" U 5      nTR                  X#5        g r   r   r   r,  )r   r7  r8  r9  r4  r  s       r   check_scalarETestArrayMethods.check_ascontiguousarray_scalar.<locals>.check_scalar  s8    &)&v.EayH(C##H2r   r  g      E@y              E@T)r   r   r)  )r  r4  r  r   s   ``  r   check_ascontiguousarray_scalar/TestArrayMethods.check_ascontiguousarray_scalar  s9    	3
 dCBBFAO Gr   c                     SnU R                  [        U5       n[        [        S5      45      " U5        S S S 5        g ! , (       d  f       g = f)Nrm  hello)rn  r	   r   r   )r  r4  rp  rR  s       r   check_bad_array TestArrayMethods.check_bad_array  s9    7##K5&/$%f- 655s	   >
Ac                     U R                  [        5        U R                  [        5        U R                  [        5        g r   )r  rP   r  r  r=  s    r   test_np_asfortranarray'TestArrayMethods.test_np_asfortranarray  s/    (():;./++,=>r   c                     U R                  [        5        U R                  [        5        U R	                  [        5        g r   )r  rS   r  rP   r  r=  s    r   test_np_ascontiguousarray*TestArrayMethods.test_np_ascontiguousarray  s/    (()=>./++,@Ar   c                 `   ^ ^^ [        T5      mUUU 4S jnU" S5        U" S5        U" S5        g )Nc                 H   > T" U 5      nT" U 5      nTR                  X!5        g r   r,  )r   r8  r9  r7  r4  r  s      r   r  =TestArrayMethods.check_np_frombuffer_allocated.<locals>.check  s#    e}H,C##C2r   )r  r  r&  r   r&  )r   )r  r4  r  r7  s   `` @r   check_np_frombuffer_allocated.TestArrayMethods.check_np_frombuffer_allocated  s)    V	3
 	efir   c                 .    U R                  [        5        g r   )r#  r   r=  s    r   test_np_frombuffer_allocated-TestArrayMethods.test_np_frombuffer_allocated  s    **+BCr   c                 .    U R                  [        5        g r   )r#  r   r=  s    r   test_np_frombuffer_allocated2.TestArrayMethods.test_np_frombuffer_allocated2  s    **+HIr   c                   ^ ^ S nUU 4S jn[         R                  " / SQ5      nU" U5        [         R                  " / SQ5      nU" U5        U" S5      nU" U5        U" UR                  S5      5        U" UR                  S5      R                  5        U" UR                  S5      S S S2   5        U" UR                  S5      5        U" UR                  S5      R                  5        U" UR                  S5      S S S2   5        [         R
                  " / S	Q5      nU" U5        S
S[        S5      4 H  n[         R
                  " U/5      R                  S5      n[        S:  a
  U" U5        M=  T R                  [        [        45       n[        [        U5      45      " T5        S S S 5        SnT R                  U[        WR                  5      5        M     g ! , (       d  f       N:= f)Nc                     [         R                  R                  S5        [         R                  R                  U 5      nSXS:  '   [        S5      XS:  '   U$ Nr  r4   g333333?nangffffff?r   randomseedfloatNr   s     r   r  +TestArrayMethods.check_nonzero.<locals>.fac  E    IINN2))""1%C Cc	N"5\Cc	NJr   c                    > [        [        U 5      45      " T5      nT" U 5      nU Vs/ s H  o3R                  5       PM     nnTR                  U" U 5      U5        g s  snf r   )r   r   rJ   r,  )r   r7  r8  r   r4  r  s       r   r  1TestArrayMethods.check_nonzero.<locals>.check_arr  sR    &+(0Ec{H*23(Q(H3##E#J9 4s   Ar&  r   r   r   r"  r  r  ru  r  )Hello worldr4   r#  r.  r   )ru  r&  zYCalling nonzero on 0d arrays is not allowed. Use np.atleast_1d(scalar).nonzero() instead.)r   r  bool_r  rC   r]  r2  r   rJ  rK  r	   r   r   r  rM  rN  )r  r4  r  r  r   r   rR  rp  s   ``      r   check_nonzeroTestArrayMethods.check_nonzero  sz   		: hh}%#hhy!#"g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.hh-.#sE%L)A((A3-''+Cv%#&&
K'@AV&+(0 BAc3v'7'7#89 *
 BAs   G
G+	c                 .    U R                  [        5        g r   )r>  r   r=  s    r   test_array_nonzero#TestArrayMethods.test_array_nonzero
  s    =)r   c                 .    U R                  [        5        g r   )r>  r   r=  s    r   test_np_nonzero TestArrayMethods.test_np_nonzero      :&r   c                 .    U R                  [        5        g r   )r>  r   r=  s    r   test_np_where_1 TestArrayMethods.test_np_where_1  rF  r   c                   ^ ^^^	 [         m	S n[        / SQ5      m[        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  /m[        R                  R                  S5        SUUU	U 4S jjnUU	U 4S jn[        R                  " / SQ5      nU" U5        [        R                  " / SQ5      nU" U5        U" S5      nU" U5        U" UR                  S	5      5        U" UR                  S	5      R                  5        U" UR                  S	5      S S S
2   5        U" UR                  S5      5        U" UR                  S5      R                  5        U" UR                  S5      S S S
2   5        U" UR                  S5      SS9  U" UR                  S5      R                  SS9  U" UR                  S5      S S S
2   SS9  SS[        S5      4 H1  n[        R                   " U/5      R                  S5      nU" U5        M3     S H  nU" U5        M     g )Nc                     [         R                  R                  S5        [         R                  R                  U 5      nSXS:  '   [        S5      XS:  '   U$ r-  r/  r3  s     r   r  -TestArrayMethods.test_np_where_3.<locals>.fac  r6  r   CFrV  r  c                 D  > [         R                  R                  T5        US:w  aB  [         R                  " U TS   US9n[         R                  " U TS   US9nU R	                  US9n OD[         R                  " U TS   [        T5      S9n[         R                  " U TS   [        T5      S9nUR                  S5        UR                  S5        [        [        U 5      [        U5      [        U5      45      " T	5      nT	" XU5      nU" XU5      nT
R                  Xe5        g )NFr   )r:   r  r&  r  r   	   )
r   r0  shufflerE  rJ   nextr   r   r   r,  )r   layoutr   r   r7  r8  r9  _typeslayoutsr4  r  s          r   r  3TestArrayMethods.test_np_where_3.<locals>.check_arr"  s    IIf%MM#VAYfEMM#VAYfEhhVh,MM#VAYd7mLMM#VAYd7mLFF1IFF1I&+vay&)<=fEEca(H"C##C2r   c                   > SnSn[         R                  R                  T5        TS   " S5      nTS   " S5      n[        [	        U 5      [	        U5      [	        U5      45      " T5      nT" XU5      nU" XU5      nTR                  XT5        g )Nr   r   r   r&  )r   r0  rR  r   r   r,  )	scalr   r   r7  r8  r9  rU  r4  r  s	         r   
check_scal4TestArrayMethods.test_np_where_3.<locals>.check_scal2  s    AAIIf%q	!Aq	!A&,q	6!9=>vFEdq)H#C##C2r   r9  r"  r  r  ru  r  rO  )rT  r4   r#  r.  r   )r   r&  TFr$  y                F)r   r   r   r   r  r   r)  r   r*  r0  r1  r  r=  r  rC   r2  r]  )
r  r  r  rZ  r   r   r   rU  rV  r4  s
   `      @@@r   test_np_where_3 TestArrayMethods.test_np_where_3  s   	 (((BHHbjj"**bll--! 			r	3 	3 		3 hh}%#hhy!#"g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.#++i(5#++i(**37#++i(1-c:sE%L)A((A3-''+CcN * .AqM .r   c                    ^ ^^ [         m[        SS9" T5      mUUU 4S jnU 4S jnU" 5        HA  nUS:  SS4nU" U5        US:  [        R                  S4nU" U5        US:  SS4nU" U5        MC     g )	NTrk  c                 <   > T" U 6 nT" U 6 nTR                  X!5        g r   r   )r   r8  r9  r7  r4  r  s      r   check_okGTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.check_okZ  s#    t}H,C##C2r   c               3     >#    [         R                  " SSS5      n TR                  R                  U 5        U v   U R	                  SSS5      v   U R	                  SSSS9v   U R	                  SSS5      S S S2   v   g 7f)	Nr      ru  r   rO  r  r   )r   linspacer0  rR  r  )r   r  s    r   a_variationsKTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.a_variations_  ss     B2&AKK"G))Aq!$$))Aq),,))Aq!$TrT**s   A<A?r   r&  y      ?      @F)r   r   r   r.  )r  ra  rg  r   paramsr7  r4  s   `    @@r   $test_np_where_3_broadcast_x_y_scalar5TestArrayMethods.test_np_where_3_broadcast_x_y_scalarV  sz    T"6*	3
	+ A!eQ]FV!eRVVV,FV!eT5)FV  r   c                    ^ ^	^
 [         m
[        SS9" T
5      m	U	U
U 4S jnS nS nU" 5        H7  nU" 5        H)  n[        R                  " U5      nXF:  nXtU4nU" U5        M+     M9     g )NTrk  c                    > U u  pnT" XU5      nT" XU5      nTR                  XT5        T" XU5      nT" XU5      nTR                  XT5        g r   r   )	r   	conditionr   r   r8  r9  r7  r4  r  s	         r   ra  JTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.check_oku  sZ    "OI!iA.H	a(C##C2 iA.H	a(C##C2r   c               3     #    [         R                  " S5      R                  SS5      n U v   U S-  v   [         R                  " U 5      v   U S S S2   v   [         R                  " SSS5      R                  SSS	5      S
-  v   g 7f)NrQ  r   g?r   r'  <   r   r                 ?)r   rg   r  rO   rf  r   s    r   array_permutationsTTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.array_permutations  sr     		!$$Q*AGc'M##A&&DbD'M++c2r*221a;b@@s   BBc               3   P   #    Sv   Sv   [         R                  v   Sv   Sv   g 7f)Nr   g333333@Ty       @      @)r   r.  r   r   r   scalar_permutationsUTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.scalar_permutations  s"     GI&&LJLs   $&)r   r   r   mean)r  ra  ru  rx  r   r   x_meanrn  ri  r7  r4  s   `        @@r   'test_np_where_3_broadcast_x_or_y_scalar8TestArrayMethods.test_np_where_3_broadcast_x_or_y_scalarq  si    T"6*
	3	A	 $%A(*J	#* 	 + &r   c                 `   [         n[        SS9" U5      n[        [        R                  [        R
                  [        R                  [        R                  [        R                  /nU GH  n[        R                  " S[        S9n[        R                  R                  U" XT" S5      U" S5      5      U" S5      5        [        R                  R                  U" U) U" S5      U" S5      5      U" S5      5        [        R                  R                  U" SU" S5      U" S5      5      U" S5      5        [        R                  R                  U" SU" S5      U" S5      5      U" S5      5        [        R                  " U5      R                  U5      n[        R                  " U5      nUR                  U5      nSUS'   US   US'   [        R                  R                  U" XWU5      U5        [        R                  R                  U" XVU5      U5        [        R                  R                  U" XVUS   5      U5        [        R                  R                  U" XVS   U5      U5        [        R                  R                  U" US S S	2   US S S	2   US S S	2   5      US S S	2   5        [        R                  R                  U" USS S	2   USS S	2   USS S	2   5      USS S	2   5        [        R                  R                  U" US S S
2   US S S
2   US S S
2   5      US S S
2   5        [        R                  R                  U" USS S
2   USS S
2   USS S
2   5      USS S
2   5        [        R                  R                  U" US S S2   US S S2   US S S2   5      US S S2   5        [        R                  R                  U" US S S2   US S S2   US S S2   5      US S S2   5        [        R                  R                  U" USS S2   USS S2   USS S2   5      USS S2   5        GM     g )NTrk  5   r   r   r&  F   ru  r   rd  )r   r   boolr   r  r   r  doubler*  r   rH  assert_equal	ones_liker   rE  )	r  r4  r7  dtsr  r2   r   r   rs	            r   test_np_where_numpy_basic*TestArrayMethods.test_np_where_numpy_basic  s|   T"6* RXXrxx299bmmLB$'AJJ##E1beRU$;RUCJJ##E1"beRU$;RUCJJ##E$1r!u$=r!uEJJ##E%A1$>1FQ&&r*Aa AAAaDQ4AaDJJ##E!NA6JJ##E!NA6JJ##E!!$5q9JJ##E!qT1$5q9JJ##E!CaC&!CaC&!CaC&$A1SqS6JJJ##E!ADqD'1QTT7AaddG$Da1gNJJ##E!CaC&!CaC&!CaC&$A1SqS6JJJ##E!ADqD'1QTT7AaddG$Da1gNJJ##E!DbD'1TrT7AddG$Da"gNJJ##E!DbD'1TrT7AddG$Da"gNJJ##E!AErE(AaeeHa2h$G15b5R+ r   c                    [         n[        SS9" U5      nSS/n[        R                  " S5      n[        R                  " S5      nU" [        R
                  " U5      S S 2[        R                  4   XE5      n[        R                  R                  US   US   5        [        R                  R                  US   US   5        UR                  nUR                  nU" X4U5      n[        R                  R                  US S 2S4   US S 2S4   5        [        R                  R                  US S 2S4   US S 2S4   5        g )NTrk  F)ru     r   r&  )
r   r   r   r  r   r]  newaxisrH  assert_array_equalrC   )r  r4  r7  r2   r   r   r  s          r   test_np_where_numpy_ndim)TestArrayMethods.test_np_where_numpy_ndim  s    T"6*5MHHWGGG"((1+a

l+Q2


%%adAaD1


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


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


%%a!fa!f5r   c                 *   [         n[        SS9" U5      n[        R                  " / SQ5      n[        R                  " S5      n[        R                  " / SQ[        R
                  S9n[        R                  " / SQ[        R
                  S9n[        R                  R                  U" X4U5      U5        UR                  [        R                  5      nUR                  [        R                  5      n[        R                  R                  U" X4U5      U5        UR                  [        5      nSX3S	:g  '   [        R                  R                  U" X4U5      U5        US	:g  nS
X3S	:H  '   S	X7'   [        R                  R                  U" X5U5      U5        g )NTrk  )FTFFFFTFFFTFr&  )      @r4         @       @            r4         $      $@      ?r4   r  r   )r  r  r  r  r  r  r  r  r  r  r  r  i
r   iau)r   r   r   r]  r  r)  rH  r  r   r   r  r(  )r  r4  r7  r2   r   r   r  tmpmasks           r   test_np_where_numpy_dtype_mix.TestArrayMethods.test_np_where_numpy_dtype_mix  s'   T"6*HH 0 1IIaLHHJJJ(HHJ::'


aA2HHRZZ HHRXX


aA2 HHSMq&	


aA2q&q&	



aA2r   c                    [         n[        SS9" U5      nSS/n[        R                  " S5      n[        R                  " S5      nU R	                  5         U R                  [        S5         U" X4U5        S S S 5        U R                  [        S5         U" US   XE5        S S S 5        g ! , (       d  f       N:= f! , (       d  f       g = f)NTrk  )r   r   )r   r   zobjects cannot be broadcastr   )r   r   r   r   r^  rn  rK  )r  r4  r7  r2   r   r   s         r   test_np_where_numpy_test_error/TestArrayMethods.test_np_where_numpy_test_error  s    T"6*4LGGFOGGFO!##J0MN!N O ##J0MN!A$ ON ON ONs   ,
B*B;*
B8;
C	c                    [         n[        SS9" U5      nSnU R                  [        U5         U" S SS5        S S S 5        SnU R                  [        U5         U" SSS5        S S S 5        S	nU R                  [        U5         U" SSS
5        S S S 5        SnU R                  [        U5         U" SS S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       N\= f! , (       d  f       g = f)NTrk  z+The argument "condition" must be array-likeru  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   rn  r	   ro  s       r   test_np_where_invalid_inputs-TestArrayMethods.test_np_where_invalid_inputs  s    T"6*;##K5$1 6 @##K5!Wa  6 @##K5!Q  6 3##K5!T4  65 65 65 65
 65s/   CCC%/C6
C
C"%
C36
Dc                   ^^ [         S S 4nU Ho  m[        SS9" T5      mUU4S jnU" S5        U" S5        U" S5        U" S	5        U" S
5        U" [        SS5      5        U" [        R                  " S5      5        Mq     g )Nc                 0    [         R                  " U S5      $ )Nr'  rf   rt  s    r   <lambda>4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>  s    bii2&r   c           	      R    [         R                  " S[        S[        U 5      5      S9$ )Nr  r&  rz   )r   rg   maxr5   rt  s    r   r  r    s    biiAs1v7r   Trk  c                 d   > T" U 5      nT" U 5      n[         R                  R                  X5        g r   r   rH  rI  )rh   r8  r9  r7  r4  s      r   ra  4TestArrayMethods.test_arange_1_arg.<locals>.check_ok  s'    !$<Dk

**89r   r   r&  r   g      @r  )ri   r   r@   r   r  )r  all_pyfuncsra  r7  r4  s      @@r   test_arange_1_arg"TestArrayMethods.test_arange_1_arg	  sx     &7
 "F&v.E:
 QKQKQKSMRLWQ]#RWWQZ  "r   c                    S n[         [        [        [        S S 4nU H  n[	        SS9" U5      nU" SSX45        U" SSX45        U" S	S
X45        U" S
S	X45        U" SS X45        [
        S:  d  MP  U" [        SS5      [        S	S	5      X45        U" [        S	S	5      [        SS5      X45        M     [        n[	        SS9" U5      nU" S[        R                  X45        U" S[        R                  X45        U" SS X45        U" [        R                  " S5      S X45        [
        S:  aE  U" S[        R                  X45        U" [        R                  " S5      [        R                  X45        g g )Nc                 b    U" X5      nU" X5      n[         R                  R                  XE5        g r   r  )rh   rk   r4  r7  r8  r9  s         r   ra  4TestArrayMethods.test_arange_2_arg.<locals>.check_ok"  s(    d)H#CJJ&&x5r   c                 0    [         R                  " XS5      $ )Nr   rf   r   r   s     r   r  4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>,  s    1+r   c                 ,    [         R                  " SXS9$ )Nru  rz   rf   r  s     r   r  r  -  s    1a0r   Trk  r   r   r         ?r   rt  r&  r  r  r   r'  )rl   r   rv   r|   r   r   r@   r   r   r   r   r  r*  r   )r  ra  r  r4  r7  s        r   test_arange_2_arg"TestArrayMethods.test_arange_2_arg!  s=   	6  +0
 "F&v.ERF*RV+QV+S!V+Qf,v%A1vEA1vE " #T"6*BJJ.bhh.D&(T616!R6R\\"%r}}fD "r   c           	      N  ^ ^ [         R                  R                  S5      =(       a    [         R                  S:  mSU U4S jjn[        [
        [        4 GHt  n[        SS9" U5      nU" SSSX#5        U" S	S
SX#5        U" SSSX#5        U" SSSX#5        U" SSSX#5        U" SSS X#5        U" SS S X#5        U" [        R                  " S5      [        R                  " S5      [        R                  " S5      X#5        U" [        R                  " S5      [        R                  " S5      [        R                  " S5      X#5        [        R                  nU" U" S5      U" S5      U" S5      X#S5        U" [        R                  " S5      U" S5      U" S5      X#S5        [        S:  d  GMU  U" S[        SS5      [        SS5      X#5        GMw     [        n[        SS9" U5      nU" SS[        R                   X#5        U" SS[        R                  X#5        U" SSS X#5        U" [        R                  " S5      [        R                  " S5      S X#S5        [        S:  aG  U" SS[        R"                  X#5        U" S[        R$                  " S5      [        R"                  X#5        g g )Nwin32l        c                    > U" XU5      nU" XU5      n[         R                  R                  Xg5        T	(       d'  TR                  UR                  UR                  5        g g r   )r   rH  rI  rL  r:   )
rh   rk   rn   r4  r7  check_dtyper8  r9  r  	windows64s
           r   ra  4TestArrayMethods.test_arange_3_arg.<locals>.check_okK  sO    d$/HD)CJJ&&x5   ; r   Trk  r   r   r&  r  r   r   rq  rd  r  r   ru  皙?rw  rt  r  r  r  r'  r\  )r  platform
startswithmaxsizero   r   r   r   r   r  r  r   r  r   r@   r   r   r*  r   )r  ra  r4  r7  i8r  s   `    @r   test_arange_3_arg"TestArrayMethods.test_arange_3_argH  s   LL++G4Nw9N		< 	< #$46OPF&v.EQ1f,RQ.QR/S!Q.Q3.Q4/QdF2RWWQZRWWQZGRWWQZ!bhhqk6IBRUBqE2a5&>RXXa["Q%AtDv%GAqM71a=&H# Q& #T"6*Arzz61a61AtV+RXXa[$tD6!RR]]F:QR("--G "r   c           	        ^^ [         [        4 H  m[        SS9" T5      mUU4S jnU" SSS[        R                  5        U" SSS	[        R
                  5        U" SS
S[        R                  5        U" SSSS 5        U" S	SS S 5        U" S	S S S 5        [        S:  d  M  U" SSS[        R                  5        U" S[        SS5      [        SS5      [        R                  5        M     g )NTrk  c                 h   > T" XX#5      nT" XX#5      n[         R                  R                  XE5        g r   r  )rh   rk   rn   rq   r8  r9  r7  r4  s         r   ra  4TestArrayMethods.test_arange_4_arg.<locals>.check_okw  s-    !$d9D3

**89r   r   r   r&  r  r   r   rq  rd  r  r   ru  rw  rt  r  )
rr   r   r   r   r)  r   r   r   r*  r@   )r  ra  r7  r4  s     @@r   test_arange_4_arg"TestArrayMethods.test_arange_4_args  s    "$CDF&v.E:
 Q1bjj)RQ)QR,S!Q%Q4&QdD)v%AsBMM2GAqM71a="--H! Er   c           	      V   U R                  5         S S S /nS S /nU H8  nU R                  [        5       n[        SS9" U5      nU" S5        S S S 5        M:     U H9  nU R                  [        5       n[        SS9" U5      nU" SS	5        S S S 5        M;     [        n[        SS9" U5      nX54 H  nS
[
        R                  " S5      S4S4 H  n[        [        4nU R                  U5       n[        R                  " 5          [        R                  " S5        U" U6   S S S 5        U R                  S[        UR                  5      5        S S S 5        M     M     g ! , (       d  f       GMQ  = f! , (       d  f       GM&  = f! , (       d  f       Nj= f! , (       d  f       M  = f)Nc                 *    [         R                  " U S9$ rt   rf   rt  s    r   r  5TestArrayMethods.test_arange_throws.<locals>.<lambda>      biiQ'r   c                 *    [         R                  " U S9$ ry   rf   rt  s    r   r  r    r  r   c                 *    [         R                  " U S9$ r~   rf   rt  s    r   r  r    s    biia(r   c                 *    [         R                  " XS9$ r   rf   r  s     r   r  r    s    2r   c                 *    [         R                  " XS9$ )N)ru   r:   rf   r  s     r   r  r    s    3r   Trk  ru  rw  r&  r   )r&  ru  r   ignorezMaximum allowed size exceeded)r^  rJ  r	   r   ro   r   r  ZeroDivisionErrorrK  warningscatch_warningssimplefilterr  rM  rN  )	r  bad_funcs_1bad_funcs_2r4  rR  r7  finputspermitted_errorss	            r   test_arange_throws#TestArrayMethods.test_arange_throws  su   ! ('(
 33

 "F"";/6T*62a 0/ " "F"";/6T*62a 0/ " T"6*!Arxx{A.	: %6z#B &&'78F!002 --h76
 3 MM"A #F$4$4 57 98	 ; " 0/ 0/ 32 98s;   E"7E52FF	$-F"
E2	5
F	
FF
F(c                 t    [        SS9S 5       nSnU R                  U" U5      UR                  U5      5        g )NTrk  c                 8    [         R                  " SSU -   U 5      $ )Nr   r&  rf   rz   s    r   r  2TestArrayMethods.test_arange_accuracy.<locals>.foo  s    99QD$//r   g[R֯?)r   r,  rz  )r  r  r   s      r   test_arange_accuracy%TestArrayMethods.test_arange_accuracy  s>     
d		0 
	0 !AA7r   c                   ^ ^^ [         m[        SS9" T5      mUUU 4S jnUU 4S jnT R                  5         U" [        R                  " S/5      5        U" [        R
                  " S//5      5        U" [        R                  " S5      5        U" [        R                  " S5      5        U" [        R                  " S5      5        U" [        R                  " SS/5      5        U" [        R                  " / 5      5        g )	NTrk  c                 H   > T" U 5      nT" U 5      nTR                  X!5        g r   r   )r6   r8  r9  r7  r4  r  s      r   ra  ,TestArrayMethods.test_item.<locals>.check_ok  s#    c{H*C##C2r   c                    > TR                  [        5       nT" U 5        S S S 5        TR                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nz>item(): can only convert an array of size 1 to a Python scalarrJ  rK  r  rM  rN  )r6   rR  r7  r  s     r   r  -TestArrayMethods.test_item.<locals>.check_err  sE    "":.&c
 /MMZf../1 /.r  r#                ?r&  ru  )r   r   r^  r   r   r*  r]  r=  r  ra  r  r7  r4  s   `  @@r   	test_itemTestArrayMethods.test_item  s    T"6*	3
	1 	! 	SE"#x()#$ C!"((Aq6"#"((2,r   c                   ^ ^^ [         m[        SS9" T5      mUUU 4S jnUU 4S jnT R                  5         U" [        R                  " S/5      S5        U" [        R
                  " S//5      S5        U" [        R                  " S5      S5        U" [        R                  " SS	/5      5        U" [        R                  " / 5      5        g )
NTrk  c                    > U R                  5       nU R                  5       nT" X!5        T" X15        TR                  X25        g r   )rJ   r,  )r   r   r8  r9  r7  r4  r  s       r   ra  /TestArrayMethods.test_itemset.<locals>.check_ok  s6    vvxH&&(C8#M##C2r   c                    > TR                  [        5       nT" U S5        S S S 5        TR                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr  z/itemset(): can only write to an array of size 1r  )r   rR  r7  r  s     r   r  0TestArrayMethods.test_itemset.<locals>.check_err  sG    "":.&a /MMKf../1 /.s   
A
Ar#  r  r  r&  ru  )r   r   r^  r   r   r*  r]  r  s   `  @@r   test_itemsetTestArrayMethods.test_itemset  s    T"6*	3	1 	! 	SE"B'x("-##"((Aq6"#"((2,r   c           	         [         n[        SS9" U5      n[        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /nU Vs/ s HJ  n[        R                  " SU5      [        R                  " SU5      [        R                  " SU5      S-  /PML     nn[        R                  [        R                  [        R                  /nU Vs/ s H1  n[        R                  " SU5      [        R                  " SU5      /PM3     nnU H]  nU HT  nU R                  SR                  UR                   5      5         U R#                  U" U5      U" U5      5        SSS5        MV     M_     gs  snf s  snf ! , (       d  f       Mv  = f)	zJtest sum over a whole range of dtypes, no axis or dtype parameter
        Trk  r  rw  r   r   r   r&  r  r   zTest np.sum with {} input N)r   r   r   r)  r   r  r   r   r*  timedelta64r   r  r  r=  subTestformatr:   r,  )	r  r4  r7  
all_dtypes	arr_dtypeall_test_arraysunsigned_dtypesarr_listr   s	            r   test_sumTestArrayMethods.test_sum  sf    T"6*jj"**bhhllBMM2>>C
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99bii: -. -	 WW_i0WWQ	"$, 	 .
 (H\\">"E"Ecii"PQ++F3KsD RQ   (). RQs   AF)8F.9F33
Gc                    [         n[        SS9" U5      n[        R                  [        R                  [        R
                  [        R                  [        R                  [        /nU Vs/ s HJ  n[        R                  " SU5      [        R                  " SU5      [        R                  " SU5      S-  /PML     nn[        R                  [        R                  /nUU Vs/ s H1  n[        R                  " SU5      [        R                  " SU5      /PM3     sn-  nU H  nU Hw  nS Hn  n	U	[        UR                  5      S-
  :  a  M!  U R                  SR                  UR                   5      5         U R#                  U" XS	9U" XS	95        S
S
S
5        Mp     My     M     g
s  snf s  snf ! , (       d  f       M  = f)z;test sum with axis parameter over a whole range of dtypes  Trk  r  r&  r  r  r   r&  ru  #Testing np.sum(axis) with {} input rb   N)r   r   r   r)  r   r  r   r*  TIMEDELTA_Mr   r  r=  lenr   r  r  r:   r,  )
r  r4  r7  r  r  r  r  r   r   rc   s
             r   test_sum_axis_kws1#TestArrayMethods.test_sum_axis_kws1  s   #T"6*jj"**bhhmm[2
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99bhh/ -. -	 WW_i0WWQ	"$,. 	.
 (H%Dc#))nQ..  '//5vcii/@B//s0F05c0EGB B &   ().B Bs   ,AF($8F-8F2	2
Gc                    [         n[        SS9" U5      n[        R                  /n[        R                  " S5      [        R
                  [        R                  " S5      [        R                  [        R                  " S5      [        R
                  [        R                  " [        5      [        R                  " [        5      0nU Vs/ s HJ  n[        R                  " SU5      [        R                  " SU5      [        R                  " SU5      S	-  /PML     nn[        R                  /nUU Vs/ s H1  n[        R                  " SU5      [        R                  " SU5      /PM3     sn-  nU H  nU H  n	S
 H  n
U
[        U	R                  5      S-
  :  a  M!  U R                  SR                  U	R                  5      5         U" XS9nU" XS9n[        U[        R                  5      (       aI  U R!                  UR#                  XIR                     5      UR#                  XIR                     5      5        OU R%                  X5        SSS5        M     M     M     gs  snf s  snf ! , (       d  f       M  = f)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.
Trk  r   r  r  r  r&  r  r  r  r  rb   N)r   r   r   r   r:   r  r  r  r   r  r  r   r  r  r?   ndarrayr,  r   rL  )r  r4  r7  r  
out_dtypesr  r  r  r   r   rc   npy_res	numba_ress                r   test_sum_axis_kws2#TestArrayMethods.test_sum_axis_kws2$  s	    $T"6*hhZ
hhw'288H3Eryyhhw'hh{+RXXk-BD
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99+ -. -	 WW_i0WWQ	"$,. 	.
 (H%Dc#))nQ..  '//5vcii/@B"("8$)#$9	%i<< 33 'z))/D E ) 0 0II1F GI
 !,,W@B B &   ().B Bs   AI#48I(BI-	-
I<c                    [         n[        SS9" U5      n[        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  /nU Vs/ s HJ  n[        R                  " SU5      [        R                  " SU5      [        R                  " SU5      S-  /PML     nn[        R                  [        R                  [        R                  /nU Vs/ s H1  n[        R                  " SU5      [        R                  " SU5      /PM3     nn[        R                  " S5      [        R                  /[        R                  " S5      [        R                  [        R                  /[        R                  " S	5      [        R                  [        R
                  [        R                  /[        R                  " S
5      [        R                  [        R
                  [        R                  [        R                  /[        R                  " S5      [        R                  [        R
                  [        R                  /[        R                  " S5      [        R                  [        R
                  /[        R                  " S5      [        R                  [        R
                  [        R                  [        R                  [        R                  /[        R                  " S5      [        R                  [        R                  /[        R                  " S5      [        R                  /0	nU Hq  nU Hh  n	XyR                      HS  n
SR                  U	R                  U
5      nU R                  U5         U R!                  U" XS9U" XS95        SSS5        MU     Mj     Ms     gs  snf s  snf ! , (       d  f       My  = f)z;test sum with dtype parameter over a whole range of dtypes Trk  r  r&  r  r  r)  r   r  r   r  r  r  r   r*  z*Testing np.sum with {} input and {} outputr   N)r   r   r   r)  r   r  r   r   r*  r   r  r  r=  r:   r  r  r,  )r  r4  r7  r  r  r  r  r  r   r   	out_dtypesubtest_strs               r   test_sum_dtype_kws#TestArrayMethods.test_sum_dtype_kwsQ  s   $T"6*jj"**bhhllBMM3
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99bii: -. -	 WW_i0WWQ	"$, 	 .
 hhy)BJJ<hhy)BJJ

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

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

BHH)Uhhx(2::rxx*Lhhx(2::rxx*@hhv&RXXrzz288UWU]U](^hh{+bllBMM-Jhh|,r}}o?
 (H!+II!6I#O$*F399i$@  k2 33F34P49#4OQ 32 "7   (-).( 32s   6AO<8OO	
O(c                 .   [         n[        SS9" U5      n[        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  /nU Vs/ s HJ  n[        R                  " SU5      [        R                  " SU5      [        R                  " SU5      S-  /PML     nn[        R                  [        R                  [        R                  /nU Vs/ s H1  n[        R                  " SU5      [        R                  " SU5      /PM3     nn[        R                  " S5      [        R                  /[        R                  " S5      [        R                  [        R                  /[        R                  " S	5      [        R                  [        R
                  [        R                  /[        R                  " S
5      [        R                  [        R
                  [        R                  [        R                  /[        R                  " S5      [        R                  [        R
                  [        R                  /[        R                  " S5      [        R                  [        R                  /[        R                  " S5      [        R                  [        R
                  [        R                  [        R                  [        R                  /[        R                  " S5      [        R                  [        R                  /[        R                  " S5      [        R                  /0	nU H  nU H  n	XyR                      H  n
S Hv  nU[        U	R                  5      S-
  :  a  M!  SR!                  U	R                  U
5      nU R#                  U5         U" XU
S9nU" XU
S9nU R%                  X5        SSS5        Mx     M     M     M     gs  snf s  snf ! , (       d  f       M  = f)zEtest sum with axis and dtype parameters over a whole range of dtypes Trk  r  r&  r  r  r)  r   r  r   r  r  r  r   r*  r  z+Testing np.sum with {} input and {} output r   N)r   r   r   r)  r   r  r   r   r*  r   r  r  r=  r:   r  r   r  r  r,  )r  r4  r7  r  r  r  r  r  r   r   r  rc   r  py_resnb_ress                  r   test_sum_axis_dtype_kws(TestArrayMethods.test_sum_axis_dtype_kwsv  s   )T"6*jj"**bhhllBMM3
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99bii: -. -	 WW_i0WWQ	"$, 	 .
 hhy)BJJ<hhy)BJJ

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

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

BHH)Uhhx(2::rxx*Lhhx(2::ryy*Ahhv&RXXrzz288UWU]U](^hh{+bllBMM-Jhh|,r}}o?
 (H!+II!6I )#cii.1"44$'T(.syy)(D $!\\+6%+C)%LF%*3%KF 33FC 76 !* "7   (-).. 76s   6AO;<8P  P
Pc                    [         n[        SS9" U5      n[        R                  n[        R                  " S5      nU R                  U" USU5      U" USU5      5        U R                  U" USU5      U" USU5      5        g)zBtesting that axis and dtype inputs work when passed as positional Trk  r  r&  ru  N)r   r   r   r)  r   r,  )r  r4  r7  r:   r   s        r   test_sum_axis_dtype_pos_arg,TestArrayMethods.test_sum_axis_dtype_pos_arg  sy    )T"6*

GGO$q!U 3 %a!U 3	5 	q!U 3 %aE 2	4r   c                     [         n[        SS9" U5      n[        R                  " S5      nU R	                  U" USS9U" USS95        [
        n[        SS9" U5      n[        R                  " S5      nU R	                  U" USS9U" USS95        g )NTrk  r  r   rb   r   )r   r   r   rg   r,  r   r  r4  r7  r   s       r   test_sum_1d_kws TestArrayMethods.test_sum_1d_kws  s    #T"6*IIcNqq 153CD-T"6*IIcNqr 2E!"4EFr   c                     [         n[        SS9" U5      n[        R                  " S5      nSnU R	                  U" X45      U" X45      5        SnU R	                  U" X45      U" X45      5        g )NTrk  )r   r   r   rw  r  r  r&  ru  )r   r   r   r   r,  )r  r4  r7  r   rc   s        r   test_sum_constTestArrayMethods.test_sum_const  sc    &T"6*gg()s 153CDs 153CDr   c                    U R                  5         [        n[        SS9" U5      n[        R                  " S5      n[        R                  " S5      nU R                  [        5         U" US5        S S S 5        U R                  [        5         U" US5        S S S 5        U R                  [        5         U" US5        S S S 5        g ! , (       d  f       N]= f! , (       d  f       NG= f! , (       d  f       g = f)NTrk  r  r   r   ru  r   r   )r^  r   r   r   r   rJ  rK  r  r4  r7  r   r   s        r   test_sum_exceptions$TestArrayMethods.test_sum_exceptions  s    !T"6*GGO$GGFOz*!QK + z*!RL + z*!QK +* +* +* +*s$   '
C
C5
C*
C
C'*
C8c                    U R                  5         [        SS9S 5       n[        R                  " S5      nU R	                  U" U5      UR                  U5      5        [        R                  " S5      nU R	                  U" U5      UR                  U5      5        [        R                  " S5      nU R                  [        5       nU" U5        S S S 5        SnU R                  U[        WR                  5      5        U R                  [        5       nUR                  U5        S S S 5        U R                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)	NTrk  c                      U R                  SS9$ )Nr  rb   r   rD   s    r   r  5TestArrayMethods.test_sum_const_negative.<locals>.foo  s    777##r   )r&  ru  r   r   )r&  ru  r   )r&  ru  z"'axis' entry (-1) is out of boundszout of bounds)r^  r   r   r   r,  rz  rJ  r
   r  rM  rN  rK  )r  r  r   rR  errmsgs        r   test_sum_const_negative(TestArrayMethods.test_sum_const_negative  s   !	d		$ 
	$ GGL!AA7GGIAA7GGFO/6F 05fc&"2"234z*fKKN +os6+;+;'<= 0/ +*s   	EE#
E #
E1c                    [         n[        SS9" U5      n[        R                  " S5      nU R	                  U" U5      U" U5      5        U R                  [        5         U" US5        S S S 5        [        n[        SS9" U5      nU R                  [        5         U" USS9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)NTrk  )ru  r   r&  rb   )r   r   r   r   r,  rJ  r	   r   r  s       r   test_cumsumTestArrayMethods.test_cumsum  s    T"6*GGFOq	584{+!QK , "T"6*{+!! ,+ ,+
 ,+s   
B,B=,
B:=
Cc                   ^ ^
^ [         m[        SS9" T5      m
U
UU 4S jn/ nUR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  [        R                  " / SQ5      5        UR                  [        R                  " / S	Q/ S
Q/SS95        UR                  [        R                  " / S	Q/ S
Q//5      5        UR                  [        R                  " SS//SS//SS////5      5        UR                  / SQ5        UR                  S	5        UR                  S5        UR                  S5        [        / SQ5      n[        R                  [        R                  [        R                  4 H@  n[        R                  " SUS9R                  S[        U5      S9nU H  nU" XV5        M     MB     [        R                  " SWS9R                  S[        U5      S9nUR                  nXw* S-
  [        R                  " U5      [        R                  " U* S-
  5      U/U* S-
  //nU H)  n	T R                  [        5         T
" XY5        S S S 5        M+     T R                  [        5         T
" US/5        S S S 5        T R!                  5         g ! , (       d  f       Mu  = f! , (       d  f       N1= f)NTrk  c                    > T" X5      nT" X5      nTR                  X#5        [        US5      (       a)  TR                  UR                  UR                  :H  5        g g )Nr  )r,  hasattrrL  r  )r   indr8  r9  r7  r4  r  s       r   r  )TestArrayMethods.test_take.<locals>.check  sQ    c'H/C##H2x))  399!<= *r   r&  r      rd  )r&  r   r&  r8  r   r&  r   r&  )r8  r   r   rO  r  r   ru  )r9  )r8  r   ru  ))r&  )r   r:  ))r8  )r   )ru  rM  r  r   r&  333333?)r_   r   rx  r   r]  r   r)  r  r*  rg   r  rS  sizerJ  
IndexErrorr	   r^  )r  r  test_indicesrV  r  rV  r6  szAillegal_indicesr   r7  r4  s   `         @@r   	test_takeTestArrayMethods.test_take  sJ   T"6*	> AABBBHH%567BHHi%<CHIBHHy*&=%>?@BHHAx2q'aVH&E%FGH,-I&34EF(::rxx7B		"B'//d7m/LA#a $ 8 IIb#++F$w-+Hffq"((3-3$(9K5C4!8*. A"":.a /. !
 {+!cUO , 	! /. ,+s   +	J9K9
K	
Kc                   ^ ^^ [         m[        SS9" T5      mUUU 4S jn[        R                  " S5      n[        R                  [        R
                  4 H  nU" X#" S5      5        M     [        R                  " S5      R                  SS5      n[        R                  [        R
                  4 H  nU" X#" S5      5        M     [        R                  " S	[        R                  S
9R                  SSSS5      n[        R                  [        R                  [        R
                  4 H  nU" X#" S5      5        M     g )NTrk  c                    > [         R                  " U 5      nT" X!5      nTR                  US L 5        [         R                  " U 5      nT" XA5      nTR                  US L 5        TR                  X$5        g r   )r   rJ   
assertTruer,  )	r   r!   r8  ervr9  grvr7  r4  r  s	         r   r  )TestArrayMethods.test_fill.<locals>.check4  s^    wws|H'COOC4K(''#,C/COOC4K(##H2r   r&  r'  r  r   r   0   r   ru  )	r   r   r   rg   r)  r=  r  r   r*  )r  r  rV  r   r7  r4  s   `   @@r   	test_fillTestArrayMethods.test_fill1  s    T"6*	3 IIaL**bhh'A!QrUO ( IIbM!!!Q'**bhh'A!QrUO ( IIb-55aAqA**bmmRXX6A!QrUO 7r   c                 L   [         n[        SS9" U5      n[        R                  " SS5      n[        R                  R                  U" U5      U" U5      5        [        R                  " X35      u  p4USU-  -   n[        R                  R                  U" U5      U" U5      5        g NTrk  rq  r'  rs  )r   r   r   rf  rH  r  meshgridr  r4  r7  r   r   zs         r   	test_realTestArrayMethods.test_realM  {    T"6*KKR 


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


q	584r   c                 L   [         n[        SS9" U5      n[        R                  " SS5      n[        R                  R                  U" U5      U" U5      5        [        R                  " X35      u  p4USU-  -   n[        R                  R                  U" U5      U" U5      5        g rM  )r   r   r   rf  rH  r  rN  rO  s         r   	test_imagTestArrayMethods.test_imagX  rS  r   c                    ^^^ UUU4S jn[         R                  R                  U" U5      [        SS9" U5      " U5      5        g )Nc                 @   > [         R                  " T" U TT5      5      $ r   )r   expm1)r   r   r   r  s    r   lower_clip_resultHTestArrayMethods._lower_clip_result_test_util.<locals>.lower_clip_resultf  s    88DE5122r   Trk  )r   rH  assert_almost_equalr   )r  r  r   r   r   rZ  s    ` `` r   _lower_clip_result_test_util-TestArrayMethods._lower_clip_result_test_utilc  s7    	3 	

&&a 01!4	6r   c                    [         [        [        [        4n[        [
        4n[        R                  " SSS5      [        R                  " SSS5      R                  SSS5      4 GHp  nX-    GHc  n[        SS	9" U5      nS
nU R                  [        U5         U" US S 5        S S S 5        [        R                  R                  U" USS 5      U" USS 5      5        [        R                  R                  U" US S5      U" US S5      5        [        R                  R                  U" USS5      U" USS5      5        XA;   a}  [        R                  " U5      n[        R                  " U5      n[        R                  R                  U" USSU5      U" USSU5      5        [        R                  R                  Xx5        U R                  XSSS5        GMf     GMs     g ! , (       d  f       GN?= f)Nrq  r'  e   (   r   ru  r   Trk  &array_clip: must set either max or minr   r  )r   r   r  r  r   r  r   rf  r  r   rn  rK  rH  r  
empty_liker]  )	r  has_out
has_no_outr   r4  r7  rp  rQ  couts	            r   	test_clipTestArrayMethods.test_clipm  s   NJ8IJ$&78
++c2s+++c2r*221a;=A!.T*62>++J<!T4( = 

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

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

''q"a(8%2q/J$MM!,E==+DJJ++F1b!U,C,1!RD,ACJJ++E811%BB' /= =<s   G
G)c                    [         [        [        [        4n[        [
        4n[        R                  " SSS5      R                  SSS5      n[        R                  " SS5      R                  UR                  5      R                  SS5      n[        R                  " SS	5      R                  UR                  5      R                  SS5      nSS
US /nSSUS /nX-    GH  n[        SS9" U5      n	U H  n
U H  nU
c0  Uc-  SnU R                  [        U5         U	" US S 5        S S S 5        M6  [        R                  R!                  U" X:U5      U	" X:U5      5        X;   ay  [        R"                  " U5      n[        R"                  " U5      n[        R                  R!                  U" X:X5      U	" X:X5      5        [        R                  R!                  X5        U R%                  XX5        M     M     GM     g ! , (       d  f       N= f)Nrq  r'  ra  r   ru  r   r  r   r  r  Trk  rb  )r   r   r  r  r   r  r   rf  r  rg   r   r:   r   rn  rK  rH  r  rc  r]  )r  rd  re  r   	a_min_arr	a_max_arrminsmaxsr4  r7  r   r   rp  rQ  rf  s                  r   test_clip_array_min_max(TestArrayMethods.test_clip_array_min_max  s   NJ8IJ$&78
KKR$,,Q15IIb!$++AGG4<<QB	IIaO**1773;;AqA	2y$'1i&*F&v.E!E}F!33JD!!T40 E JJ++F1U,CU1UZE[\( "a 0!}}Q/

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

//<55eM# "  + EDs   G8	8
Hc                     [        SS9" [        5      nSnU R                  [        U5         U" S SS5        S S S 5        g ! , (       d  f       g = f)NTrk  rm  r   r'  r   r   rn  r	   r  r7  rp  s      r   test_clip_bad_array$TestArrayMethods.test_clip_bad_array  s>    T"7+7##K5$2 655   A  
Ac                     [        SS9" [        5      nSnU R                  [        U5         U" SSS5        S S S 5        g ! , (       d  f       g = f)NTrk  z).*The argument "a_min" must be a number.*r&  r   r'  rq  rr  s      r   test_clip_bad_min"TestArrayMethods.test_clip_bad_min  s>    T"7+9##K5!S" 655ru  c                     [        SS9" [        5      nSnU R                  [        U5         U" SSS5        S S S 5        g ! , (       d  f       g = f)NTrk  z).*The argument "a_max" must be a number.*r&  r   rq  rr  s      r   test_clip_bad_max"TestArrayMethods.test_clip_bad_max  s>    T"7+9##K5!Q 655ru  c                     [        SS9" [        5      nSnU R                  [        U5         U" SSSSS9  S S S 5        g ! , (       d  f       g = f)	NTrk  rv  r   r&  r'  rw  r   rq  rr  s      r   test_clip_bad_out"TestArrayMethods.test_clip_bad_out  s@    T"7+I##K5!Q" 655s	   
?
Ac                 J   U R                  5         [        SS9" [        5      nSn[        R                  " SSS5      R                  SSS	5      n[        R                  " S
S5      R                  UR                  5      R                  SS5      n[        R                  " SS5      R                  UR                  5      R                  SS5      nSU4S
U4XE4US4US4/nU H-  u  pxU R                  [        U5         U" X7U5        S S S 5        M/     g ! , (       d  f       MA  = f)NTrk  zA.*shape mismatch: objects cannot be broadcast to a single shape.*rq  r'  ra  r   ru  r   r  r   r&  )r^  r   r   r   rf  r  rg   r   r:   rn  rK  )	r  r7  rp  r   rj  rk  min_maxr   r   s	            r   test_clip_no_broadcast'TestArrayMethods.test_clip_no_broadcast  s    !T"7+QKKR$,,Q15IIb!$++AGG4<<QB	IIaO**1773;;AqA	y>B	?)q>Iq>3 $LE''
C8a& 98 $88s   <
D
D"	c                 f   [         [        4 H  n[        SS9" U5      n[        R                  " SS5      n[        R
                  R                  U" U5      U" U5      5        [        R                  " X35      u  p4USU-  -   n[        R
                  R                  U" U5      U" U5      5        M     g rM  )r	  r  r   r   rf  rH  r  rN  rO  s         r   	test_conjTestArrayMethods.test_conj  s    !?3F&v.EC$AJJ##F1IuQx8;;q$DABqDAJJ##F1IuQx8 4r   c                 f  ^^ [         m[        SS9" T5      mUU4S jnU" [        R                  " / SQ/ SQ/5      5        U" [        R                  " [        R                  " S5      5      5        U" [        R                  " SS/SS	/S
S//5      5        U" [        R                  " / 5      5        g )NTrk  c                 ^   > [         R                  R                  T" U 5      T" U 5      5        g r   )r   rH  r  )r   r7  r4  s    r   r  +TestArrayMethods.test_unique.<locals>.check  s    JJ##F1IuQx8r   )r&  r&  r   )r   r   r   r   g@r;  gRQ@gffffff
@)r  r   r   r]  r  )r  r  r7  r4  s     @@r   test_uniqueTestArrayMethods.test_unique  s    T"6*	9 	bhh	9-./bhhrxx{#$bhhc
S$K#s<=>bhhrlr   c                    [         n[        SS9" U5      n[        R                  " S5      R	                  SS5      n[        R                  " S5      n[        R
                  R                  U" X45      U" X45      5        [        n[        SS9" U5      n[        R                  " S5      R	                  SS5      n[        R
                  R                  U" X35      U" X35      5        g )NTrk  g      4@r   r   r  g      0@)r  r   r   rg   r  rH  r  r  r'  s        r   test_array_dotTestArrayMethods.test_array_dot  s     T"6*IIcN""1a(IIbM


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


qeAk:r   c                 
   [         n[        SS9" U5      nSnU[        R                  4n[        R                  R                  U" U6 U" U6 5        U[        R                  " S5      4n[        R                  R                  U" U6 U" U6 5        U[        R                  4n[        R                  R                  U" U6 U" U6 5        U[        R                  " S5      4n[        R                  R                  U" U6 U" U6 5        g )NTrk  ru  r   f4)r  r   r   r   rH  r  r:   r   )r  r4  r7  r  r   s        r   test_array_ctor_with_dtype_arg/TestArrayMethods.test_array_ctor_with_dtype_arg  s    T"6*"(({


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


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


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


%%fdmUD\Br   r   )Y__name__
__module____qualname____firstlineno____doc__r  r:  r>  rA  r_  rb  re  r   rh  rq  r{  r  r  r  r  r  r  r  r  r  r   rg   r  r  r  r  r  r  r  r  r  r#  r&  r)  r>  rA  rD  rH  r]  rj  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r(  r.  r1  rA  rJ  rQ  rU  r]  rg  rn  rs  rw  rz  r}  r  r  r  r   r  r  __static_attributes____classcell__)r  s   @r   r  r    s   .78AC("T/0 0 0#N"`&.-`"0H06:# 79ii (:252.
?
B
DJ(:T*''AF6$!LS>6$38 !*!0%EN)HVI&%7N8 8    8E0G8+AZ#QJ'DR4	GE$>05"n8	5	56C6N@#'	9
 ; ;C Cr   r  c                       \ rS rSrS rSrg)TestArrayComparisonsi  c                 L  ^ ^ UU 4S jn[         m[        R                  " S[        R                  S9R	                  S5      nU" X"S5        U" X"S S  S5        U" X"R                  5       S5        U" X"R                  S5      S5        U" X"R                  S5        U" X"S S S5        g )	Nc                    > [        [        U 5      [        U5      45      " T5      nTR                  U" X5      X"(       + 45        g r   r  )r   r   r8  r7  r4  r  s       r   r  1TestArrayComparisons.test_identity.<locals>.check  s;    &)VAY/08E##E!K%-|$<>r   r'  r   )ru  r   TFr  r   )r   r   r  r   r  rJ   rV   rC   )r  r  r   r4  s   `  @r   test_identity"TestArrayComparisons.test_identity  s    	>
 "hhr*226:ccq64 c88:u%c88H%u-c55% cs8U#r   r   N)r  r  r  r  r  r  r   r   r   r  r    s    $r   r  __main__)r   Nr   )NNN)e	itertoolsr   r   r  r  unittestr  numpyr   numbar   r   r   
numba.corer   numba.core.errorsr	   r
   numba.np.numpy_supportr   r   numba.tests.supportr   r   r   r   r   r  TIMEDELTA_Yr   r"   r%   r)   r,   r.   r0   r<   rE   rH   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  r  r  mainr   r   r   <module>r     s   $ 	 
    # #  : :7 7 "$!"#4"%(!'-&&(,.'2?
(0/2")
$)-%) #mC mC^/$8 $* zMMO r   