ó
\K]c           @  s"  d  d l  m Z d  d l j Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 m Z m Z m Z d d l m Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d  d l m Z d   Z d   Z d   Z d   Z d e j f d     YZ e d k re j    n  d S(   i˙˙˙˙(   t   print_functionN(   t   compile_isolated(   t   typest   utilst   jitt   njiti   (   t   tagc         C  s+   d } x t  |   D] } | | 7} q W| S(   Ni    (   t   range(   t   nt   st   i(    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   loop1   s    c         C  s.   d } x! t  |  |  D] } | | 7} q W| S(   Ni    (   R   (   t   at   bR	   R
   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   loop2   s    c         C  s1   d } x$ t  |  | |  D] } | | 7} q W| S(   Ni    (   R   (   R   R   t   cR	   R
   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   loop3   s    c         C  s+   d } x t  |   D] } | | 7} q W| S(   Ni    (   t   xrange(   R   R	   R
   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   xrange_usecase#   s    c         C  s   t  t |    S(   N(   t   lenR   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt
   range_len1)   s    c         C  s   t  t |  |   S(   N(   R   R   (   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt
   range_len2,   s    c         C  s   t  t |  | |   S(   N(   R   R   (   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt
   range_len3/   s    (   t   range_iter_lenc         C  s   t  t t |     S(   N(   R   t   iterR   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   range_iter_len13   s    c         C  s   t  t |    S(   N(   R   R   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   range_iter_len26   s    c         C  sp   t  |   } t  |  |  } t  |  | |  } g  } x6 | | | f D]% } | j | j | j | j f  qC W| S(   N(   R   t   appendt   startt   stopt   step(   R   R   R   t   r1t   r2t   r3t   tmpt   r(    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   range_attrs9   s    #c         C  sS   t  |  } t  | |  } t  | | |  } g  | | | f D] } |  | k ^ q= S(   N(   R   (   t   valR   R   R   R   R    R!   R#   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   range_containsB   s    t	   TestRangec           B  s  e  Z e d   d    Z e d   d    Z e d   d    Z e d   e j e j	 d k d  d     Z
 e d   d    Z e d   d    Z e d   d	    Z e d   d
    Z e d   d    Z e d   e j e j d  d     Z e d   d    Z RS(   t	   importantc         C  sD   t  } t | t j g  } | j } |  j | d  | d   d  S(   Ni   (   R   R   R   t   int16t   entry_pointt
   assertTrue(   t   selft   pyfunct   crest   cfunc(    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_loop1_int16K   s    	c         C  sP   t  } t | t j t j g  } | j } |  j | d d  | d d   d  S(   Ni   i   (   R   R   R   R)   R*   R+   (   R,   R-   R.   R/   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_loop2_int16R   s    	c         C  sk   t  } t | t j g d  } | j } d d	 d
 d g } x* | D]" } |  j | |   | |    qA Wd  S(   Ni   i   i   i   iö˙˙˙iő˙˙˙iţ˙˙˙(   i   i   i   (   i   i   i   (   iö˙˙˙iő˙˙˙iö˙˙˙(   iö˙˙˙iö˙˙˙iţ˙˙˙(   R   R   R   t   int32R*   t   assertEqual(   R,   R-   R.   R/   t   arglistt   args(    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_loop3_int32Y   s    		i   s   test is Python 2-specificc         C  sD   t  } t | t j f  } | j } |  j | d  | d   d  S(   Ni   (   R   R   R   R2   R*   R3   (   R,   R-   R.   R/   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_xrangeg   s    	c         C  s   t  } t j t j t j g } d d d g } xb | D]Z } t | | g  } | j } x6 | D]. } |  j | | |   | | |    q\ Wq4 Wd  S(   Ni   i    iű˙˙˙(   R   R   R)   R2   t   int64R   R*   R3   (   R,   R-   t   typelistR4   t   typR.   R/   t   arg(    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_len1o   s    	c           sŞ   t  } t j t j t j g } d d d	 g } xv | D]n   t |   g d  } | j } xF | D]> } t   f d   | D  } |  j | |   | |    q` Wq4 Wd  S(
   Ni   i   iű˙˙˙i˙˙˙˙i   c         3  s   |  ] }   |  Vq d  S(   N(    (   t   .0t   x(   R:   (    s5   lib/python2.7/site-packages/numba/tests/test_range.pys	   <genexpr>   s    (   i   i   (   i   i   (   iű˙˙˙i˙˙˙˙(	   R   R   R)   R2   R8   R   R*   t   tupleR3   (   R,   R-   R9   R4   R.   R/   R5   t   args_(    (   R:   s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_len2z   s    	c           s­   t  } t j t j t j g } d	 d
 d d g } xv | D]n   t |   g d  } | j } xF | D]> } t   f d   | D  } |  j | |   | |    qc Wq7 Wd  S(   Ni   i   i   i   iö˙˙˙iő˙˙˙iţ˙˙˙c         3  s   |  ] }   |  Vq d  S(   N(    (   R=   R>   (   R:   (    s5   lib/python2.7/site-packages/numba/tests/test_range.pys	   <genexpr>   s    (   i   i   i   (   i   i   i   (   iö˙˙˙iő˙˙˙iö˙˙˙(   iö˙˙˙iö˙˙˙iţ˙˙˙(	   R   R   R)   R2   R8   R   R*   R?   R3   (   R,   R-   R9   R4   R.   R/   R5   R@   (    (   R:   s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_len3   s    		c   	      C  s   t  } t } t j t j t j g } d d d g } xb | D]Z } t | | g  } | j } x6 | D]. } |  j | | |   | | |    qb Wq: Wd  S(   Ni   i    iű˙˙˙(	   R   R   R   R)   R2   R8   R   R*   R3   (	   R,   t
   range_funct   range_iter_funcR9   R4   R:   R.   R/   R;   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_iter_len1   s    	c         C  sb   t  } t | t j t j  g  } | j } d d d d d g } |  j | |  t |   d  S(   Ni   i   i   i   i   (   R   R   R   t   Listt   intpR*   R3   R   (   R,   RD   R.   R/   R4   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_iter_listŁ   s
    	s   range() attrs are Py3 onlyc         C  sq   t  } d
 d d d d d g } t | t j f d	  } | j } x* | D]" } |  j | |   | |    qG Wd  S(   Ni    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   R8   R*   R3   (   R,   R-   R4   R.   R/   R;   (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_attrsŤ   s    		c         C  s_  t  } d d d d d d d d  d! g	 } t t g } d	 d
 d d d d d d d d d d d g } d d d d d g } d" d# d$ d% g } | | | | } t |  } xA | D]9 }	 x0 | D]( }
 |  j | |
 |	  | |
 |	   qš WqŹ Wi d d 6d g d d& g } t | d t } xA | D]9 }	 x0 | D]( }
 |  j | |
 |	  | |
 |	   q+WqWd  S('   Ni    i   i˙˙˙˙i   i
   i   iű˙˙˙iţ˙˙˙iö˙˙˙iú˙˙˙iü˙˙˙i   i   gńżg      đżg        g      đ?gń?y                y              đ?y        ń?R   t   abct   forceobj(   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ţ˙˙˙y      đ?        y      đ?      đ?yń?        y      đ?ń?(   i   (   R&   t   Truet   FalseR   R3   R   (   R,   R-   R4   t	   bool_valst   int_valst
   float_valst   complex_valst   vallistR/   R;   R%   t   non_numeric_valst	   cfunc_obj(    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   test_range_containsť   s2    	*(   i   (   t   __name__t
   __module__R   R0   R1   R6   t   unittestt   skipIft   syst   version_infoR7   R<   RA   RB   RE   RH   t
   skipUnlessR   t   IS_PY3RI   RU   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyR'   I   s   	'	!t   __main__(!   t
   __future__R    t   numba.unittest_supportt   unittest_supportRX   RZ   t   numpyt   numba.compilerR   t   numbaR   R   R   R   t   supportR   R   R   R   R   R   R   R   t   numba.targets.rangeobjR   R   R   R$   R&   t   TestCaseR'   RV   t   main(    (    (    s5   lib/python2.7/site-packages/numba/tests/test_range.pyt   <module>   s*   "												