
    xKg                        d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZmZ d dlmZ d dlmZmZ d dlmZmZ d dlmZmZmZmZmZ dZd	Zd
 Zd Zd Zd Z d Z!d Z"d Z#dSdZ$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8d& Z9d' Z:d( Z;d) Z<d* Z=d+ Z>d, Z?d- Z@d. ZAd/ ZBd0 ZCd1 ZDd2 ZEd3 ZFd4 ZGd5 ZHd6 ZId7 ZJd8 ZKd9 ZLd: ZMd; ZNd< ZOd= ZPd> ZQd? ZRd@ ZSdA ZTdB ZUdTdCZVdTdDZWdUdEZXdUdFZYdG ZZdH Z[dI Z\dJ Z]dK Z^dL Z_dM Z` G dN dOee      Za G dP dQe      ZbecdRk(  r ej                          yy)V    )productcycleN)jitnjittypeof)types)TypingErrorNumbaValueError)as_dtypenumpy_version)TestCaseMemoryLeakMixin
needs_blasskip_if_numpy_2expected_failure_np2ztimedelta64[M]ztimedelta64[Y]c                 2    t        j                  | ||       y Nnparoundarrdecimalsouts      b/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_array_methods.pynp_around_arrayr          IIc8S!    c                 .    t        j                  | |      S r   r   valr   s     r   np_around_binaryr"      s    99S(##r   c                 ,    t        j                  |       S r   r   r!   s    r   np_around_unaryr%      s    99S>r   c                 2    t        j                  | ||       y r   r   roundr   s      r   np_round_arrayr)      s    HHS(C r   c                 2    t        j                  | ||       y r   )r   round_r   s      r   np_round__arrayr,   !   r   r   c                 .    t        j                  | |      S r   r'   r    s     r   np_round_binaryr.   $   s    88C""r   c                 ,    t        j                  |       S r   r'   r$   s    r   np_round_unaryr0   '   s    88C=r   c                    |]| j                   j                  dk(  rDt        | j                  ||j                         t        | j                  ||j                         |S t        j                  | ||      }|pd }t        | t        t
        j                  f      rDt         || j                  |j                         || j                  |j                              }|S  || |      }|S )z4
    A slightly bugfixed version of np.round().
    cc                 F    |dk(  r| dk  rt        j                  |       S |S )N        r   )r   abs)argress     r   fixup_signed_zeroz*_fixed_np_round.<locals>.fixup_signed_zero7   s$    #:#'FF3K<'Jr   )
dtypekind_fixed_np_roundrealimagr   r(   
isinstancecomplexcomplexfloating)r   r   r   r7   r8   s        r   r;   r;   *   s     399>>S0(CHH5(CHH5
hhsHc*;
 #););<=/#((C/#((CE 
 (S1
r   c                     | j                   S r   )Tr   s    r   array_TrD   D   s    55Lr   c                 "    | j                         S r   )	transposerC   s    r   array_transposerG   G   s    ==?r   c                 "    | j                         S r   )copyrC   s    r   
array_copyrJ   J   s    88:r   c                 ,    t        j                  |       S r   )r   rI   rC   s    r   np_copyrL   M   s    773<r   c                 ,    t        j                  |       S r   )r   asfortranarrayrC   s    r   np_asfortranarrayrO   P   s    S!!r   c                 ,    t        j                  |       S r   )r   ascontiguousarrayrC   s    r   np_ascontiguousarrayrR   S   s    $$r   c                 $    | j                  |      S r   viewr   newtypes     r   
array_viewrX   V       88Gr   c                 $    | j                  |      S r   take)r   indicess     r   
array_taker^   Y   rY   r   c                 (    | j                  ||      S Naxisr[   )r   r]   rb   s      r   array_take_kwsrc   \   s    88G$8''r   c                 ,    t        j                  |       S r   r   arange)arg0s    r   np_arange_1rh   _   s    99T?r   c                 .    t        j                  | |      S r   re   )rg   arg1s     r   np_arange_2rk   b   s    99T4  r   c                 0    t        j                  | ||      S r   re   )rg   rj   arg2s      r   np_arange_3rn   e   s    99T4&&r   c                 2    t        j                  | |||      S r   re   )rg   rj   rm   arg3s       r   np_arange_4rq   h   s    99T4t,,r   c                 0    t        j                  | |      S N)stopre   )rg   rt   s     r   np_arange_1_stopru   k       99T%%r   c                 0    t        j                  | |      S Nstepre   )rg   rz   s     r   np_arange_1_stepr{   n   rv   r   c                 0    t        j                  | |      S Nr9   re   )rg   r9   s     r   np_arange_1_dtyper   q   s    99T''r   c                 2    t        j                  | ||      S rx   re   )rg   rj   rz   s      r   np_arange_2_stepr   t   s    99T4d++r   c                 2    t        j                  | ||      S r}   re   )rg   rj   r9   s      r   np_arange_2_dtyper   w   s    99T4u--r   c                 0    t        j                  | |      S rs   re   )startrt   s     r   np_arange_start_stopr   z   s    99U&&r   c                 2    t        j                  | ||      S N)rt   rz   re   )r   rt   rz   s      r   np_arange_start_stop_stepr   }   s    99UD11r   c                 4    t        j                  | |||      S )N)rt   rz   r9   re   )r   rt   rz   r9   s       r   np_arange_start_stop_step_dtyper      s    99UD>>r   c                 $    | j                  |      S r   )fill)r   r!   s     r   
array_fillr      s    88C=r   c                       fd}|S )Nc                 &    | j                        S r   rT   rV   s    r   rX   z#make_array_view.<locals>.array_view   s    xx  r    )rW   rX   s   ` r   make_array_viewr      s    !r   c                 L    | dd j                  t        j                        d   S )Nr      )rU   r   float32rC   s    r   array_sliced_viewr      s     q8==$Q''r   c                       fd}|S )Nc                 &    | j                        S r   )astyperV   s    r   array_astypez'make_array_astype.<locals>.array_astype   s    zz'""r   r   )rW   r   s   ` r   make_array_astyper      s    #r   c                 ,    t        j                  |       S )z7
    np.frombuffer() on a Python-allocated buffer.
    r   
frombufferbs    r   np_frombufferr      s     ==r   c                 L    t        j                  | t         j                        S r}   )r   r   	complex64r   s    r   np_frombuffer_dtyper      s    ==",,//r   c                 0    t        j                  | d      S )Nr   r~   r   r   s    r   np_frombuffer_dtype_strr      s    ==+..r   c                 v    t        j                  | t         j                        }t        j                  |      S )z6
    np.frombuffer() on a Numba-allocated buffer.
    r~   )r   onesint32r   shaper   s     r   np_frombuffer_allocatedr      s'     ''%rxx
