ó
\K]c           @` s»  d  d l  m Z m Z 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 d  d l m Z m Z m Z d  d l m Z m Z d  d l 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 d  d l m  Z  m! Z! m" Z" d  d l# m$ Z$ d d l% m& Z& m' Z' m( Z( y d  d l) Z) Wn e* k
 rqe+ Z) n Xd Z, e
 j- e) e+ k e, ƒ Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 e: ƒ  Z; d „  Z< d e' f d „  ƒ  YZ= d e' f d  „  ƒ  YZ> d! e> f d" „  ƒ  YZ? d# e> f d$ „  ƒ  YZ@ d% „  ZA d& „  ZB d' e& e' f d( „  ƒ  YZC d) e> f d* „  ƒ  YZD eE d+ k r·e
 jF ƒ  n  d S(,   i    (   t   print_functiont   divisiont   absolute_importN(   t   unittest_support(   t   find_setupwithst   with_lifting(   t   bypass_contextt   call_contextt   objmode_context(   t   FunctionIdentityt   ByteCode(   t   Interpreter(   t   typingt   errors(   t
   cpu_target(   t   cpu(   t
   compile_irt   DEFAULT_FLAGS(   t   njitt   typeoft   objmode(   t   overloadi   (   t
   MemoryLeakt   TestCaset   captured_stdouts   SciPy needed for testc         C` s=   t  j |  ƒ } t d | ƒ } t | ƒ } | j | ƒ } | S(   Nt   func_id(   R	   t   from_functionR
   R   t	   interpret(   t   funcR   t   bct   interpt   func_ir(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   get_func_ir   s
    c           C` s6   t  d ƒ t  t  d ƒ t ƒ  Wd  QXt  d ƒ d  S(   Nt   At   Bt   C(   t   printR   t   b(    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift1'   s
    

c          C` s”   d }  t  d |  ƒ d }  t # t  d |  ƒ |  d 7}  t ƒ  Wd  QX|  d 7}  t # t  d |  ƒ t ƒ  |  d 7}  Wd  QX|  d 7}  t  d |  ƒ d  S(   Ni   R!   R"   id   R#   i
   t   D(   R$   R   R%   (   t   x(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift2/   s    


c       
   C` s”   d }  d } t  d |  | ƒ t H t  d ƒ t ƒ  |  d 7}  t   t  d ƒ | d 7} t ƒ  Wd  QXWd  QX|  d 7}  | d 7} t  d |  | ƒ d  S(   Ni   id   R!   R"   R#   i † R'   (   R$   R   R%   (   R(   t   y(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift3@   s    





c          C` sÐ   d }  t  d |  ƒ |  d 7}  t _ t  d ƒ t ƒ  |  d 7}  x< t d ƒ D]. } t   t  d ƒ t ƒ  |  | 7}  Wd  QXqL WWd  QXt ) t  d ƒ t ƒ  |  r¯ |  d 9}  n  Wd  QX|  d 7}  t  d |  ƒ d  S(	   Ni    R!   i
   R"   i   R#   R'   t   E(   R$   R   R%   t   range(   R(   t   i(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift4Q   s&    





c           C` s   t  d ƒ d  S(   NR!   (   R$   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift5g   s    c          C` s;   d }  t  d |  ƒ t  |  d 7}  Wd  QXt  d |  ƒ |  S(   Ni   R!   R"   (   R$   R   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt	   liftcall1k   s    c          C` s_   d }  t  d |  ƒ t  |  d 7}  Wd  QXt  d |  ƒ t  |  d 7}  Wd  QXt  d |  ƒ |  S(   Ni   R!   R"   i
   R#   (   R$   R   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt	   liftcall2t   s    c          C` s…   d }  t  d |  ƒ t  |  d k r3 |  d 7}  n  Wd  QXt  d |  ƒ t & x t d ƒ D] } |  | 7}  qZ WWd  QXt  d |  ƒ |  S(   Ni   R!   i    R"   i
   R#   (   R$   R   R-   (   R(   R.   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt	   liftcall3€   s    c        	   C` s   t   t   Wd  QXWd  QXd  S(   N(   R   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt	   liftcall4Ž   s    c           C` s   t   Wd  QXd  S(   N(   t   undefined_global_var(    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift_undefiend”   s    c           C` s   t   Wd  QXd  S(   N(   t   bogus_contextmanager(    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   lift_invalidœ   s    t   TestWithFindingc           B` s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s5   t  | ƒ } t t | j ƒ ƒ } |  j | | ƒ d  S(   N(   R    t   lenR   t   blockst   assertEqual(   t   selfR   t   expect_countt   the_irt   ct(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   check_num_of_with¢   s    c         C` s   |  j  t d d ƒd  S(   NR>   i   (   RA   R&   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt
   test_lift1§   s    c         C` s   |  j  t d d ƒd  S(   NR>   i   (   RA   R)   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt
   test_lift2ª   s    c         C` s   |  j  t d d ƒd  S(   NR>   i   (   RA   R+   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt
   test_lift3­   s    c         C` s   |  j  t d d ƒd  S(   NR>   i   (   RA   R/   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt
   test_lift4°   s    c         C` s   |  j  t d d ƒd  S(   NR>   i    (   RA   R0   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt
   test_lift5³   s    (   t   __name__t
   __module__RA   RB   RC   RD   RE   RF   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR9   ¡   s   					t   BaseTestWithLiftingc           B` s)   e  Z d  „  Z d „  Z d d d „ Z RS(   c         C` sD   t  t |  ƒ j ƒ  t j ƒ  |  _ t j |  j ƒ |  _ t	 |  _
 d  S(   N(   t   superRI   t   setUpR   t   Contextt	   typingctxR   t
   CPUContextt	   targetctxR   t   flags(   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRK   ¸   s    c   	      C` s‘   t  | ƒ } t | |  j |  j |  j d i  ƒ\ } } |  j t | ƒ | ƒ |  j | ƒ } t ƒ   } | j	 ƒ  Wd  QX|  j | j
 ƒ  | ƒ d  S(   Nt   locals(   R    R   RM   RO   RP   R<   R:   R   R   t   entry_pointt   getvalue(	   R=   R   R>   t   expected_stdoutR?   t   new_irt	   extractedt   crest   out(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   check_extracted_with¾   s    c         C` sW   |  j  } |  j } |  j } t j | | ƒ $ t | | | | | | d i  ƒSWd  QXd  S(   NRQ   (   RM   RO   RP   R   t   nested_contextR   (   R=   R?   t   argst   return_typeRM   RO   RP   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR   Ì   s    			(    N(   RG   RH   RK   RY   t   NoneR   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRI   ·   s   		t   TestLiftByPassc           B` s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s   |  j  t d d d d ƒd  S(   NR>   i   RT   s   A
C
(   RY   R&   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRB   Ø   s    c         C` s   |  j  t d d d d ƒd  S(   NR>   i   RT   s   A 1
D 3
(   RY   R)   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRC   Ü   s    c         C` s   |  j  t d d d d ƒd  S(   NR>   i   RT   s   A 1 100
D 2 101
(   RY   R+   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRD   à   s    c         C` s   |  j  t d d d d ƒd  S(   NR>   i   RT   s	   A 0
E 11
(   RY   R/   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRE   ä   s    c         C` s   |  j  t d d d d ƒd  S(   NR>   i    RT   s   A
(   RY   R0   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRF   è   s    (   RG   RH   RB   RC   RD   RE   RF   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR^   Ö   s
   				t   TestLiftCallc           B` s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s^   t  | ƒ } t ƒ   } | ƒ  Wd QXt ƒ   } | ƒ  Wd QX|  j | j ƒ  | j ƒ  ƒ d S(   s2   Ensure same semantic with non-jitted code
        N(   R   R   R<   RS   (   R=   R   t   jittedt   gott   expect(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   check_same_semanticï   s    c         C` s*   |  j  t d d d d ƒ|  j t ƒ d  S(   NR>   i   RT   s   A 1
B 2
(   RY   R1   Rc   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_liftcall1û   s    c         C` s*   |  j  t d d d d ƒ|  j t ƒ d  S(   NR>   i   RT   s   A 1
B 2
C 12
(   RY   R2   Rc   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_liftcall2   s    c         C` s*   |  j  t d d d d ƒ|  j t ƒ d  S(   NR>   i   RT   s   A 1
B 2
C 47
(   RY   R3   Rc   (   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_liftcall3  s    c         C` sE   |  j  t j ƒ  } t t ƒ ƒ  Wd  QX|  j d t | j ƒ ƒ d  S(   Ns
   re-entrant(   t   assertRaisesR   t   TypingErrorR   R4   t   assertInt   strt	   exception(   R=   t   raises(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_liftcall4
  s    (   RG   RH   Rc   Rd   Re   Rf   Rm   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR_   í   s
   				c         ` s   ‡  f d †  } | S(   Nc         ` sH   |  j  t j ƒ  } ˆ  |  | | Ž Wd  QX|  j d t | j ƒ ƒ d  S(   Ns   Does not support list type(   Rg   R   Rh   Ri   Rj   Rk   (   R=   R[   t   kwargsRl   (   t   fn(    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   core  s    	(    (   Ro   Rp   (    (   Ro   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   expected_failure_for_list_arg  s    c         ` s   ‡  f d †  } | S(   Nc         ` sH   |  j  t j ƒ  } ˆ  |  | | Ž Wd  QX|  j d t | j ƒ ƒ d  S(   Ns   Does not support function type(   Rg   R   Rh   Ri   Rj   Rk   (   R=   R[   Rn   Rl   (   Ro   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRp     s    	(    (   Ro   Rp   (    (   Ro   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt!   expected_failure_for_function_arg  s    t   TestLiftObjc           B` sp  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 e
 d „  ƒ Z d	 „  Z e
 d
 „  ƒ Z d „  Z e
 d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e
 d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z e j d „  ƒ Z e d „  ƒ Z  d „  Z! e" d „  ƒ Z# d „  Z$ e j d „  ƒ Z% d „  Z& d  „  Z' d! „  Z( RS("   c         C` s   t  j d t j ƒ d  S(   Nt   error(   t   warningst   simplefilterR   t   NumbaWarning(   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRK   &  s    c         C` s   t  j ƒ  d  S(   N(   Ru   t   resetwarnings(   R=   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   tearDown)  s    c         G` s¾   t  j | ƒ } t  j | ƒ } t | ƒ } t ƒ   } | | Œ  } | j ƒ  } Wd  QX| j t t t | ƒ ƒ ƒ t ƒ   } | | Œ  }	 | j ƒ  }
 Wd  QX|  j	 | |
 ƒ |  j
 | |	 ƒ d  S(   N(   t   copyt   deepcopyR   R   RS   t   compilet   tuplet   mapR   R<   t   assertPreciseEqual(   R=   t   pyfuncR[   t   py_argst   c_argst   cfunct   streamt
   expect_rest
   expect_outt   got_rest   got_out(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   assert_equal_return_and_stdout,  s    c         ` sK   d „  ‰  ‡  f d †  } ‡  f d †  } |  j  | d ƒ |  j  | d ƒ d  S(   Nc         S` s   t  d i |  d d 6ƒ d  S(   Ns   ival =i   t   ival(   R$   (   RŠ   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   bar?  s    c         ` s)   |  d 7}  t   ˆ  |  ƒ Wd  QX|  d S(   Ni   (   R   (   RŠ   (   R‹   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   fooB  s    
c         ` s,   |  d 7}  t  j  ˆ  |  ƒ Wd  QX|  d S(   Ni   (   t   numbaR   (   RŠ   (   R‹   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   foo_nonglobalH  s    

i{   (   R‰   (   R=   RŒ   RŽ   (    (   R‹   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_lift_objmode_basic>  s
    	c         ` s2   d „  ‰  ‡  f d †  } d } |  j  | | ƒ d  S(   Nc         S` s#   t  i |  d d 6ƒ |  d 9}  d  S(   Ni   t   arr(   R$   (   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR‹   R  s    c         ` s:   t  j |  ƒ j t  j ƒ } t  ˆ  | ƒ Wd  QX| d S(   Ni   (   t   npt   aranget   astypet   int64R   (   t   nelemR   (   R‹   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   W  s    i
   (   R‰   (   R=   RŒ   R•   (    (   R‹   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_lift_objmode_array_inQ  s    	c         ` s2   d „  ‰  ‡  f d †  } d } |  j  | | ƒ d  S(   Nc         S` s   t  |  ƒ d  S(   N(   R$   (   R*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR‹   b  s    c         ` s7   t  ƒ  ( d |  } t j | ƒ } ˆ  | ƒ Wd  QX|  S(   Ni   (   R   R‘   R’   (   R(   R*   t   a(   R‹   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   e  s
    

i{   (   R‰   (   R=   RŒ   t   arg(    (   R‹   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt#   test_lift_objmode_define_new_unuseda  s    	c         ` sQ   d „  ‰  ‡  f d †  } ‡  f d †  } d } |  j  | | ƒ |  j  | | ƒ d  S(   Nc         S` s   t  |  ƒ d |  S(   Ni   (   R$   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   inversep  s    
c         ` s,   t  d d ƒ  ˆ  |  ƒ } Wd  QX|  | f S(   NR*   t   float64(   R   (   R(   R*   (   Rš   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   t  s    c         ` s/   t  j d d ƒ  ˆ  |  ƒ } Wd  QX|  | f S(   NR*   R›   (   R   R   (   R(   R*   (   Rš   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŽ   y  s    i{   (   R‰   (   R=   RŒ   RŽ   R˜   (    (   Rš   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_lift_objmode_return_simpleo  s    	c         ` sG   d „  ‰  ‡  f d †  } t  j d d d t  j ƒ} |  j | | ƒ d  S(   Nc         S` s   t  |  ƒ d |  S(   Ni   (   R$   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRš   ƒ  s    
c         ` sE   t  d d d d ƒ ! ˆ  |  ƒ } t | d ƒ } Wd  QX|  | | f S(   NR*   s
   float64[:]t   zR”   i    (   R   t   int(   R(   R*   R   (   Rš   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   ‡  s    i   i
   t   dtype(   R‘   R’   R›   R‰   (   R=   RŒ   R˜   (    (   Rš   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_lift_objmode_return_array‚  s    	c         C` s,   d „  } d d d g } |  j  | | ƒ d  S(   Nc      	   S` sw   t  d d ƒ \ t |  ƒ d |  d <t |  ƒ d d d g |  } t j g  | D] } d | ^ qN ƒ } Wd  QX|  | f S(   NR*   s
   float64[:]i   i    i   i   i   (   R   R$   R‘   t   asarray(   R(   R*   R.   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   ’  s    


,i   i   i   (   R‰   (   R=   RŒ   R˜   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_lift_objmode_using_list  s    		c         C` s#   d „  } d } |  j  | | ƒ d  S(   Nc         S` s   x t  |  ƒ D] }  q W|  r* |  d 7}  n  t d d ƒ N t |  ƒ |  d 8}  t |  ƒ x( t  |  ƒ D] } |  | 7}  t |  ƒ qe WWd  QX|  S(   Ni   R(   t   intp(   R-   R   R$   (   R(   R.   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   Ÿ  s    



i{   (   R‰   (   R=   RŒ   R˜   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_lift_objmode_var_redefž  s    	c         C` s)   d „  } |  j  | d d d g d ƒ d  S(   Nc         S` sP   | |  d <t  ƒ   t |  ƒ Wd  QXt  ƒ   d | |  d <t |  ƒ Wd  QX|  S(   Ni   (   R   R$   (   R(   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   ²  s    


i   i   i   i   (   R‰   (   R=   RŒ   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt$   test_case01_mutate_list_ahead_of_ctx°  s    	c         C` s8   d „  } t  j d d d g ƒ } |  j | | d ƒ d  S(   Nc         S` sP   | |  d <t  ƒ   t |  ƒ Wd  QXt  ƒ   d | |  d <t |  ƒ Wd  QX|  S(   Ni   (   R   R$   (   R(   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   Ã  s    


i   i   i   i   (   R‘   t   arrayR‰   (   R=   RŒ   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt%   test_case02_mutate_array_ahead_of_ctxÂ  s    	c         C` s   d „  } |  j  | d ƒ d  S(   Nc         S` sC   t  d d ƒ  d d d g } Wd  QXt  ƒ   d | d <Wd  QX| S(   NR*   s   List(int64)i   i   i   i
   (   R   (   R(   R*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   Ö  s
    
i   (   R‰   (   R=   RŒ   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case03_create_and_mutateÔ  s    	c         C` so   d „  } t  j d d d g ƒ } t | ƒ } |  j t j ƒ  } | | ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` s$   t  d d ƒ  t |  ƒ Wd  QX|  S(   Nt   ks
   float64[:](   R   R$   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   à  s    i   i   i   s1   Invalid type annotation on non-outgoing variables(	   R‘   R¦   R   Rg   R   Rh   Ri   Rj   Rk   (   R=   RŒ   R(   t   cfooRl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt$   test_case04_bogus_variable_type_infoÞ  s    	c         C` sn   d „  } t  j d d d g ƒ } t | ƒ } |  j t ƒ  } | | ƒ } Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` s$   t  d d ƒ  |  d } Wd  QX| S(   NR   s
   float64[:]y              ð?(   R   (   R(   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   ð  s    i   i   i   sX   can't unbox array from PyObject into native value.  The object maybe of a different type(   R‘   R¦   R   Rg   t	   TypeErrorRi   Rj   Rk   (   R=   RŒ   R(   Rª   Rl   Ra   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case05_bogus_type_infoï  s    	c         C` sW   d „  } |  j  t j ƒ  } t | ƒ d ƒ Wd  QXd } |  j t | j ƒ | ƒ d  S(   Nc      
   S` s.   t  ƒ   t  ƒ   t |  ƒ Wd  QXWd  QX|  S(   N(   R   R$   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ     s    

i{   s@   During: resolving callee type: type\(ObjModeLiftedWith\(<.*>\)\)(   Rg   R   Rh   R   t   assertRegexpMatchesRj   Rk   (   R=   RŒ   Rl   t   pat(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case06_double_objmode  s
    		c         C` so   d „  } t  j d d d g ƒ } t | ƒ } |  j t j ƒ  } | | ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` s'   t  ƒ   i |  d 6} Wd  QX|  | f S(   NR—   (   R   (   R(   t   t(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ     s    
i   i   i   s-   missing type annotation on outgoing variables(	   R‘   R¦   R   Rg   R   Rh   Ri   Rj   Rk   (   R=   RŒ   R(   Rª   Rl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case07_mystery_key_error  s    	c         ` s{   t  ƒ  ‰  ‡  f d †  } t j d d d g ƒ } t | ƒ } |  j t ƒ  } | | ƒ Wd  QX|  j t | j ƒ d ƒ d  S(   Nc         ` s_   xX t  t |  ƒ ƒ D]D } t ƒ  3 t | ƒ } |  | } | ˆ  | <t ˆ  d ƒ Wd  QXq W|  S(   Nt   2(   R-   R:   R   Rj   R$   (   R(   R.   R©   t   v(   t   d(    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   '  s    


i   i   i   s   '2'(	   t   dictR‘   R¦   R   Rg   t   KeyErrorR<   Rj   Rk   (   R=   RŒ   R(   Rª   Rl   (    (   Rµ   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case08_raise_from_external"  s    		c         C` so   d „  } t  j d d d g ƒ } t | ƒ } |  j t j ƒ  } | | ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` s   t  ƒ   t ƒ  ‚ Wd  QX|  S(   N(   R   t
   ValueError(   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   7  s    
i   i   i   sH   unsupported controlflow due to return/raise statements inside with block(	   R‘   R¦   R   Rg   R   t   CompilerErrorRi   Rj   Rk   (   R=   RŒ   R(   Rª   Rl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case09_explicit_raise6  s    	c         C` s5   d „  } t  j d d d g ƒ } |  j | | ƒ d  S(   Nc         S` sC   t  d d ƒ  d d d g } Wd  QXt  ƒ   d | d <Wd  QX| S(   NR*   s   List(int64)i   i   i   i
   (   R   (   R(   R*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   I  s
    
i   i   i   (   R‘   R¦   R‰   (   R=   RŒ   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt"   test_case10_mutate_across_contextsF  s    	c         C` s5   d „  } t  j d d d g ƒ } |  j | | ƒ d  S(   Nc         S` sR   t  d d ƒ # t j d d d g d d ƒ} Wd  QXt  ƒ   d | d <Wd  QX| S(	   NR*   s   int64[:]i   i   i   RŸ   R”   i
   (   R   R‘   R¡   (   R(   R*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   U  s
    $
i   i   i   (   R‘   R¦   R‰   (   R=   RŒ   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt(   test_case10_mutate_array_across_contextsS  s    	c         C` so   d „  } t  j d d d g ƒ } t | ƒ } |  j t j ƒ  } | | ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` s   t  ƒ   d „  } Wd  QX|  S(   Nc         S` s   |  d S(   Ni   (    (   R*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR‹   d  s    (   R   (   R(   R‹   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   b  s    
i   i   i   s   op code: make_function(	   R‘   R¦   R   Rg   R   Rh   Ri   Rj   Rk   (   R=   RŒ   R(   Rª   Rl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt&   test_case11_define_function_in_context`  s    	c         ` sD   d „  ‰  ‡  f d †  } t  j d d d g ƒ } |  j | | ƒ d  S(   Nc         S` s   |  d S(   Ni   (    (   R*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR‹   u  s    c         ` s9   t  d d ƒ   t ˆ  ƒ |  ƒ j d ƒ } Wd  QX|  | S(   NR*   s   int64[:]R”   (   R   R   R“   (   R(   R*   (   R‹   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   x  s    !i   i   i   (   R‘   R¦   R‰   (   R=   RŒ   R(   (    (   R‹   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt%   test_case12_njit_inside_a_objmode_ctxq  s    	c         C` s™   d „  } t  j d d d g d d ƒ} t j d t ƒ * } t j d t ƒ |  j | | t ƒ Wd  QXx- | D]% } |  j | j	 j
 d	 ƒ d
 d ƒql Wd  S(   Nc         S` sD   | r2 t  d d ƒ  |  d j d ƒ } Wd  QXn
 |  d } |  | S(   NR*   s   int64[:]i   R”   i   (   R   R“   (   R(   t   wobjR*   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   ƒ  s
    
i   i   i   RŸ   R”   t   recordt   alwayss   dataflow.pyt   msgs"   there were warnings in dataflow.py(   R‘   R¦   Ru   t   catch_warningst   TrueRv   t   RuntimeWarningR‰   t   assertFalset   filenamet   endswith(   R=   RŒ   R(   t   wt   each(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt!   test_case13_branch_to_objmode_ctx€  s    		c         C` so   d „  } t  j d d d g ƒ } t | ƒ } |  j t j ƒ  } | | ƒ Wd  QX|  j d t | j ƒ ƒ d  S(   Nc         S` s   t  d d ƒ 	 |  SWd  QXd  S(   NR(   s   int64[:](   R   (   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   š  s    i   i   i   sH   unsupported controlflow due to return/raise statements inside with block(	   R‘   R¦   R   Rg   R   Rº   Ri   Rj   Rk   (   R=   RŒ   R(   Rª   Rl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt*   test_case14_return_direct_from_objmode_ctx–  s    	c         C` s5   d „  } t  j d d d g ƒ } |  j | | ƒ d  S(   Nc         ` s#   d ‰  ‡  f d †  } | |  ƒ d S(   Ni
   c         ` s,   t  d d ƒ  t |  ƒ |  ˆ  SWd  QXd  S(   NR(   s   int64[:](   R   R$   (   R(   (   t   j(    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR‹   ®  s    
i   (    (   R(   R‹   (    (   RÎ   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   «  s    i   i   i   (   R‘   R¦   R‰   (   R=   RŒ   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt"   test_case15_close_over_objmode_ctx¨  s    	c         ` sK   d d l  m ‰  ‡  f d †  } t j d d d g ƒ } |  j | | ƒ d  S(   Ni    (   t   sparsec         ` sF   t  d d ƒ 1 t |  ƒ ˆ  j |  ƒ } t j | d ƒ } Wd  QX| S(   NR©   R”   i    (   i    i    (   R   R$   t
   csr_matrixR‘   R”   (   R(   t   spxR©   (   t   sp(    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   º  s
    
i   i   i   (   t   scipyRÐ   R‘   R¦   R‰   (   R=   RŒ   R(   (    (   RÓ   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt%   test_case16_scipy_call_in_objmode_ctx¶  s    	c         ` sJ   d d  l  ‰  ‡  ‡ f d †  ‰ t j d d d g ƒ } |  j ˆ | ƒ d  S(   Ni    c         ` s!   t  ƒ   ˆ  j ˆ ƒ Wd  QXd  S(   N(   R   t   dis(   R(   (   RÖ   RŒ   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   É  s    
i   i   i   (   RÖ   R‘   R¦   R‰   (   R=   R(   (    (   RÖ   RŒ   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case17_print_own_bytecodeÆ  s    c         C` sG   d „  } t  j d d d g ƒ } t d „  ƒ } |  j | | | ƒ d  S(   Nc         S` s"   t  ƒ   |  | d ƒ Wd  QXd  S(   Ni    (   R   (   R   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   Ñ  s    
i   i   i   c         S` s   |  d S(   Ni   (    (   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   <lambda>Ö  t    (   R‘   R¦   R   R‰   (   R=   RŒ   R(   Ro   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt*   test_case18_njitfunc_passed_to_objmode_ctxÏ  s    	c         ` s{   ‡  f d †  ‰  t  j d d d g ƒ } t ˆ  ƒ } |  j t j ƒ  } | | ƒ Wd  QXd } |  j | t | j ƒ ƒ d  S(   Nc         ` s4   t  ƒ   |  d k r d SWd  QXˆ  |  d ƒ } | S(   Ni    i   i   (   R   (   R(   t   ret(   RŒ   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   Ú  s
    

i   i   i   s3   Does not support with-context that contain branches(	   R‘   R¦   R   Rg   R   Rº   Ri   Rj   Rk   (   R=   R(   Rª   Rl   RÃ   (    (   RŒ   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case19_recursionÙ  s    c         C` s5   d „  } t  j d d d g ƒ } |  j | | ƒ d  S(   Nc         S` sP   t  j j d ƒ t  j j ƒ  } t d d ƒ  t  j j ƒ  } Wd  QX|  | | S(   Ni    R   R›   (   R‘   t   randomt   seedt   randR   (   R(   R*   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   é  s
    i   i   i   (   R‘   R¦   R‰   (   R=   RŒ   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case20_rng_works_okç  s    	c         C` s5   d „  } t  j d d d g ƒ } |  j | | ƒ d  S(   Nc         S` s`   t  j j d ƒ t  j j ƒ  } t d d ƒ $ t  j j d ƒ t  j j ƒ  } Wd  QX|  | | S(   Ni    R   R›   (   R‘   RÝ   RÞ   Rß   R   (   R(   R*   R   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ   õ  s    i   i   i   (   R‘   R¦   R‰   (   R=   RŒ   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_case21_rng_seed_works_okô  s    		c         ` sK   d „  ‰  t  ‡  f d †  ƒ } |  j | ƒ  | j ƒ  ƒ |  j t t ƒ d  S(   Nc         S` s   t  j t t |  j ƒ  ƒ ƒ ƒ S(   N(   R‘   R¡   t   listt   reversedt   tolist(   R(   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyR‹     s    c          ` s9   t  j d ƒ }  t d d ƒ  |  ˆ  |  ƒ } Wd  QX| S(   Ni   R*   s   intp[:](   R‘   R’   R   (   R(   R*   (   R‹   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ     s    (   R   R   t   py_funct   assertIsR   R   (   R=   RŒ   (    (   R‹   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_example01  s    	c         ` sM   d „  ‰  t  ˆ  ƒ d „  ƒ } t j ‡  f d †  ƒ } |  j | ƒ  d ƒ d  S(   Nc         S` s   d  S(   N(    (   t   s(    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRŒ     s    c         S` s   d „  } | S(   Nc         S` s$   t  d d ƒ  |  d } Wd  QX| S(   NRX   R£   i   (   R   (   Rè   RX   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   impl  s    (    (   Rè   Ré   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   foo_overload  s    	c           ` s
   ˆ  d ƒ S(   Ni   (    (    (   RŒ   (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   f  s    i   i   i   (   R   R   R   R<   (   R=   Rê   Rë   (    (   RŒ   s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_objmode_in_overload  s    	()   RG   RH   RK   Ry   R‰   R   R–   R™   Rœ   R    Rq   R¢   R¤   R¥   R§   R¨   R«   R­   R°   R²   R¸   R»   R¼   R½   R¾   R¿   RÌ   RÍ   t   unittestt   expectedFailureRÏ   t   skip_unless_scipyRÕ   R×   Rr   RÚ   RÜ   Rà   Rá   Rç   Rì   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRs   $  sD   										
													
			t   TestBogusContextc           B` s   e  Z d  „  Z d „  Z RS(   c         C` sf   t  t ƒ } |  j t j ƒ ) } t | |  j |  j |  j d i  ƒWd  QX|  j	 d t
 | j ƒ ƒ d  S(   NRQ   s*   Undefined variable used as context manager(   R    R6   Rg   R   Rº   R   RM   RO   RP   Ri   Rj   Rk   (   R=   R?   Rl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_undefined_global%  s    %c         C` sf   t  t ƒ } |  j t j ƒ ) } t | |  j |  j |  j d i  ƒWd  QX|  j	 d t
 | j ƒ ƒ d  S(   NRQ   s"   Unsupported context manager in use(   R    R8   Rg   R   Rº   R   RM   RO   RP   Ri   Rj   Rk   (   R=   R?   Rl   (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   test_invalid1  s    %(   RG   RH   Rñ   Rò   (    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyRð   $  s   	t   __main__(G   t
   __future__R    R   R   Rz   Ru   t   numpyR‘   R   R   Rí   t   numba.transformsR   R   t   numba.withcontextsR   R   R   t   numba.bytecodeR	   R
   t   numba.interpreterR   R   R   t   numba.targets.registryR   t   numba.targetsR   t   numba.compilerR   R   R   R   R   t   numba.extendingR   t   supportR   R   R   RÔ   t   ImportErrorR]   t   _msgt   skipIfRï   R    R&   R)   R+   R/   R0   R1   R2   R3   R4   R6   t   objectR7   R8   R9   RI   R^   R_   Rq   Rr   Rs   Rð   RG   t   main(    (    (    s;   lib/python2.7/site-packages/numba/tests/test_withlifting.pyt   <module>   s^   
														%				ÿ ÿ 