ó
\K]c           @  s  d  d l  m Z d  d l Z d  d l j Z d  d l m Z m	 Z	 d  d l
 m Z m Z m Z d d l m Z m Z m Z e	 ƒ  Z e j d ƒ e	 ƒ  Z e j d ƒ e	 ƒ  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 e e f d „  ƒ  YZ& e' d k r}e j( ƒ  n  d S(   iÿÿÿÿ(   t   print_functionN(   t   compile_isolatedt   Flags(   t   errorst   typest   typeofi   (   t   TestCaset   MemoryLeakMixint   tagt   enable_pyobjectt   force_pyobjectt   nrtc         C  s   |  \ } } } | | | f S(   N(    (   t   lt   at   bt   c(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_list   s    c         C  s   |  j  \ } } } | | | S(   N(   t   shape(   R   t   xt   yt   z(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_shape   s    c          C  s!   t  d ƒ \ }  } } |  | | S(   Ni   (   t   range(   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_range   s    c          C  s!   t  d ƒ \ }  } } |  | | S(   Ni   (   R   (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_range_too_small#   s    c          C  s!   t  d ƒ \ }  } } |  | | S(   Ni   (   R   (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_range_too_large(   s    c          C  s   d \ }  } } |  | | S(   Ni   i   i   (   i   i   i   (    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_tuple-   s    c          C  s   d \ }  } } |  | | S(   Ni   i   (   i   i   (    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_tuple_too_small2   s    c          C  s   d \ }  } } |  | | S(   Ni   i   i   i   (   i   i   i   i   (    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_tuple_too_large7   s    c          C  s   d \ }  } } |  | | S(   Ni   y              @(   i   y              @(    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt$   unpack_heterogeneous_tuple_too_small<   s    c          C  s   d \ }  } } |  | | S(   Ni   g      @y              @i   (   i   g      @y              @i   (    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt$   unpack_heterogeneous_tuple_too_largeA   s    c          C  s   d \ }  } } |  | | S(   Ni   g      @y              @(   i   g      @y              @(    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_heterogeneous_tupleF   s    c          C  s   d d }  \ } } |  | | S(   Ni   g      @y              @(   g      @y              @(    (   R   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt!   unpack_nested_heterogeneous_tupleK   s    c         C  s   |  \ } } | | f S(   N(    (   t   seqR   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   unpack_arbitraryP   s    c          C  s@   t  j d ƒ }  t  j d ƒ } | |  f } | \ } } | | f S(   Ni   i   (   t   npt   zeros(   R   R   t   tupt   alphat   beta(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt
   unpack_nrtU   s
    c         C  s2   |  | f } \ } } | \ } } | | | | S(   N(    (   R   R   R   R   R   t   dt   e(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   chained_unpack_assign1]   s    c         C  s&   |  d k r | |  }  } n  |  | f S(   Ni    (    (   R   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   conditional_swapd   s    t
   TestUnpackc           B  s[  e  Z d  „  Z e d „ Z e d ƒ d „  ƒ Z e d „ Z e d ƒ d „  ƒ Z e d „ Z	 e d ƒ d „  ƒ Z
 e d „ Z d	 „  Z e d
 „ Z e d ƒ d „  ƒ Z e d „ Z d „  Z e e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „ Z d „  Z e d ƒ d „  ƒ Z d „  Z d „  Z d „  Z  RS(   c         C  sS   t  } t | d d t ƒ} | j } d d d g } |  j | | ƒ | | ƒ ƒ d  S(   Nt   flagsi   i   i   (    (   R   R   t   force_pyobj_flagst   entry_pointt   assertEqual(   t   selft   pyfunct   crt   cfuncR   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_listm   s
    	c      	   C  s€   t  } t | t j d t j d d d d ƒ g d | ƒ} | j } t j d d
 ƒ j t j ƒ } |  j	 | | ƒ | | ƒ ƒ d  S(   Nt   dtypet   ndimi   t   layoutt   CR.   R   i   i   (   i   i   i   (
   R   R   R   t   Arrayt   int32R0   R#   R$   t   astypet   assertPreciseEqual(   R2   R.   R3   R4   R5   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_shapet   s    		t	   importantc         C  s   |  j  d t ƒ d  S(   NR.   (   R?   t   no_pyobj_flags(   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_shape_npm~   s    c         C  s   |  j  t | ƒ d  S(   N(   t   run_nullary_funcR   (   R2   R.   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_range‚   s    c         C  s   |  j  d t ƒ d  S(   NR.   (   RD   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_range_npm…   s    c         C  s   |  j  t | ƒ d  S(   N(   RC   R   (   R2   R.   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple‰   s    c         C  s   |  j  d t ƒ d  S(   NR.   (   RF   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple_npmŒ   s    c         C  s   |  j  t | ƒ d  S(   N(   RC   R   (   R2   R.   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_heterogeneous_tuple   s    c         C  s   |  j  d t ƒ d  S(   NR.   (   RH   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt#   test_unpack_heterogeneous_tuple_npm“   s    c         C  s   |  j  t | ƒ d  S(   N(   RC   R    (   R2   R.   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt&   test_unpack_nested_heterogeneous_tuple–   s    c         C  s   |  j  d t ƒ d  S(   NR.   (   RJ   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt*   test_unpack_nested_heterogeneous_tuple_npm™   s    c         C  sV   t  } t | t j t j g d | ƒ} | j } d } |  j | | Œ  | | Œ  ƒ d  S(   NR.   i   i   (   i   i   (   R+   R   R   R<   R0   R>   (   R2   R.   R3   R4   R5   t   args(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_chained_unpack_assign   s    		c         C  s   |  j  d t ƒ d  S(   NR.   (   RM   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_chained_unpack_assign_npm¥   s    c      	   C  s?   |  j  | ƒ * t | d d | ƒ} | j } | ƒ  Wd  QXd  S(   NR.   (    (   t   assertRaisesR   R0   (   R2   R3   R.   t   excR4   R5   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   check_unpack_error¨   s    	c         C  s   |  j  t ƒ |  j  t ƒ d  S(   N(   RQ   R   R   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple_too_small®   s    c         C  s0   |  j  t t t j ƒ |  j  t t t j ƒ d  S(   N(   RQ   R   RA   R   t   TypingErrorR   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple_too_small_npm²   s    
	c         C  s   |  j  t ƒ |  j  t ƒ d  S(   N(   RQ   R   R   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple_too_large¸   s    c         C  s0   |  j  t t t j ƒ |  j  t t t j ƒ d  S(   N(   RQ   R   RA   R   RS   R   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple_too_large_npm¼   s    
	c         C  s   |  j  t ƒ d  S(   N(   RQ   R   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_range_too_smallÂ   s    c         C  s   |  j  t t ƒ d  S(   N(   RQ   R   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_range_too_small_npmÅ   s    c         C  s   |  j  t ƒ d  S(   N(   RQ   R   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_range_too_largeÈ   s    c         C  s   |  j  t t ƒ d  S(   N(   RQ   R   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_range_too_large_npmË   s    c         C  s`   t  t t j t j f d | ƒ} | j } |  j | d d ƒ d ƒ |  j | d d ƒ d ƒ d  S(   NR.   i   i   i    (   i   i   (   i    i   (   R   R,   R   R<   R0   R>   (   R2   R.   R4   R5   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   check_conditional_swapÎ   s
    		c         C  s   |  j  ƒ  d  S(   N(   R[   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_conditional_swapÕ   s    c         C  s   |  j  t ƒ d  S(   N(   R[   RA   (   R2   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_conditional_swap_npmØ   s    c         C  so   t  d „  t d ƒ Dƒ ƒ } t | ƒ } t } t | | f d t ƒ} | j } |  j | | ƒ | | ƒ ƒ d  S(   Nc         s  s"   |  ] } t  j | d  ƒ Vq d S(   i   N(   R#   R$   (   t   .0t   i(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pys	   <genexpr>Ý   s    i   R.   (   t   tupleR   R   R"   R   RA   R0   R>   (   R2   R%   t   tuptyR3   R4   R5   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_tuple_of_arraysÜ   s    		c         C  s>   t  } t | d d t ƒ} | j } |  j | ƒ  | ƒ  ƒ d  S(   NR.   (    (   R(   R   RA   R0   R>   (   R2   R3   R4   R5   (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_unpack_nrtå   s    	c      	   C  sW   t  } |  j t j ƒ   } t | t j f d t ƒWd  QX|  j d t	 | j
 ƒ ƒ d  S(   NR.   s   failed to unpack int32(   R"   RO   R   RS   R   R   R<   RA   t   assertInt   strt	   exception(   R2   R3   t   raises(    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   test_invalid_unpackë   s    (!   t   __name__t
   __module__R6   R/   R?   R   RB   RD   RE   RF   RG   RH   RI   RJ   RK   RM   RN   t
   ValueErrorRQ   RR   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   Rb   Rc   Rh   (    (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyR-   k   s8   	
														t   __main__()   t
   __future__R    t   numpyR#   t   numba.unittest_supportt   unittest_supportt   unittestt   numba.compilerR   R   t   numbaR   R   R   t   supportR   R   R   t   enable_pyobj_flagst   setR/   RA   R   R   R   R   R   R   R   R   R   R   R   R    R"   R(   R+   R,   R-   Ri   t   main(    (    (    s?   lib/python2.7/site-packages/numba/tests/test_unpack_sequence.pyt   <module>   s<   																			‡