(C==r   c                     t        j                  | t         j                        }t        j                  |t         j                        S r}   )r   r   r   r   r   r   s     r   np_frombuffer_allocated_dtyper      s+    
''%rxx
(C==BLL11r   c                     | |u | |ufS r   r   ar   s     r   identity_usecaser      s    Faqj!!r   c                 "    | j                         S r   )nonzeror   s    r   array_nonzeror      s    99;r   c                 ,    t        j                  |       S r   )r   r   r   s    r   
np_nonzeror      s    ::a=r   c                 ,    t        j                  |       S r   r   where)r2   s    r   
np_where_1r      s    88A;r   c                 0    t        j                  | ||      S r   r   )r2   xys      r   
np_where_3r      s    88Aq!r   c                 "    | j                         S r   )itemr   s    r   
array_itemr          668Or   c                 &    | j                  |       y r   )itemset)r   vs     r   array_itemsetr      s    IIaLr   c                       | j                   | S r   sumr   argss     r   	array_sumr      s    155$<r   c                 &    | j                  |      S r`   r   r   rb   s     r   array_sum_axis_kwsr      s    55d5r   c                 &    | j                  |      S r}   r   )r   r9   s     r   array_sum_dtype_kwsr      s    55u5r   c                 (    | j                  ||      S )Nrb   r9   r   )r   r9   rb   s      r   array_sum_axis_dtype_kwsr      s    55d%5((r   c                 &    | j                  ||      S r   r   )r   a1a2s      r   array_sum_axis_dtype_posr      s    55R=r   c                     t        j                  | d      }t        j                  | d      }t        j                  | |      }| j                  d      }t        j                  | d      }|||||fS )Nr   ra         )r   r   )r   rb   r   r   r2   des          r   array_sum_const_multir      sb     	sA
sAA
sDAQA
sAaAq=r   c                 &    | j                  d      S )Nr   ra   r   r   s     r   array_sum_const_axis_neg_oner      s     55b5>r   c                       | j                   | S r   cumsumr   s     r   array_cumsumr      s    188T?r   c                 &    | j                  |      S r`   r   r   s     r   array_cumsum_kwsr      s    888r   c                 ,    t        j                  |       S r   )r   r<   r   s    r   
array_realr          771:r   c                 ,    t        j                  |       S r   )r   r=   r   s    r   
array_imagr      r   r   c                 0    t        j                  | ||      S r   r   clipr   a_mina_maxs      r   np_clip_no_outr      s    771eU##r   c                 2    t        j                  | |||      S r   r   r   r   r   r   s       r   np_clipr      s    771eUC((r   c                 4    t        j                  | |||      S Nr   r   r   s       r   np_clip_kwargsr      s    771eU,,r   c                 (    | j                  |||      S r   r   r   s       r   
array_clipr      s    66%$$r   c                 *    | j                  |||      S r   r   r   s       r   array_clip_kwargsr     s    66%C6((r   c                 &    | j                  ||      S r   r   r   s      r   array_clip_no_outr     s    66%r   c                 "    | j                         S r   )conjr   s    r   
array_conjr    r   r   c                 "    | j                         S r   )	conjugater   s    r   array_conjugater	    s    ;;=r   c                 ,    t        j                  |       S r   )r   uniquer   s    r   	np_uniquer    s    99Q<r   c                 $    | j                  |      S r   dotr   s     r   	array_dotr    s    558Or   c                 B    | j                  |      j                  |      S r   r  r   s     r   array_dot_chainr    s    558<<?r   c                 0    t        j                  | |      S r}   )r   r   )nr9   s     r   
array_ctorr    s    771E""r   c                   &    e Zd ZdZ fdZd Zd Zd Zd Zd Z	d Z
ed	        Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej2                  fdZd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'd# Z(d$ Z)d% Z*d& Z+d' Z,d( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8ed4        Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIdE ZJdF ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdL ZQdM ZReSdN        ZTdO ZU xZVS )PTestArrayMethodszA
    Test various array methods and array-related functions.
    c                 *    t         t        |           y r   )superr  setUp)self	__class__s    r   r  zTestArrayMethods.setUp  s    +-r   c                    g d}|D cg c]  }|dz  	 }}|D cg c]  }t        |       }}t        j                  t        j                  t        j                  t        j
                  t        j                  f}|||||g}|}	t        ||      D ]e  \  }
} t        |
t        j                  f      |	      }dD ]:  }|D ]3  }|dkD  r|dz  }t        ||      } |||      }| j                  ||       5 < g |}	t        ||      D ]C  \  }
} t        |
f      |	      }|D ]'  }t        |      } ||      }| j                  ||       ) E y c c}w c c}w )Ng      g      g      g            ?g      @      @g      @      ?      )   r   r   r   
   )intr   float64r   r   r   
complex128zipr   r;   assertPreciseEqual)r  unary_pyfuncbinary_pyfuncbase_valuesr   complex_values
int_valuesargtypes	argvaluespyfunctyvaluescfuncr   r   expectedgots                    r   check_round_scalarz#TestArrayMethods.check_round_scalar  sX   E0;<1!v,<&12kc!fk
2MM5==%++OOU%5%57 +z#^5	 h	2JB+D"ekk*+F3E&A!|R.q(;H8,C++C:   ' 3 h	2JBD"K'E*1-Ah''X6  3' =2s
   EEc                 8    | j                  t        t               y r   )r6  r0   r.   r  s    r   test_round_scalarz"TestArrayMethods.test_round_scalar8  s    @r   c                 8    | j                  t        t               y r   )r6  r%   r"   r8  s    r   test_around_scalarz#TestArrayMethods.test_around_scalar;  s    1ABr   c                      fdfd}t        j                  g d      }t        j                  t        j                  f} ||||       t        j
                  t        j                  f} ||||dz          j                          y )Nc                    |j                  t        |            }t        j                  |      j                  t        |            }|j	                         }t        |||       	j                           | |||       	j                          t        j                  j                  ||       	j                  t              5 } | |||dd         d d d        	j                  t        j                        d       y # 1 sw Y   /xY w)Nr"  zinvalid output shape)r   r   r   
zeros_likerI   r;   memory_leak_setupmemory_leak_teardowntestingassert_allcloseassertRaises
ValueErrorassertEqualstr	exception)
r3  r2  intyouttyr   r   r   pyoutraisesr  s
            r   check_roundz7TestArrayMethods.check_round_array.<locals>.check_round?  s    --/C--$++HUO<CHHJEC51""$#x%%%'JJ&&sE2"":.&c8SW- /S!1!1235 /.s   DD
c                 N   t        | |      D ]  \  }}t        j                  |dd      t        j                  t        j                  |dd      f} t	        |            } ||||d        ||||d       t        |t        j                        s ||dz  ||d        y )Nr"  Ar   r#  r   )r   r   Arrayr   r   r>   Integer)	r.  outtypesr2  rH  rI  argtysr3  rL  r0  s	          r   check_typesz7TestArrayMethods.check_round_array.<locals>.check_typesO  s    &x:e++dAs3U[[++eQ46$VV,E64:E64:!%7v{D%D   ;r   r  r!  )r   arrayr   r%  r   r   r&  disable_leak_check)r  r0  rS  r2  r.  rL  s   ``   @r   check_round_arrayz"TestArrayMethods.check_round_array>  so    	5 	 IJMM5==1Hh/OOU%5%56Hh&(9: 	!r   c                 .    | j                  t               y r   )rV  r)   r8  s    r   test_round_arrayz!TestArrayMethods.test_round_arrayh  s    ~.r   c                 .    | j                  t               y r   )rV  r   r8  s    r   test_around_arrayz"TestArrayMethods.test_around_arrayk  s    /r   c                 .    | j                  t               y r   )rV  r,   r8  s    r   test_round__arrayz"TestArrayMethods.test_round__arrayn  s    /r   c                     t         t        fD ]=  } t        d      |      }d}| j                  t        |      5   |d        d d d        ? y # 1 sw Y   JxY w)NTnopython'.*The argument "a" must be array-like.*)r0   r%   r   assertRaisesRegexr	   r  r0  r3  msgs       r   test_around_bad_arrayz&TestArrayMethods.test_around_bad_arrayr  sO    %7F&C&v.E;C''S9d :9 8 :9s   	AA	c                     t         t        g}t        dk  r|j                  t               |D ]@  } t        d      |      }d}| j                  t        |      5   |ddd       d d d        B y # 1 sw Y   MxY w)	N   r   Tr^  9.*The argument "out" must be an array if it is provided.*r   r      r   )r)   r   r   appendr,   r   ra  r	   )r  funcspy_funcr3  rc  s        r   test_around_bad_outz$TestArrayMethods.test_around_bad_outy  sm    16!LL)G&C&w/EMC''S9a" :9  :9s   A11A:	c                 	    d  fd} fd} fd} fd} fd} fd}t        j                  dt         j                  fd	t         j                  fg      }t        j                  d
t         j                  fdt         j                  fg      }t        j                  dt         j                  fdt         j                  fg      }	t        dk\  r	|}
|}|}|}n|}
|}|}|}t        j
                  dt         j                        } ||t        j                  d              ||t         j                          ||t         j                          ||t         j                          ||t         j                          |||        |||        |
