o
    8ήcJ                     @   st   d dl Zd dlZd dlmZmZ d dlmZmZ d dl	m
Z
 dd Zdd ZG d	d
 d
e
Zedkr8e  dS dS )    N)compile_isolatedFlags)typeserrors)TestCasec                 C   s   || |||< d S )N )astartstopstepscalarr   r   B/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/test_storeslice.pysetitem_slice	   s   r   c                 C   sD   |d }t || d|< d| |< t || d | |d d < d S )N   r   iA     )nparange)obsnPointscenterr   r   r   usecase   s   "r   c                   @   s   e Zd Zdd Zdd ZdS )TestStoreSlicec                 C   sf   d}t |}| }t }d|_tttjd d  tj	f|d}|
|| t|| | || d S )N
   T)flags)r   zeroscopyr   nrtr   r   r   float64intpentry_pointassertPreciseEqual)selfnobs_gotobs_expectedr   cresr   r   r   test_usecase   s   

zTestStoreSlice.test_usecasec              
   C   s4  d}t jd d  t jt jt jt jf}tt|}tj|tjd}dddt|ddfddt| ddfdd	d
dddf
}|D ]-\}}}}	tj|tjd}tj|tjd}
||||||	 t|
||||	 | ||
 q;tj|tjd}| 	t
}||dddd W d    n1 sw   Y  | t|jd d S )Nr   )dtype)r      r      )r   r(   r)   r   M   )r+      X   )r+   r-   i'  )r-   r+      r/   )r-   r+   r/   )      r   r/   )r3   r4   r+   r/   r.   r(   r   r/   zslice step cannot be zero)r   int64r   r   r   r   lenr   r    assertRaises
ValueErrorassertEqualstr	exception)r!   r"   argtysr%   r   testsr	   r
   r   r   bcmr   r   r   test_array_slice_setitem$   s8   
z'TestStoreSlice.test_array_slice_setitemN)__name__
__module____qualname__r&   r@   r   r   r   r   r      s    r   __main__)numpyr   unittestnumba.core.compilerr   r   
numba.corer   r   numba.tests.supportr   r   r   r   rA   mainr   r   r   r   <module>   s    1