U
    ,‰dJ  ã                   @   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   ú?/tmp/pip-unpacked-wheel-eu7e0c37/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   Ú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   ÚassertRaisesÚ
ValueErrorÚassertEqualÚstrÚ	exception)r   r   Zargtysr   r   Útestsr	   r
   r   r   ÚbÚcmr   r   r   Útest_array_slice_setitem$   s6    ÿ
÷z'TestStoreSlice.test_array_slice_setitemN)Ú__name__Ú
__module__Ú__qualname__r   r6   r   r   r   r   r      s   r   Ú__main__)Znumpyr   ZunittestZnumba.core.compilerr   r   Z
numba.corer   r   Znumba.tests.supportr   r   r   r   r7   Úmainr   r   r   r   Ú<module>   s   1