ó
\K]c           @  s©   d  d l  m Z d  d l Z d  d l Z d  d l j Z d  d l m	 Z	 d  d l
 m Z m Z m Z d  d l m Z d e j f d „  ƒ  YZ e d k r¥ e j ƒ  n  d S(	   iÿÿÿÿ(   t   print_functionN(   t   jit(   t   NumbaWarningt
   deprecatedt   NumbaDeprecationWarning(   t   errorst   TestBuiltinsc           B  sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C  s6   d } |  j  | j t ƒ |  j | t | j ƒ ƒ d  S(   Nsb   Fall-back from the nopython compilation path to the object mode compilation path has been detected(   t   assertEqualt   categoryR   t   assertInt   strt   message(   t   selft   wt   msg(    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt!   check_objmode_deprecation_warning   s    c      	   C  sà   d „  } t  j d t ƒ ¿ } t  j d t ƒ t | ƒ } | d d ƒ |  j t | ƒ d ƒ |  j | d j t ƒ |  j	 d t
 | d j ƒ ƒ |  j | d j t ƒ |  j	 d	 t
 | d j ƒ ƒ |  j | d ƒ Wd  QXd  S(
   Nc         S  s   i  } |  | S(   N(    (   t   xt   yt   a(    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   add   s    t   recordt   alwaysi   i   i   i    s   type inferences   object mode(   t   warningst   catch_warningst   Truet   simplefilterR   R   R   t   lenR   R	   R
   R   R   (   R   R   R   t   cfunc(    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   test_type_infer_warning   s    	c      	     s  t  j d d t  j ƒ‰  ‡  f d †  } t j d t ƒ Â } t j d t ƒ t d t	 ƒ | ƒ } | ƒ  |  j
 t | ƒ d ƒ |  j
 | d j t ƒ |  j d	 t | d j ƒ ƒ |  j
 | d
 j t ƒ |  j d t | d
 j ƒ ƒ |  j | d ƒ Wd  QXd  S(   Ni   t   dtypec             s   ˆ  S(   N(    (    (   R   (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   return_external_array.   s    R   R   t   _nrti   i    s   return typei   s!   object mode without forceobj=Truei   (   t   npt   onest   float32R   R   R   R   R   R   t   FalseR   R   R   R	   R
   R   R   (   R   R   R   R   (    (   R   s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   test_return_type_warning+   s    	c           s   t  j d d t  j ƒ‰  ‡  f d †  } t j d t ƒ @ } t j d t ƒ t | ƒ } | ƒ  |  j	 t
 | ƒ d ƒ Wd QXd S(   s9   
        Rerun test_return_type_warning with nrt
        i   R   c             s   ˆ  S(   N(    (    (   R   (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyR   K   s    R   R   i    N(   R    R!   R"   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (   R   s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt!   test_return_type_warning_with_nrtE   s    c         C  sm   d „  } t  j d t ƒ L } t  j d t ƒ t | d t ƒ} | d d ƒ |  j t | ƒ d ƒ Wd  QXd  S(   Nc         S  s   g  } |  | S(   N(    (   R   R   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyR   W   s    R   R   t   forceobji   i   i    (   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   test_no_warning_with_forceobjV   s    	c      	   C  s€  d „  } t  j d t ƒ _} t  j d t ƒ t j d d t j ƒ} t | ƒ } | | ƒ |  j	 t
 | ƒ d ƒ |  j	 | d j t ƒ |  j d t | d j ƒ ƒ |  j d t | d j ƒ ƒ |  j	 | d	 j t ƒ |  j d t | d	 j ƒ ƒ |  j d
 t | d	 j ƒ ƒ |  j	 | d j t ƒ |  j d t | d j ƒ ƒ |  j d t | d j ƒ ƒ |  j | d ƒ Wd  QXd  S(   Nc         S  s8   i  } x+ t  |  j d ƒ D] } |  | c d 9<q Wd  S(   Ni    i   (   t   ranget   shape(   R   R   t   i(    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   do_loopd   s    R   R   i   R   i    s   type inferences   WITH loopliftingi   s   WITHOUT loopliftingi   s-   compiled in object mode without forceobj=Trues   but has lifted loopsi   (   R   R   R   R   R   R    R!   R"   R   R   R   R   R	   R
   R   R   (   R   R+   R   R   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   test_loop_lift_warnc   s$    	
	c      	   C  s¯   t  d ƒ d „  ƒ } t j d t ƒ ‚ } t j d ƒ | ƒ  |  j t | ƒ d ƒ |  j | d j t ƒ |  j	 d t
 | d j ƒ ƒ |  j	 d t
 | d j ƒ ƒ Wd  QXd  S(   Nt   fooc           S  s   d  S(   N(    (    (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   barˆ   s    R   R   i   i    R.   (   R   R   R   R   R   R   R   R   t   DeprecationWarningR	   R
   R   (   R   R.   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   test_deprecated‡   s    c      
   C  s  t  j t  j ƒ } | j d d ƒ 1 t j t  j d ƒ ƒ t j t  j d ƒ ƒ Wd  QXt j d t ƒ œ } t j d ƒ | j	 ƒ  |  j
 t | ƒ d ƒ |  j
 | d j t ƒ |  j
 | d j t ƒ |  j d t | d j ƒ ƒ |  j d t | d j ƒ ƒ Wd  QXd  S(	   NR-   i
   t   sameR   R   i   i    i   (   R   t   WarningsFixerR   R   R   t   warnR   R   R   t   flushR   R   R   R	   R
   R   (   R   t   wfixR   (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   test_warnings_fixer•   s    
(
   t   __name__t
   __module__R   R   R$   R%   R'   R,   R0   R6   (    (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyR      s   						$	t   __main__(   t
   __future__R    R   t   numpyR    t   numba.unittest_supportt   unittest_supportt   unittestt   numbaR   t   numba.errorsR   R   R   R   t   TestCaseR   R7   t   main(    (    (    s8   lib/python2.7/site-packages/numba/tests/test_warnings.pyt   <module>   s    