|t         j                         |j                  d      } ||t         j                          ||t         j                          ||t         j                          |||        |
||        |
|t         j                         t        j
                  dt         j                        j                  d      j                  }t        j                  d      j                  d d dd d df   }t        dk\  r|}n|} ||t         j                          ||t         j                          ||t         j                          ||t         j                          |||        |||        ||t         j                          ||t         j                         t        j
                  dt         j                        d d d   } ||t         j                          ||t         j                          |||	        ||t         j                          ||t         j                          ||t         j                          |||        |||       t        j                   dgt         j                        j                  d      } ||t         j                          ||t         j                          |||	        ||t         j                          ||t         j                          ||t         j                          |||        |||       t        j                   dg      } ||t         j                          j#                          y )Nc                 :    t        |      } t        |      |       S r   )r   r   r   r9   r0  s      r   runz-TestArrayMethods.test_array_view.<locals>.run  s    $U+F4<$$r   c                     | j                  |      }j                           | |      }j                  ||       ~j                          y r   )rU   r?  r(  r@  r   r9   r4  r5  rq  r  s       r   checkz/TestArrayMethods.test_array_view.<locals>.check  sF    xxH""$c5/C##C2%%'r   c                     j                  t              5 } | |       d d d        j                  t        j                        d       y # 1 sw Y   /xY w)Nz"new type not compatible with array)rC  rD  rE  rF  rG  )r   r9   rK  rq  r  s      r   	check_errz3TestArrayMethods.test_array_view.<locals>.check_err  sI    "":.&C /S!1!12AC /.   
AAc                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzJTo change to a dtype of a different size, the last axis must be contiguousrC  rD  r   rE  rF  rG  r   r9   rc  rK  rq  r  s       r   check_err_noncontig_last_axiszGTestArrayMethods.test_array_view.<locals>.check_err_noncontig_last_axis  s    (C"":.&&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.   B%-
B1%B.1B:c                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzOChanging the dtype of a 0d array is only supported if the itemsize is unchangedry  rz  s       r   check_err_0dz6TestArrayMethods.test_array_view.<locals>.check_err_0d  s    2C"":.&&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.r|  c                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzZWhen changing to a smaller dtype, its size must be a divisor of the size of original dtypery  rz  s       r   check_err_smaller_dtypezATestArrayMethods.test_array_view.<locals>.check_err_smaller_dtype  s    ;C"":.&&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.r|  c                 z   d}j                  t              5 } t        |      |        d d d        j                  t	        j
                        |       j                  t              5 } | |       d d d        j                  t	        |j
                        |       y # 1 sw Y   {xY w# 1 sw Y   ;xY w)NzuWhen changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.ry  rz  s       r   check_err_larger_dtypez@TestArrayMethods.test_array_view.<locals>.check_err_larger_dtype  s    #C "":.&&&s+ /S!1!12C8"":.&C /S!1!12C8 /. /.r|  r   r   ur   r   r   )r"        r~   int16r      r   r   rg     *   r   abcdef)r   r9   int8r  r   rf   r   r   r&  reshaperB   zerosuint64r   uint32int64rT  rU  )r  rt  rv  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_errorrq  s   `                 @r   test_array_viewz TestArrayMethods.test_array_view  s   	%	(	C
	9
	9
	9	9 hhbggbgg78hhbhh#rww89hhbhh#rxx9:
 G#$:!%<"$A!)N$-!%."$-!&N ii"''*c288G$%c288c277c2::c2<< c3c3c2==1 kk&!c277c2::c2<< c3c3'c2==1 		"BGG,44V<>>&)++CaC1H5 G# = %eRWWnbii(%,%.%%eS)eR]]3nbgg6 ii"((+CaC0c299c2::c3c277+c288,c288,c3'c3' hht288,44R8c299c2::c3sBGG$sBHH%sBHH%sC sC  hhz"sBMM2 	!r   c                 &   t         } t        t        j                  dd f      |      }t	        j
                  ddgt        j                        }|j                  t        j                        } ||      } ||      }| j                  ||       y)zX
        Test .view() on A layout array but has contiguous innermost dimension.
        Nr  rg  r~   )	r   r   r   uint8r   rT  r   rU   rE  )r  r0  r3  origbytearyexpectr5  s          r   test_array_sliced_viewz'TestArrayMethods.test_array_sliced_view!  sq     #'ekk!n&'/xxa

3))BHH%Gn%r   c                     d  fd}t        j                  dt         j                        } ||t        j                  d              ||t         j                          ||t         j
                          ||t         j                          ||d       t        j                  dt         j                        j                  d      j                  } ||t         j
                         t        j                  dt         j                        d d d	   } ||t         j                         t        j                  dt         j                        }d
|j                  _         ||t         j                         t        j                  dt         j                  fg      } j                         5 } |||       d d d         j                  dt        j                               d} j                         5 }t!        d      d        } ||       d d d         j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nc                 :    t        |      } t        |      |       S r   )r   r   rp  s      r   rq  z/TestArrayMethods.test_array_astype.<locals>.run2  s    &u-F4<$$r   c                 ~    | j                  |      j                  d      } | |      }j                  ||       y )NrN  order)r   rI   r(  rs  s       r   rt  z1TestArrayMethods.test_array_astype.<locals>.check6  s:    zz%(--C-8Hc5/C##C2r   r  r~   r  r   r  r  rg  Fr   z#cannot convert from int32 to RecordTr^  c                 N    t        j                  dg      j                  |        y Nr"  )r   rT  r   r~   s    r   fooz/TestArrayMethods.test_array_astype.<locals>.fooY  s    !$$U+r   z5array.astype if dtype is a string it must be constant)r   rf   r  r9   r   r   r&  r  rB   r  flags	writeableassertTypingErrorassertInrF  rG  r   )r  rt  r   dtrK  unicode_valr  rq  s   `      @r   test_array_astypez"TestArrayMethods.test_array_astype0  s   	%	3 ii"''*c288G$%c288c2::c2==!c9 ii"''*226:<<c2:: ii"((+CaC0c299 ii"((+#		c288 XXRWW~&'##%#rN &;&**+	-  ##%$,  ,	 &
 	M&**+	- &% &%s   5
I>IIIc                     t               fd}t        t        d            } ||        |t        |              |t	        |              |t        j                  d             t        j                  d      j                  d      } ||        j                           j                  t              5 } t        d             d d d         j                  dt        j                               y # 1 sw Y   /xY w)Nc                    t        j                  |       } |       }j                           |       }j                  ||       ~t	        j
                          j                  t        j                  |       |dz          ~t	        j
                          j                  t        j                  |       |       j                          y r  )sysgetrefcountr?  r(  gccollectrE  r@  )buf
