ó
\K]c           @  sW  d  d l  m 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 Z	 d  d l
 Z d  d l m Z m Z d  d l m Z m Z m Z m Z m Z d  d l j 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 d d d f  Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d   Z* d   Z+ d   Z, d   Z- d   Z. d   Z/ d   Z0 d   Z1 d   Z2 d   Z3 d    Z4 d!   Z5 d"   Z6 d#   Z7 d$   Z8 d%   Z9 d&   Z: d'   Z; d(   Z< d)   Z= d*   Z> d+   Z? d,   Z@ d-   ZA d.   ZB d/   ZC d0   ZD d1   ZE d2   ZF d3   ZG d4   ZH d5   ZI d6   ZJ d7   ZK d8   ZL d9   ZM d:   ZN d;   ZO d<   ZP d=   ZQ d>   ZR d?   ZS d@   ZT dA   ZU dB   ZV dC   ZW dD   ZX dE   ZY dF   ZZ dG   Z[ dH   Z\ dI   Z] dJ   Z^ dK   Z_ dL   Z` dM e e f dN     YZa dO e e f dP     YZb dQ e e f dR     YZc dS e e f dT     YZd dU ed f dV     YZe dW   Zf dX ed f dY     YZg dZ eh f d[     YZi d\ eh f d]     YZj d^ ed f d_     YZk el d` k rSe jm   n  d S(a   i˙˙˙˙(   t   print_function(   t
   namedtupleN(   t   compile_isolatedt   Flags(   t   jitt   typest   utilst   typeoft   jitclass(   t   testingt   errorsi   (   t   TestCaset   MemoryLeakMixint   tagt   enable_pyobjectt   force_pyobjectt   Pointt   at   bc         C  s   d  S(   N(    (   t   x(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   noop   s    c         C  s%   d } x |  D] } | | 7} q W| S(   s"   
    Expect a list of numbers
    i    (    (   R   t   rest   v(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   unbox_usecase   s    c         C  s+   d } x |  D] } | t  |  7} q W| S(   s!   
    Expect a list of tuples
    i    (   t   len(   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   unbox_usecase2'   s    c         C  s1   |  \ } } | } x | D] } | | 7} q W| S(   s3   
    Expect a (number, list of numbers) tuple.
    (    (   R   R   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   unbox_usecase30   s
    c         C  s7   |  \ } } | } x | D] } | t  |  7} q W| S(   s2   
    Expect a (number, list of tuples) tuple.
    (   R   (   R   R   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   unbox_usecase4:   s
    c         C  s   |  | | g S(   N(    (   R   t   yt   z(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   create_listE   s    c         C  s   |  | | g | | | g g S(   N(    (   R   R   R   R   R   t   c(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   create_nested_listH   s    c          C  s'   t  g  t d  D] }  |  d ^ q  S(   Ni
   i   (   t   sumt   range(   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_comprehension1K   s    c          C  s3   t  g  t d  D] }  |  d d k r |  ^ q  S(   Ni
   i   i    (   R!   R"   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_comprehension2N   s    c          C  s/   t  g  t d  D] }  t j |  d  ^ q  S(   Ni
   i   (   R!   R"   t   matht   pow(   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_comprehension3Q   s    c          C  s:   t  g  t d  D]# }  t d  D] } |  | ^ q  q  S(   Ni
   (   R!   R"   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_comprehension4T   s    c          C  s!   g  t  d  D] }  |  d ^ q S(   Ni
   i   (   R"   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_comprehension5W   s    c          C  s6   g  t  d  D]% }  g  t  |   D] } | ^ q  ^ q S(   Ni   (   R"   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_comprehension6Z   s    c         C  s   t  t |    S(   N(   t   listR"   (   t   n(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_constructor^   s    c           C  s   t    S(   N(   R+   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_constructor_emptya   s    c         C  s   t    } | j |   S(   N(   R+   t   append(   R,   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt#   list_constructor_empty_but_typeablef   s    	c         C  s;   g  } | j  d  x! t |   D] } | j  |  q  W| S(   Ni*   (   R/   R"   (   R,   t   lt   i(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_appendl   s
    c         C  s;   g  } | j  d  x! t |   D] } | j  |  q  W| S(   Ng      E@(   R/   R"   (   R,   R1   R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_append_heterogeneouss   s
    c         C  sG   g  } | j  t |    | j  | d   | j  t |  d d   | S(   Ni˙˙˙˙i    (   t   extendR"   (   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_extendz   s
    c         C  sK   g  } | j  t |    | j  | d   | j  d  | j  d g  | S(   Ni˙˙˙˙i   i*   g     Ŕ^@(   i   i*   (   R5   R"   (   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_extend_heterogeneous   s    c         C  sO   t  t |    } d } x0 t |  d k rJ | t |  | j   7} q W| S(   Ni    (   R+   R"   R   t   pop(   R,   R1   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   list_pop0   s
    c         C  s+   t  t |    } | j |  } | | f S(   N(   R+   R"   R8   (   R,   R2   R1   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   list_pop1   s    c         C  s   t  t |    } t |  S(   N(   R+   R"   R   (   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_len   s    c         C  s~   t  t |    } d } x, t t |   D] } | | | | 7} q+ Wx0 t t |  d  D] } | | | | 8} q^ W| S(   Ni    (   R+   R"   R   (   R,   R1   R   R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_getitem   s    c         C  sŠ   t  t |    } d } x, t t |   D] } | | | | | <q+ Wx0 t t |  d  D] } | | | | | <q^ Wx( t t |   D] } | | | 7} q W| S(   Ni    (   R+   R"   R   (   R,   R1   R   R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_setitemŚ   s    c         C  s   t  t |    } | | | !S(   N(   R+   R"   (   R,   t   startt   stopR1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_getslice2ł   s    c         C  s#   t  t |    } | | | |  S(   N(   R+   R"   (   R,   R>   R?   t   stepR1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_getslice3ˇ   s    c         C  s<   t  t |    } t  t d d |   } | | | | +| S(   Nid   (   R+   R"   (   R,   t   n_sourceR>   R?   R1   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_setslice2ť   s    c         C  si   t  t |    } | | | |  } x* t t |   D] } | | c d 7<q8 W| | | | |  <| S(   Nid   (   R+   R"   R   (   R,   R>   R?   RA   R1   R   R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_setslice3Â   s    c         C  s<   t  t |    } t  t d d |   | | | |  <| S(   Nid   (   R+   R"   (   R,   t   n_srcR>   R?   RA   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_setslice3_arbitraryĘ   s    &c         C  s   t  t |    } | 2| S(   N(   R+   R"   (   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_delslice0Ď   s    c         C  s$   t  t |    } | | 3| | 4| S(   N(   R+   R"   (   R,   R>   R?   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_delslice1Ô   s    c         C  s    t  t |    } | | | 5| S(   N(   R+   R"   (   R,   R>   R?   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_delslice2Ú   s    
c         C  s    t  t |    } | j   | S(   N(   R+   R"   t   clear(   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   list_clearß   s    
c         C  s5   t  t |    } | j   } | j d  | | f S(   Ni*   (   R+   R"   t   copyR/   (   R,   R1   t   ll(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   list_copyä   s    c         C  sG   t  t |    } d } x( t |  D] \ } } | | | 7} q% W| S(   Ni    (   R+   R"   t	   enumerate(   R,   R1   R   R2   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_iterationę   s
    c      	   C  sf   t  t |    } d | k d | k |  d | k |  | k d | k d | k |  d | k |  | k f S(   Ni    i   (   R+   R"   (   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_containsń   s    (c         C  s%   t  t |  d d   } | j |  S(   Ni    i˙˙˙˙(   R+   R"   t   index(   R,   R   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_index1÷   s    c         C  s(   t  t |  d d   } | j | |  S(   Ni    i˙˙˙˙(   R+   R"   RS   (   R,   R   R>   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_index2ű   s    c         C  s+   t  t |  d d   } | j | | |  S(   Ni    i˙˙˙˙(   R+   R"   RS   (   R,   R   R>   R?   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_index3˙   s    c         C  s-   t  t |  d d d   } | j |  | S(   Ni   i˙˙˙˙(   R+   R"   t   remove(   R,   R   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_remove  s    c         C  s)   t  t d |    } | j | |  | S(   Ni    (   R+   R"   t   insert(   R,   t   posR   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_insert  s    c         C  s;   g  } x% t  |   D] } | j | d @ q W| j |  S(   Ni   (   R"   R/   t   count(   R,   R   R1   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   list_count  s    c         C  s    t  t |    } | j   | S(   N(   R+   R"   t   reverse(   R,   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_reverse  s    
c         C  sR   t  t d |    } t  t d d |   } | | } | j d  | | | f S(   Ni    id   i*   (   R+   R"   R/   (   t   mR,   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_add  s
    
c          C  sP   d g }  d g } |  | } | |  } |  j  d  | j  d  |  | | | f S(   Ni   g       @i   g      @(   R/   (   R   R   R   t   d(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_add_heterogeneous  s    		

c         C  sB   t  t d |    } t  t d d |   } | | 7} | | f S(   Ni    id   (   R+   R"   (   R`   R,   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_add_inplace)  s    
c          C  s0   d g }  d g } |  | 7}  | |  7} |  | f S(   Ni   g       @(    (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_add_inplace_heterogeneous/  s
    		

c         C  s   t  t |    } | | S(   N(   R+   R"   (   R,   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_mul6  s    c         C  s    t  t |    } | | 9} | S(   N(   R+   R"   (   R,   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   list_mul_inplace:  s    
c         C  s.   t  t |    } t |  | r' t n t f S(   N(   R+   R"   t   boolt   Truet   False(   R,   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   list_bool?  s    c         C  s   t  |   t  |  k S(   N(   R+   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   eq_usecaseC  s    c         C  s   t  |   t  |  k S(   N(   R+   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   ne_usecaseF  s    c         C  s   t  |   t  |  k S(   N(   R+   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   gt_usecaseI  s    c         C  s   t  |   t  |  k S(   N(   R+   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   ge_usecaseL  s    c         C  s   t  |   t  |  k  S(   N(   R+   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   lt_usecaseO  s    c         C  s   t  |   t  |  k S(   N(   R+   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   le_usecaseR  s    c         C  sG   t  t |    } | } | } | | k | | k	 | | k | | k	 f S(   N(   R+   R"   (   R,   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   identity_usecaseU  s    c          C  s>   t  g }  t |  d <t  } x |  D] } | | A} q  W|  | f S(   Ni    (   Rj   Ri   (   R1   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   bool_list_usecase[  s    	
c         C  s<   |  j    } |  j    } d |  d <|  j |  |  | | f S(   Ng      E@i    (   R8   R5   (   R1   RN   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   reflect_simpled  s
    
c         C  s[   | d r d d d d g }  n  |  j    } |  j    } d |  d <|  j |  |  | | f S(   Ni    g      &@g      6@g     @@g      F@g      E@(   R8   R5   (   R1   RN   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   reflect_conditionalk  s    

c         C  s   |  j  d  t  d  S(   Ni*   (   R/   t   ZeroDivisionError(   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   reflect_exceptionu  s    c         C  s   |  j  | j    |  | k S(   N(   R/   R8   (   R1   RN   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   reflect_dualy  s    t	   TestListsc           B  sí  e  Z d    Z d   Z e j d    Z e d  Z d   Z	 d   Z
 d   Z d   Z e d  d	    Z d
   Z e d  d    Z d   Z e d  d    Z d   Z d   Z d   Z e d  d    Z e d  d    Z d   Z d   Z d   Z e d  d    Z e d  d    Z d   Z d   Z d   Z e d  d    Z  d   Z! d   Z" e d  d    Z# d   Z$ d    Z% d!   Z& d"   Z' d#   Z( d$   Z) d%   Z* d&   Z+ e, j- e. j/ dC k d(  d)    Z0 e, j- e. j/ dD k d*  d+    Z1 d,   Z2 d-   Z3 d.   Z4 d/   Z5 d0   Z6 d1   Z7 d2   Z8 d3   Z9 e, j- e. j: dE k d6  d7    Z; d8   Z< d9   Z= d:   Z> d;   Z? d<   Z@ d=   ZA d>   ZB d?   ZC d@   ZD dA   ZE dB   ZF RS(F   c         C  s\   t  } t | t j t j t j f  } | j } |  j | d d d  | d d d   d  S(   Ni   i   i   (   R   R   R   t   int32t   entry_pointt   assertEqual(   t   selft   pyfunct   crt   cfunc(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_create_list  s    !	c      	   C  s   t  } t | t j t j t j t j t j t j f  } | j } |  j | d d d d d d  | d d d d d d   d  S(   Ni   i   i   i   i   i   (   R    R   R   Rz   R{   R|   (   R}   R~   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_create_nested_list  s
    	c         C  sa   t  t t t t t g } xB | D]: } | } t | d  } | j } |  j |   |    q Wd  S(   N(    (	   R#   R$   R'   R(   R)   R*   R   R{   R|   (   R}   t
   list_testst   testR~   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_list_comprehension  s    		c         C  sj   t  d t  |  } xN d d d d d g D]7 } | r@ |  j n |  j } | | |  | |   q+ Wd  S(   Nt   nopythoni    i   i   iF   i  (   R   Ri   t   assertPreciseEqualR|   (   R}   R~   t   preciseR   R,   t   eq(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   check_unary_with_size  s    c         C  s   |  j  t  d  S(   N(   R   R-   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_constructorŁ  s    c         C  s   |  j    t d t  t  } |  j t j   } |   Wd  QXt | j  } |  j	 d |  |  j	 d |  |  j	 d |  d  S(   NR   s!   Cannot infer the type of variables   list(undefined)s&   For Numba to be able to compile a list(
   t   disable_leak_checkR   Ri   R.   t   assertRaisesR
   t   TypingErrort   strt	   exceptiont   assertIn(   R}   R   t   raisest   errmsg(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_constructor_emptyŚ  s    
c         C  s   t  j d  d d	 d g d d g t  j d g  g } t } xK | D]C } t d t  |  } | |  } | |  } |  j | |  qC Wd  S(
   Ni   g      $@y              @i   g      1@g      ,@i
   R   y      đ?      @(   t   npRz   t   arrayR0   R   Ri   R   (   R}   t   argsR~   t   argR   t   expectedt   got(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt#   test_constructor_empty_but_typeableą  s    6c         C  s   |  j  t  d  S(   N(   R   R3   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_appendş  s    t	   importantc         C  s   |  j  t d t d  S(   NR   (   R   R4   Rj   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_append_heterogeneous˝  s    c         C  s   |  j  t  d  S(   N(   R   R6   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_extendÁ  s    c         C  s   |  j  t d t d  S(   NR   (   R   R7   Rj   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_extend_heterogeneousÄ  s    c         C  s   |  j  t  d  S(   N(   R   R9   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   test_pop0Č  s    c      
   C  s   t  } t d t  |  } xw d d g D]i } x` d d | d | d d d | d	 | d g D]. } | | |  } |  j | | |  |  q_ Wq( Wd  S(
   NR   i   i(   i    i   i   i˙˙˙˙iţ˙˙˙i   (   R:   R   Ri   R   (   R}   R~   R   R,   R2   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   test_pop1Ë  s    7c         C  s   |  j    t d t  t  } |  j t   } | d d  Wd  QX|  j t | j  d  |  j t   } | d d  Wd  QX|  j t | j  d  d  S(   NR   i    i   s   pop from empty listi   s   pop index out of range(	   R   R   Ri   R:   R   t
   IndexErrorR|   R   R   (   R}   R   t   cm(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_pop_errorsÔ  s    
c         C  sŹ   t  } t d t  |  } x d d g D]| } d d | d | d | d d d | d	 | d g	 } x< | D]4 } | | | d
  } |  j | | | d
  |  ql Wq( Wd  S(   NR   i   i(   i    i   i   i˙˙˙˙iţ˙˙˙i   i*   (   R[   R   Ri   R   (   R}   R~   R   R,   t   indicesR2   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_insertß  s    7c         C  s   |  j  t  d  S(   N(   R   R;   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_lenč  s    c         C  s   |  j  t  d  S(   N(   R   R<   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_getitemë  s    c         C  s   |  j  t  d  S(   N(   R   R=   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_setitemď  s    c   	   	   C  s´   t  d t  |  } d d g } x | D] } d d | d d d | d	 | d | g } xN t j | |  D]: \ } } | | | |  } |  j | | | |  |  qn Wq( Wd  S(
   NR   i   i(   i    i   i   i˙˙˙˙iţ˙˙˙i   (   R   Ri   t	   itertoolst   productR   (	   R}   R~   R   t   sizesR,   RŚ   R>   R?   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   check_slicing2ó  s    -c         C  s   |  j  t  d  S(   N(   RŽ   R@   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_getslice2ü  s    c   
   	   C  sŇ   t  } t d t  |  } d d g } x¤ t j | |  D] \ } } d d | d d d | d	 | d | g } xT t j | |  D]@ \ } } | | | | |  }	 |  j | | | | |  |	  q Wq: Wd  S(
   NR   i   i(   i    i   i   i˙˙˙˙iţ˙˙˙i   (   RD   R   Ri   RŤ   RŹ   R   (
   R}   R~   R   R­   R,   RF   RŚ   R>   R?   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_setslice2˙  s    -c   
   	   C  sŇ   t  } t d t  |  } x° d g D]Ľ } d d | d d d | d | d | g } d	 d d d d
 g } xZ t j | | |  D]C \ } } } | | | | |  }	 |  j | | | | |  |	  q Wq% Wd  S(   NR   i
   i    i   i   i˙˙˙˙iţ˙˙˙i   i   iý˙˙˙(   RB   R   Ri   RŤ   RŹ   R   (
   R}   R~   R   R,   RŚ   t   stepsR>   R?   RA   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_getslice3	  s    -%c   
   	   C  sŇ   t  } t d t  |  } x° d g D]Ľ } d d | d d d | d | d | g } d	 d d d d
 g } xZ t j | | |  D]C \ } } } | | | | |  }	 |  j | | | | |  |	  q Wq% Wd  S(   NR   i
   i    i   i   i˙˙˙˙iţ˙˙˙i   i   iý˙˙˙(   RE   R   Ri   RŤ   RŹ   R   (
   R}   R~   R   R,   RŚ   Rą   R>   R?   RA   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_setslice3  s    -%c      
   C  s   |  j    t } t d t  |  } | d d d d d  |  j t   } | d d d d d  Wd  QX|  j d	 t | j   d  S(
   NR   i   i
   i    i   i   id   i   s   cannot resize(	   R   RG   R   Ri   R   t
   ValueErrorR   R   R   (   R}   R~   R   R¤   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_setslice3_resize  s    
c         C  s   |  j  t  d  S(   N(   R   RH   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_delslice0+  s    c         C  s   |  j  t  d  S(   N(   RŽ   RI   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_delslice1.  s    c         C  s   |  j  t  d  S(   N(   RŽ   RJ   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_delslice21  s    c      	   C  sm   |  j    t } t d t  |  } |  j t   } | d d d d  Wd  QX|  j t | j  d  d  S(   NR   i
   i   i   i    s   slice step cannot be zero(	   R   RB   R   Ri   R   R´   R|   R   R   (   R}   R~   R   R¤   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_invalid_slice5  s    
c         C  s   |  j  t  d  S(   N(   R   RQ   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_iteration=  s    c         C  s   |  j  t  d  S(   N(   R   R_   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reverse@  s    c         C  s   |  j  t  d  S(   N(   R   RR   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_containsD  s    c         C  s^   y | |   } Wn1 t  k
 rC |  j t    | |   Wd  QXn X|  j | |   |  d  S(   N(   R´   R   R   (   R}   R~   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   check_index_resultG  s    c         C  sS   |  j    t } t d t  |  } x' d D] } |  j | | d | f  q, Wd  S(	   NR   i    i   i   i
   i˙ŕői   (   i    i   i   i
   i˙ŕő(   R   RT   R   Ri   R˝   (   R}   R~   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_index1P  s
    
c         C  s¤   |  j    t } t d t  |  } d } xr d D]j } d d | d | d | d d	 d
 | d | d g	 } x* | D]" } |  j | | d | | f  qv Wq2 Wd  S(   NR   i   i    i   i   i
   i˙ŕői   i˙˙˙˙iţ˙˙˙i   (   i    i   i   i
   i˙ŕő(   R   RU   R   Ri   R˝   (   R}   R~   R   R,   R   RŚ   R>   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_index2W  s    
7c         C  sš   |  j    t } t d t  |  } d } x d D] } d d | d | d | d d	 d
 | d | d g	 } x? t j | |  D]+ \ } } |  j | | d | | | f  q Wq2 Wd  S(   NR   i   i    i   i   i
   i˙ŕői   i˙˙˙˙iţ˙˙˙i   (   i    i   i   i
   i˙ŕő(   R   RV   R   Ri   RŤ   RŹ   R˝   (   R}   R~   R   R,   R   RŚ   R>   R?   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_index3a  s    
7c         C  s^   t  } t d t  |  } d } x6 d D]. } | | |  } |  j | | |  |  q( Wd  S(   NR   i   i    i   i   i   (   i    i   i   i   (   RX   R   Ri   R   (   R}   R~   R   R,   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_removek  s    c         C  sg   |  j    t } t d t  |  } |  j t   } | d d  Wd  QX|  j t | j  d  d  S(   NR   i
   i*   s   list.remove(x): x not in list(	   R   RX   R   Ri   R   R´   R|   R   R   (   R}   R~   R   R¤   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_remove_errors  s    
c         C  sX   t  } t d t  |  } x6 t d  D]( } |  j | d |  | d |   q( Wd  S(   NR   i   i   (   R]   R   Ri   R"   R   (   R}   R~   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   test_count{  s    i   s   list.clear() needs Python 3.3+c         C  s   |  j  t  d  S(   N(   R   RL   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt
   test_clear  s    s   list.copy() needs Python 3.3+c         C  s   |  j  t  d  S(   N(   R   RO   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   test_copy  s    c         C  sv   t  d t  |  } d d d d g } xH t j | |  D]4 \ } } | | |  } |  j | | |  |  q: Wd  S(   NR   i    i   i2   i,  (   R   Ri   RŤ   RŹ   R   (   R}   R~   R   R­   R`   R,   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   check_add  s
    c         C  s   |  j  t  d  S(   N(   RĆ   Ra   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_add  s    c         C  s;   t  } t d t  |  } |   } |  j |   |  d  S(   NR   (   Rc   R   Ri   R|   (   R}   R~   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_add_heterogeneous  s    	c         C  s   |  j  t  d  S(   N(   RĆ   Rd   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_add_inplace  s    c         C  s;   t  } t d t  |  } |   } |  j |   |  d  S(   NR   (   Re   R   Ri   R|   (   R}   R~   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_add_inplace_heterogeneous  s    	c         C  s   t  d t  |  } xe d d d d g D]Q } xH d d d d d d	 g D]. } | | |  } |  j | | |  |  qG Wq( Wd  S(
   NR   i    i   i2   i,  i   i   i˙˙˙˙iÖ˙˙˙(   R   Ri   R   (   R}   R~   R   R,   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   check_mul¤  s
    c         C  s   |  j  t  d  S(   N(   RË   Rf   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_mulŤ  s    c         C  s   |  j  t  d  S(   N(   RË   Rg   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_mul_inplaceŽ  s    i   i    s,   need a 64-bit system to test for MemoryErrorc      	   C  sŠ   |  j    t } t d t  |  } |  j t   | d d
  Wd  QXt j j d  r t	 j
 d  } | j d j d   n  |  j t   | d d  Wd  QXd  S(   NR   i   i   i:   t   darwins
   libc.dylibs   ###Please ignore the above error message i.e. can't allocate region. It is in fact the purpose of this test to request more memory than can be provided###
s   UTF-8i>   I       I       @(   R   Rf   R   Ri   R   t   MemoryErrort   syst   platformt
   startswitht   ctt   CDLLt   printft   encode(   R}   R~   R   t   libc(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_mul_errorą  s    
c         C  s[   t  } t d t  |  } x9 d d d g D]( } | |  } |  j | |  |  q+ Wd  S(   NR   i    i   i   (   Rk   R   Ri   R   (   R}   R~   R   R,   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt	   test_boolĂ  s
    c           sP   t  d t  d      t  d t    f d    } |  j | d  d  d  S(   NR   c         S  s   t  |   |  d f S(   Ni˙˙˙˙(   R   (   t   lst(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   innerĚ  s    c           s   t  t |    }   |  S(   N(   R+   R"   (   R,   R1   (   RŰ   (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   outerĐ  s    i   i   (   i   i   (   R   Ri   R   (   R}   RÜ   (    (   RŰ   s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_list_passingĘ  s    c           s       f d   } t  d t      | d d f  | d d f  | d d f  | d d f  | d d f  | d d f  d  S(   Nc           s*    j    |     |    d |  f  d  S(   Ns   mismatch for arguments %s(   t   assertIs(   R   (   R   R~   R}   (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR   Ř  s    R   i   i   i   i   g      đ?g       @g      @g      @(   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   g      đ?g       @g      @(   i   i   i   (   g      đ?g       @g      @(   i   i   i   (   R   Ri   (   R}   R~   R   (    (   R   R~   R}   s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   _test_compare×  s    c         C  s   |  j  t  d  S(   N(   Rß   Rl   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_eqä  s    c         C  s   |  j  t  d  S(   N(   Rß   Rm   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_neç  s    c         C  s   |  j  t  d  S(   N(   Rß   Rq   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_leę  s    c         C  s   |  j  t  d  S(   N(   Rß   Rp   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_ltí  s    c         C  s   |  j  t  d  S(   N(   Rß   Ro   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_geđ  s    c         C  s   |  j  t  d  S(   N(   Rß   Rn   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_gtó  s    c         C  s;   t  } t d t  |  } |  j | d  | d   d  S(   NR   i   (   Rr   R   Ri   R   (   R}   R~   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_identityö  s    c         C  s5   t  } t d t  |  } |  j |   |    d  S(   NR   (   Rs   R   Ri   R   (   R}   R~   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_bool_listű  s    (   i   i   (   i   i   I       (G   t   __name__t
   __module__R   R   R	   t   allow_interpreter_modeR   Ri   R   R   R   R   R   R   R   R   R    RĄ   R˘   RĽ   R§   R¨   RŠ   RŞ   RŽ   RŻ   R°   R˛   Rł   Rľ   Rś   Rˇ   R¸   Rš   Rş   Rť   Rź   R˝   Rž   Rż   RŔ   RÁ   RÂ   RĂ   t   unittestt
   skipUnlessRĐ   t   version_infoRÄ   RĹ   RĆ   RÇ   RČ   RÉ   RĘ   RË   RĚ   RÍ   t   maxsizeRŘ   RŮ   RÝ   Rß   Rŕ   Rá   Râ   Ră   Rä   Rĺ   Rć   Rç   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRy   ~  s~   																		
										
	
																					t   TestUnboxingc           B  sb   e  Z d  Z e j d    Z d   Z d   Z d   Z e	 d  d    Z
 d   Z d   Z RS(	   s@   
    Test unboxing of Python lists into native Numba lists.
    c         c  sI   |  j  t   } d  VWd  QX| d  k	 rE |  j t | j  |  n  d  S(   N(   R   t	   TypeErrort   Nonet   assertRegexpMatchesR   R   (   R}   t   msgR   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   assert_type_error  s    c           s.   t  d t          f d   } | S(   NR   c           s,    |   }   |   }  j  | |  d  S(   N(   R   (   R   R   R   (   R   R~   R}   (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   check  s    (   R   Ri   (   R}   R~   Rő   (    (   R   R~   R}   s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   check_unary  s    c         C  s3   |  j  t  } | d d g  | d d g  d  S(   Ni   i   y              đ?y              @(   Rö   R   (   R}   Rő   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_numbers  s    c         C  sF   |  j  t  } | d d g  | d	 d
 g  | d d d g  d  S(   Ni   i   i   i   y               @y              @(   i   i   (   i   i   (   i   y               @(   i   y              @(    (    (    (   Rö   R   (   R}   Rő   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_tuples  s    R   c         C  s,   |  j  t  } | d d d d g f  d  S(   Ni   i   i   i   (   Rö   R   (   R}   Rő   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_list_inside_tuple!  s    c         C  s)   |  j  t  } | d d d g f  d  S(   Ni   i   i   (   i   (   i   (   Rö   R   (   R}   Rő   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt    test_list_of_tuples_inside_tuple&  s    c         C  sf  d } t  } t d t  |  } d d g } |  j |   | |  Wd  QX|  j | d d g  |  j |   | d d g  Wd  QX|  j |   | d d d g f  Wd  QX|  j |   | t d d d g   Wd  QXd	 d
 g } |  j t   } | |  Wd  QXt j	 rId } |  j t
 | j  | j t j   n |  j t
 | j  d  d  S(   Ns   can't unbox heterogeneous listR   i   g      @y               @i   i   s@   can't unbox heterogeneous list: tuple({0} x 1) != tuple({0} x 2)(   i   (   i   i   (   R   R   Ri   Rô   R|   R   R   Rđ   R   t   IS_PY3R   R   t   formatR   t   intp(   R}   Ró   R~   R   RÚ   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_errors*  s,    	((   Rč   Ré   t   __doc__t
   contextlibt   contextmanagerRô   Rö   R÷   Rř   R   Rů   Rú   Rţ   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRď     s   				t   TestListReflectionc           B  sP   e  Z d  Z d   Z d   Z d   Z d   Z e d  d    Z d   Z	 RS(   sG   
    Test reflection of native Numba lists on Python list objects.
    c   
   	   C  s  t  d t  |  } d d d d g d g f d d d d g d d d	 d
 d g f g } x­ | D]Ľ \ } } t |  } t |  } | | |  } |  j | |  ^ | | |  }	 |  j |	 |  |  j | |  |  j | d | k |	 d | k  ~ ~	 Wd  QXq^ Wd  S(   NR   g      đ?g       @g      @g      @g        g      @g      @g      @g       @g      "@i    (   R   Ri   R+   t   assertRefCountR   R|   (
   R}   R~   R   t   samplest   destt   srcR   R   t   pyrest   cres(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   check_reflectionQ  s    *$c         C  s   |  j  t  d  S(   N(   R	  Rt   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_simplea  s    c         C  s   |  j  t  d  S(   N(   R	  Ru   (   R}   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_conditionald  s    c         C  s   t  } t d t  |  } d d d g } |  j |  A |  j t   | |  Wd QX|  j | d d d d g  Wd QXd S(   se   
        When the function exits with an exception, lists should still be
        reflected.
        R   i   i   i   Ni*   (   Rw   R   Ri   R  R   Rv   R   (   R}   R~   R   R1   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_exceptiong  s    R   c         C  s   t  } t d t  |  } d d d g } | } | | |  } | | |  } |  j | |  |  j | |  |  j t j |  t j |   d S(   sg   
        When the same list object is reflected twice, behaviour should
        be consistent.
        R   i   i   i   N(   Rx   R   Ri   R   RĐ   t   getrefcount(   R}   R~   R   t   pylistt   clistR   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_same_listt  s    c         C  st   t  d t  t  } d g } g  | D] } t |  ^ q% } | |  |  j g  | D] } t |  ^ qT |  d S(   sP   
        When the list wasn't mutated, no reflection should take place.
        R   y              )@N(   R   Ri   R   t   idR|   (   R}   R   R1   R   t   ids(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_clean  s
    	
(
   Rč   Ré   R˙   R	  R
  R  R  R   R  R  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR  L  s   				t   ManagedListTestCasec           B  s   e  Z d    Z RS(   c         C  sP   |  j  t |  t |   x- t | |  D] \ } } |  j | |  q, Wd  S(   N(   R|   R   t   zipR   (   R}   t   expectR   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt!   assert_list_element_precise_equal  s    (   Rč   Ré   R  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR    s   t   TestListManagedElementsc           B  s   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z RS(   s,   Test list containing objects that need refctc         C  s   t  d t  |  } t j d  j t j  t j d  j t j  g } t |  } | |  t |  } | |  |  j d | d |  d  S(   NR   i   i   R  R   (   R   Ri   R   t   aranget   astypeRý   R+   R  (   R}   R~   R   t   conR  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   _check_element_equal  s    6

	c         C  s   d   } |  j  |  d  S(   Nc         S  s   d  S(   N(    (   R  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   §  s    (   R  (   R}   R~   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_passthruŚ  s    	c         C  s   d   } |  j  |  d  S(   Nc         S  s&   |  j  t j d  j t j   d  S(   Ni
   (   R/   R   R  R  Rý   (   R  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   Ź  s    (   R  (   R}   R~   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_appendedŤ  s    	c         C  s   d   } |  j  |  d  S(   Nc         S  s   t  j d  |  d <d  S(   Ni
   i   (   R   R  (   R  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   ˛  s    (   R  (   R}   R~   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_setitemą  s    	c         C  s   d   } |  j  |  d  S(   Nc         S  s   |  j    d  S(   N(   R8   (   R  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   ¸  s    (   R  (   R}   R~   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reflect_poppedˇ  s    	c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  sC   g  }  x6 t  d  D]( } |  j t j |  j t j   q W|  S(   Ni,  (   R"   R/   R   R  R  Rý   (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   ž  s    &R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR   ˝  s    				c         C  sD   d   } t  d t  |  } |   } |   } |  j | |  d  S(   Nc          S  si   g  }  x* t  d  D] } |  j t j |   q Wd } x) |  D]! } | | j   d | j 7} q@ W| S(   Ni,  g        i   (   R"   R/   R   R  R!   t   size(   R  R2   R   t   arr(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   Î  s    R   (   R   Ri   R|   (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_append_noretĚ  s
    				c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  sJ   g  }  x* t  d  D] } |  j t j d   q Wt j d  |  d <|  S(   Ni   i   i   i    (   R"   R/   R   R  (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   Ţ  s
    R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_reassign_refctÝ  s    				c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  s>   g  }  x* t  d  D] } |  j t j d   q W|  d d !S(   Ni   i   i   (   R"   R/   R   R  (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   î  s    R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_get_sliceí  s    				c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  sK   g  }  x* t  d  D] } |  j t j d   q W|  d d !|  d d +|  S(   Ni   i   i   i   i   (   R"   R/   R   R  (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   ý  s
    R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_set_sliceü  s    				c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  s^   g  }  x. t  d  D]  } |  j t j | d   q Wx  t |   d k rY |  j   q: W|  S(   Ni   i   i   (   R"   R/   R   R  R   R8   (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~     s    R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_pop  s    				c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  sa   g  }  x. t  d  D]  } |  j t j | d   q Wx# t |   d k r\ |  j d  q: W|  S(   Nič  i   i   (   R"   R/   R   R  R   R8   (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~     s    R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_pop_loc  s    				c         C  sJ   d   } t  d t  |  } |   } |   } |  j d | d |  d  S(   Nc          S  sE   g  }  x. t  d  D]  } |  j t j | d   q W|  d d 5|  S(   Ni   i   i   i
   (   R"   R/   R   R  (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   /  s
    
R   R  R   (   R   Ri   R  (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_del_range.  s    				c         C  sD   d   } t  d t  |  } |   } |   } |  j | |  d  S(   Nc          S  s5   g  }  x( t  d  D] } |  j d g |  q W|  S(   Ni
   i    (   R"   R/   (   R  R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   ?  s    R   (   R   Ri   R|   (   R}   R~   R   R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_list_of_list>  s
    			(   Rč   Ré   R˙   R  R  R  R  R   R   R#  R$  R%  R&  R'  R(  R)  R*  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR    s   													c           s     f d   } | S(   Nc           sU   |  j    |  j t   }   |  | |  Wd  QXd } |  j | t | j   d  S(   Ns-   cannot reflect element of reflected container(   R   R   Rđ   R   R   R   (   R}   R   t   kwargsR   t
   expect_msg(   t   fn(    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   wrappedN  s
    
(    (   R-  R.  (    (   R-  s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   expect_reflection_failureM  s    t   TestListOfListc           B  sű   e  Z d    Z d   Z e d    Z e d    Z e d    Z e d    Z d   Z	 d   Z
 d   Z e j e j d	  e d
     Z e j e j d	  d    Z e d    Z d   Z d   Z e d    Z e d    Z d   Z RS(   c   	      G  s   d d l  m } | |  } | |   } | |  } t d t  |  } | |   } |  j d | d |  |  j d | d |  d  S(   Ni˙˙˙˙(   t   deepcopyR   R  R   (   RM   R1  R   Ri   R  (	   R}   R~   R   R1  t   expect_argsR  t	   njit_argsR   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   compile_and_testZ  s    		c         C  s   d   } |  j  |  d  S(   Nc          S  s/   g  t  d  D] }  t j |   g ^ q } | S(   Ni   (   R"   R   R  (   R2   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   l  s    +(   R4  (   R}   R~   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_returning_list_of_listk  s    	c   	   	   C  sË  d   } t  d t  |  } g  t d  D] } t j |  ^ q+ g  t d  D] } t j |  d ^ qP g } g  t d  D] } t j |  ^ q d g g } d g d h g g } d g i d d 6g g } | |  |  j t   } | |  Wd  QX|  j d t	 | j
   |  j t   } | |  Wd  QX|  j d t	 | j
   |  j t   } | |  Wd  QX|  j d	 t	 | j
   |  j t   } | |  Wd  QX|  j d
 t	 | j
   d  S(   Nc         S  s   |  d S(   Ni   (    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   t  s    R   i   y              đ?i   R   sQ   reflected list(array(float64, 1d, C)) != reflected list(array(complex128, 1d, C))sD   reflected list(array(float64, 1d, C)) != reflected list((int64 x 1))s=   reflected list(int64) != reflected list(reflected set(int64))s*   Cannot type list element of <class 'dict'>(   i   (   R   Ri   R"   R   t   zerost   onesR   Rđ   R   R   R   R´   (	   R}   R~   R   R2   t   l2t   l3t   l4t   l5R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_heterogeneous_list_errorr  s8    	%/1
c         C  s   d   } t  d t  |  } d d g d d g g } d d g } t |  t |  f } t |  t |  f } | |   | |   |  j | |  d  S(	   Nc         S  s"   |  j  |  |  d j  d  d  S(   Ni˙˙˙˙i{   (   R/   (   t   l1R8  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   Ľ  s    R   i    i   i   i   i   i   (   R   Ri   R+   R|   (   R}   R~   R   R=  R8  R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_list_of_list_reflectedŁ  s    	

c         C  s   d   } g  t  d  D] } t j |  ^ q g  t  d  D] } t j |  ^ q; g } t d t  |  } | |  } |  j | |  |  d  S(   Nc         S  s   |  d S(   Ni   (    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   ´  s    i   R   (   R"   R   R6  R7  R   Ri   R   (   R}   R~   R2   R=  R   t   l1_got(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_heterogeneous_list˛  s
    	Pc         C  s   d   } t  j d  g t  j d  d g g } |  j | |  |  j t   } |  j | |  Wd  QX|  j d t | j   d  S(   Nc         S  s
   |  j    S(   N(   R8   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   barż  s    i    i
   y              đ?sQ   reflected list(array(float64, 1d, C)) != reflected list(array(complex128, 1d, C))(   R   R6  R4  R   Rđ   R   R   R   (   R}   RA  t   rR   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c01˝  s    	(c         C  sf   d   } t  j d  g g } |  j t j   } |  j | |  Wd  QX|  j d t | j   d  S(   Nc         S  s   |  j  |   |  S(   N(   R/   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  Đ  s    i    s(   Invalid use of BoundFunction(list.append(	   R   R6  R   R
   R   R4  R   R   R   (   R}   RA  RB  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c02Ď  s    	c         C  s   d   } t  j d  g g } |  j t j   } |  j | |  Wd  QX|  j d j t d  t | d   t	 | j
   d  S(   Nc         S  s   |  } d | d <| S(   Ni   i    (    (   R   t   f(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  Ţ  s    
i   s1   invalid setitem with value of {} to element of {}i   i    (   R   R  R   R
   R   R4  R   Rü   R   R   R   (   R}   RA  RB  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c03Ý  s    		c         C  s   d   } t  j d  g g } |  j t j   } |  j | |  Wd  QX|  j d j t d  t | d d   t	 | j
   d  S(   Nc         S  s   |  } d | d d <| S(   Ni
   i    (    (   R   RE  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  đ  s    i   s1   invalid setitem with value of {} to element of {}i
   i    (   R   R  R   R
   R   R4  R   Rü   R   R   R   (   R}   RA  RB  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c04ď  s    		s!   Py3 only due to ordering of errorc         C  s>   d   } t  j d  j t  j  g g } |  j | |  d  S(   Nc         S  sI   |  } t  j g  t  j d  j t  j  D] }  |  ^ q(  | d d <| S(   Ni
   i    (   R   R   R  R  Rý   (   R   RE  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA    s    ?i   (   R   R  R  Rý   R4  (   R}   RA  RB  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c05   s    	!c         C  sf   d   } t  j d  g g } |  j t j   } |  j | |  Wd  QX|  j d t | j   d  S(   Nc         S  sA   |  } t  j g  t  j d  D] }  |  d ^ q  | d d <| S(   Ni
   y              đ?i    (   R   R   R  (   R   RE  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA    s    7i   s   invalid setitem with value(	   R   R  R   R
   R   R4  R   R   R   (   R}   RA  RB  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c06  s
    	c         C  s|   |  j    d   } t j d  g g } t d t  |  } |  j t   } | |  Wd  QX|  j d t | j	   d  S(   Nc         S  s   |  d S(   Niů˙˙˙(    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA    s    i   R   s   getitem out of range(
   R   R   R  R   Ri   R   RŁ   R   R   R   (   R}   RA  RB  R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c07  s    
	c         C  sv   |  j    d   } d d d g } t d t  |  } |  j t   } | |  Wd  QX|  j d t | j   d  S(   Nc         S  s   d |  d <|  S(   Ni   i   (    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  '  s    
i   i   i   R   s   setitem out of range(   R   R   Ri   R   RŁ   R   R   R   (   R}   RA  RB  R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c08$  s    
	c         C  s`   d   } d d d g } |  j  t j   } |  j | |  Wd  QX|  j d t | j   d  S(   Nc         S  s   d |  d <|  S(   Ny              @iţ˙˙˙(    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  2  s    
i   i   i   s   invalid setitem with value(   R   R
   R   R4  R   R   R   (   R}   RA  RB  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c091  s
    	c         C  s;   d   } d d d g d d d g g } |  j  | |  d  S(   Nc         S  s!   |  d |  d |  d <|  d <|  S(   Ni   i    (    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  =  s    i   i   i   i   i   i   (   R4  (   R}   RA  RB  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c10;  s    	c         C  s;   d   } d d d g d d d g g } |  j  | |  d  S(   Nc         S  s   |  d  d  d  |  (|  S(   Ni˙˙˙˙(    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  F  s    i   i   i   i   i   i   (   R4  (   R}   RA  RB  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c11D  s    	c         C  s<   d   } g  t  d  D] } | ^ q } |  j | |  d  S(   Nc         S  s   |  d =|  S(   Ni˙˙˙˙(    (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRA  N  s    i
   (   R"   R4  (   R}   RA  R   RB  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_c12M  s    	(   Rč   Ré   R4  R5  R/  R<  R>  R@  RC  RD  RF  RG  Rë   Rě   R   Rű   RH  RI  RJ  RK  RL  RM  RN  RO  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR0  X  s$   		1			
		
		t   Itemc           B  s   e  Z d    Z RS(   c         C  s   | |  _  | |  _ d  S(   N(   t   manyt   scalar(   R}   RQ  RR  (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   __init__W  s    	(   Rč   Ré   RS  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRP  V  s   t	   Containerc           B  s   e  Z d    Z d   Z RS(   c         C  s>   g  t  |  D]$ } t j |  j t j  g ^ q |  _ d  S(   N(   R"   R   R  R  t   float64t   data(   R}   R,   R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRS  ]  s    c         C  sC   x< t  |  D]. } |  j j t j |  j t j  g  q Wd  S(   N(   R"   RV  R/   R   R  R  RU  (   R}   R,   R2   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   more`  s    (   Rč   Ré   RS  RW  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRT  \  s   	t   TestListAndJitClassesc           B  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C  s5   d t  j f d t  j f g } t |  t  } | S(   NRQ  RR  (   R   RU  R   RP  (   R}   t   spect   JCItem(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   make_jitclass_elementf  s    c         C  sH   i t  j d t  j t  j d  d  d    d 6} t |  t  } | S(   Nt   dtypei   RV  (   R   t   ListRU  R   RT  (   R}   RY  t   JCContainer(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   make_jitclass_containern  s    /c         C  s1   x* t  | |  D] \ } } | | |  q Wd  S(   N(   R  (   R}   t   testerR  R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   assert_list_element_with_testeru  s    c           sŐ     j    } d   }   f d   } t d t  |  } g  t d  D]/ } | d t j j | d  d | d  ^ qF } t |  } t |  } | |  }	 | |  }
   j | | |    j | |	 |
  d  S(	   Nc         S  s!   |  d |  d |  d <|  d <|  S(   Ni    i   (    (   t   xs(    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR~   |  s    c           s0     j  |  j | j    j  |  j | j  d  S(   N(   R   RQ  RR  (   R   R   (   R}   (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyR     s    R   i   RQ  i   RR  g333333ó?(   R[  R   Ri   R"   R   t   randomR+   Ra  (   R}   RZ  R~   R   R   R,   R   t
   expect_argt   got_argt
   expect_rest   got_res(    (   R}   s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_jitclass_instance_elementsy  s    	?c         C  st   |  j    } t d d  } | d d  } |  j | j | j  | j d  | j d  |  j | j | j  d  S(   NR,   i   i   (   R_  RT  R  RV  RW  (   R}   R^  R  R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   test_jitclass_containing_list  s    (   Rč   Ré   R[  R_  Ra  Rh  Ri  (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyRX  e  s
   				t   __main__(n   t
   __future__R    t   collectionsR   R   RŤ   R%   RĐ   t   ctypesRÓ   t   numpyR   t   numba.compilerR   R   t   numbaR   R   R   R   R   t   numba.unittest_supportt   unittest_supportRë   R	   R
   t   supportR   R   R   t   enable_pyobj_flagst   sett   force_pyobj_flagsR   R   R   R   R   R   R   R    R#   R$   R'   R(   R)   R*   R-   R.   R0   R3   R4   R6   R7   R9   R:   R;   R<   R=   R@   RB   RD   RE   RG   RH   RI   RJ   RL   RO   RQ   RR   RT   RU   RV   RX   R[   R]   R_   Ra   Rc   Rd   Re   Rf   Rg   Rk   Rl   Rm   Rn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rw   Rx   Ry   Rď   R  R  R  R/  R0  t   objectRP  RT  RX  Rč   t   main(    (    (    s5   lib/python2.7/site-packages/numba/tests/test_lists.pyt   <module>   sş   (								
																																											
																
		˙ JDľ	ţ	8