ó
\K]c           @` sæ   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z 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 „  Z d „  Z d e f d „  ƒ  YZ e d k râ e j ƒ  n  d S(   i    (   t   print_functiont   absolute_importt   divisionN(   t   numpy_supportt   types(   t   compile_isolated(   t   unittest_supporti   (   t   captured_stdoutt   tagt   TestCasec         C` s£   |  j  } | j  } xŠ t | ƒ D]| } |  | } xE t | ƒ D]7 } | | } | j | j | j | j | j 7_ q< W| j | j 7_ | j | j 8_ q Wd S(   sb   Base on https://github.com/numba/numba/issues/370

    Modified to add test-able side effect.
    N(   t   sizet   ranget   rowt   pt   col(   t   arr1t   arr2t   n1t   n2t   i1t   st1t   i2t   st2(    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   usecase1   s    		

+c         C` s>   x7 t  | ƒ D]) } |  | } t | j | j | j ƒ q Wd S(   sD   
    Base on test1 of https://github.com/numba/numba/issues/381
    N(   R   t   printt   f1t   s1t   f2(   t   xt   Nt   kt   y(    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   usecase2   s    
c         C` s@   x9 t  | ƒ D]+ } t |  j | |  j | |  j | ƒ q Wd S(   sD   
    Base on test2 of https://github.com/numba/numba/issues/381
    N(   R   R   R   R   R   (   R   R   R   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   usecase3(   s    c         C` sB   x; t  | ƒ D]- } |  | } t | j |  j | | j ƒ q Wd S(   sD   
    Base on test3 of https://github.com/numba/numba/issues/381
    N(   R   R   R   R   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   usecase40   s    
c         C` s@   x9 t  | ƒ D]+ } t |  | j |  j | |  | j ƒ q Wd S(   sD   
    Base on test4 of https://github.com/numba/numba/issues/381
    N(   R   R   R   R   R   (   R   R   R   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   usecase59   s    t   TestRecordUsecasec           B` s\   e  Z d  „  Z e d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C` s=   d d d	 g } t  j | ƒ |  _ t  j | d t ƒ|  _ d  S(
   NR   s   <f8R   s   |S3R   t   align(   R   s   <f8(   R   s   |S3(   R   s   <f8(   t   npt   dtypet   unaligned_dtypet   Truet   aligned_dtype(   t   selft   fields(    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   setUpC   s    t	   importantc         C` sœ  t  } t j d t j f d t j f d t j f g ƒ } t j | ƒ } t | | | f ƒ } | j } t j d d | ƒ} t j d d | ƒ} t j	 | j
 ƒ d | _ t j	 | j
 ƒ d | _ t j	 | j
 ƒ d | _ t j	 | j
 ƒ d | _ t j	 | j
 ƒ d | _ t j	 | j
 ƒ d | _ | j ƒ  } | j ƒ  }	 | j ƒ  }
 |	 j ƒ  } | | |	 ƒ | |
 | ƒ t j j | |
 ƒ t j j |	 | ƒ d  S(   NR   R   R   i   R'   i   (   R   R&   R'   t   float64R   t
   from_dtypeR   t   entry_pointt   recarrayt   arangeR
   R   R   R   t   copyt   testingt   assert_equal(   R+   t   pyfunct   mystruct_dtt   mystructt   crest   cfuncR   R   t   expect1t   expect2t   got1t   got2(    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   test_usecase1H   s.    	c         C` sp   d } t  j | d | ƒ} t  j | ƒ | _ t  j d | d ƒ | _ t  j d g | j d d d ƒ| _ | S(   Ni   R'   i   t   abci    s   |S3(   R&   R2   R3   R   R   t   arrayt   shapeR   (   R+   R'   R   t   a(    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   _setup_usecase2to5l   s    &c   	   	   C` s¸   |  j  | ƒ } t j | ƒ } t | | t j f ƒ } | j } t ƒ  ' | | t | ƒ ƒ t	 j
 j ƒ  } Wd  QXt ƒ  ' | | t | ƒ ƒ t	 j
 j ƒ  } Wd  QX|  j | | ƒ d  S(   N(   RE   R   R0   R   R   t   intpR1   R   t   lent   syst   stdoutt   getvaluet   assertEqual(	   R+   R7   R'   RB   t   record_typeR:   R;   t   expectt   got(    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   _test_usecase2to5t   s    	

c         C` s*   |  j  t |  j ƒ |  j  t |  j ƒ d  S(   N(   RO   R    R(   R*   (   R+   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   test_usecase2„   s    c         C` s*   |  j  t |  j ƒ |  j  t |  j ƒ d  S(   N(   RO   R!   R(   R*   (   R+   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   test_usecase3ˆ   s    c         C` s*   |  j  t |  j ƒ |  j  t |  j ƒ d  S(   N(   RO   R"   R(   R*   (   R+   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   test_usecase4Œ   s    c         C` s*   |  j  t |  j ƒ |  j  t |  j ƒ d  S(   N(   RO   R#   R(   R*   (   R+   (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   test_usecase5   s    (   t   __name__t
   __module__R-   R   R@   RE   RO   RP   RQ   RR   RS   (    (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyR$   A   s   	$					t   __main__(   t
   __future__R    R   R   RH   t   numpyR&   t   numbaR   R   t   numba.compilerR   R   t   unittestt   supportR   R   R	   R   R    R!   R"   R#   R$   RT   t   main(    (    (    sA   lib/python2.7/site-packages/numba/tests/test_recarray_usecases.pyt   <module>   s   							T