old_refcntr4  r5  r3  r0  r  s       r   rt  z3TestArrayMethods.check_np_frombuffer.<locals>.checkd  s    -Jc{H""$*C##C2 JJLS__S1:>BJJLS__S1:>%%'r   r     )r   r   s   xxxz.buffer size must be a multiple of element size)r   	bytearrayrangebytes
memoryviewr   rf   r  rU  rC  rD  rE  rF  rG  )r  r0  rt  r   rK  r3  s   ``   @r   check_np_frombufferz$TestArrayMethods.check_np_frombuffer`  s    V	(  eBi aeAhjmbiimIIbM!!&)a 	!z*f)F#$ +IV--.	0 +*s    D  D	c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_frombufferz#TestArrayMethods.test_np_frombuffer  s      /r   c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_frombuffer_dtypez)TestArrayMethods.test_np_frombuffer_dtype  s      !45r   c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_frombuffer_dtype_strz-TestArrayMethods.test_np_frombuffer_dtype_str  s      !89r   c                    t        d      d        }| j                  t              5 } |t        t	        d            d       d d d        t        j                        }d}| j                  ||       y # 1 sw Y   3xY w)NTr^  c                 2    t        j                  | |       y r}   r   )r  r  s     r   funczETestArrayMethods.test_np_frombuffer_dtype_non_const_str.<locals>.func  s    MM#R(r   r  r   z@If np.frombuffer dtype is a string it must be a string constant.)r   rC  r	   r  r  rF  rG  r  )r  r  rK  excstrrc  s        r   &test_np_frombuffer_dtype_non_const_strz7TestArrayMethods.test_np_frombuffer_dtype_non_const_str  ss    	d		) 
	) {+v59%w/ , V%%&"c6" ,+s   A66A?c                     t        d      d        }d}| j                  t        |      5 } |d        d d d        y # 1 sw Y   y xY w)NTr^  c                 ,    t        j                  |       S r   r   )r  s    r   r  z<TestArrayMethods.test_np_frombuffer_bad_buffer.<locals>.func  s    ==%%r   z).*Argument "buffer" must be buffer-like.*)r   ra  r	   )r  r  rc  rK  s       r   test_np_frombuffer_bad_bufferz.TestArrayMethods.test_np_frombuffer_bad_buffer  sE    	d		& 
	& :##K5J 655s	   	=Ac                     d  fd} |d      } ||        ||j                  d              ||j                  d      j                          ||j                  d      d d d           ||j                  d              ||j                  d      j                          ||j                  d      d d d          t        j                  dg      j                  d      } ||       y )	Nc                 \    | j                   j                  |j                   j                  k(  S r   )ctypesdatar   s     r   is_samez=TestArrayMethods.check_layout_dependent_func.<locals>.is_same  s    88==AHHMM11r   c                      t        t        |       f            } |       } ||       }j                  ||       j                   ||        ||              y r   )r   r   r(  rE  )r   r3  r4  r5  r  r0  r  s       r   	check_arrz?TestArrayMethods.check_layout_dependent_func.<locals>.check_arr  sZ    (D&+(0Ec{H*C##Hc2WXs3WS#5FGr   r  r  rg  rg  r   r   r   r   )r  rB   r   rT  )r  r0  facr  r   r  s   ``   @r   check_layout_dependent_funcz,TestArrayMethods.check_layout_dependent_func  s    	2	H "g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.hhsm##B'#r   c                 .    | j                  t               y r   )r  rG   r8  s    r   test_array_transposez%TestArrayMethods.test_array_transpose  s    ((9r   c                 .    | j                  t               y r   )r  rD   r8  s    r   test_array_TzTestArrayMethods.test_array_T      ((1r   c                 .    | j                  t               y r   )r  rJ   r8  s    r   test_array_copyz TestArrayMethods.test_array_copy  s    ((4r   c                 .    | j                  t               y r   )r  rL   r8  s    r   test_np_copyzTestArrayMethods.test_np_copy  r  r   c                       fd}dddt        j                  d      t        j                  d      dfD ]
  } ||        y )Nc                      t        t        |       f            } |       } ||       }j                  ||       y r   r   r   r(  )r   r3  r4  r5  r0  r  s       r   check_scalarzETestArrayMethods.check_ascontiguousarray_scalar.<locals>.check_scalar  s<    &D&)&v.EayH(C##Hc2r   r  g      E@y              E@T)r   r   r%  )r  r0  r  r   s   ``  r   check_ascontiguousarray_scalarz/TestArrayMethods.check_ascontiguousarray_scalar  s9    	3
 dCBBFAO Gr   c                     d}| j                  t        |      5 } t        t        d      f      |       d d d        y # 1 sw Y   y xY w)Nr`  hello)ra  r	   r   r   )r  r0  rc  rK  s       r   check_bad_arrayz TestArrayMethods.check_bad_array  s;    7##K5%D&/$%f- 655s	   >Ac                     | j                  t               | j                  t               | j                  t               y r   )r  rO   r  r  r8  s    r   test_np_asfortranarrayz'TestArrayMethods.test_np_asfortranarray  s/    (():;./++,=>r   c                     | j                  t               | j                  t               | j	                  t               y r   )r  rR   r  rO   r  r8  s    r   test_np_ascontiguousarrayz*TestArrayMethods.test_np_ascontiguousarray  s/    (()=>./++,@Ar   c                 ^     t               fd} |d        |d        |d       y )Nc                 J     |       } |       }j                  ||       y r   r(  )r   r4  r5  r3  r0  r  s      r   rt  z=TestArrayMethods.check_np_frombuffer_allocated.<locals>.check  s%    e}H,C##C2r   )r  r  r"  r   r"  )r   )r  r0  rt  r3  s   `` @r   check_np_frombuffer_allocatedz.TestArrayMethods.check_np_frombuffer_allocated  s)    V	3
 	efir   c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_frombuffer_allocatedz-TestArrayMethods.test_np_frombuffer_allocated  s    **+BCr   c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_frombuffer_allocated2z.TestArrayMethods.test_np_frombuffer_allocated2  s    **+HIr   c                     d } fd}t        j                  g d      } ||       t        j                  g d      } ||        |d      } ||        ||j                  d              ||j                  d      j                          ||j                  d      d d d           ||j                  d              ||j                  d      j                          ||j                  d      d d d          d	d
t        d      fD ]/  }t        j                  |g      j                  d      } ||       1 t        j                  g d      } ||       y )Nc                     t         j                  j                  d       t         j                  j                  |       }d||dk  <   t        d      ||dkD  <   |S Nr  r4   g333333?nangffffff?r   randomseedfloatNr   s     r   r  z+TestArrayMethods.check_nonzero.<locals>.fac  I    IINN2))""1%C Cc	N"5\Cc	NJr   c                      t        t        |       f            } |       }|D cg c]  }|j                          }}j                   ||       |       y c c}w r   )r   r   rI   r(  )r   r3  r4  r   r0  r  s       r   r  z1TestArrayMethods.check_nonzero.<locals>.check_arr  sV    (D&+(0Ec{H*23(Q(H3##E#J9 4s   Ar"  r   r   r   r  r  r  rg  r  r4   r  r  r   )Hello world)r   r  bool_r  rB   r  rT  )r  r0  r  r  r   r   s   ``    r   check_nonzerozTestArrayMethods.check_nonzero  s   		: hh}%#hhy!#"g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.sE%L)A((A3-''+CcN * hh-.#r   c                 .    | j                  t               y r   )r  r   r8  s    r   test_array_nonzeroz#TestArrayMethods.test_array_nonzero  s    =)r   c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_nonzeroz TestArrayMethods.test_np_nonzero      :&r   c                 .    | j                  t               y r   )r  r   r8  s    r   test_np_where_1z TestArrayMethods.test_np_where_1  r  r   c                    	 t         	d }t        g d      t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  gt        j                  j                  d       d	 fd	}	 fd}t        j                  g d      } ||       t        j                  g d      } ||        |d      } ||        ||j                  d	              ||j                  d	      j                          ||j                  d	      d d d
           ||j                  d              ||j                  d      j                          ||j                  d      d d d
           ||j                  d      d        ||j                  d      j                  d        ||j                  d      d d d
   d       ddt        d      fD ]/  }t        j                   |g      j                  d      } ||       1 dD ]
  } ||        y )Nc                     t         j                  j                  d       t         j                  j                  |       }d||dk  <   t        d      ||dkD  <   |S r  r  r  s     r   r  z-TestArrayMethods.test_np_where_3.<locals>.fac  r  r   CFrN  r  c                 ^   t         j                  j                         |dk7  rIt        j                  | d   |      }t        j                  | d   |      }| j	                  |      } nHt        j                  | d   t                    }t        j                  | d   t                    }|j                  d       |j                  d        t        t        |       t        |      t        |      f      	      } 	| ||      } || ||      }
