σ
\K]c           @` s   d  Z  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 m Z d e e j f d     YZ e d k r e j   n  d S(	   s   
Test basic language features

i    (   t   print_functiont   absolute_importt   divisionN(   t   cudat   float64(   t   unittestt   SerialMixint   TestLangc           B` s#   e  Z d    Z d   Z d   Z RS(   c         ` sc   d   t  j d    f d    } t j t     } | |  |  j t j |   k   d  S(   Ng      π?g      @g      @s   void(float64[:])c         ` s+   x$ t     D] \ } } | |  | <q Wd  S(   N(   t	   enumerate(   t   at   it   v(   t   tup(    s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyt   foo   s    (   g      π?g      @g      @(   R   t   jitt   npt   zerost   lent
   assertTruet   all(   t   selfR   R	   (    (   R   s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyt   test_enumerate   s
    
c         ` s   d	   d
  t  j d     f d    } t j d  } | |  t j    } t j   } |  j t j | | | j   k   d  S(   Ni   i   i   g      @gffffff@gΝΜΜΜΜΜ@s   void(float64[:])c         ` sB   d } x+ t      D] \ } } | | | 7} q W| |  d <d  S(   Ni    (   t   zip(   R	   t   cR
   t   j(   t   t1t   t2(    s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyR      s    (   i   i   i   (   g      @gffffff@gΝΜΜΜΜΜ@(   R   R   R   R   t   arrayR   R   t   sum(   R   R   R	   t   bR   (    (   R   R   s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyt   test_zip   s    !
c         C` s?   t  j d  d    } t j d  } | d d f |  d S(	   sX   
        Ensure that macro expansion works for more than one block (issue #872)
        s   void(float64[:,:])c         S` s   x  t  d  D] } t j j } q Wx  t  d  D] } t j j } q0 Wt j j d t  } d | | | f <| | | f |  | | f <d  S(   Ni   i   g      π?(   i   i   (   t   rangeR   t	   threadIdxt   xt   yt   sharedR   R   (   t   aryR
   t   txR   t   tyt   sm(    (    s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyt   macros_in_multiple_blocks/   s    i   i   i   N(   i   i   (   i   i   (   R   R   R   R   (   R   R(   R	   (    (    s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyt   test_issue_872*   s    
(   t   __name__t
   __module__R   R   R)   (    (    (    s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyR      s   		t   __main__(   t   __doc__t
   __future__R    R   R   t   numpyR   t   numbaR   R   t   numba.cuda.testingR   R   t   TestCaseR   R*   t   main(    (    (    s@   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_lang.pyt   <module>   s   1