๓
\K]c           @@ s๚  d  d l  m Z m Z d  d l m Z m Z d  d l m Z d  d l m	 Z
 d  d l m Z d  d l m Z d e   f d     YZ d	 e   f d
     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d     YZ d e   f d      YZ d! e   f d"     YZ d# e   f d$     YZ d% e   f d&     YZ d' e   f d(     YZ d) e   f d*     YZ d+ e   f d,     YZ  d- e   f d.     YZ! d/ e   f d0     YZ" d1 e   f d2     YZ# d3 e
 j$ f d4     YZ% d5 e
 j$ f d6     YZ& d7 e
 j$ f d8     YZ' e( d9 k r๖e
 j)   n  d: S(;   i    (   t   print_functiont   absolute_import(   t   irt   binding(   t   types(   t   unittest_support(   t	   datamodel(   t   test_factoryt   TestBoolc           B@ s   e  Z e j Z RS(    (   t   __name__t
   __module__R   t   booleant   fe_type(    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR      s   t   TestPyObjectc           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   pyobjectR   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR      s   t   TestInt8c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   int8R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR      s   t	   TestInt16c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   int16R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR      s   t	   TestInt32c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   int32R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR      s   t	   TestInt64c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   int64R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR      s   t	   TestUInt8c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   uint8R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR   #   s   t
   TestUInt16c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   uint16R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR   '   s   t
   TestUInt32c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   uint32R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR   +   s   t
   TestUInt64c           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   uint64R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR   /   s   t	   TestFloatc           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   float32R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR   3   s   t
   TestDoublec           B@ s   e  Z e j Z RS(    (   R	   R
   R   t   float64R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR!   7   s   t   TestComplexc           B@ s   e  Z e j Z RS(    (   R	   R
   R   t	   complex64R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR#   ;   s   t   TestDoubleComplexc           B@ s   e  Z e j Z RS(    (   R	   R
   R   t
   complex128R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR%   ?   s   t   TestPointerOfInt32c           B@ s   e  Z e j e j  Z RS(    (   R	   R
   R   t   CPointerR   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR'   C   s   t   TestUniTupleOf2xInt32c           B@ s   e  Z e j e j d   Z RS(   i   (   R	   R
   R   t   UniTupleR   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR)   G   s   t   TestUniTupleEmptyc           B@ s   e  Z e j e j d   Z RS(   i    (   R	   R
   R   R*   R   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR+   K   s   t   TestTupleInt32Float32c           B@ s#   e  Z e j e j e j g  Z RS(    (   R	   R
   R   t   TupleR   R    R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR,   O   s   t   TestTupleEmptyc           B@ s   e  Z e j g   Z RS(    (   R	   R
   R   R-   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR.   S   s   t   Test1DArrayOfInt32c           B@ s    e  Z e j e j d  d  Z RS(   i   t   C(   R	   R
   R   t   ArrayR   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR/   W   s   t   Test2DArrayOfComplex128c           B@ s    e  Z e j e j d  d  Z RS(   i   R0   (   R	   R
   R   R1   R&   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR2   [   s   t   Test0DArrayOfInt32c           B@ s    e  Z e j e j d  d  Z RS(   i    R0   (   R	   R
   R   R1   R   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR3   _   s   t   TestArgInfoc           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  j | |  } t j   } t j t j   g   } t j | | d d } t j   } | j	 | j
    g  | D]' } t j | j |  j   d  ^ q} }	 | j | |	  }
 | j | |
  } |  j t |  t |   t g  |
 D] } | j ^ q๔  } |  j | | j  g  |	 D] } | j ^ q&} g  | D] } | j ^ qB} |  j | |  | j |
 g  t t |   D] } d ^ q | j   t j t |   d S(   s   
        Test round-tripping types *fe_args* through the default data model's
        argument conversion and unpacking logic.
        t   namet   test_argumentss   arg%iN(   R   t   default_managert	   ArgPackerR   t   Modulet   FunctionTypet   VoidTypet   Functiont	   IRBuildert   position_at_endt   append_basic_blockt   Constantt   lookupt   get_value_typet   Nonet   as_argumentst   from_argumentst   assertEqualt   lent   tuplet   typet   argument_typest   assign_namest   ranget   ret_voidt   llt   parse_assemblyt   str(   t   selft   fe_argst   dmmt   fit   modulet   fntyt   functiont   buildert   tt   argst   valuest   asargst   vt   valtyst   at   expect_typest	   got_typest   i(    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   _test_as_argumentse   s(    	1"/
c         C@ s8   t  j t  j t  j d d  t  j g } |  j |  d  S(   Ni   R0   (   R   R   R1   R$   Rc   (   RQ   RR   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_int32_array_complex   s    c         C@ s0   t  j t  j d d  g d } |  j |  d  S(   Ni   R0   i   (   R   R1   R   Rc   (   RQ   RR   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_two_arrays   s    c         C@ s0   t  j t  j d d  g d } |  j |  d  S(   Ni    R0   i   (   R   R1   R   Rc   (   RQ   RR   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_two_0d_arrays   s    c         C@ sต   t  j t  j d  t  j t  j d  g } |  j |  t  j t  j d d  } t  j | d  t  j | d  g } |  j |  t  j t  j t  j d  d  g } |  j |  d  S(   Ni   i   i   R0   (   R   R*   R   Rc   R1   (   RQ   RR   t   arrty(    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_tuples   s    $c         C@ s;   t  j t  j d  t  j d  t  j g } |  j |  d  S(   Ni    (    (   R   R*   R   R-   R   Rc   (   RQ   RR   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_empty_tuplesฅ   s    c         C@ s;   t  j t  j t  j d  d  t  j g } |  j |  d  S(   Ni   (    (   R   R   R*   R-   R   Rc   (   RQ   RR   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_nested_empty_tuplesฌ   s    (	   R	   R
   Rc   Rd   Re   Rf   Rh   Ri   Rj   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyR4   c   s   	%					t   TestMemInfoc           B@ s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C@ s   t  j |  _ d  S(   N(   R   R7   RS   (   RQ   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   setUpด   s    c         C@ s-   t  j } |  j | } |  j | j    d  S(   N(   R   R   RS   t   assertFalset   contains_nrt_meminfo(   RQ   t   tyt   dm(    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_numberท   s    	c         C@ s.   t  j } |  j | } |  j | j    d  S(   N(   R   R   RS   t
   assertTrueRn   (   RQ   Ro   Rp   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt
   test_arrayผ   s    
c         C@ s?   t  j d t  j d d  } |  j | } |  j | j    d  S(   Nt   dtypet   counti   (   R   R*   R   RS   Rm   Rn   (   RQ   Ro   Rp   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_tuple_of_numberม   s    c         C@ s@   t  j d t  j d d  } |  j | } |  j | j    d  S(   NRt   Ru   i   (   R   R*   R   RS   Rr   Rn   (   RQ   Ro   Rp   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_tuple_of_arrayฦ   s    (   R	   R
   Rl   Rq   Rs   Rv   Rw   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyRk   ณ   s
   				t   TestMiscc           B@ s   e  Z d    Z RS(   c         C@ s   d d  l  } d d l m } | d    } | j d d | j j | j  } | j |  } | | |  | j j	 | | j
 t f t f d   d  S(   Ni    (   t   njitc         S@ s0   x) t  |  j d  D] } | | |  | <q Wd  S(   Ni    (   RL   t   shape(   R_   t   bRb   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   copyา   s    i   Rt   i   (   t   numpyt   numbaRy   t   arangeR   t   viewt   bool_t
   zeros_liket   testingt   assert_equalt   arrayt   Falset   True(   RQ   t   npRy   R|   R{   R_   (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   test_issue2921ฮ   s    $(   R	   R
   R   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyRx   ฬ   s   t   __main__N(*   t
   __future__R    R   t   llvmliteR   R   RN   R~   R   R   t   unittestR   t   numba.datamodel.testingR   R   R   R   R   R   R   R   R   R   R   R   R!   R#   R%   R'   R)   R+   R,   R.   R/   R2   R3   t   TestCaseR4   Rk   Rx   R	   t   main(    (    (    s9   lib/python2.7/site-packages/numba/tests/test_datamodel.pyt   <module>   s@   P