j                  ||       y )NFr   )r9   r  r"  r  r   	   )
r   r  shuffler>  rI   nextr   r   r   r(  )r   layoutr   r   r3  r4  r5  _typeslayoutsr0  r  s          r   r  z3TestArrayMethods.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=D&+vay&)<=fEEc1a(HQ"C##C2r   c                 "   d}d}t         j                  j                          d   d      } d   d      } t        t	        |       t	        |      t	        |      f            } | ||      } || ||      }j                  ||       y )Nr   r   r   r"  )r   r  r  r   r   r(  )	scalr   r   r3  r4  r5  r  r0  r  s	         r   
check_scalz4TestArrayMethods.test_np_where_3.<locals>.check_scal8  s    AAIIf%q	!Aq	!A>D&,q	6!9=>vFEdAq)Ha#C##C2r   r  r  r  r  rg  r  r  )r  r4   r  r  r   )r   r"  TFr   y                F)r   r   r   r   r  r   r%  r   r&  r  r  r  r  r  rB   r  rT  )
r  r  r  r  r   r   r   r  r  r0  s
   `      @@@r   test_np_where_3z TestArrayMethods.test_np_where_3  s   	 (((BHHbjj"**bll--! 			r	3 	3 		3 hh}%#hhy!#"g##++f%&#++f%''(#++f%cc*+#++i()#++i(**+#++i(1-.#++i(5#++i(**37#++i(1-c:sE%L)A((A3-''+CcN * .AqM .r   c                      t          t        d             fd} fd} |       D ]@  }|dkD  ddf} ||       |dk  t        j                  df} ||       |dkD  ddf} ||       B y )	NTr^  c                 >     |  } |  }j                  ||       y r   r  )r   r4  r5  r3  r0  r  s      r   check_okzGTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.check_ok`  s%    t}H,C##C2r   c               3     K   t        j                  ddd      } j                  j                  |        |  | j	                  ddd       | j	                  ddd       | j	                  ddd      d d d    y w)	Nr      rg  r   r  r  r   )r   linspacer  r  r  )r   r  s    r   a_variationszKTestArrayMethods.test_np_where_3_broadcast_x_y_scalar.<locals>.a_variationse  st     B2&AKK"G))Aq!$$))Aq),,))Aq!$TrT**s   A>Br   r"  y      ?      @F)r   r   r   r  )r  r#  r(  r   paramsr3  r0  s   `    @@r   $test_np_where_3_broadcast_x_y_scalarz5TestArrayMethods.test_np_where_3_broadcast_x_y_scalar\  s|    "T"6*	3
	+ A!eQ]FV!eRVVV,FV!eT5)FV  r   c                     	
 t         
 t        d      
      		
 fd}d }d } |       D ]5  } |       D ])  }t        j                  |      }||kD  }|||f} ||       + 7 y )NTr^  c                     | \  }}} |||      } |||      }j                  ||        |||      } |||      }j                  ||       y r   r  )	r   	conditionr   r   r4  r5  r3  r0  r  s	         r   r#  zJTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.check_ok{  sh    "OIq!iA.H	1a(C##C2 iA.H	1a(C##C2r   c               3     K   t        j                  d      j                  dd      } |  | dz   t        j                  |        | d d d    t        j                  ddd      j                  ddd	      d
z   y w)Nr  r   g?r   r#  <   r   r                 ?)r   rf   r  rN   r'  r   s    r   array_permutationszTTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.array_permutations  ss     		!$$Q*AGc'M##A&&DbD'M++c2r*221a;b@@s   B Bc               3   P   K   d d t         j                   d d y w)Nr   g333333@Ty       @      @)r   r  r   r   r   scalar_permutationszUTestArrayMethods.test_np_where_3_broadcast_x_or_y_scalar.<locals>.scalar_permutations  s#     GI&&LJLs   $&)r   r   r   mean)r  r#  r3  r5  r   r   x_meanr-  r)  r3  r0  s   `        @@r   'test_np_where_3_broadcast_x_or_y_scalarz8TestArrayMethods.test_np_where_3_broadcast_x_or_y_scalarw  so    "T"6*
	3	A	 $%A(*J	#Q* 	 + &r   c                 l   t         } t        d      |      }t        t        j                  t        j
                  t        j                  t        j                  t        j                  g}|D ]  }t        j                  dt              }t        j                  j                   || |d       |d             |d             t        j                  j                   ||  |d       |d             |d             t        j                  j                   |d |d       |d             |d             t        j                  j                   |d |d       |d             |d             t        j                  |      j                  |      }t        j                  |      }|j                  |      }d|d<   |d   |d<   t        j                  j                   ||||      |       t        j                  j                   ||||      |       t        j                  j                   ||||d         |       t        j                  j                   |||d   |      |       t        j                  j                   ||d d d	   |d d d	   |d d d	         |d d d	          t        j                  j                   ||dd d	   |dd d	   |dd d	         |dd d	          t        j                  j                   ||d d d
   |d d d
   |d d d
         |d d d
          t        j                  j                   ||dd d
   |dd d
   |dd d
         |dd d
          t        j                  j                   ||d d d   |d d d   |d d d         |d d d          t        j                  j                   ||d d d   |d d d   |d d d         |d d d          t        j                  j                   ||dd d   |dd d   |dd d         |dd d           y )NTr^  5   r~   r   r"  F   rg  r   r%  )r   r   boolr   r  r   r  doubler&  r   rA  assert_equal	ones_liker   r>  )	r  r0  r3  dtsr  r2   r   r   rs	            r   test_np_where_numpy_basicz*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!QNA6JJ##E!QNA6JJ##E!Q!$5q9JJ##E!QqT1$5q9JJ##E!CaC&!CaC&!CaC&$A1SqS6JJJ##E!ADqD'1QTT7AaddG$Da1gNJJ##E!CaC&!CaC&!CaC&$A1SqS6JJJ##E!ADqD'1QTT7AaddG$Da1gNJJ##E!DbD'1TrT7AddG$Da"gNJJ##E!DbD'1TrT7AddG$Da"gNJJ##E!AErE(AaeeHa2h$G15b5R+ r   c                    t         } t        d      |      }ddg}t        j                  d      }t        j                  d      } |t        j
                  |      d d t        j                  f   ||      }t        j                  j                  |d   |d          t        j                  j                  |d   |d          |j                  }|j                  } ||||      }t        j                  j                  |d d df   |d d df          t        j                  j                  |d d df   |d d df          y )NTr^  F)rg     r   r"  )
r   r   r   r  r   rT  newaxisrA  assert_array_equalrB   )r  r0  r3  r2   r   r   rB  s          r   test_np_where_numpy_ndimz)TestArrayMethods.test_np_where_numpy_ndim  s    "T"6*5MHHWGGG"((1+a

l+Q2


%%adAaD1


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


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


%%a!fa!f5r   c                 B   t         } t        d      |      }t        j                  g d      }t        j                  d      }t        j                  g dt        j
                        }t        j                  g dt        j
                        }t        j                  j                   ||||      |       |j                  t        j                        }|j                  t        j                        }t        j                  j                   ||||      |       |j                  t              }d||d	k7  <   t        j                  j                   ||||      |       |d	k7  }d
