ó
\K]c           @` s‡   d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z d  d l	 m
 Z
 d e e j f d „  ƒ  YZ e d k rƒ e j ƒ  n  d S(   i    (   t   print_functiont   divisiont   absolute_importN(   t   unittestt   SerialMixin(   t   cudat   TestCudaArrayc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` s†   t  j d ƒ } t j | ƒ } | j ƒ  } |  j | j | j ƒ |  j | j | j ƒ |  j | j | j ƒ |  j | j | j ƒ d  S(   Ni    (   t   npt   arangeR   t	   to_devicet   copy_to_hostt   assertEqualt   shapet   size(   t   selft   xt   dxt   hx(    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt   test_gpu_array_zero_length
   s    c         C` s­   t  j d ƒ d „  ƒ } t j d d t j ƒ} t j d d d | d t j ƒ } t j d d | d	 d
 !d t j ƒ} | d | ƒ |  j t j | t	 t
 d ƒ ƒ ƒ ƒ d  S(   Ns   void(double[:])c         S` s3   t  j d ƒ } | |  j d k  r/ | |  | <n  d  S(   Ni   i    (   R   t   gridR   (   R   t   i(    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt   kernel   s    i
   t   dtypeR   i   t   bufferi	   i   iüÿÿÿiP   (   i
   i
   (   R   t   jitR   R   t   doublet   ndarrayt   bytet
   assertTruet   allcloset   listt   range(   R   R   R   t   yt   z(    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt   test_gpu_array_strided   s    !%c         C` s{   t  j d ƒ d „  ƒ } t j d d t j ƒ} | d  d d … } y t  j j | ƒ Wn t k
 rj n Xt d ƒ ‚ d  S(   Ns   void(double[:], double[:])c         S` s=   t  j d ƒ } | |  j d k  r9 | |  | <| | | <n  d  S(   Ni   i    (   R   R   R   (   R   R    R   (    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt
   copykernel#   s    
i
   R   iÿÿÿÿi   sD   Should raise exception complaining the contiguous-ness of the array.(	   R   R   R   R   R   t   devicearrayt   auto_devicet
   ValueErrort   AssertionError(   R   R#   R   R    (    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt   test_gpu_array_interleaved!   s    c         C` sG   t  j j d ƒ \ } } |  j t j | j ƒ  t j d ƒ k ƒ ƒ d  S(   Ni   (   R   R$   R%   R   R   t   allR
   t   array(   R   t   dt   _(    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt   test_auto_device_const<   s    (   t   __name__t
   __module__R   R"   R(   R-   (    (    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyR   	   s   				t   __main__(   t
   __future__R    R   R   t   numpyR   t   numba.cuda.testingR   R   t   numbaR   t   TestCaseR   R.   t   main(    (    (    sA   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_array.pyt   <module>   s   7