ó
\K]c           @@ s‡   d  d l  m Z m Z d  d l Z d  d l m Z d  d l m Z d  d l	 j
 Z d e j f d „  ƒ  YZ e d k rƒ e j ƒ  n  d S(   i    (   t   print_functiont   absolute_importN(   t   roc(   t   HsaKernelLaunchErrort
   TestSimplec           B@ sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         @ s\   d ‰  t  j ‡  f d †  ƒ } t j d d t j ƒ} | d | ƒ |  j | d ˆ  ƒ d  S(   Ni{   c         @ s   ˆ  |  d <d  S(   Ni    (    (   t   output(   t   magic_token(    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   udt   s    i   t   dtypei    (   i   i   (   R   t   jitt   npt   zerost   intpt   assertEqual(   t   selfR   t   out(    (   R   s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_array_access   s
    c         @ s[   d ‰  t  j ‡  f d †  ƒ } t j d d t j ƒ} | d | ƒ t j j | ˆ  ƒ d  S(   Ni{   c         @ sP   xI t  |  j d ƒ D]4 } x+ t  |  j d ƒ D] } ˆ  |  | | f <q. Wq Wd  S(   Ni    i   (   t   ranget   shape(   R   t   it   j(   R   (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR      s    i
   R   i   (   i
   i
   (   i   i   (   R   R	   R
   R   R   t   testingt   assert_equal(   R   R   R   (    (   R   s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_array_access_2d   s
    c         @ s[   d ‰  t  j ‡  f d †  ƒ } t j d d t j ƒ} | d | ƒ t j j | ˆ  ƒ d  S(   Ni{   c         @ sq   xj t  |  j d ƒ D]U } xL t  |  j d ƒ D]7 } x. t  |  j d ƒ D] } ˆ  |  | | | f <qH Wq. Wq Wd  S(   Ni    i   i   (   R   R   (   R   R   R   t   k(   R   (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   '   s    i
   R   i   (   i
   i
   i
   (   i   i   (   R   R	   R
   R   R   R   R   (   R   R   R   (    (   R   s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_array_access_3d$   s
    c         C@ sŽ   t  j d „  ƒ } t j d	 d t j ƒ} | d
 | d d !ƒ t j j | d d !t j d ƒ ƒ |  j | d d ƒ |  j | d d ƒ d  S(   Nc         S@ s   t  j d ƒ } | |  | <d  S(   Ni    (   R   t   get_global_id(   R   t	   global_id(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   3   s    id   i   R   i
   i   iÿÿÿÿi    if   (   i
   i
   (	   R   R	   R
   R   R   R   R   t   arangeR   (   R   R   R   (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_global_id2   s    #c         C@ s±   t  j d „  ƒ } t j d	 d t j ƒ} | d
 | d d !ƒ | d d !} x6 t j | d ƒ D]" } t j j | t j d ƒ ƒ q_ W|  j	 | d d ƒ |  j	 | d d ƒ d  S(   Nc         S@ s,   t  j d ƒ } t  j d ƒ } | |  | <d  S(   Ni    (   R   R   t   get_local_id(   R   R   t   local_id(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   B   s    id   i   R   i
   i   iÿÿÿÿi    if   (   i
   i
   (
   R   R	   R
   R   R   t   splitR   R   R   R   (   R   R   R   t   subarrt   parted(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_local_idA   s     c         C@ sº   t  j d „  ƒ } t j d
 d t j ƒ} | d | d d !ƒ | d d !} x? t t j | d ƒ d d ƒD] \ } } t j j | | ƒ qk W|  j	 | d	 d	 ƒ |  j	 | d d	 ƒ d  S(   Nc         S@ s0   t  j d ƒ } t  j d ƒ } | d |  | <d  S(   Ni    i   (   R   R   t   get_group_id(   R   R   t   group_id(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   U   s    id   i   R   i
   i   iÿÿÿÿt   starti    if   (   i
   i
   (
   R   R	   R
   R   R   t	   enumerateR    R   R   R   (   R   R   R   R!   R   R"   (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_group_idT   s    +c         C@ s    t  j d „  ƒ } t j d d t j ƒ} | d | ƒ t j j | d ƒ t  j d „  ƒ } t j d	 d t j ƒ} | d
 d f | ƒ t j j | d ƒ d  S(   Nc         S@ s)   t  j d ƒ } t  j ƒ  } | |  | <d  S(   Ni    (   R   R   t   get_work_dim(   R   R   t   workdim(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   i   s    i
   R   i   c         S@ s8   t  j d ƒ } t  j d ƒ } t  j ƒ  |  | | f <d  S(   Ni    i   (   R   R   R)   (   R   t   g0t   g1(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   udt2s   s    i   i   (   i   i
   (   i   i   (   i   i   (   i   i   (   R   R	   R
   R   R   R   R   (   R   R   R   R-   (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_workdimh   s    c         C@ s!   t  j d „  ƒ } | d ƒ  d  S(   Nc           S@ s   d  S(   N(    (    (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   ~   s    i   (   i   i   (   R   R	   (   R   R   (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_empty_kernel}   s    c         C@ sX   t  j d „  ƒ } |  j t ƒ  } | d d f ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Nc           S@ s   d  S(   N(    (    (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   …   s    i   i   i   s   Try reducing group-sizei   @(   R   R	   t   assertRaisesR   t   assertInt   strt	   exception(   R   R   t   raises(    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   test_workgroup_oversize„   s    (   t   __name__t
   __module__R   R   R   R   R#   R(   R.   R/   R5   (    (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyR   	   s   								t   __main__(   t
   __future__R    R   t   numpyR
   t   numbaR   t   numba.roc.hsadrv.errorR   t   numba.unittest_supportt   unittest_supportt   unittestt   TestCaseR   R6   t   main(    (    (    s@   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_simple.pyt   <module>   s   …