U
    ?hJ                     @   sp   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rle  dS )    N)compile_isolatedFlags)typeserrors)TestCasec                 C   s   || |||< d S )N )astartstopstepscalarr   r   M/var/www/html/venv/lib/python3.8/site-packages/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)ZobsZ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   Zzeroscopyr   Znrtr   r   r   Zfloat64Zintpentry_pointassertPreciseEqual)selfnZobs_gotZobs_expectedr   cresr   r   r   test_usecase   s    

zTestStoreSlice.test_usecasec              
   C   s   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 ]Z\}}}}	tj|tjd}tj|tjd}
||||||	 t|
||||	 | ||
 qvtj|tjd}| 	t
}||dddd W 5 Q R X | t|jd d S )Nr   )Zdtype)r      r      )r   r   r    r   M   )r"      X   )r"   r$   i'  )r$   r"      r&   )r$   r"   r&   )      r   r&   )r*   r+   r"   r&   r%   r   r   r&   zslice step cannot be zero)r   Zint64r   r   r   r   lenr   r   ZassertRaises
ValueErrorZassertEqualstr	exception)r   r   Zargtysr   r   Ztestsr	   r
   r   r   bcmr   r   r   test_array_slice_setitem$   s6    
z'TestStoreSlice.test_array_slice_setitemN)__name__
__module____qualname__r   r2   r   r   r   r   r      s   r   __main__)numpyr   ZunittestZnumba.core.compilerr   r   Z
numba.corer   r   Znumba.tests.supportr   r   r   r   r3   mainr   r   r   r   <module>   s   1