
\K]c           @` s   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z d  d l m	 Z	 m
 Z
 d d l m Z d   Z d   Z d	 e f d
     YZ e d k r e j   n  d S(   i    (   t   print_functiont   divisiont   absolute_importN(   t   unittest_support(   t   jitt   typeofi   (   t   TestCasec         C` s   |  j  |  j |  j f S(   N(   t   startt   stopt   step(   t   sl(    (    s6   lib/python2.7/site-packages/numba/tests/test_slices.pyt   slice_passing   s    c          G` s"   t  |    } | j | j | j f S(   N(   t   sliceR   R   R	   (   t   argsR
   (    (    s6   lib/python2.7/site-packages/numba/tests/test_slices.pyt   slice_constructor   s    t
   TestSlicesc           B` s   e  Z d    Z d   Z RS(   c      	   ` sy     f d   } t  j } | d } t d t  t    d d d g } d | f d d g } d d g } xQ t j | | |  D]: \ \ } } \ }	 }
 \ } } | | |	 | | |
 |  q Wd | f d d g } d | f d d g } d d g } xQ t j | | |  D]: \ \ } } \ }	 }
 \ } } | | |	 | | |
 |  qW j t	     t
 d d d   Wd QXd S(   sC   
        Check passing a slice object to a Numba function.
        c         ` s;   t  |  | |  }   |  }  j | | | | f  d  S(   N(   R   t   assertPreciseEqual(   t   at   bt   ct   dt   et   fR
   t   got(   t   cfunct   self(    s6   lib/python2.7/site-packages/numba/tests/test_slices.pyt   check   s    i   t   nopythoni    i*   ii	   ii   ig      ?N(   Ni    (   i*   i*   (   ii(   i	   i	   (   ii(   Ni   (   i   i   (   i*   i*   (   ii(   i	   i	   (   ii(   ii(   ii(   t   syst   maxsizeR   t   TrueR   t   Nonet	   itertoolst   productt   assertRaisest	   TypeErrorR   (   R   R   t	   maxposintt	   maxnegintt   start_casest
   stop_casest
   step_casesR   R   R   R   R   R   (    (   R   R   s6   lib/python2.7/site-packages/numba/tests/test_slices.pyt   test_slice_passing   s(    	((c         C` s  t  j } | d } t d t  t  } x d
 d | d f f d d | d f f d d | d f f d d f d d f d d | d f f d d f d d | d f f d d f d | | d f f d d | d f f d | d d f f d d f g D]( \ } } | |   } |  j | |  q Wd	 S(   s@   
        Test the slice() constructor in nopython mode.
        i   R   i    i   i   ii
   i   N(    (   NN(   i   N(   Ni   (   i    i   i   (   i   i   (   i   i   i   (   NNi   (   Ni   i   (   i    i   i   (   i   Ni   (   i   i   i   (   i   i   i   (   NNi(   i
   Ni(   Ni   i(   i
   i   i(   i
   i   i(   R   R   R   R   R   R   R   (   R   R$   R%   R   R   t   expectedR   (    (    s6   lib/python2.7/site-packages/numba/tests/test_slices.pyt   test_slice_constructor9   s$    					(   t   __name__t
   __module__R)   R+   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_slices.pyR      s   	$t   __main__(   t
   __future__R    R   R   R    R   t   numbaR   t   unittestR   R   t   supportR   R   R   R   R,   t   main(    (    (    s6   lib/python2.7/site-packages/numba/tests/test_slices.pyt   <module>   s   		?