ó
\K]c           @@ sc  d  d l  m Z m Z d  d l Z d  d l Z d  d l Z d  d l j Z	 d  d l
 m Z d  d l
 m Z d  d l m Z d  d l m Z d  d l m Z m Z m Z d „  Z d	 „  Z d
 „  Z d e	 j f d „  ƒ  YZ d e	 j f d „  ƒ  YZ d e	 j f d „  ƒ  YZ d e	 j f d „  ƒ  YZ d „  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   types(   t   compiler(   t   hsa(   t
   BrigModulet
   Executablet   Programc         C@ s   | d |  d <d  S(   Ni    (    (   t   outt   inp(    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   copy_kernel   s    c         C@ s3   t  j d ƒ } | |  j k  r/ | | |  | <n  d  S(   Ni    (   R   t   get_global_idt   size(   R	   R
   t   i(    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   copy_kernel_1d   s    c         C@ s/   t  j d ƒ } | |  j k  r+ | |  | <n  d  S(   Ni    (   R   R   R   (   R	   R
   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   assign_value   s    t   TestCodeGenerationc           B@ s   e  Z d  „  Z d „  Z RS(   c         C@ sF   t  j } t j t | g d ƒ } |  j d j | j ƒ | j ƒ d  S(   Ni   s
   .globl	{0}(	   R   t   float32R   t   compile_kernelR   t   assertInt   formatt
   entry_namet   assembly(   t   selft   arytypet   kernel(    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_copy_kernel    s    
c         C@ sF   t  j } t j t | g d ƒ } |  j d j | j ƒ | j ƒ d  S(   Ni   s
   .globl	{0}(	   R   R   R   R   R   R   R   R   R   (   R   R   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_copy_kernel_1d&   s    
(   t   __name__t
   __module__R   R   (    (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyR      s   	t	   _TestBasec           B@ s   e  Z d  „  Z d „  Z RS(   c         C@ sw   g  t  j D] } | j r
 | ^ q
 d |  _ g  t  j D] } | j s6 | ^ q6 d |  _ |  j j |  j j ƒ |  _ d  S(   Ni    (   t   hsartt   agentst   is_componentt   gput   cput   create_queue_multit   queue_max_sizet   queue(   R   t   a(    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   setUp.   s    ,,c         C@ s   |  `  |  ` |  ` d  S(   N(   R'   R#   R$   (   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   tearDown3   s    (   R   R   R)   R*   (    (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyR   -   s   	t   TestExecutionc           B@ s   e  Z d  „  Z RS(   c         C@ s‹   t  j d d t  j ƒ} t  j | ƒ } t j d  d  d … } t j t | g d ƒ } | | j d d f | | ƒ t  j	 j
 | | ƒ d  S(   Ni   t   dtypei   i   i   (   t   npt   arangeR   t
   zeros_likeR   R   R   R   R   t   testingt   assert_equal(   R   t   srct   dstR   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_hsa_kernel:   s    (   R   R   R4   (    (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyR+   9   s   t   TestKernelArgumentc           B@ sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@ s   t  j t | ƒ ƒ } t  j d d | ƒ} | j | ƒ } | d  d  d … } t j t | | g ƒ } | d | | ƒ |  j | d | ƒ d  S(   Ni   R,   i    (   i   i   (	   R-   R,   t   strt   zerost   typeR   R   R   t   assertEqual(   R   t   nbtypeR2   R,   R3   R   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   _test_templateI   s    c         C@ s!   |  j  d t j d d d ƒ d  S(   NR:   R2   g      ð?g      @(   R;   R   t   float64(   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_float64R   s    c         C@ s!   |  j  d t j d d d ƒ d  S(   NR:   R2   g      ð?g      @(   R;   R   R   (   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_float32U   s    c         C@ s   |  j  d t j d d ƒ d  S(   NR:   R2   i{   (   R;   R   t   int32(   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt
   test_int32X   s    c         C@ s   |  j  d t j d d ƒ d  S(   NR:   R2   i{   (   R;   R   t   int16(   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt
   test_int16[   s    c         C@ s   |  j  d t j d d ƒ d  S(   NR:   R2   i   y              A@y      (@      A@(   R;   R   t	   complex64(   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_complex64^   s    c         C@ s   |  j  d t j d d ƒ d  S(   NR:   R2   i   y              A@y      (@      A@(   R;   R   t
   complex128(   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_complex128a   s    (	   R   R   R;   R=   R>   R@   RB   RD   RF   (    (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyR5   H   s   							c         C@ s   |  | S(   N(    (   R(   R   (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   udt_devfunce   s    t   TestDeviceFunctionc           B@ s   e  Z d  „  Z RS(   c         @ s¶   t  j d d t  j ƒ} t  j | ƒ } t j d  d  d … } t j t | j | t j	 g ƒ ‰  ‡  f d †  } t j
 | | | g ƒ } | | j d f | | ƒ t  j j | | ƒ d  S(   Ni
   R,   i   c         @ s8   t  j d ƒ } | |  j k  r4 ˆ  | | ƒ |  | <n  d  S(   Ni    (   R   R   R   (   R3   R2   R   (   t   devfn(    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   udt_devfunc_callerr   s    (   R-   R.   R?   R/   R   R   t   compile_deviceRG   R,   t   intpR   R   R0   R1   (   R   R2   R3   R   RJ   R   (    (   RI   sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   test_device_functionj   s    	(   R   R   RM   (    (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyRH   i   s   t   __main__(!   t
   __future__R    R   t   tempfilet   ost   numpyR-   t   numba.unittest_supportt   unittest_supportt   unittestt   numbaR   R   t	   numba.rocR   t   numba.roc.hsadrv.driverR   R    R   R   R   R   R   R   t   TestCaseR   R   R+   R5   RG   RH   R   t   main(    (    (    sB   lib/python2.7/site-packages/numba/roc/tests/hsapy/test_compiler.pyt   <module>   s(   				