||d	k(  <   d	||<   t        j                  j                   ||||      |       y )NTr^  )FTFFFFTFFFTFr"  )      @r4         @       @            r4         $      $@      ?r4   rK  r~   )rJ  rQ  rK  rL  rM  rN  rQ  rO  rP  rQ  rQ  rK  i
r   iau)r   r   r   rT  r  r%  rA  r?  r   r   r  r$  )r  r0  r3  r2   r   r   rB  tmpmasks           r   test_np_where_numpy_dtype_mixz.TestArrayMethods.test_np_where_numpy_dtype_mix  s7   "T"6*HH 0 1IIaLHHJJJ(HHJ::'


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


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


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


aA2r   c                    t         } t        d      |      }ddg}t        j                  d      }t        j                  d      }| j	                          | j                  t        d      5   ||||       d d d        | j                  t        d      5   ||d   ||       d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w)NTr^  )r   r   )r   r   zobjects cannot be broadcastr   )r   r   r   r   rU  ra  rD  )r  r0  r3  r2   r   r   s         r   test_np_where_numpy_test_errorz/TestArrayMethods.test_np_where_numpy_test_error  s    "T"6*4LGGFOGGFO!##J0MN!QN O ##J0MN!A$1 ON ON ONs   -B-B9-B69Cc                    t         } t        d      |      }d}| j                  t        |      5   |d dd       d d d        d}| j                  t        |      5   |ddd       d d d        d	}| j                  t        |      5   |ddd
       d d d        d}| j                  t        |      5   |dd d        d d d        y # 1 sw Y   xY w# 1 sw Y   lxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)NTr^  z+The argument "condition" must be array-likerg  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   ra  r	   rb  s       r   test_np_where_invalid_inputsz-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2C*CCC'*C3c                    t         d d f}|D ]o   t        d            fd} |d        |d        |d        |d	        |d
        |t        dd              |t        j                  d             q y )Nc                 .    t        j                  | d      S )Nr#  re   r2  s    r   <lambda>z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>  s    bii2&r   c           	      V    t        j                  dt        dt        |                   S )Nr;  r"  ry   )r   rf   maxr5   r2  s    r   rZ  z4TestArrayMethods.test_arange_1_arg.<locals>.<lambda>  s    biiAs1v7r   Tr^  c                 f     |       } |       }t         j                  j                  ||       y r   r   rA  rB  )rg   r4  r5  r3  r0  s      r   r#  z4TestArrayMethods.test_arange_1_arg.<locals>.check_ok  s)    !$<Dk

**8S9r   r   r"  r   g      @r<  )rh   r   r?   r   r  )r  all_pyfuncsr#  r3  r0  s      @@r   test_arange_1_argz"TestArrayMethods.test_arange_1_arg  sz     &7
 "F&C&v.E:
 QKQKQKSMRLWQ]#RWWQZ  "r   c                    d }t         t        t        t        d d f}|D ]  } t	        d      |      } |dd||        |dd||        |d	d
||        |d
d	||        |dd ||       t
        dk  sV |t        dd      t        d	d	      ||        |t        d	d	      t        dd      ||        t        } t	        d      |      } |dt        j                  ||        |dt        j                  ||        |dd ||        |t        j                  d      d ||       t
        dk  rF |dt        j                  ||        |t        j                  d      t        j                  ||       y y )Nc                 h     || |      } || |      }t         j                  j                  ||       y r   r^  )rg   rj   r0  r3  r4  r5  s         r   r#  z4TestArrayMethods.test_arange_2_arg.<locals>.check_ok(  s.    dD)Hd#CJJ&&x5r   c                 0    t        j                  | |d      S )Nr   re   r   r   s     r   rZ  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>2  s    1a+r   c                 2    t        j                  d||       S )Nrg  ry   re   rd  s     r   rZ  z4TestArrayMethods.test_arange_2_arg.<locals>.<lambda>3  s    1aa0r   Tr^  r   r   r         ?r   rf  r"  rL  r;  r   r#  )rk   r   ru   r{   r   r   r?   r   r   r   r   r  r&  r   )r  r#  r_  r0  r3  s        r   test_arange_2_argz"TestArrayMethods.test_arange_2_arg'  s[   	6  +0
 "F&C&v.ERFE*RVU+QVU+S!VU+Qfe,v%A1vuEA1vuE " #"T"6*BJJ.bhh.D&%(T6516!R6R\\"%r}}feD "r   c           	      R    t         j                  j                  d      xr t         j                  dkD  d fd	}t        t
        t        fD ]y  } t        d      |      } |ddd||        |d	d
d||        |ddd||        |ddd||        |ddd||        |ddd ||        |dd d ||        |t        j                  d      t        j                  d      t        j                  d      ||        |t        j                  d      t        j                  d      t        j                  d      ||       t        j                  } | |d       |d       |d      ||d        |t        j                  d       |d       |d      ||d       t        dk  sZ |dt        dd      t        dd      ||       | t        } t        d      |      } |ddt        j                   ||        |ddt        j                  ||        |ddd ||        |t        j                  d      t        j                  d      d ||d       t        dk  rH |ddt        j"                  ||        |dt        j$                  d      t        j"                  ||       y y )Nwin32l        c                      || ||      } || ||      }t         j                  j                  ||       	s'j                  |j                  |j                         y y r   )r   rA  rB  rE  r9   )
rg   rj   rm   r0  r3  check_dtyper4  r5  r  	windows64s
           r   r#  z4TestArrayMethods.test_arange_3_arg.<locals>.check_okQ  sU    dD$/HdD)CJJ&&x5   ; r   Tr^  r   r   r"  rf  r   r   r/  r%  rg  r   rg  皙?ri  rf  rL  r  r;  r#  r  )r  platform
startswithmaxsizern   r   r   r   r   r  r  r   r  r   r?   r   r   r&  r   )r  r#  r0  r3  i8rm  s   `    @r   test_arange_3_argz"TestArrayMethods.test_arange_3_argN  s.   LL++G4Nw9N		< #$46OPF&C&v.EQ1fe,RQ.QR/S!Q.Q3.Q4/QdFE2RWWQZRWWQZGRWWQZ!bhhqk65IBRUBqE2a5&%>RXXa["Q%AtDv%GAqM71a=&%H# Q& #"T"6*Arzz651a651AtVU+RXXa[$tD6!RR]]FE:QR("--G "r   c           	         t         t        fD ]   t        d            fd} |dddt        j                          |ddd	t        j
                          |dd
dt        j                          |dddd         |d	dd d         |d	d d d        t        dk  s |dddt        j                          |dt        dd      t        dd      t        j                          y )NTr^  c                 r     | |||      } | |||      }t         j                  j                  ||       y r   r^  )rg   rj   rm   rp   r4  r5  r3  r0  s         r   r#  z4TestArrayMethods.test_arange_4_arg.<locals>.check_ok}  s7    !$dD9D$d3

**8S9r   r   r   r"  rf  r   r   r/  r%  rg  r   rg  ri  rf  rn  )
rq   r   r   r   r%  r   r   r   r&  r?   )r  r#  r3  r0  s     @@r   test_arange_4_argz"TestArrayMethods.test_arange_4_argy  s    "$CDF&C&v.E:
 Q1bjj)RQ)QR,S!Q%Q4&QdD)v%AsBMM2GAqM71a="--H! Er   c           	      &   | j                          d d d g}d d g}|D ]:  }| j                  t              5 } t        d      |      } |d       d d d        < |D ];  }| j                  t              5 } t        d      |      } |dd	       d d d        = t        } t        d      |      }||fD ]  }d
t        j                  d      dfdfD ]  }t        t        f}| j                  |      5 }t        j                         5  t        j                  d        ||  d d d        | j                  dt        |j                               d d d          y # 1 sw Y   JxY w# 1 sw Y   xY w# 1 sw Y   UxY w# 1 sw Y   xY w)Nc                 .    t        j                  |       S rs   re   r2  s    r   rZ  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>      biiQ'r   c                 .    t        j                  |       S rx   re   r2  s    r   rZ  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  ry  r   c                 .    t        j                  |       S r}   re   r2  s    r   rZ  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    biia(r   c                 0    t        j                  | |      S r   re   rd  s     r   rZ  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    2r   c                 0    t        j                  | |      S )N)rt   r9   re   rd  s     r   rZ  z5TestArrayMethods.test_arange_throws.<locals>.<lambda>  s    3r   Tr^  rg  ri  r"  r   )r"  rg  r   ignorezMaximum allowed size exceeded)rU  rC  r	   r   rn   r   r  ZeroDivisionErrorrD  warningscatch_warningssimplefilterr  rF  rG  )	r  bad_funcs_1bad_funcs_2r0  rK  r3  finputspermitted_errorss	            r   test_arange_throwsz#TestArrayMethods.test_arange_throws  s}   ! ('(
 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!8E.7FE;	'-F!E+	.E8	;F FFc                 z    t        d      d        }d}| j                   ||      |j                  |             y )NTr^  c                 6    t        j                  dd| z   |       S )Nr   r"  re   ry   s    r   r  z2TestArrayMethods.test_arange_accuracy.<locals>.foo  s    99QD$//r   g[R֯?)r   r(  rl  )r  r  r   s      r   test_arange_accuracyz%TestArrayMethods.test_arange_accuracy  s>     
