ó
\K]c           @  sµ   d  d l  m Z d  d l Z d  d l Z d  d l m Z m Z m Z m	 Z	 d  d l m
 Z d  d l m Z m Z e d ƒ d e e j f d „  ƒ  Yƒ Z e d	 k r± e j ƒ  n  d S(
   iÿÿÿÿ(   t   print_functionN(   t   cudat	   vectorizet   numpy_supportt   types(   t   unittest_support(   t   skip_on_cudasimt   SerialMixins!   pickling not supported in CUDASIMt
   TestPicklec           B  s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c   	      C  sá   t  j d g ƒ } | | ƒ } t j t j | ƒ ƒ } ~ | | ƒ } t  j j | | ƒ ~ t j t j | ƒ ƒ } ~ | | ƒ } t  j j | | ƒ ~ t j t j | d ƒ ƒ } ~ |  j | j d ƒ |  j | j	 d ƒ d  S(   Nid   i   i   i   (   i   i   (   i   i   i   (   i   i   i   (
   t   npt   arrayt   picklet   loadst   dumpst   testingt   assert_equalt   assertEqualt   griddimt   blockdim(	   t   selft   calleet   arrt   expectedt   foo1t   got1t   foo2t   got2t   foo3(    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt
   check_call   s     c           sJ   t  j d t ƒ d „  ƒ ‰  t  j d ƒ ‡  f d †  ƒ } |  j | ƒ d  S(   Nt   devicec         S  s   |  d S(   Ni   (    (   t   a(    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt   inner'   s    s   void(intp[:])c           s   ˆ  |  d ƒ |  d <d  S(   Ni    (    (   R   (   R   (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt   foo+   s    (   R   t   jitt   TrueR   (   R   R    (    (   R   sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt   test_pickling_jit&   s    c           sD   t  j d t ƒ d „  ƒ ‰  t  j ‡  f d †  ƒ } |  j | ƒ d  S(   NR   c         S  s   |  d S(   Ni   (    (   R   (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyR   3   s    c           s   ˆ  |  d ƒ |  d <d  S(   Ni    (    (   R   (   R   (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyR    7   s    (   R   R!   R"   R   (   R   R    (    (   R   sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt   test_pickling_autojit1   s    c   	      C  sÌ   t  d d g d d ƒd „  ƒ } t j t j ƒ } t j d d | ƒ} | | ƒ } t j t j	 | ƒ ƒ } ~ | | ƒ } t j
 j | | ƒ t j t j	 | ƒ ƒ } ~ | | ƒ } t j
 j | | ƒ d  S(   Ns
   intp(intp)s   float64(float64)t   targetR   c         S  s   |  d S(   Ni   (    (   t   x(    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt	   cuda_vect>   s    i
   t   dtype(   R   R   t   as_dtypeR   t   intpR	   t   arangeR   R   R   R   R   (	   R   R'   t   nptyt   aryR   R   R   R   R   (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt   test_pickling_vectorize=   s    !(   t   __name__t
   __module__R   R#   R$   R.   (    (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyR   	   s   			t   __main__(   t
   __future__R    R   t   numpyR	   t   numbaR   R   R   R   R   t   unittestt   numba.cuda.testingR   R   t   TestCaseR   R/   t   main(    (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_serialize.pyt   <module>   s   "I