o
    gµ„i<
  ã                   @   s\   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r,e ¡  d	S d	S )
é    )Úcuda)ÚTypingError)ÚunittestÚCUDATestCaseÚskip_on_cudasimc                 C   s   d S ©N© ©Úxr   r   úV/home/kuhnn/.local/lib/python3.10/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   ó–   t  t¡}|  t¡}|d  W d   ƒ n1 sw   Y  |  dt|jƒ¡ |  t¡}|d  W d   ƒ n1 s;w   Y  |  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   r   )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   sH   |   t¡}|dƒ W d   ƒ n1 sw   Y  |  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                    s€   t jdddd„ ƒ‰ t j‡ fdd„ƒ}|  t¡}|d ƒ  W d   ƒ n1 s(w   Y  t|jƒ}|  d|¡ |  d	|¡ d S )
NT)Ú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   Ú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)Únumbar   Únumba.core.errorsr   Únumba.cuda.testingr   r   r   r   r   r.   Úmainr   r   r   r   Ú<module>   s    Dÿ