ó
\K]c           @   s   d  d l  Z d  d l m Z m Z d  d l 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(   iĸĸĸĸN(   t
   from_dtypet   cuda(   t   unittest_support(   t   skip_on_cudasimt   SerialMixint   TestAlignmentc           B   s&   e  Z d    Z e d  d    Z RS(   c         C   sĘ   t  j d d g d t } t |  } t j | f  d    } t  j d d | } x; t | j  D]* } | | } d	 | _	 | d
 d | _
 qh W| d |  |  j t  j | j	 | j
 k   d  S(   Nt   at   int32t   bt   float64t   alignc         S   s'   t  j d  } |  | j |  | _ d  S(   Ni   (   R   t   gridR   R   (   R   t   i(    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_alignment.pyt   foo   s    i   t   dtypei    i   i{   (   R   R   (   R   R	   (   i   i   (   t   npR   t   TrueR    R   t   jitt   recarrayt   ranget   sizeR   R   t
   assertTruet   all(   t   selft	   rec_dtypet   recR   t
   a_recarrayR   t   a_rec(    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_alignment.pyt   test_record_alignment   s    
	s"   Simulator does not check alignmentc         C   su   t  j d d g  } t |  } |  j t  # } t j | f  d    } Wd  QX|  j d t | j	  k  d  S(	   NR   R   R   R	   c         S   s'   t  j d  } |  | j |  | _ d  S(   Ni   (   R   R   R   R   (   R   R   (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_alignment.pyR       s    s   type float64 is not aligned(   R   R   (   R   R	   (
   R   R   R    t   assertRaisest	   ExceptionR   R   R   t   strt	   exception(   R   R   R   t   raisesR   (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_alignment.pyt   test_record_alignment_error   s
    "(   t   __name__t
   __module__R   R   R"   (    (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_alignment.pyR      s   	t   __main__(   t   numpyR   t   numbaR    R   R   t   unittestt   numba.cuda.testingR   R   t   TestCaseR   R#   t   main(    (    (    sE   lib/python2.7/site-packages/numba/cuda/tests/cudapy/test_alignment.pyt   <module>   s   "