ó
\K]c           @  s?  d  d l  m Z d  d l j Z d d l m Z d  d l Z d  d l Z d  d l	 Z
 d  d l	 Z	 d  d l m Z d  d l m Z m Z 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 m Z e pæ e Z d „  Z d e f d „  ƒ  YZ d e j f d „  ƒ  YZ e d k r;e j ƒ  n  d S(   iÿÿÿÿ(   t   print_functionNi   (   t   TestCase(   t   compile_isolated(   t   typest   utilst   jitR   (   t   TypingErrort   LoweringError(   t   tag(   t   captured_stdout(   t   _windows_py27t   _32bitc         C  sD   g  t  |  ƒ D] } | ^ q } d } x | D] } | | 7} q, W| S(   Ni    (   t   range(   t   nt   it   lt   s(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt	   comp_list   s
    t   TestListComprehensionc           B  s;   e  Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z d „  Z RS(   t	   importantc         C  s|   t  } t | t j g ƒ } | j } |  j | d ƒ | d ƒ ƒ |  j | d ƒ | d ƒ ƒ |  j | d ƒ | d ƒ ƒ d  S(   Ni   i    iÿÿÿÿ(   R   R   R   t   intpt   entry_pointt   assertEqual(   t   selft   pyfunct   crest   cfunc(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_list!   s    	c            sï  t  d t ƒ ‡ f d †  ƒ ‰ d „  } d „  } d „  } d „  } d „  } d „  } d	 „  } d
 „  } d „  }	 d „  }
 d „  } d „  } d „  } d „  } d „  } d „  } d „  } d ‰  ‡  f d †  } d ‰  ‡  f d †  } d „  } ‡ f d †  } d „  } d „  } d „  } | | | | | | | |	 |
 | | | | | | | | | | | | | g } t j d& k r{| j | ƒ n  d d d d  d! g } x‘ | D]‰ } y5 t  d t ƒ | ƒ } |  j | | ƒ | | ƒ ƒ Wq—t k
 ry# t j j	 | | ƒ | | ƒ ƒ Wq t
 k
 r‚  q Xq—Xq—W|  j t ƒ & } t  d t ƒ | ƒ } | | ƒ Wd" QXt j d' k rsd$ } n d# } t j d( k  rë|  j t ƒ & } t  d t ƒ | ƒ } | | ƒ Wd" QXd% | | f } |  j | t | j ƒ ƒ n  d" S()   s3    Tests the large number of use cases defined below t   nopythonc           s,   |  d k  r |  Sˆ  |  d ƒ ˆ  |  d ƒ S(   Ni   i   (    (   R   (   t   fib3(    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR   /   s    c         S  s*   g  t  d t |  ƒ d ƒ D] } | ^ q S(   s    Test basic list comprehension i   (   R   t   len(   t   xR   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list15   s    c         S  s#   g  |  D] } | d k  r | ^ q S(   s%    Test conditional list comprehension i   (    (   R   t   y(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list29   s    c         S  s)   g  |  D] } | d k  r | n d ^ q S(   s!    Test ternary list comprehension i   iÿÿÿÿ(    (   R   R!   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list3=   s    c         S  s   t  j d d d g ƒ S(   s*    Test list comprehension to np.array ctor i   i   i   (   t   npt   array(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list4A   s    c         S  s<   t  j g  |  D]( } t  j g  |  D] } | ^ q  ƒ ^ q ƒ S(   s1    Test nested list comprehension to np.array ctor (   R$   R%   (   R   R!   t   z(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list5F   s    c         S  s&   d „  } g  |  D] } | | ƒ ^ q S(   s2    Test use of inner function in list comprehension c         S  s   |  d S(   Ni   (    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   innerL   s    (    (   R   R)   R'   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list6J   s    	c           s2   d ‰  ‡  f d †  } g  |  D] } | | ƒ ^ q S(   s+    Test use of closure in list comprehension i   c           s   |  ˆ  S(   N(    (   R   (   R!   (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR)   T   s    (    (   R   R)   R'   (    (   R!   s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list7P   s    c         S  s6   g  |  D] } | d ^ q } d „  } | | ƒ } | S(   s9    Test use of list comprehension as arg to inner function i   c         S  s   |  d d S(   Ni    i   (    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR)   \   s    (    (   R   R'   R   R)   t   q(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list8X   s    	c           s6   g  |  D] } | d ^ q ‰  ‡  f d †  } | |  ƒ S(   s2    Test use of list comprehension access in closure i   c           s   |  d ˆ  d S(   Ni    i   (    (   R   (   R   (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR)   e   s    (    (   R   R'   R)   (    (   R   s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list9a   s    c           s6   g  |  D] } | d ^ q ‰  ‡  f d †  } | ˆ  ƒ S(   s=    Test use of list comprehension access in closure and as arg i   c           s   g  |  D] } | ˆ  d ^ q S(   Ni    (    (   R   R!   (   R   (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR)   m   s    (    (   R   R'   R)   (    (   R   s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list10i   s    c         S  s&   g  |  D] } t  j | ƒ ^ q } | S(   s6    Test scalar array construction in list comprehension (   R$   R%   (   R   R'   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list11q   s    "c         S  s&   g  |  D] } t  j | ƒ ^ q } | S(   s@    Test scalar type conversion construction in list comprehension (   R$   t   float64(   R   R'   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list12v   s    "c         S  s&   g  |  D] } t  j | ƒ ^ q } | S(   sH    Test use of explicit numpy scalar ctor reference in list comprehension (   t   numpyR1   (   R   R'   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list13{   s    "c         S  s#   g  |  D] } t  | ƒ ^ q } | S(   s@    Test use of python scalar ctor reference in list comprehension (   t   float(   R   R'   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list14€   s    c         S  s,   g  |  D] } t  | ƒ ^ q } t j | ƒ S(   so    Test use of python scalar ctor reference in list comprehension followed by np array construction from the list(   R5   R$   R%   (   R   R'   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list15…   s    c         S  s^   g  |  D] } t  | ƒ ^ q } g  |  D] } | ^ q& } t j | ƒ } t j | ƒ } | | S(   sH    Test type unification from np array ctors consuming list comprehension (   R5   R$   R%   (   R   R'   t   l1t   l2t   zet   oe(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list16Š   s
    c         S  s[   g  |  D]P } |  D]C } |  D]6 } t  j | d | d ƒ | k r | | | f ^ q q q S(   s6    Test complex list comprehension including math calls i   (   R$   t   sqrt(   R   t   at   bt   c(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list17’   s    i	   c           s7   g  } x* |  D]" } | ˆ  k  r | j  | ƒ q q W| S(   s3    Test loop list with outer scope var as conditional(   t   append(   R   R'   R   (   t   _OUTER_SCOPE_VAR(    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list18™   s
    c           s#   g  |  D] } | ˆ  k  r | ^ q S(   s8    Test list comprehension with outer scope as conditional(    (   R   R   (   RC   (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list19£   s    c         S  s#   g  |  D] } | d k r | ^ q S(   s    Test return empty list iüÿÿ(    (   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list20§   s    c           s   g  |  D] } ˆ  | ƒ ^ q S(   s5    Test call a jitted function in a list comprehension (    (   R   R   (   R   (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list21«   s    c         S  sj   g  |  D] } | d ^ q } g  |  D] } | d ^ q$ } g  | D]% }  | D] } |  | k rK |  ^ qK qA S(   sH    Test create two lists comprehensions and a third walking the first two i   (    (   R   R!   R>   R?   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list22¯   s    c         S  s*   g  |  D] } | ^ q } | j  d ƒ | S(   s0    Test operation on comprehension generated list i   (   RB   (   R   R!   R'   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list23µ   s    c         S  s5   g  |  D]$ } | d k r% t  | ƒ n | ^ q } | S(   s    Test type promotion i   (   R5   (   R   R!   R'   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   list24»   s    1i   i    i   i   i   i   Ni    i@   s,   Cannot unify reflected list(int%d) and int%d(   i   i    I       (   i   i    (   R   t   TrueR   t	   PYVERSIONRB   R   t
   ValueErrorR$   t   testingt   assert_allcloset   BaseExceptiont   assertRaisesR   t   syst   maxsizet   assertInt   strt	   exception(    R   R    R"   R#   R&   R(   R*   R+   R-   R.   R/   R0   R2   R4   R6   R7   R<   RA   RD   RE   RF   RG   RH   RI   RJ   t   ft   vart   refR   t   raisest   bitst   msg(    (   RC   R   s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_bulk_use_cases*   sp    																						 #	c         C  sY   d „  } t  d t ƒ | ƒ } d d d g } | | ƒ } | | ƒ } |  j | | ƒ d  S(   Nc         S  s&   t  ƒ  } g  |  D] } | ^ q } | S(   N(   t   object(   R!   R'   R   t   inlined(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   objmode_funcé   s    	t   forceobji   i   i   (   R   RK   t   assertPreciseEqual(   R   R`   R   t   tt   expectedt   got(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_objmode_inliningè   s    	(   t   __name__t
   __module__R   R   R]   Rf   (    (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR      s   	¾t   TestArrayComprehensionc           B  sš  e  Z e Z d  „  Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z	 e d ƒ d „  ƒ Z
 e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d	 „  ƒ Z e d ƒ d
 „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   
      O  s  | j  d t ƒ } | j  d t ƒ } | j  d t ƒ } t d t d | ƒ | ƒ } | | Œ  } | | Œ  }	 t j j | |	 ƒ | rœ |  j |	 d j | ƒ n  | rÅ |  j	 d | j
 | j d ƒ ƒ n  |  j d | j
 | j d ƒ ƒ | r|  j	 d	 | j
 | j d ƒ ƒ n  d
 S(   s^   A generic check function that run both pyfunc, and jitted pyfunc,
        and compare results.t   run_parallelt   assert_allocate_listt   assert_dtypeR   t   paralleli   s   allocate listi    s   @do_schedulingN(   t   gett   FalseR   RK   R$   RN   t   assert_array_equalR   t   dtypeRT   t   inspect_llvmt
   signaturest   assertNotIn(
   R   R   t   argst   kwargsRj   Rk   Rl   R   t   pyresR   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   checkù   s    # R   c         C  s<   d „  } |  j  | d ƒ t r8 |  j  | d d t ƒn  d  S(   Nc         S  s:   |  d } t  j g  t |  ƒ D] } | | ^ q ƒ } | S(   Ni   (   R$   R%   R   (   R   t   mR   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_with_array_1  s    
,i   Rj   (   Rx   t   PARALLEL_SUPPORTEDRK   (   R   Rz   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_with_array_1  s    	c         C  s    d „  } |  j  | d d ƒ d  S(   Nc         S  sM   t  j |  |  ƒ } t  j g  | D]& } | | k  r< | | n | d ^ q  ƒ S(   Ni   (   R$   t   arangeR%   (   R   t	   thresholdt   AR   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_with_array_2  s    i   i    (   Rx   (   R   R€   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_with_array_2  s    	c         C  sL   d „  } d d  l  j } z# t | _ |  j | d d t ƒWd  t | _ Xd  S(   Nc         S  s:   |  d } t  j g  t |  ƒ D] } | | ^ q ƒ } | S(   Ni   (   R$   R%   R   (   R   Ry   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_with_array_noinline!  s    
,iÿÿÿÿi   Rk   (   t   numba.inline_closurecallt   inline_closurecallRo   t   enable_inline_arraycallRx   RK   (   R   R‚   t   ic(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_with_array_noinline  s    		c         C  s<   d „  } |  j  | d ƒ t r8 |  j  | d d t ƒn  d  S(   Nc         S  sI   t  j g  t |  ƒ D]) } g  t |  ƒ D] } | | ^ q& ^ q ƒ } | S(   N(   R$   R%   R   (   R   R   t   jR   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_nest_with_array/  s    Ei   Rj   (   Rx   R{   RK   (   R   R‰   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_nest_with_array-  s    	c         C  s<   d „  } |  j  | d ƒ t r8 |  j  | d d t ƒn  d  S(   Nc      	   S  sf   t  j g  t |  ƒ D]F } g  t |  ƒ D]- } g  t |  ƒ D] } | | | ^ q9 ^ q& ^ q ƒ } | S(   N(   R$   R%   R   (   R   R   Rˆ   t   kR   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_nest_with_array_39  s    bi   Rj   (   Rx   R{   RK   (   R   RŒ   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_nest_with_array_37  s    	c         C  sL   d „  } d d  l  j } z# t | _ |  j | d d t ƒWd  t | _ Xd  S(   Nc         S  sI   t  j g  t |  ƒ D]) } g  t |  ƒ D] } | | ^ q& ^ q ƒ } | S(   N(   R$   R%   R   (   R   R   Rˆ   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_nest_with_array_noinlineC  s    Eiÿÿÿÿi   Rk   (   Rƒ   R„   Ro   R…   Rx   RK   (   R   RŽ   R†   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt"   test_comp_nest_with_array_noinlineA  s    		c         C  s    d „  } |  j  | d d ƒ d  S(   Nc         S  s/   t  j g  t |  | ƒ D] } | ^ q ƒ } | S(   N(   R$   R%   R   (   Ry   R   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_with_array_rangeQ  s    +i   i
   (   Rx   (   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_with_array_rangeO  s    	c         C  s    d „  } |  j  | d d ƒ d  S(   Nc         S  s2   t  j g  t |  | d ƒ D] } | ^ q ƒ } | S(   Ni   (   R$   R%   R   (   Ry   R   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_with_array_range_and_stepY  s    .i   i
   (   Rx   (   R   R’   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt#   test_comp_with_array_range_and_stepW  s    	c         C  s#   d „  } |  j  | d d t ƒd  S(   Nc         S  s<   t  j g  t |  ƒ D] } | d d k r | ^ q ƒ } | S(   Ni   i   (   R$   R%   R   (   R   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_with_array_conditionala  s    8i
   Rk   (   Rx   RK   (   R   R”   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt    test_comp_with_array_conditional_  s    	c         C  s#   d „  } |  j  | d d t ƒd  S(   Nc         S  sY   t  j g  t |  ƒ D]9 } | d d k r g  t |  ƒ D] } | | ^ q6 ^ q ƒ } | S(   Ni   i   (   R$   R%   R   (   R   R   Rˆ   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt    comp_nest_with_array_conditionali  s    Ui   Rk   (   Rx   RK   (   R   R–   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt%   test_comp_nest_with_array_conditionalg  s    	c         C  sZ   d „  } |  j  t ƒ  } |  j | d ƒ Wd  QX|  j d j t j ƒ t | j ƒ ƒ d  S(   Nc         S  sM   t  j g  t |  ƒ D]- } g  t | d ƒ D] } | | ^ q* ^ q ƒ } | S(   Ni   (   R$   R%   R   (   R   R   Rˆ   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   comp_nest_with_dependencyq  s    Ii   s   Invalid use of Function({})(	   RQ   R   Rx   RT   t   formatt   operatort   setitemRU   RV   (   R   R˜   RZ   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_comp_nest_with_dependencyo  s    	c         C  sB   d „  } |  j  | d d t ƒd „  } |  j  | d d t ƒd  S(   Nc         S  s%   d d d d g } t  j | ƒ } | S(   Ni   i   i   i   (   R$   R%   (   R   R   R>   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   no_array_comp1~  s    i
   Rk   c         S  s2   d d d d g } t  j | ƒ } | j d ƒ | S(   Ni   i   i   i   i   (   R$   R%   RB   (   R   R   R>   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   no_array_comp2„  s    (   Rx   Ro   RK   (   R   R   Rž   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_no_array_comp|  s    		c         C  s   d „  } |  j  | d ƒ d  S(   Nc         S  sN   t  j g  t |  ƒ D]. } t  j g  t |  ƒ D] } | ^ q, ƒ ^ q ƒ } | S(   N(   R$   R%   R   (   R   R!   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   nested_array  s    Ji
   (   Rx   (   R   R    (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_nested_array‹  s    	c         C  s   d „  } |  j  | d ƒ d  S(   Nc         S  sN   t  j g  t d ƒ D]. } t  j g  t d ƒ D] } | ^ q, ƒ ^ q ƒ } | S(   Ni   i   (   R$   R%   R   (   R   R!   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR    •  s    Ji    (   Rx   (   R   R    (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_nested_array_with_const“  s    	c         C  sK   d „  } d d d d d g } |  j  | | ƒ |  j  | t j | ƒ ƒ d  S(   Nc         S  s*   t  j g  |  D] } | | ^ q ƒ } | S(   N(   R$   R%   (   R>   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt
   array_comp  s    &i   i   i   i   i   (   Rx   R$   R%   (   R   R£   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_array_comp_with_iter›  s    	c         C  s&   d „  } |  j  | d d t j ƒd  S(   Nc         S  s5   t  j g  t |  ƒ D] } | ^ q d t  j ƒ} | S(   NRq   (   R$   R%   R   t	   complex64(   R   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR£   §  s    1i
   Rl   (   Rx   R$   R¥   (   R   R£   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_array_comp_with_dtype¦  s    	c         C  s   d „  } |  j  | d ƒ d  S(   Nc         S  s0   t  j g  t |  ƒ D] } | d ^ q ƒ } | S(   Ny              ð?(   R$   R%   R   (   R   R   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR£   ®  s    ,i
   (   Rx   (   R   R£   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_array_comp_inferred_dtype­  s    	c         C  s   d „  } |  j  | d ƒ d  S(   Nc         S  sI   t  j g  t |  ƒ D]) } g  t |  ƒ D] } | | ^ q& ^ q ƒ } | S(   N(   R$   R%   R   (   R   R   Rˆ   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR£   µ  s    Ei
   (   Rx   (   R   R£   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt%   test_array_comp_inferred_dtype_nested´  s    	c         C  s   d „  } |  j  | d ƒ d  S(   Nc         S  sI   t  j g  t |  ƒ D]) } g  t |  ƒ D] } | | ^ q& ^ q ƒ } | S(   N(   R$   R%   R   (   R   R   Rˆ   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR£   ¼  s    Ei
   (   Rx   (   R   R£   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt)   test_array_comp_inferred_dtype_nested_sum»  s    	c         C  s³   d „  } d } |  j  | d | d t j ƒ|  j t ƒ ) } t d t ƒ | ƒ } | d d ƒ Wd  QX|  j d j t	 j
 ƒ t | j ƒ ƒ |  j d j t j ƒ t | j ƒ ƒ d  S(	   Nc         S  s6   t  j g  t |  ƒ D] } | ^ q ƒ } | | d <| S(   Ni    (   R$   R%   R   (   R   t   vR   t   arr(    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR£   Ä  s    (
g333333ó?i
   Rl   R   y        ffffff@s   Invalid use of Function({})s/   (array({}, 1d, C), Literal[int](0), complex128)(   Rx   R$   R   RQ   R   R   RK   RT   R™   Rš   R›   RU   RV   R   (   R   R£   Rª   RZ   R   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt.   test_array_comp_inferred_dtype_outside_setitemÃ  s    	c      
     sÃ   d ‰  t  d t ƒ ‡  f d †  ƒ } t ƒ   } | ƒ  Wd  QX| j ƒ  j ƒ  } t ƒ  3 } t t j g  t ˆ  ƒ D] } | ^ qq ƒ ƒ Wd  QX| j ƒ  j ƒ  } |  j	 | | ƒ |  j
 | d ƒ d  S(   Nid   R   c            sF   t  j g  t ˆ  ƒ D] }  |  ^ q ƒ } t  j j | ƒ t | ƒ d  S(   N(   R$   R%   R   t   randomt   shufflet   print(   R   t   numbers(   t   nelem(    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   fooÝ  s    (s   \[(\s*\d+)+\](   R   RK   R	   t   getvaluet   stripR¯   R$   R%   R   t   assertNotEqualt   assertRegexpMatches(   R   R²   t   gotbufRe   t	   expectbufR   t   expect(    (   R±   s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt"   test_array_comp_shuffle_sideeffectÚ  s    2c         C  s#   d „  } |  j  | d d t ƒd  S(   Nc         S  sB   g  } t  j d g ƒ } t  j j | d ƒ } | j |  | ƒ | S(   Ni   (   R$   R%   R­   t   choiceRB   (   R   Rc   t   myListR>   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyRW   ò  s
    i   Rk   (   Rx   RK   (   R   RW   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_empty_list_not_removedð  s    	c         C  s#   d „  } |  j  | d d t ƒd S(   s    Test issue 3742 c         S  s`   g  t  d ƒ D] } | ^ q t j |  ƒ } x- t  |  ƒ D] } t j |  ƒ } | | | <q9 W| S(   Ni   (   R   R$   t   emptyt   zeros(   R   R   R'   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyR²   ý  s    i
   Rk   N(   Rx   RK   (   R   R²   (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   test_reuse_of_array_varú  s    	(   Rg   Rh   Ro   t   _numba_parallel_test_Rx   R   R|   R   R‡   RŠ   R   R   R‘   R“   R•   R—   Rœ   RŸ   R¡   R¢   R¤   R¦   R§   R¨   R©   R¬   Rº   R½   RÀ   (    (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyRi   õ   s2   	

							
t   __main__(    t
   __future__R    t   numba.unittest_supportt   unittest_supportt   unittestt   supportR   RR   Rš   R3   R$   t   numba.compilerR   t   numbaR   R   R   t   numba.errorsR   R   R   t   numba.tests.supportR	   t   test_parforsR
   R   R{   R   R   Ri   Rg   t   main(    (    (    s=   lib/python2.7/site-packages/numba/tests/test_comprehension.pyt   <module>   s&   "	Öÿ 