
\K]c           @  sV  d  d l  m Z d  d l Z d  d l j Z d  d l m Z m	 Z	 d  d l
 m Z m Z d d l m Z m Z m Z e	   Z e j d  e	   Z e j d  e	   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e j d e j f d e j  f g  Z! d e e f d     YZ" e# d k rRe j$   n  d S(   i(   t   print_functionN(   t   compile_isolatedt   Flags(   t   numpy_supportt   typesi   (   t   TestCaset   MemoryLeakMixint   tagt   enable_pyobjectt   force_pyobjectc          C  s%   d }  x d D] } |  | 7}  q W|  S(   Ni    i   i   ic   i   (   i   i   ic   i   (    (   t   rest   i(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   int_tuple_iter_usecase   s    c          C  s%   d }  x d D] } |  | 7}  q W|  S(   Ng        g      ?g       @g33333X@g333333@(   g      ?g       @g33333X@g333333@(    (   R
   R   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   float_tuple_iter_usecase   s    c          C  sI   d }  x< d	 d
 d f D]+ } x | D] } |  | 7}  q# W|  d }  q W|  S(   Ng        g      ?g       @g33333X@g333333@g?g      @i   (   g      ?g       @(   g33333X@g333333@(   g?g      @(    (   R
   R   t   j(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   tuple_tuple_iter_usecase   s    c          C  sY   d }  xL t  d	 d
 d f  D]5 \ } } x | D] } |  | | 7}  q/ W|  d }  q W|  S(   Ng        g      ?g       @g33333X@g333333@g?g      @i   (   g      ?g       @(   g33333X@g333333@(   g?g      @(   t	   enumerate(   R
   R   R   t   l(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   enumerate_nested_tuple_usecase(   s    "c          C  si   d }  x\ t  t  d	 d
 d f   D]? \ } \ } } x  | D] } |  | | | 7}  q; W|  d }  q" W|  S(   Ng        g      ?g       @g33333X@g333333@g?g      @i   (   g      ?g       @(   g33333X@g333333@(   g?g      @(   R   (   R
   R   R   t   kR   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   nested_enumerate_usecase0   s    .c          C  sU   d }  t  j d  t  j d  f } x* t |  D] \ } } |  | j   7}  q1 W|  S(   Ni    i   i   (   t   npt   onesR   t   sum(   R
   t   arraysR   t   v(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   enumerate_array_usecase9   s
    c         C  s%   d } x |  D] } | | 7} q W| S(   Ng        (    (   t   iterableR
   t   x(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   scalar_iter_usecaseA   s    c         C  s/   d } x" |  D] } | | j  | j 7} q W| S(   Ng        (   t   at   b(   R   R
   R   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   record_iter_usecaseG   s    c         C  s(   x! |  D] } | j  | j | _  q Wd  S(   N(   R   R   (   R   R   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   record_iter_mutate_usecaseM   s    R   R   t   IterationTestc           B  s.  e  Z d    Z e d  Z e d  d    Z e d  Z d   Z e d  Z	 e d  d    Z
 e d  Z e d  d	    Z e d
  Z e d  d    Z d   Z d   Z e d  Z d   Z e d  Z e d  d    Z e d  Z d   Z e d  Z d   Z d   Z d   Z RS(   c         C  s>   t  | d d | } | j } |   } |  j |   |  d  S(   Nt   flags(    (   R   t   entry_pointt   assertPreciseEqual(   t   selft   pyfuncR#   t   crt   cfunct   expected(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   run_nullary_funcY   s    		c         C  s   |  j  t |  d  S(   N(   R+   R   (   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_int_tuple_iter_   s    t	   importantc         C  s   |  j  d t  d  S(   NR#   (   R,   t   no_pyobj_flags(   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_int_tuple_iter_npmb   s    c         C  s   |  j  t |  d  S(   N(   R+   R   (   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_float_tuple_iteri   s    c         C  s   |  j  d t  d  S(   NR#   (   R0   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_float_tuple_iter_npml   s    c         C  s   |  j  t |  d  S(   N(   R+   R   (   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_tuple_tuple_itero   s    c         C  s   |  j  d t  d  S(   NR#   (   R2   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_tuple_tuple_iter_npmr   s    c         C  s   |  j  t |  d  S(   N(   R+   R   (   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_enumerate_nested_tuplev   s    c         C  s   |  j  d t  d  S(   NR#   (   R4   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_enumerate_nested_tuple_npmy   s    c         C  s   |  j  t |  d  S(   N(   R+   R   (   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_nested_enumerate}   s    c         C  s   |  j  d t  d  S(   NR#   (   R6   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_nested_enumerate_npm   s    c         C  s>   t  } t | d  } | j } |   } |  j |   |  d  S(   N(    (   R   R   R$   R%   (   R&   R'   R(   R)   R*   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_enumerate_refct   s
    		c         C  sY   t  } t | t j | d d  f | d | } | j } |  j | |  | |   d  S(   Ni   t   AR#   (   R   R   R   t   ArrayR$   R%   (   R&   t	   item_typet   argR#   R'   R(   R)   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   run_array_1d   s
    	c         C  s#   |  j  t j t j d  |  d  S(   Ng      @(   R=   R   t   float64R   t   arange(   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_float   s    c         C  s   |  j  t  d  S(   N(   R@   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_float_npm   s    c         C  s'   |  j  t j t j d  d |  d  S(   Ng      @y              ?(   R=   R   t
   complex128R   R?   (   R&   R#   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_complex   s    c         C  s   |  j  t  d  S(   N(   RC   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_complex_npm   s    c   	      C  s   t  } t j t  } t | t j | d d  f d | } | j } t j	 d d t } x< t
 d  D]. } t | d  | | _ | d | | _ qg W| |  } |  j | |  |  d  S(   Ni   R9   R#   i   t   dtypei   (   R    R   t
   from_dtypet   record_dtypeR   R   R:   R$   R   t   recarrayt   ranget   floatR   R   R%   (	   R&   R#   R'   R;   R(   R)   t   arrR   t   got(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_record   s    		c         C  s   |  j  t  d  S(   N(   RM   R.   (   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_record_npm   s    c   
      C  s   t  } t j t  } t | t j | d d  f d | } | j } t j	 d d t } x< t
 d  D]. } t | d  | | _ | d | | _ qg W| j   } | |  | j   }	 | |	  |  j | |	  d  S(   Ni   R9   R#   i   RE   i   (   R!   R   RF   RG   R   R   R:   R$   R   RH   RI   RJ   R   R   t   copyR%   (
   R&   R#   R'   R;   R(   R)   RK   R   R*   RL   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_record_mutate_npm   s    		

c         C  s   |  j  d t  d  S(   NR#   (   RP   t   force_pyobj_flags(   R&   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_array_1d_record_mutate   s    c         C  s   d   } t  j d d t  j } } t j t j d d  } t | | | f  } | | |  } | j | |  } |  j | |  d  S(   Nc         S  s:   d } x- t  |  |  D] } | | d | d 7} q W| S(   Ni    i   (   t   zip(   R   t   yt   totalt   row(    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   bar   s    i   RE   i   t   C(   R   R?   t   int32R   R:   R   R$   t   assertEqual(   R&   RW   R   RT   t   arytyt   crest   expectRL   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_tuple_iter_issue1504   s    	c         C  s   d   } t  j d d t  j } } t j t j d d  } t | t j j | d  f  } | | | f  } | j | | f  } |  j	 | |  d  S(   Nc         S  s)   d } x |  D] } | | d 7} q W| S(   Ni    (    (   t   arrsRU   RK   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyRW      s    i   RE   i   RX   i   (
   R   R?   RY   R   R:   R   t
   containerst   UniTupleR$   RZ   (   R&   RW   R   RT   R[   R\   R]   RL   (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   test_tuple_of_arrays_iter   s    	!(   t   __name__t
   __module__R+   RQ   R,   R   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R=   R@   RA   RC   RD   RM   RN   R.   RP   RR   R^   Rb   (    (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyR"   W   s.   								t   __main__(%   t
   __future__R    t   numpyR   t   numba.unittest_supportt   unittest_supportt   unittestt   numba.compilerR   R   t   numbaR   R   t   supportR   R   R   t   enable_pyobj_flagst   setRQ   R.   R   R   R   R   R   R   R   R    R!   RE   R>   RY   RG   R"   Rc   t   main(    (    (    s9   lib/python2.7/site-packages/numba/tests/test_iteration.pyt   <module>   s0   														