U
    ?h<
  ã                   @   sX   d dl mZ d dlmZ d dlmZmZmZ dd„ ZG dd„ deƒZ	e
dkrTe ¡  d	S )
é    )Úcuda)ÚTypingError)ÚunittestÚCUDATestCaseÚskip_on_cudasimc                 C   s   d S ©N© ©Úxr   r   úU/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_errors.pyÚnoop   s    r   c                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Ze	dƒdd„ ƒZ
dS )ÚTestJitErrorsz-
    Test compile-time errors with @jit.
    c              	   C   sn   t  t¡}|  t¡}|d  W 5 Q R X |  dt|jƒ¡ |  t¡}|d  W 5 Q R X |  dt|jƒ¡ d S )N))é   é   é   é   )é   é   zBgriddim must be a sequence of 1, 2 or 3 integers, got [1, 2, 3, 4]))r   r   )r   r   r   r   zCblockdim must be a sequence of 1, 2 or 3 integers, got [3, 4, 5, 6])r   Újitr   ÚassertRaisesÚ
ValueErrorÚassertInÚstrÚ	exception©ÚselfÚkernfuncÚraisesr   r   r   Útest_too_many_dims   s    
þþz TestJitErrors.test_too_many_dimsc              	   C   sn   t  t¡}|  t¡}|d  W 5 Q R X |  dt|jƒ¡ |  t¡}|d  W 5 Q R X |  dt|jƒ¡ d S )N)g       @r   z1griddim must be a sequence of integers, got [2.0])r   g      @z2blockdim must be a sequence of integers, got [3.0])r   r   r   r   Ú	TypeErrorr   r   r   r   r   r   r   Útest_non_integral_dims   s    
ÿÿz$TestJitErrors.test_non_integral_dimsc              	   C   s4   |   t¡}|dƒ W 5 Q R X |  dt|jƒ¡ d S )Nr   z&launch configuration was not specified)r   r   r   r   r   r   r   r   r   Ú_test_unconfigured+   s
    ÿz TestJitErrors._test_unconfiguredc                 C   s   t  d¡tƒ}|  |¡ d S )Nzvoid(int32)©r   r   r   r!   ©r   r   r   r   r   Ú"test_unconfigured_typed_cudakernel1   s    z0TestJitErrors.test_unconfigured_typed_cudakernelc                 C   s   t  t¡}|  |¡ d S r   r"   r#   r   r   r   Ú$test_unconfigured_untyped_cudakernel5   s    
z2TestJitErrors.test_unconfigured_untyped_cudakernelz'TypingError does not occur on simulatorc              	      sl   t jdddd„ ƒ‰ t j‡ fdd„ƒ}|  t¡}|d ƒ  W 5 Q R X t|jƒ}|  d|¡ |  d	|¡ d S )
NT)Zdevicec                 S   s   t | ƒS r   )Úfloorr	   r   r   r   Údev_func>   s    z1TestJitErrors.test_typing_error.<locals>.dev_funcc                      s   ˆ dƒ d S )Ng      ø?r   r   ©r'   r   r   Úkernel_funcC   s    z4TestJitErrors.test_typing_error.<locals>.kernel_func)r   r   z*resolving callee type: type(CUDADispatcherz&NameError: name 'floor' is not defined)r   r   r   r   r   r   r   )r   r)   r   Zexcstrr   r(   r   Útest_typing_error9   s    


zTestJitErrors.test_typing_errorN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r!   r$   r%   r   r*   r   r   r   r   r   
   s   r   Ú__main__N)Znumbar   Znumba.core.errorsr   Znumba.cuda.testingr   r   r   r   r   r+   Úmainr   r   r   r   Ú<module>   s   D