ó
\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 m	 Z
 d  d l m Z d  d l m Z m Z m Z m Z m Z d d l m Z m Z m Z e j d d> ƒ Z e j d d? ƒ Z e j d 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' d „  Z( d „  Z) d  „  Z* d! „  Z+ d" „  Z, d# „  Z- d$ „  Z. d% „  Z/ d& „  Z0 d' „  Z1 d( „  Z2 d) e
 j f d* „  ƒ  YZ3 d+ e f d, „  ƒ  YZ4 d- e f d. „  ƒ  YZ5 d/ e f d0 „  ƒ  YZ6 d1 e e f d2 „  ƒ  YZ7 d3 e e f d4 „  ƒ  YZ8 d5 e e f d6 „  ƒ  YZ9 d7 e f d8 „  ƒ  YZ: d9 e f d: „  ƒ  YZ; d; e f d< „  ƒ  YZ< e= d= k r¼e
 j> ƒ  n  d S(A   i    (   t   print_functiont   divisiont   absolute_importN(   t   unittest_support(   t   compile_isolated(   t   njitt   jitt   typest   errorst   utilsi   (   t   TestCaset   MemoryLeakMixint   tagt   Rectt   widtht   heightt   Pointt   xt   yt   zt   Emptyc         C` s
   |  | f S(   N(    (   t   at   b(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_return_usecase   s    c         C` s   |  \ } } | S(   N(    (   t   tupR   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_first   s    c         C` s   |  \ } } | S(   N(    (   R   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_second   s    c         C` s   |  | S(   N(    (   R   t   idx(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_index   s    c         C` s   |  d S(   Niþÿÿÿ(    (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_index_static"   s    c         C` s   |  d d !S(   Ni   iÿÿÿÿ(    (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_slice2&   s    c         C` s   |  d d  d … S(   Ni   i   (    (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_slice3)   s    c         C` s
   t  |  ƒ S(   N(   t   len(   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   len_usecase,   s    c         C` s   |  | S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   add_usecase/   s    c         C` s
   |  | k S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   eq_usecase2   s    c         C` s
   |  | k S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   ne_usecase5   s    c         C` s
   |  | k S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   gt_usecase8   s    c         C` s
   |  | k S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   ge_usecase;   s    c         C` s
   |  | k  S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   lt_usecase>   s    c         C` s
   |  | k S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   le_usecaseA   s    c         C` s
   |  | k S(   N(    (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   in_usecaseD   s    c         C` s   t  |  ƒ |  r d n d f S(   Ni   i   (   t   bool(   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   bool_usecaseG   s    c         C` s   |  j  |  j |  j f S(   N(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   getattr_usecaseJ   s    c         C` s   t  |  | | ƒ S(   N(   R   (   R   R   t   c(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   make_pointM   s    c         C` s   t  d | d | d |  ƒ S(   NR   R   R   (   R   (   R   R   R-   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   make_point_kwsP   s    c         C` sP   t  t t |  ƒ ƒ t j |  d ƒ ƒ } t | t | j ƒ t | j ƒ ƒ } | S(   Ni   (	   R   t   listt   ranget   npt   zerosR   R    R   R   (   t   nt   rt   p(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   make_point_nrtS   s    ($c         G` s   t  |  ƒ | Œ  S(   N(   t   type(   R   t   args(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   type_usecaseY   s    c         C` s   |  S(   N(    (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   identity\   s    c         C` s   |  j  | ƒ S(   N(   t   index(   R   t   value(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   index_method_usecase_   s    c          C` s<   g  g  g  d f \ }  } } } |  j  d ƒ | j  d ƒ d  S(   Ng        i   (   t   append(   R   R   R-   t   d(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   tuple_unpack_static_getitem_errb   s    t   TestTupleLengthErrorc           B` s   e  Z d  „  Z RS(   c         C` si   t  d „  ƒ } |  j t j ƒ # } t t d ƒ ƒ } | | ƒ Wd  QXd } |  j | t | j ƒ ƒ d  S(   Nc         S` s
   t  |  ƒ S(   N(   R    (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   eattupleo   s    ié  s,   Tuple 'tup' length must be smaller than 1000(	   R   t   assertRaisesR   t   UnsupportedErrort   tupleR1   t   assertInt   strt	   exception(   t   selfRC   t   raisesR   t   expected(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_tuple_length_errorl   s    (   t   __name__t
   __module__RM   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRB   j   s   t   TestTupleReturnc           B` s;   e  Z e d  ƒ d „  ƒ Z d „  Z e d  ƒ d „  ƒ Z RS(   t	   importantc         C` s˜   t  j t  j d d ƒ } t t | | f ƒ } t j d d d ƒ} } | j | | ƒ \ } } |  j | | ƒ |  j | | ƒ ~ ~ |  j | | ƒ d  S(   Ni   t   Ci   t   dtypet   float64(	   R   t   ArrayRT   R   R   R2   t   aranget   entry_pointt   assertPreciseEqual(   RJ   t   arytyt   cresR   R   t   rat   rb(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_array_tuple}   s    c         C` sd   t  j } t t | | f ƒ } d } } | j | | ƒ \ } } |  j | | ƒ |  j | | ƒ d  S(   Ni   (   R   t   float32R   R   RW   t   assertEqual(   RJ   t   scalartyRZ   R   R   R[   R\   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_scalar_tupleˆ   s    	
c   
      C` s÷   g  } g  } | j  t j t j f ƒ | j  d ƒ | j  t j t j f ƒ | j  d ƒ | j  t j t j f ƒ | j  d	 ƒ xr t | | ƒ D]a \ \ } } \ } } t t | | f ƒ } | j	 | | ƒ \ } }	 |  j
 | |	 f | | f ƒ qŽ Wd  S(
   Ni   i   g      ò?g      Ð?iÏ  g      à?(   i   i   (   g      ò?g      Ð?(   iÏ  g      à?(   R?   R   t   int32t   int64R^   RT   t   zipR   R   RW   RX   (
   RJ   t   alltypest	   allvaluest   tat   tbR   R   RZ   R[   R\   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_hetero_tuple   s    ((   RN   RO   R   R]   Ra   Ri   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRP   {   s   	t   TestTuplePassingc           B` s;   e  Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z d „  Z RS(   RQ   c         C` so   t  j t  j d ƒ } t t | f ƒ } t t | f ƒ } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ d  S(   Ni   i   i   (   i   i   (   i   i   (   R   t   UniTupleRb   R   R   R   RX   RW   (   RJ   t
   tuple_typet   cr_firstt	   cr_second(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_unituple¦   s
    c         C` su   t  j t  j t  j f ƒ } t t | f ƒ } t t | f ƒ } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ d  S(	   Ni   i=   g      ø?I        (   I        g      ø?I        I        (   I        g      ø?(	   R   t   TupleRc   R^   R   R   R   RX   RW   (   RJ   Rl   Rm   Rn   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRi   ®   s
    c         C` si   t  j t  j d ƒ } t t | f ƒ } |  j t ƒ  } | j d ƒ Wd  QX|  j t	 | j
 ƒ d ƒ d  S(   Ni   i   i   i   s8   size mismatch for tuple, expected 2 element(s) but got 3(   i   i   i   (   R   Rk   Rb   R   R   RD   t
   ValueErrorRW   R_   RH   RI   (   RJ   Rl   t   crRK   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_size_mismatch¶   s    (   RN   RO   R   Ro   Ri   Rs   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRj   ¤   s   t   TestOperationsc           B` sû   e  Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 e d  ƒ d „  ƒ Z
 d	 „  Z e d  ƒ d
 „  ƒ Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z RS(   RQ   c         C` s„   t  } t | t j t j t j f ƒ g ƒ } |  j | j d ƒ d ƒ t | t j t j d ƒ g ƒ } |  j | j d ƒ d ƒ d  S(   Ni   i   i   i   i   (   i   i   (   i   i   i   (	   R!   R   R   Rp   Rc   R^   RX   RW   Rk   (   RJ   t   pyfuncRr   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_lenÂ   s    !c         C` s&  t  } t | t j t j d ƒ t j g ƒ } d	 } x: t t | ƒ ƒ D]& } |  j | j | | ƒ | | ƒ qF Wx@ t t | ƒ d ƒ D]( } |  j | j | | ƒ | | ƒ q‡ W|  j	 t
 ƒ  } | j | t | ƒ ƒ Wd  QX|  j d t | j ƒ ƒ |  j	 t
 ƒ " } | j | t | ƒ d ƒ Wd  QX|  j d t | j ƒ ƒ t | t j t j d ƒ t j g ƒ } |  j	 t
 ƒ  } | j d
 d ƒ Wd  QX|  j d t | j ƒ ƒ t | t j t j d ƒ t j g ƒ } xC t t | ƒ ƒ D]/ } |  j | j | t j | ƒ ƒ | | ƒ qèWt } x{ t j t j d ƒ t j t j t j t j t j f ƒ f D]= } t | | f ƒ } d } |  j | j | ƒ | | ƒ ƒ q^Wt j t j d ƒ } |  j ƒ   t | | f ƒ } Wd  QXt } |  j ƒ   } t | d ƒ } Wd  QXd } |  j | t | j ƒ ƒ d  S(   Ni   i   i   i   s   tuple index out of rangei    i*   sL   Cannot infer the type of variable 'c', have imprecise type: list(undefined).(   i   i   i   (    (   i   i   i*   i   (    (   R   R   R   Rk   Rc   R1   R    RX   RW   RD   t
   IndexErrorR_   RH   RI   t   uintpR   Rp   Rb   t   assertTypingErrorRA   RG   (   RJ   Ru   Rr   R   t   iRK   t   typt   msg(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt
   test_indexÌ   sJ    !$&!!!-.#c         C` ss   t  } t | t j t j t j d ƒ g ƒ } d } x9 t d ƒ D]+ } |  j | j | | ƒ | | | ƒ ƒ q@ Wd  S(   Ni   i   i   i   (   i   i   i   (   R)   R   R   Rc   Rk   R1   RX   RW   (   RJ   Ru   Rr   R   Rz   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_in  s    !c         C` sœ   d } t  | t j t j d ƒ g ƒ } |  j | j | ƒ | | ƒ ƒ t  | t j t j t j t j t j f ƒ g ƒ } |  j | j | ƒ | | ƒ ƒ d  S(   Ni   i   i   i   (   i   i   i   i   (   R   R   Rk   Rc   RX   RW   Rp   Rb   (   RJ   Ru   R   Rr   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   check_slice  s    -c         C` s   |  j  t ƒ d  S(   N(   R   R   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_slice2  s    c         C` s   |  j  t ƒ d  S(   N(   R   R   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_slice3  s    c         C` sÖ   t  } t | t j t j t j f ƒ g ƒ } d } |  j | j | Œ  | | Œ  ƒ t | t j t j d ƒ g ƒ } d } |  j | j | Œ  | | Œ  ƒ t | t j d	 ƒ g ƒ } |  j | j d
 ƒ | d ƒ ƒ d  S(   Ni   i   i   i   (   i   i   (   (   i   i   (   i   i   i   (   (   i   i   i   (    (    (    (	   R+   R   R   Rp   Rc   Rb   RX   RW   Rk   (   RJ   Ru   Rr   R9   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt	   test_bool  s    !c   
      C` sñ   t  } t j d ƒ d f t j t j d ƒ d	 f t j t j d ƒ d
 f t j t j t j f ƒ d f g } x~ t j | | ƒ D]j \ \ } } \ } } t	 | | | f ƒ } | | | ƒ } | j
 | | ƒ }	 |  j |	 | d | | f ƒq Wd  S(   Ni    i   i*   i   g      @R|   (    (    (    (   i*   (   i   g      @(   R"   R   Rp   Rk   Rb   Rc   R^   t	   itertoolst   productR   RW   RX   (
   RJ   Ru   t   samplesRg   R   Rh   R   Rr   RL   t   got(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_add)  s    $+c   	      ` sS  ‡  f d †  } t  j t  j t  j f ƒ t  j t  j d ƒ g } xƒ t j | | ƒ D]o \ } } t | | | f ƒ } | j	 } xB d d	 f d
 d f d d f d d f g D] } | | | | ƒ q§ WqR Wt  j t  j t  j f ƒ t  j t  j d ƒ g } t | t
 | ƒ ƒ } | j	 } x9 d d f d d f d d f g D] } | | | | ƒ q5Wd  S(   Nc         ` s*   ˆ  j  | | Œ  |  | Œ  d | f ƒ d  S(   Ns   mismatch for arguments %s(   t   assertIs(   Ru   t   cfuncR9   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   eq8  s    i   i   i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   R   Rp   Rc   R^   Rk   Rb   Rƒ   R„   R   RW   RF   (	   RJ   Ru   RŠ   t   argtypesRg   Rh   Rr   R‰   R9   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   _test_compare7  s&    					c         C` s   |  j  t ƒ d  S(   N(   RŒ   R#   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_eqQ  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R$   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_neU  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R%   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_gtY  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R&   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_ge]  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R'   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_lta  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R(   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_lee  s    (   RN   RO   R   Rv   R}   R~   R   R€   R   R‚   R‡   RŒ   R   RŽ   R   R   R‘   R’   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRt   À   s   
7		
				t   TestNamedTuplec           B` sã   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z d „  Z d „  Z e j e j d k  d ƒ d „  ƒ Z RS(   c         ` s9   ‡  f d †  } | t  d d ƒ ƒ | t  d d ƒ ƒ d  S(   Nc         ` sL   xE t  t f D]7 } t d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ q Wd  S(   Nt   nopython(   R   R   R   t   TrueRX   (   R6   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   checkm  s    i   i   g      @(   R   (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_unpackl  s    c         ` se   ‡  f d †  } | t  d d ƒ ƒ | t d d d ƒ ƒ | t  d d ƒ ƒ | t d d d ƒ ƒ d  S(   Nc         ` s;   t  } t d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ d  S(   NR”   (   R!   R   R•   RX   (   R6   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   x  s    i   i   i   g      @y              @(   R   R   (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRv   w  s
    c         C` s¸   t  } t d t ƒ | ƒ } t d d d ƒ } x< t t | ƒ ƒ D]( } |  j | | | ƒ | | | ƒ ƒ q@ WxE t t | ƒ ƒ D]1 } |  j | | t j | ƒ ƒ | | | ƒ ƒ q Wd  S(   NR”   i   i   i   (	   R   R   R•   R   R1   R    RX   R   Rx   (   RJ   Ru   R‰   R6   Rz   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR}   „  s    &c         ` sF   ‡  f d †  } | t  d d ƒ ƒ | t  d d ƒ ƒ | t ƒ  ƒ d  S(   Nc         ` s;   t  } t d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ d  S(   NR”   (   R+   R   R•   RX   (   R6   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   ‘  s    i   i   g      @(   R   R   (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR‚     s    c         ` sÙ   ‡  f d †  } t  d t ƒ | ƒ } xZ d d f d	 d
 f d d f d d f g D]. \ } } | | | t | Œ  t | Œ  f ƒ qO WxQ d d f d d f d d f g D]. \ } } | | | t | Œ  t | Œ  f ƒ q£ Wd  S(   Nc         ` s*   ˆ  j  | | Œ  |  | Œ  d | f ƒ d  S(   Ns   mismatch for arguments %s(   Rˆ   (   Ru   R‰   R9   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRŠ     s    R”   i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   R   R•   R   R   (   RJ   Ru   RŠ   R‰   R   R   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRŒ   œ  s    		&	RQ   c         C` s   |  j  t ƒ d  S(   N(   RŒ   R#   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR   °  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R$   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRŽ   ´  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R%   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR   ¸  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R&   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR   »  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R'   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR‘   ¾  s    c         C` s   |  j  t ƒ d  S(   N(   RŒ   R(   (   RJ   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR’   Á  s    c         C` s^   t  } t d t ƒ | ƒ } x< d d f D]. } t | Œ  } |  j | | ƒ | | ƒ ƒ q( Wd  S(	   NR”   i   i   i   g      @y              @(   i   i   i   (   i   g      @y              @(   R,   R   R•   R   RX   (   RJ   Ru   R‰   R9   R6   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_getattrÄ  s
    c         ` s'   ‡  f d †  } | t  ƒ | t ƒ d  S(   Nc         ` st   t  d t ƒ |  ƒ } xX d d f D]J } |  | Œ  } | | Œ  } ˆ  j t | ƒ t | ƒ ƒ ˆ  j | | ƒ q" Wd  S(	   NR”   i   i   i   g      @y              @(   i   i   i   (   i   g      @y              @(   R   R•   Rˆ   R8   RX   (   Ru   R‰   R9   RL   R†   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   Ï  s    (   R.   R/   (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_constructÍ  s    
c   	      C` s¤   t  } t d t ƒ | ƒ } d d g } xv t j | | ƒ D]b \ } } t | Œ  } | | | Œ } | | | Œ } |  j t | ƒ t | ƒ ƒ |  j | | ƒ q: Wd  S(	   NR”   i   i   i   g      @y              @(   i   i   i   (   i   g      @y              @(	   R:   R   R•   Rƒ   R„   R   Rˆ   R8   RX   (	   RJ   Ru   R‰   t
   arg_tuplest   tup_argsR9   R   RL   R†   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt	   test_typeÚ  s    c         ` s–   t  d t ƒ d „  ƒ ‰  t  d t ƒ ‡  f d †  ƒ } | d d ƒ } |  j | t d d d d ƒ ƒ | d d ƒ } |  j | t d d d d	 ƒ ƒ d  S(
   NR”   c         S` s   t  |  d ƒ S(   Ni¿þÿÿ(   R   (   R=   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   Data1é  s    c         ` s.   | d k r ˆ  |  ƒ } n t  |  | ƒ } | S(   Ni    (   R   (   Rz   t   jt   result(   R   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   callí  s    i{   i)  R   R   i    i¿þÿÿ(   R   R•   R_   R   (   RJ   R    R5   (    (   R   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_literal_unificationç  s    i   i    s   needs Python 3c         C` sD   t  d t ƒ d „  ƒ } | ƒ  } |  j | t d d d d ƒ ƒ d  S(   NR”   c           S` s   t  d d ƒ S(   Ni
   t
   somestring(   R   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   foo  s    R   i
   R   R¢   (   R   R•   R_   R   (   RJ   R£   R5   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_string_literal_in_ctorþ  s    	(   i   i    (   RN   RO   R—   Rv   R}   R‚   RŒ   R   R   RŽ   R   R   R‘   R’   R˜   R™   Rœ   R¡   t   unittestt   skipIfR	   t	   PYVERSIONR¤   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR“   j  s    												t   TestTupleNRTc           B` s   e  Z d  „  Z RS(   c         C` so   d „  } t  d t ƒ | ƒ } d } | | ƒ \ } } | | ƒ \ } } t j j | | ƒ |  j | | ƒ d  S(   Nc         S` s   t  j d ƒ } | f |  f S(   Ni   (   R2   RV   (   R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRu     s    R”   i{   (   R   R•   R2   t   testingt   assert_equalR_   (   RJ   Ru   R‰   R   t   expect_at   expect_xt   got_at   got_x(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_tuple_add  s    	(   RN   RO   R¯   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR¨   
  s   t   TestNamedTupleNRTc           B` s   e  Z d  „  Z RS(   c         C` st   t  } t d t ƒ | ƒ } xR d D]J } | | ƒ } | | ƒ } |  j t | ƒ t | ƒ ƒ |  j | | ƒ q" Wd  S(   NR”   i   i    (   i   i    (   R7   R   R•   Rˆ   R8   RX   (   RJ   Ru   R‰   t   argRL   R†   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_return  s    (   RN   RO   R²   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR°     s   t   TestConversionsc           B` s    e  Z d  Z d „  Z d „  Z RS(   s8   
    Test implicit conversions between tuple types.
    c         C` sD   t  } t | | f | ƒ } | j } | | ƒ } |  j | | ƒ d  S(   N(   R;   R   RW   R_   (   RJ   t   fromtyt   totyt   valRu   Rr   R‰   t   res(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   check_conversion+  s
    	c      	   C` s  |  j  } t j t j d ƒ } | | t j t j d ƒ d ƒ | | t j t j t j f ƒ d ƒ t j t j d ƒ } t j d ƒ } | | | d	 ƒ | | | d
 ƒ |  j t j	 ƒ & } | | t j t j f ƒ d ƒ Wd  QXd } |  j
 | t | j ƒ ƒ d  S(   Ni   i   i   i    s9   No conversion from tuple(int32 x 2) to tuple(float32 x 1)(   i   i   (   i   i   (    (    (    (   i   i   (   R¸   R   Rk   Rb   R^   Rp   t   int16RD   R   t   TypingErrorRG   RH   RI   (   RJ   R–   R´   t   atyt   btyRK   R|   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_conversions2  s    	%%(   RN   RO   t   __doc__R¸   R½   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR³   &  s   	t   TestMethodsc           B` s   e  Z d  „  Z RS(   c         C` s|   t  } t d t ƒ | ƒ } |  j | d d ƒ d ƒ |  j t ƒ  } | d d ƒ Wd  QXd } |  j | t | j ƒ ƒ d  S(	   NR”   i   i   i   i   s   tuple.index(x): x not in tuple(   i   i   i   (   i   i   i   (   R>   R   R•   R_   RD   Rq   RH   RI   (   RJ   Ru   R‰   RK   R|   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR}   D  s    (   RN   RO   R}   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR¿   B  s   t   TestTupleBuildc           B` s¡   e  Z e j e j d
 k  d ƒ d „  ƒ Z e j e j d k  d ƒ d „  ƒ Z e j e j d k  d ƒ d „  ƒ Z e j e j d k  d ƒ d „  ƒ Z	 d	 „  Z
 RS(   i   i    s   needs Python 3c         ` s'   ‡  f d †  } | d ƒ | d ƒ d  S(   Nc         ` sA   t  d ƒ } t d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ d  S(   Ns   lambda a: (1, *a)R”   (   t   evalR   R•   RX   (   R6   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   S  s    i   i   g      @(   i   i   (   i   g      @(    (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_build_unpackQ  s    
c         ` s'   ‡  f d †  } | d ƒ | d ƒ d  S(   Nc         ` sA   t  d ƒ } t d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ d  S(   Ns   lambda a: (1, *a, (1, 2), *a)R”   (   RÁ   R   R•   RX   (   R6   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   a  s    i   i   g      @(   i   i   (   i   g      @(    (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_build_unpack_more_  s    
c         ` s'   ‡  f d †  } | d ƒ | d ƒ d  S(   Nc         ` sV   t  d „  ƒ } t d t ƒ  ƒ } t  d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ d  S(   Nc          W` s   |  S(   N(    (   R9   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   innerq  s    s   lambda a: inner(1, *a)R”   (   R   RÁ   t   localsR•   RX   (   R6   RÄ   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   o  s    i   i   g      @(   i   i   (   i   g      @(    (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_build_unpack_callm  s    

i   s   needs Python 3.6+c         ` s'   ‡  f d †  } | d ƒ | d ƒ d  S(   Nc         ` sV   t  d „  ƒ } t d t ƒ  ƒ } t  d t ƒ | ƒ } ˆ  j | |  ƒ | |  ƒ ƒ d  S(   Nc          W` s   |  S(   N(    (   R9   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRÄ     s    s#   lambda a: inner(1, *a, *(1, 2), *a)R”   (   R   RÁ   RÅ   R•   RX   (   R6   RÄ   Ru   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–     s    i   i   g      @(   i   i   (   i   g      @(    (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_build_unpack_call_more}  s    

c         ` sC   ‡  f d †  } | d „  d ƒ | d „  d	 ƒ | d „  d
 ƒ d  S(   Nc         ` s5   t  d t ƒ |  ƒ } ˆ  j | | ƒ |  | ƒ ƒ d  S(   NR”   (   R   R•   RX   (   Ru   R±   R‰   (   RJ   (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyR–   Ž  s    c         S` s   t  ƒ  S(   N(   RF   (   t   _(    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   <lambda>“  t    c         S` s
   t  |  ƒ S(   N(   RF   (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRÉ   •  RÊ   i   i   c         S` s
   t  |  ƒ S(   N(   RF   (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRÉ   —  RÊ   g      @(    (   i   i   (   i   g      @(    (   RJ   R–   (    (   RJ   s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   test_tuple_constructor  s    (   i   i    (   i   i    (   i   i    (   i   i   (   RN   RO   R¥   R¦   R	   R§   RÂ   RÃ   RÆ   RÇ   RË   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyRÀ   O  s
   $$$$t   __main__(   R   R   (   R   R   R   (    (?   t
   __future__R    R   R   t   collectionsRƒ   t   numpyR2   t   numbaR   R¥   t   numba.compilerR   R   R   R   R   R	   t   supportR
   R   R   t
   namedtupleR   R   R   R   R   R   R   R   R   R   R!   R"   R#   R$   R%   R&   R'   R(   R)   R+   R,   R.   R/   R7   R:   R;   R>   RA   RB   RP   Rj   Rt   R“   R¨   R°   R³   R¿   RÀ   RN   t   main(    (    (    s6   lib/python2.7/site-packages/numba/tests/test_tuples.pyt   <module>   s^   (																									)ª L