d		0 
	0 !AA7r   c                     t          t        d             fd} fd} j                           |t        j                  dg              |t        j
                  dgg              |t        j                  d              |t        j                  d              |t        j                  d              |t        j                  ddg              |t        j                  g              y )	NTr^  c                 J     |       } |       }j                  ||       y r   r  )r6   r4  r5  r3  r0  r  s      r   r#  z,TestArrayMethods.test_item.<locals>.check_ok  s%    c{H*C##C2r   c                     j                  t              5 } |        d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nz>item(): can only convert an array of size 1 to a Python scalarrC  rD  r  rF  rG  )r6   rK  r3  r  s     r   rv  z-TestArrayMethods.test_item.<locals>.check_err  sE    "":.&c
 /MMZf../1 /.s   	AAr                ?r"  rg  )r   r   rU  r   r   r&  rT  r  r  r#  rv  r3  r0  s   `  @@r   	test_itemzTestArrayMethods.test_item  s    "T"6*	3
	1 	! 	SE"#x()#$ C!"((Aq6"#"((2,r   c                     t          t        d             fd} fd} j                           |t        j                  dg      d        |t        j
                  dgg      d        |t        j                  d      d        |t        j                  dd	g              |t        j                  g              y )
NTr^  c                     | j                         }| j                         } ||        ||       j                  ||       y r   )rI   r(  )r   r   r4  r5  r3  r0  r  s       r   r#  z/TestArrayMethods.test_itemset.<locals>.check_ok  s<    vvxH&&(C8Q#qM##C2r   c                     j                  t              5 } | d       d d d        j                  dt        j                               y # 1 sw Y   /xY w)Nr  z/itemset(): can only write to an array of size 1r  )r   rK  r3  r  s     r   rv  z0TestArrayMethods.test_itemset.<locals>.check_err  sG    "":.&a /MMKf../1 /.rw  r  r  r  r"  rg  )r   r   rU  r   r   r&  rT  r  s   `  @@r   test_itemsetzTestArrayMethods.test_itemset  s    "T"6*	3	1 	! 	SE"B'x("-##"((Aq6"#"((2,r   c           	      H   t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  g}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      dz  gH }}t        j                  t        j                  g}|D cg c].  }t        j                  d|      t        j                  d|      g0 }}|D ]Z  }|D ]S  }| j                  dj                  |j                              5  | j!                   ||       ||             ddd       U \ yc c}w c c}w # 1 sw Y   lxY w)	zK test sum over a whole range of dtypes, no axis or dtype parameter
        Tr^  r;  ri  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  subTestformatr9   r(  )	r  r0  r3  
all_dtypes	arr_dtypeall_test_arraysunsigned_dtypesarr_listr   s	            r   test_sumzTestArrayMethods.test_sum  sb    "T"6*jj"**bhhllBMM2>>C
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99bii0 -. -	 WW_i0WWQ	"$, 	 .
 (H\\">"E"Ecii"PQ++F3KsD RQ   (). RQs   AF93F"FF!c                 N   t         } t        d      |      }t        j                  t        j                  t        j
                  t        j                  t        j                  t        g}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      dz  gH }}t        j                  g}||D cg c].  }t        j                  d|      t        j                  d|      g0 c}z  }|D ]  }|D ]z  }dD ]s  }	|	t        |j                        dz
  kD  r| j                  dj                  |j                              5  | j!                   |||		       |||		             d
d
d
       u |  y
c c}w c c}w # 1 sw Y   xY w)z< test sum with axis parameter over a whole range of dtypes  Tr^  r  r"  r  r  r   r"  rg  #Testing np.sum(axis) with {} input ra   N)r   r   r   r%  r   r  r   r&  TIMEDELTA_Mr   r  lenr   r  r  r9   r(  )
r  r0  r3  r  r  r  r  r  r   rb   s
             r   test_sum_axis_kws1z#TestArrayMethods.test_sum_axis_kws1  s   #"T"6*jj"**bhhmm[2
 (	) (	 WW_i0WWQ	"WWVY'",. (	 	 ) 99+ -. -	 WW_i0WWQ	"$,. 	.
 (H%Dc#))nQ..  '//5vcii/@B//s0F05c0EGB B &   ().B Bs   /AF3F#F	F$c                    t         } t        d      |      }t        j                  g}t        j                  d      t        j
                  t        j                  d      t        j                  t        j                  d      t        j
                  t        j                  t              t        j                  t              i}|D cg c]F  }t        j                  d|      t        j                  d|      t        j                  d|      d	z  gH }}t        j                  g}||D cg c].  }t        j                  d|      t        j                  d|      g0 c}z  }|D ]  }|D ]  }	d
D ]  }
|
t        |	j                        dz
  kD  r| j                  dj                  |	j                              5   ||	|
      } ||	|
      }t        |t        j                        rK| j!                  |j#                  ||	j                           |j#                  ||	j                                  n| j%                  ||       ddd          yc c}w c c}w # 1 sw Y   xY w)a    testing uint32 and int32 separately

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

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

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

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

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

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

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

GGO$q!U 3 %a!U 3	5 	q!U 3 %aE 2	4r   c                 @   t         } t        d      |      }t        j                  d      }| j	                   ||d       ||d             t
        } t        d      |      }t        j                  d      }| j	                   ||d       ||d             y )NTr^  rP  r   ra   r   )r   r   r   rf   r(  r   r  r0  r3  r   s       r   test_sum_1d_kwsz TestArrayMethods.test_sum_1d_kws  s    #"T"6*IIcNqq 153CD-"T"6*IIcNqr 2E!"4EFr   c                     t         } t        d      |      }t        j                  d      }d}| j	                   |||       |||             d}| j	                   |||       |||             y )NTr^  )r   r   r   ri  r;  r  r"  rg  )r   r   r   r   r(  )r  r0  r3  r   rb   s        r   test_sum_constzTestArrayMethods.test_sum_const  sm    &"T"6*gg()sD 15d3CDsD 15d3CDr   c                    | j                          t        } t        d      |      }t        j                  d      }t        j                  d      }| j                  t              5   ||d       d d d        | j                  t              5   ||d       d d d        | j                  t              5   ||d       d d d        y # 1 sw Y   XxY w# 1 sw Y   =xY w# 1 sw Y   y xY w)NTr^  r  r   r   rg  r   r   )rU  r   r   r   r   rC  rD  r  r0  r3  r   r   s        r   test_sum_exceptionsz$TestArrayMethods.test_sum_exceptions  s    !"T"6*GGO$GGFOz*!QK + z*!RL + z*!QK +* +* +* +*s$   (
C	
C6
C!	CC!C*c                    | j                          t        d      d        }t        j                  d      }| j	                   ||      |j                  |             t        j                  d      }| j	                   ||      |j                  |             t        j                  d      }| j                  t              5 } ||       d d d        d}| j                  |t        j                               | j                  t              5 }|j                  |       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)	NTr^  c                 &    | j                  d      S )Nr<  ra   r   rC   s    r   r  z5TestArrayMethods.test_sum_const_negative.<locals>.foo  s    777##r   )r"  rg  r   r   )r"  rg  r   )r"  rg  z"'axis' entry (-1) is out of boundszout of bounds)rU  r   r   r   r(  rl  rC  r
   r  rF  rG  rD  )r  r  r   rK  errmsgs        r   test_sum_const_negativez(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E'c                    t         } t        d      |      }t        j                  d      }| j	                   ||       ||             | j                  t              5   ||d       d d d        t        } t        d      |      }| j                  t              5   ||d       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)NTr^  )rg  r   r"  ra   )r   r   r   r   r(  rC  r	   r   r  s       r   test_cumsumzTestArrayMethods.test_cumsum  s    "T"6*GGFOq	584{+!QK , ""T"6*{+!! ,+ ,+
 ,+s   !
B4 C 4B= C	c                     t          t        d             fd}g }|j                  d       |j                  d       |j                  d       |j                  d       |j                  t        j                  g d             |j                  t        j                  g d	g d
gd             |j                  t        j                  g d	g d
gg             |j                  t        j                  ddggddggddgggg             |j                  g d       |j                  d	       |j                  d       |j                  d       t        g d      }t        j                  t        j                  t        j                  fD ]C  }t        j                  d|      j                  dt        |            }|D ]  } |||        E t        j                  d      j                  dt        |            }|j                  }|| dz
  t        j                  |      t        j                  | dz
        |g| dz
  gg}|D ])  }	 j                  t              5   ||	       d d d        +  j                  t              5   |dg       d d d         j                  t              5   t        d      t               }
 |
