U
    Ã9%e	  ã                   @   s|   d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlZd dlmZ e	dƒG dd„ de
ƒƒZed	krxe ¡  dS )
é    N)ÚcudaÚ	vectorize)Útypes)Úskip_on_cudasimÚCUDATestCase)Únumpy_supportz!pickling not supported in CUDASIMc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú
TestPicklec           	      C   sª   t  dg¡}|d |ƒ}t t |¡¡}~|d |ƒ}t j ||¡ ~t t |¡¡}~|d |ƒ}t j ||¡ ~t t |d ¡¡}~|  |jd¡ |  |j	d¡ d S )Néd   )é   r
   )é   é   )r   r
   r
   )r   r
   r
   )
ÚnpÚarrayÚpickleÚloadsÚdumpsÚtestingÚassert_equalÚassertEqualZgriddimZblockdim)	ÚselfZcalleeÚarrÚexpectedÚfoo1Úgot1Úfoo2Úgot2Zfoo3© r   úe/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_serialize.pyÚ
check_call   s     zTestPickle.check_callc                    s8   t jdddd„ ƒ‰ t  d¡‡ fdd„ƒ}|  |¡ d S )NT©Zdevicec                 S   s   | d S ©Nr
   r   ©Úar   r   r   Úinner(   s    z2TestPickle.test_pickling_jit_typing.<locals>.innerzvoid(intp[:])c                    s   ˆ | d ƒ| d< d S ©Nr   r   ©r   ©r#   r   r   Úfoo,   s    z0TestPickle.test_pickling_jit_typing.<locals>.foo©r   Zjitr   ©r   r'   r   r&   r   Útest_pickling_jit_typing'   s
    

z#TestPickle.test_pickling_jit_typingc                    s4   t jdddd„ ƒ‰ t j‡ fdd„ƒ}|  |¡ d S )NTr   c                 S   s   | d S r    r   r!   r   r   r   r#   4   s    z+TestPickle.test_pickling_jit.<locals>.innerc                    s   ˆ | d ƒ| d< d S r$   r   r%   r&   r   r   r'   8   s    z)TestPickle.test_pickling_jit.<locals>.foor(   r)   r   r&   r   Útest_pickling_jit2   s
    

zTestPickle.test_pickling_jitc           	      C   sŽ   t ddgdddd„ ƒ}t tj¡}tjd|d}||ƒ}t t 	|¡¡}~||ƒ}tj
 ||¡ t t 	|¡¡}~||ƒ}tj
 ||¡ d S )	Nz
intp(intp)zfloat64(float64)r   )Útargetc                 S   s   | d S )Né   r   )Úxr   r   r   Ú	cuda_vect?   s    z5TestPickle.test_pickling_vectorize.<locals>.cuda_vecté
   )Zdtype)r   r   Zas_dtyper   Zintpr   Zaranger   r   r   r   r   )	r   r/   ZnptyZaryr   r   r   r   r   r   r   r   Útest_pickling_vectorize>   s    
z"TestPickle.test_pickling_vectorizeN)Ú__name__Ú
__module__Ú__qualname__r   r*   r+   r1   r   r   r   r   r   
   s   r   Ú__main__)r   Únumpyr   Znumbar   r   Z
numba.corer   Znumba.cuda.testingr   r   ZunittestZnumba.npr   r   r2   Úmainr   r   r   r   Ú<module>   s   I