ó
\K]c           @   s«   d  d l  m Z d  d l Z d  d l  m Z m Z d  d l Z d  d l m	 Z	 d „  Z
 d „  Z d „  Z d „  Z d	 e	 e j f d
 „  ƒ  YZ e d k r§ e j ƒ  n  d S(   iÿÿÿÿ(   t   unittest_supportN(   t   cudat   types(   t   SerialMixinc         C   s   t  j |  ƒ S(   N(   t   npt   int32(   t   x(    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   float_to_int   s    c         C   s   t  j |  ƒ d S(   Ni   (   R   t   float64(   R   (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   int_to_float   s    c         C   s   t  j |  ƒ S(   N(   R   t   uint32(   R   (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   float_to_unsigned   s    c         C   s   t  j |  ƒ S(   N(   R   t
   complex128(   R   (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   float_to_complex   s    t   TestCastingc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c            sI   t  j d t ƒ | ƒ ‰ t  j ‡ f d †  ƒ ‰  ‡  ‡ ‡ f d †  } | S(   Nt   devicec            s   ˆ  |  d ƒ | d <d  S(   Ni    (    (   t   argt   res(   t   wrapped_func(    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   cuda_wrapper_fn   s    c            sI   t  j d d ˆ ƒ} |  | d <t  j d d ˆ ƒ} ˆ  | | ƒ | d S(   Ni   t   dtypei    (   R   t   zeros(   R   t   argarrayt   resarray(   R   t   intypet   outtype(    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt
   wrapper_fn    s
    
(   R   t   jitt   True(   t   selft   pyfuncR   R   R   (    (   R   R   R   R   sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   _create_wrapped   s    c         C   s•   t  } |  j | t j t j ƒ } |  j | d ƒ | d ƒ ƒ |  j | d ƒ t d ƒ ƒ |  j | d ƒ | d ƒ ƒ |  j | d ƒ t d ƒ ƒ d  S(   Ngš™™™™™(@gš™™™™™(À(   R   R   R   t   float32R   t   assertEqualt   int(   R   R   t   cfunc(    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   test_float_to_int)   s    c         C   s[   t  } |  j | t j t j ƒ } |  j | d ƒ | d ƒ ƒ |  j | d ƒ d d ƒ d  S(   NiA  g     t@i   (   R	   R   R   t   int64R   R!   (   R   R   R#   (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   test_int_to_float2   s    c         C   ss   t  } |  j | t j t j ƒ } |  j | d ƒ | d ƒ ƒ |  j | d ƒ t j d t j d d ƒ ƒ d ƒ d  S(   Ng®Gáz®	@t   It   ii   i    (	   R   R   R   R    R
   R!   t   structt   unpackt   pack(   R   R   R#   (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   test_float_to_unsigned9   s
    !c         C   sW   t  } |  j | t j t j ƒ } |  j | d ƒ | d ƒ ƒ |  j | d ƒ d ƒ d  S(   Ng®Gáz®	Ày                y®Gáz®	À        (   R   R   R   R   R   R!   (   R   R   R#   (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   test_float_to_complexA   s    (   t   __name__t
   __module__R   R$   R&   R,   R-   (    (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyR      s
   					t   __main__(   t   numbaR    t   unittestt   numpyR   R   R   R)   t   numba.cuda.testingR   R   R	   R   R   t   TestCaseR   R.   t   main(    (    (    sC   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_casting.pyt   <module>   s   				1