a
    þ
þ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   úd/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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   ÚzerosÚcopyr   Znrtr   r   r   Úfloat64ZintpÚentry_pointÚassertPreciseEqual)ÚselfÚnZobs_gotZobs_expectedr   Úcresr   r   r   Útest_usecase   s    
ÿ
zTestStoreSlice.test_usecasec              
   C   s6  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 d   ƒ n1 s0    Y  |  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   Ú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    ÿ
÷2z'TestStoreSlice.test_array_slice_setitemN)Ú__name__Ú
__module__Ú__qualname__r    r8   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   r9   Úmainr   r   r   r   Ú<module>   s   1