|dd       d d d         j                  t              5   t        d      t               }
 |
|dd       d d d         j#                          y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   >xY w)NTr^  c                      | |      } | |      }j                  ||       t        |d      r)j                  |j                  |j                  k(         y y )Nr  )r(  hasattrrE  r  )r   indr4  r5  r3  r0  r  s       r   rt  z)TestArrayMethods.test_take.<locals>.check  sT    c3'HS/C##Hc2x)  399!<= *r   r"  r      r%  )r"  r   r"  r  r   r"  r   r"  )r  r   r   r  r  r   rg  )r  )r  r   rg  ))r"  )r   r  ))r  )r   )rg  r  r  r~   r  333333?ra   )r^   r   rj  r   rT  r   r%  r  r&  rf   r  r  sizerC  
IndexErrorr	   rc   rU  )r  rt  test_indicesr  r  rN  r  szAillegal_indicesr   take_kwsr3  r0  s   `          @@r   	test_takezTestArrayMethods.test_take  s   "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 , {+)sD).9HQ1 ,
 {+)sD).9HQ" ,
 	!% /. ,+ ,+
 ,+s0   2
L<M!M"M <M	MM M)c                     t          t        d             fd}t        j                  d      }t        j                  t        j
                  fD ]  } || |d              t        j                  d      j                  dd      }t        j                  t        j
                  fD ]  } || |d              t        j                  d	t        j                  
      j                  dddd      }t        j                  t        j                  t        j
                  fD ]  } || |d              y )NTr^  c                     t        j                  |       } ||      }j                  |d u        t        j                  |       } ||      }j                  |d u        j                  ||       y r   )r   rI   
assertTruer(  )	r   r!   r4  ervr5  grvr3  r0  r  s	         r   rt  z)TestArrayMethods.test_fill.<locals>.checkB  sd    wws|H3'COOC4K(''#,CS/COOC4K(##Hc2r   r"  r#  r  r   r   0   r~   rg  )	r   r   r   rf   r%  r  r  r   r&  )r  rt  rN  r   r3  r0  s   `   @@r   	test_fillzTestArrayMethods.test_fill?  s    "T"6*	3 IIaL**bhh'A!QrUO ( IIbM!!!Q'**bhh'A!QrUO ( IIb-55aAqA**bmmRXX6A!QrUO 7r   c                 R   t         } t        d      |      }t        j                  dd      }t        j                  j                   ||       ||             t        j                  ||      \  }}|d|z  z   }t        j                  j                   ||       ||             y NTr^  r/  r#  r1  )r   r   r   r'  rA  r?  meshgridr  r0  r3  r   r   zs         r   	test_realzTestArrayMethods.test_real[      "T"6*KKR 


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


q	584r   c                 R   t         } t        d      |      }t        j                  dd      }t        j                  j                   ||       ||             t        j                  ||      \  }}|d|z  z   }t        j                  j                   ||       ||             y r  )r   r   r   r'  rA  r?  r  r  s         r   	test_imagzTestArrayMethods.test_imagf  r  r   c                     fd}t         j                  j                   ||        t        d      |      |             y )Nc                 >    t        j                   |             S r   )r   expm1)r   r   r   r  s    r   lower_clip_resultzHTestArrayMethods._lower_clip_result_test_util.<locals>.lower_clip_resultt  s    88DE5122r   Tr^  )r   rA  assert_almost_equalr   )r  r  r   r   r   r  s    ` `` r   _lower_clip_result_test_utilz-TestArrayMethods._lower_clip_result_test_utilq  s<    	3 	

&&a 1C01!4	6r   c                    t         t        t        t        f}t        t
        f}t        j                  ddd      t        j                  ddd      j                  ddd      fD ]p  }||z   D ]d  } t        d	      |      }d
}| j                  t        |      5   ||d d        d d d        t        j                  j                   ||dd        ||dd              t        j                  j                   ||d d       ||d d             t        j                  j                   ||dd       ||dd             ||v r|t        j                  |      }t        j                  |      }t        j                  j                   ||dd|       ||dd|             t        j                  j                  ||       | j                  ||dd       g s y # 1 sw Y   5xY w)Nr/  r#  e   (   r   rg  r   Tr^  &array_clip: must set either max or minr   r  )r   r   r   r  r   r  r   r'  r  r   ra  rD  rA  r?  
empty_liker  )	r  has_out
has_no_outr   r0  r3  rc  rJ  couts	            r   	test_clipzTestArrayMethods.test_clip{  s   NJ8IJ$&78
++c2s+++c2r*221a;=A!J.*T*62>++J<!T4( = 

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

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

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

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

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


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


q!eAqk:r   c                    t         } t        d      |      }d}|t        j                  f}t        j                  j                   ||  ||        |t        j                  d      f}t        j                  j                   ||  ||        |t        j                  f}t        j                  j                   ||  ||        |t        j                  d      f}t        j                  j                   ||  ||        y )NTr^  rg  r   f4)r  r   r   r   rA  rG  r9   r   )r  r0  r3  r  r   s        r   test_array_ctor_with_dtype_argz/TestArrayMethods.test_array_ctor_with_dtype_arg  s    "T"6*"(({


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


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


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


%%fdmUD\Br   )W__name__
__module____qualname____doc__r  r6  r9  r;  rV  rX  rZ  r   r\  rd  rm  r  r  r  r  r  r  r  r  r  r   rf   r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r   r*  r8  rC  rH  rS  rU  rW  r`  rh  rs  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  __classcell__)r  s   @r   r  r    s   .78AC("T/0 0 0#\"|&.-`"0H06:# 79ii (:252.
?
B
DJ D*''AF6$!LS>6$38 !*!0%EN)HVI&%7N8 8    8E0G8+AZ"QH&DP4	GE$>0?"B8	5	56C6N@#'	9
 ; ;Cr   r  c                       e Zd Zd Zy)TestArrayComparisonsc                 Z     fd}t         t        j                  dt        j                        j	                  d      } |||d        |||d d  d        |||j                         d        |||j                  d      d        |||j                  d        |||d d d       y )	Nc                      t        t        |       t        |      f            }j                   || |      || f       y r   r  )r   r   r4  r3  r0  r  s       r   rt  z1TestArrayComparisons.test_identity.<locals>.check  sA    0D&)VAY/08E##E!QK%-8|$<>r   r#  r~   )rg  r   TFr  r   )r   r   r  r   r  rI   rU   rB   )r  rt  r   r0  s   `  @r   test_identityz"TestArrayComparisons.test_identity  s    	>
 "hhr*226:c3c3q64 c388:u%c388H%u-c355% c3s8U#r   N)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;   rD   rG   rJ   rL   rO   rR   rX   r^   rc   rh   rk   rn   rq   ru   r{   r   r   r   r   r   r   r   r   r   r   r   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")
$)-%) #{C {Cz/$8 $* zHMMO r   