ó
\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 Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z y d  d l Z Wn e k
 rå e Z n Xy d  d l Z Wn e k
 re Z n Xd  d l Z d  d l m Z d  d l m Z m Z m Z m Z m Z m  Z  d  d l m! Z! d  d l" m# Z# d  d l$ m% Z% d	 d
 l& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- d  d l. m/ Z/ d  d l0 m1 Z1 d  d l2 m3 Z3 d  d l4 m5 Z5 d  d l m6 Z6 d	 d l7 m8 Z8 d	 d l& m9 Z9 d  d l: j; Z< e j= ƒ  d k Z> d „  Z? d „  Z@ d „  ZA d d d „ ZB d d „ ZC d d „ ZD d d „ ZE e d „ ZF d e' f d „  ƒ  YZG d  „  ZH eH ƒ  ZI d! ZJ e jK eI eJ ƒ ZL d" eG f d# „  ƒ  YZM d$ eG f d% „  ƒ  YZN d& eN f d' „  ƒ  YZO d( e' f d) „  ƒ  YZP d* e' f d+ „  ƒ  YZQ d, e' f d- „  ƒ  YZR d. eR f d/ „  ƒ  YZS d0 eS f d1 „  ƒ  YZT e9 d2 eS f d3 „  ƒ  Yƒ ZU d4 eS f d5 „  ƒ  YZV d6 eR f d7 „  ƒ  YZW d8 e j' f d9 „  ƒ  YZX d: „  ZY d; e j' f d< „  ƒ  YZZ d= e' f d> „  ƒ  YZ[ d? e j' f d@ „  ƒ  YZ\ dA e j' f dB „  ƒ  YZ] e^ dC k r}e j_ ƒ  n  d S(D   i    (   t   print_functiont   divisiont   absolute_importN(   t   chain(   t   unittest_support(   t   utilst   jitt   generated_jitt   typest   typeoft   errors(   t   _dispatcher(   t   compile_isolated(   t   NumbaWarningi   (   t   TestCaset   tagt   temp_directoryt   import_dynamict   override_env_configt   capture_cache_logt   captured_stdout(   t   as_dtype(   t   codegen(   t   _UserWideCacheLocator(   t
   Dispatcher(   t   parfor(   t   needs_lapack(   t   skip_parfors_unsupportedt   armv7lc         C` s   |  S(   N(    (   t   x(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   dummy1   s    c         C` s   |  | S(   N(    (   R   t   y(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   add5   s    c         C` s   |  | | S(   N(    (   R   R   t   z(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   addsub9   s    i   i   c         C` s   |  | | S(   N(    (   R   R   R!   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   addsub_defaults=   s    c         G` s   |  | | f S(   N(    (   R   R   R!   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   star_defaultsA   s    i   c         C` s+   t  |  t j ƒ r d „  } n	 d „  } | S(   Nc         S` s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   implG   s    c         S` s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR%   J   s    (   t
   isinstanceR   t   Complex(   R   R   R%   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   generated_usecaseE   s    	c         C` s.   t  |  t j ƒ r d „  } n d d „ } | S(   Nc         S` s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR%   Q   s    i   c         S` s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR%   T   s    (   R&   R   R'   (   R   R   R%   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   bad_generated_usecaseO   s    c         ` s™   t  | t j j t j j f ƒ rC t j d „  |  | f Dƒ Œ  ‰  n@ t  | t j t j f ƒ rm t	 | ƒ ‰  n t
 d t | ƒ ƒ ‚ d  ‡  f d † } | S(   Nc         s` s$   |  ] } t  j | j j ƒ Vq d  S(   N(   t   npt   dtypet   name(   t   .0t   ary(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pys	   <genexpr>[   s   s   Unhandled Type %sc         ` s   t  j |  j d ˆ  ƒS(   NR+   (   R*   t   onest   shape(   t   at   bR+   (   t	   out_dtype(    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   _fnb   s    (   R&   R   t   misct   NoneTypet   OmittedR*   t   result_typet   DTypet   NumberClassR   t	   TypeErrort   typet   None(   R1   R2   R+   R4   (    (   R3   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   dtype_generated_usecaseY   s    !t   BaseTestc           B` s    e  Z e d  e ƒ Z d „  Z RS(   t   nopythonc         ` s4   ‡  ‡ ‡ f d †  } t  ˆ j   ˆ ƒ ‰  ˆ  | f S(   Nc          ` s2   ˆ |  | Ž  } ˆ  |  | Ž  } ˆ j  | | ƒ d  S(   N(   t   assertPreciseEqual(   t   argst   kwargst   expectedt   result(   t   ft   pyfunct   self(    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   checkm   s    (   R   t   jit_args(   RH   RG   RI   (    (   RF   RG   RH   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   compile_funcl   s    (   t   __name__t
   __module__t   dictt   TrueRJ   RK   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR?   h   s   c          C` s(  t  d ƒ }  t j j |  d ƒ } t j | ƒ t } t t j j | d ƒ d ƒ  } | j d ƒ Wd  QXt j | d ƒ z‹ y8 t t j j | d ƒ d ƒ  } | j d ƒ Wd  QXWnL t	 t
 f k
 r} t | d	 d  ƒ } | t j t j f k rt } qn XWd  t j | d
 ƒ t j | ƒ X| S(   Nt
   test_cachet   writable_testt   write_okt   wtt   check1i@  t   write_forbiddent   check2t   errnoiý  (   R   t   ost   patht   joint   mkdirt   Falset   opent   writet   chmodt   OSErrort   IOErrort   getattrR=   RW   t   EACCESt   EPERMRO   t   shutilt   rmtree(   t   tempdirt   test_dirt   retRF   t   et   eno(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   check_access_is_preventableu   s$    ! !s9   Cannot create a directory to which writes are preventablet   TestDispatcherc           B` sã   e  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 e e j e d ƒ d „  ƒ ƒ Z e j e d ƒ d „  ƒ Z e e j e d ƒ d „  ƒ ƒ Z d „  Z RS(   c         C` sK   t  d „  ƒ } | d ƒ | j j ƒ  \ } |  j | j j | j j ƒ d  S(   Nc         S` s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   foož   s    i   (   R   t	   overloadst   valuest   assertEqualt   entry_pointRM   t   py_func(   RH   Rn   t   cr(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_dyn_pyfunc   s    
c         C` s   t  d „  ƒ } | ƒ  d  S(   Nc           S` s   d S(   Ni   (    (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ¨   s    (   R   (   RH   Rn   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_no_argument§   s    c         C` s   t  d t ƒ t ƒ } |  j | d d ƒ t d d ƒ ƒ |  j | d d ƒ t d d ƒ ƒ |  j | d d ƒ t d d ƒ ƒ |  j | d d ƒ t d d ƒ ƒ t  d d t ƒt ƒ } |  j | d d ƒ t d d ƒ ƒ |  j | d d ƒ t d	 d
 ƒ ƒ |  j t ƒ  | d d ƒ Wd  QXd  S(   NR@   i{   iÈ  gš™™™™™(@gÍÌÌÌÌÌF@y        ÍÌÌÌÌÌF@I #Ý   s   (i4, i4)i   i-   (   R   RO   R    RA   t   assertRaisesR;   (   RH   t   c_add(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_coerce_input_types¯   s    """"""c         C` sú   t  d „  ƒ } d } d } |  j | | | ƒ | | ƒ |  j t | j ƒ d ƒ |  j | | | ƒ | | ƒ |  j t | j ƒ d ƒ |  j | | | ƒ | | ƒ |  j t | j ƒ d ƒ |  j | d d ƒ | | ƒ |  j t | j ƒ d d ƒ d S(	   s8   Test compiling new version in an ambiguous case
        c         S` s   |  | S(   N(    (   R1   R2   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Ä   s    i   g      ø?i   i   i   s   didn't compile a new versionN(   R   t   assertAlmostEqualRq   t   lenRo   (   RH   Rn   t   INTt   FLT(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_ambiguous_new_versionÁ   s    c         ` sœ   g  ‰  t  d „  ƒ ‰ ‡  ‡ ‡ f d †  } g  t d ƒ D] } t j d | ƒ ^ q7 } x | D] } | j ƒ  q\ Wx | D] } | j ƒ  qw Wˆ j ˆ  ƒ d S(   sz   
        Test that (lazy) compiling from several threads at once doesn't
        produce errors (see issue #908).
        c         S` s   |  d S(   Ni   (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Ý   s    c          ` sA   y ˆ j  ˆ d ƒ d ƒ Wn  t k
 r< }  ˆ  j |  ƒ n Xd  S(   Ni   i   (   Rq   t   BaseExceptiont   append(   Rj   (   R
   Rn   RH   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   wrapperá   s    i   t   targetN(   R   t   ranget	   threadingt   Threadt   startRZ   t   assertFalse(   RH   R   t   it   threadst   t(    (   R
   Rn   RH   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt	   test_lockÖ   s    +c         C` så  t  d ƒ t ƒ } |  j | d d ƒ d ƒ |  j t | j ƒ d | j ƒ t  d d g ƒ t ƒ } |  j | d d ƒ d ƒ |  j | d d ƒ d ƒ |  j | t j d ƒ d ƒ d	 ƒ |  j t	 ƒ  } | d
 d
 ƒ Wd  QX|  j
 d t | j ƒ ƒ |  j t | j ƒ d | j ƒ t  d d g ƒ t ƒ } |  j | t j d ƒ t j d ƒ ƒ d ƒ |  j | d d ƒ d ƒ t  d d d g ƒ t ƒ } |  j t	 ƒ  } | d d ƒ Wd  QX|  j t | j ƒ d ƒ |  j d t | j ƒ ƒ d  S(   Ns   (int64,int64)g      ø?g      @i   i   s   (float64,float64)i   g      @g      @y              ð?s   No matching definitions   (float32,float32)içÿÿÿg      ð?g     ð?s   (float32,float64)s   (float64,float32)g       @s†   Ambiguous overloading for <function add [^>]*> \(float64, float64\):\n\(float32, float64\) -> float64\n\(float64, float32\) -> float64t   int64g      `>g      `>(   R   R    RA   Rq   R{   Ro   R*   t   int32Rw   R;   t   assertInt   strt	   exceptiont   float32t   assertRegexpMatchest   assertNotIn(   RH   RF   t   cm(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_explicit_signaturesî   s.    "+c         C` s:  d } |  j  t ƒ  } t d ƒ t ƒ Wd  QX|  j | d t | j ƒ ƒ |  j  t ƒ  } t d ƒ t ƒ Wd  QX|  j | d t | j ƒ ƒ |  j  t ƒ  } t d ƒ t ƒ Wd  QX|  j | d t | j ƒ ƒ t d d t ƒt ƒ |  j  t ƒ  } t d d t ƒt ƒ Wd  QX|  j | d t | j ƒ ƒ d  S(	   NsK   Signature mismatch: %d argument types given, but function takes 2 argumentss   ()i    s   (intc,)i   s   (intc,intc,intc)i   t   forceobj(   Rw   R;   R   R    RŽ   R   R   RO   (   RH   t   tmplR”   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_signature_mismatch  s    c         C` sT   t  d ƒ t ƒ } |  j t ƒ  } | d d ƒ Wd  QX|  j t | j ƒ d ƒ d  S(   Ns   (intc,intc)y              ð?sB   No matching definition for argument type(s) complex128, complex128(   R   R    Rw   R;   Rq   R   R   (   RH   RF   R”   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_matching_error_message$  s
    c         C` s   t  d „  ƒ } | j d ƒ | j ƒ  |  j t ƒ  } | j d ƒ Wd  QX|  j t | j ƒ d ƒ |  j t | j	 ƒ d ƒ d  S(   Nc         S` s   |  S(   N(    (   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   -  s    s
   (float32,)s   (int32,)s   compilation disabledi   (
   R   t   compilet   disable_compileRw   t   RuntimeErrorRq   R   R   R{   t
   signatures(   RH   Rn   t   raises(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_disabled_compilation,  s    
c         C` sv   t  d d g ƒ d „  ƒ } |  j t ƒ  } | j d ƒ Wd  QX|  j t | j ƒ d ƒ |  j t | j ƒ d ƒ d  S(   Ns
   (float32,)s   (int32,)c         S` s   |  S(   N(    (   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   9  s    s   (complex64,)s   compilation disabledi   (	   R   Rw   Rœ   Rš   Rq   R   R   R{   R   (   RH   Rn   Rž   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt&   test_disabled_compilation_through_list8  s
    c         ` so   t  d g ƒ d „  ƒ ‰  t  ‡  f d †  ƒ } |  j t ƒ  } | ƒ  Wd  QXd } |  j t | j ƒ | ƒ d  S(   Ns   (intp,)c         S` s   |  S(   N(    (   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   C  s    c           ` s!   ˆ  d ƒ ˆ  t  j d ƒ ƒ d  S(   Ni   (   R*   R/   (    (   Rn   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   barG  s    
sA   No matching definition for argument type(s) array(float64, 1d, C)(   R   Rw   R;   Rq   R   R   (   RH   R¡   Rž   t   m(    (   Rn   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt%   test_disabled_compilation_nested_callB  s    c         ` s  t  d „  ƒ ‰  d } |  j t ƒ  } t j g  ƒ Wd QX|  j | t | j ƒ ƒ |  j ˆ  g  ƒ g  ƒ t  d t	 ƒ ˆ  j
 ƒ } |  j t ƒ  } | g  ƒ Wd QX|  j | t | j ƒ ƒ t  ‡  f d †  ƒ } |  j | ƒ  g  ƒ | j j ƒ  \ } |  j t | j ƒ d ƒ d S(   sÝ   
        Failure in computing the fingerprint cannot affect a nopython=False
        function.  On the other hand, with nopython=True, a ValueError should
        be raised to report the failure with fingerprint.
        c         S` s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   W  s    s(   cannot compute fingerprint of empty listNR@   c          ` s4   t  ƒ  g  }  x  t d ƒ D] } ˆ  |  ƒ }  q W|  S(   Ni
   (   t   objectRƒ   (   R   Rˆ   (   Rn   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR¡   i  s
    i   (   R   Rw   t
   ValueErrorR   t   compute_fingerprintRŽ   R   R   Rq   RO   Rs   Ro   Rp   R{   t   lifted(   RH   t   errmsgRž   t
   strict_fooR¡   Rt   (    (   Rn   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_fingerprint_failureQ  s    c   	      C` s\  t  d t ƒ d „  ƒ } |  j | d ƒ d ƒ t j } t j j ƒ  t | ƒ } t j	 | ƒ } |  j | d t | ƒ ƒ t j
 | ƒ } |  j | d t | ƒ ƒ |  j | | ƒ t | ƒ } ~ ~ |  j | d t | ƒ ƒ t j
 | ƒ } |  j | t | ƒ ƒ t j | ƒ } ~ t j j ƒ  |  j | t | ƒ ƒ t j
 | ƒ |  j | ƒ  d ƒ d S(   s:   
        Test serialization of Dispatcher objects
        R@   c         S` s   |  d S(   Ni   (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   z  s    i   i   N(   R   RO   Rq   R   t   _memot   _recentt   clearR{   t   picklet   dumpst   loadst   assertIst   idt   weakreft   refR=   (	   RH   Rn   t   memot	   memo_sizet   serialized_foot   foo_rebuiltt   id_origt   new_fooR´   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_serializationv  s,    	s   Unaligned loads unsupportedc   	      ` s  d „  ‰  t  d t ƒ ˆ  ƒ ‰ d ‰ t t j ˆ ƒ ƒ ‰ t j } t j ƒ  j | ƒ  j } t j ˆ | d d | ƒ} | d  j	 t j ƒ j
 ˆ ˆ ƒ } | d j	 t j ƒ j
 ˆ ˆ ƒ } | j } | j } ‡  ‡ ‡ ‡ f d †  } | d | ƒ | d	 | ƒ | d
 | ƒ | d | ƒ d  S(   Nc         S` s   t  j j |  d ƒ S(   Ni   (   R*   t   linalgt   matrix_power(   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ¦  s    R@   i@   i   R+   iÿÿÿÿc         ` si   t  j ˆ d t  j ƒj ˆ ˆ ƒ | d  d  … d  d  … f <ˆ  | ƒ } ˆ | ƒ } t  j j | | ƒ d  S(   NR+   (   R*   t   aranget
   complex128t   reshapet   testingt   assert_allclose(   R,   R1   RD   t   got(   Rn   t   jitfoot   nt   r(    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRI   º  s    :t   C_contig_alignedt   F_contig_alignedt   C_contig_misalignedt   F_contig_misaligned(   R   RO   t   intR*   t   sqrtt   int8R¿   t   itemsizeR¾   t   viewRÀ   t   T(	   RH   t   dtt   countt   tmpRÇ   RÉ   RÈ   RÊ   RI   (    (   Rn   RÄ   RÅ   RÆ   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_misaligned_array_dispatch¢  s     		""		c   	      ` s9  d „  ‰  t  d t ƒ ˆ  ƒ ‰ d ‰ t t j ˆ ƒ ƒ ‰ t j } t j ƒ  j | ƒ  j } t j ˆ | d d | ƒ} | d  j	 t j ƒ j
 ˆ ˆ ƒ } | d j	 t j ƒ j
 ˆ ˆ ƒ } | j } | j } t ‡  ‡ ‡ ‡ f d † } | d | d	 t ƒ| d
 | d	 t ƒ| d | d	 t ƒ| d | d	 t ƒd  S(   Nc         S` s   t  j |  ƒ S(   N(   R*   t   sum(   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Î  s    R@   i@   i   R+   iÿÿÿÿc         ` s~   t  j ˆ d t  j ƒj ˆ ˆ ƒ | d  d  … d  d  … f <| rO t | j _ n  ˆ  | ƒ } ˆ | ƒ } t  j j | | ƒ d  S(   NR+   (	   R*   R¾   R¿   RÀ   R\   t   flagst	   writeableRÁ   RÂ   (   R,   R1   t   disable_write_bitRD   RÃ   (   Rn   RÄ   RÅ   RÆ   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRI   â  s    :RÇ   RØ   RÈ   RÉ   RÊ   (   R   RO   RË   R*   RÌ   RÍ   R¿   RÎ   R¾   RÏ   RÀ   RÐ   R\   (	   RH   RÑ   RÒ   RÓ   RÇ   RÉ   RÈ   RÊ   RI   (    (   Rn   RÄ   RÅ   RÆ   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt#   test_immutability_in_array_dispatchÊ  s$    		""		
c   
      ` sv  d „  ‰  t  d t ƒ ˆ  ƒ ‰ ‡ f d †  } d ‰ d ‰ t j } t j ƒ  j | ƒ  j } t j ˆ | d d | ƒ} | d  j t j ƒ j ˆ ˆ ˆ ˆ ˆ ˆ ƒ } | | d	 t ƒ | d j t j ƒ j ˆ ˆ ˆ ˆ ˆ ˆ ƒ } | | d	 t	 ƒ | j
 } | | d
 t ƒ | j
 } | | d
 t	 ƒ ‡  ‡ ‡ ‡ f d †  }	 |	 d | ƒ |	 d | ƒ |	 d | ƒ |	 d | ƒ d  S(   Nc      	   S` s5   t  j j |  d d d d d  d  … d  d  … f d ƒ S(   Ni    i   (   R*   R¼   R½   (   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ÷  s    R@   c         ` sd   ˆ  j  |  j j | ƒ | d k r; ˆ  j  |  j j t ƒ n  | d k r` ˆ  j  |  j j t ƒ n  d  S(   Nt   Ct   F(   Rq   RÖ   t   alignedt   c_contiguousRO   t   f_contiguous(   t   arrt   layoutRÜ   (   RH   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   check_propertiesü  s
    iÙ  i   i   R+   iÿÿÿÿRÚ   RÛ   c         ` su   t  j ˆ d t  j ƒj ˆ ˆ ˆ ˆ ˆ ˆ ƒ | d  d  … d  d  … f <ˆ  | ƒ } ˆ | ƒ } t  j j | | ƒ d  S(   NR+   (   R*   R¾   R¿   RÀ   RÁ   RÂ   (   R,   R1   RD   RÃ   (   Rn   RÄ   RÅ   RÆ   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRI     s
    .RÊ   RÇ   RÈ   RÉ   (   R   RO   R*   RÍ   R¿   RÎ   R¾   RÏ   RÀ   R\   RÐ   (
   RH   Rá   RÑ   RÒ   RÓ   RÇ   RÉ   RÈ   RÊ   RI   (    (   Rn   RÄ   RÅ   RÆ   RH   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt-   test_misaligned_high_dimension_array_dispatchó  s.    					c         C` s=  d „  } t  d t ƒ | ƒ } | t j d ƒ ƒ | t j d ƒ ƒ | t j t ƒ ƒ |  j t | j	 ƒ d ƒ t
 j f t
 j f t
 j f g } |  j | j	 | ƒ t  t
 j f g d t ƒ| ƒ } | t j d ƒ ƒ | t j d ƒ ƒ | t j t ƒ ƒ |  j t | j	 ƒ d ƒ t
 j f g } |  j | j	 | ƒ d  S(	   Nc         S` s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ,  s    R@   i   y               @i
   i   y      ð?       @y      ð?       @(   R   RO   R*   R¿   R   t   bool_R\   Rq   R{   R   R   (   RH   Rn   RÄ   t   expected_sigs(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt$   test_dispatch_recompiles_for_scalars&  s    	!!(   RL   RM   Ru   Rv   Ry   R~   R‹   R•   R˜   R™   RŸ   R    R£   Rª   R»   R   t   unittestt   skipIft
   _is_armv7lRÔ   RÙ   Râ   Rå   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRm   ›   s&   	
					%				
		%	,')2t   TestSignatureHandlingc           B` s5   e  Z d  Z e d ƒ d „  ƒ Z d „  Z d „  Z RS(   s<   
    Test support for various parameter passing styles.
    t	   importantc         C` s7  |  j  t ƒ \ } } | d d d d d ƒ| d d d ƒ | d d d d d d ƒ |  j t | j ƒ d ƒ |  j t ƒ   } | d d d d d d	 ƒWd
 QX|  j d t | j	 ƒ ƒ |  j t ƒ  } | ƒ  Wd
 QX|  j d t | j	 ƒ ƒ |  j t ƒ  } | d d d d ƒWd
 QX|  j d t | j	 ƒ ƒ d
 S(   s?   
        Test passing named arguments to a dispatcher.
        i   R!   i
   R   i   R   i   i   i   Ns%   too many arguments: expected 3, got 4s'   not enough arguments: expected 3, got 0s   missing argument 'z'(
   RK   R"   Rq   R{   Ro   Rw   R;   RŽ   R   R   (   RH   RF   RI   R”   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_named_argsH  s     		c         C` se  |  j  t ƒ \ } } | d d d d d ƒ| d d d ƒ | d d d d d d ƒ | d d d ƒ| d d ƒ | d d d d ƒ | d ƒ | d d ƒ |  j t ƒ   } | d d d d d d ƒWd	 QX|  j d
 t | j ƒ ƒ |  j t ƒ  } | ƒ  Wd	 QX|  j d t | j ƒ ƒ |  j t ƒ  } | d d d d ƒ Wd	 QX|  j d t | j ƒ ƒ d	 S(   s?   
        Test omitting arguments with a default value.
        i   R!   i
   R   i   R   i   i   Ns%   too many arguments: expected 3, got 4s0   not enough arguments: expected at least 1, got 0s   missing argument 'x'(   RK   R#   Rw   R;   RŽ   R   R   (   RH   RF   RI   R”   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_default_args`  s(    
		c      
   C` sb  |  j  t ƒ \ } } | d ƒ | d d ƒ | d d d ƒ | d d d d ƒ | d d d d d ƒ | d d ƒ | d d d d ƒ | d d d ƒ|  j t ƒ  } | d d d d ƒWd QX|  j d	 t | j ƒ ƒ |  j t ƒ  } | d d d
 d ƒWd QX|  j d	 t | j ƒ ƒ |  j t ƒ  } | d d d ƒWd QX|  j d	 t | j ƒ ƒ d S(   sJ   
        Test a compiled function with starargs in the signature.
        i   i   i   i   i   R   R   Ns!   some keyword arguments unexpectedR!   (   RK   R$   Rw   R;   RŽ   R   R   (   RH   RF   RI   R”   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_star_args{  s$    
(   RL   RM   t   __doc__R   Rë   Rì   Rí   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRé   C  s   	t   TestSignatureHandlingObjectModec           B` s   e  Z d  Z e d e ƒ Z RS(   s<   
    Sams as TestSignatureHandling, but in object mode.
    R–   (   RL   RM   Rî   RN   RO   RJ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRï   “  s   t   TestGeneratedDispatcherc           B` sA   e  Z d  Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z d „  Z RS(   s#   
    Tests for @generated_jit.
    Rê   c         C` sµ   t  d t ƒ t ƒ } |  j | d ƒ d
 ƒ |  j | d d ƒ d ƒ |  j | d d d d ƒ d ƒ |  j | d ƒ d ƒ |  j | d d ƒ d ƒ |  j | d d d d	 ƒ d ƒ d  S(   NR@   i   i   R   R   i   y              ð?i*   i   i   i   i   y      @      ð?y      E@      ð?y      @      ð?(   R   RO   R(   Rq   (   RH   RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_generated   s    c         C` s¾   t  d t ƒ t ƒ } t j d d t j ƒ} t j d d t j ƒ} |  j | | | ƒ j t j ƒ |  j | | | d t j d ƒ ƒj t j	 ƒ |  j | | | d t j	 ƒj t j	 ƒ d  S(   NR@   i
   R+   R   (   i
   (   i
   (
   R   RO   R>   R*   R/   R‘   t   float64Rq   R+   R   (   RH   RF   R1   R2   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_generated_dtypeª  s    .c         C` s   t  d t ƒ t ƒ } |  j t ƒ  } | d ƒ Wd QX|  j d t | j ƒ ƒ |  j t ƒ  } | d ƒ Wd QX|  j d t | j ƒ ƒ d S(   sz   
        Check error reporting when implementation signature doesn't match
        generating function signature.
        R@   y              ð?NsG   should be compatible with signature '(x, y=5)', but has signature '(x)'i   sL   should be compatible with signature '(x, y=5)', but has signature '(x, y=6)'(   R   RO   R)   Rw   R;   RŽ   R   R   (   RH   RF   Rž   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_signature_errors³  s    		(   RL   RM   Rî   R   Rñ   Ró   Rô   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRð   ›  s   
	t   TestDispatcherMethodsc           B` s³   e  Z d  „  Z d „  Z e d ƒ d „  ƒ Z d „  Z d d „ Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z e j e d k d ƒ e j e d k d ƒ d „  ƒ ƒ Z d „  Z d „  Z RS(   c         ` sÏ   d ‰  t  ‡  f d †  ƒ } |  j | d ƒ d ƒ |  j | d ƒ d ƒ |  j t | j ƒ d ƒ d ‰  |  j | d ƒ d ƒ | j ƒ  |  j t | j ƒ d ƒ |  j | d ƒ d ƒ |  j | d ƒ d ƒ d  S(   Ni   c         ` s   |  ˆ  S(   N(    (   R   (   t   closure(    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Ê  s    i   g      ø?g      @i   g      @(   R   RA   Rq   R{   R   t	   recompile(   RH   Rn   (    (   Rö   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_recompileÇ  s    
c         ` s£   d ‰  t  d ƒ ‡  f d †  ƒ } |  j | d ƒ d ƒ |  j | d ƒ d ƒ d ‰  |  j | d ƒ d ƒ | j ƒ  |  j | d ƒ d ƒ |  j | d ƒ d ƒ d  S(   Ni   s   int32(int32)c         ` s   |  ˆ  S(   N(    (   R   (   Rö   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Ý  s    i   g      ø?i   (   R   RA   R÷   (   RH   Rn   (    (   Rö   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_recompile_signaturesÙ  s    
Rê   c         C` s£   t  d „  ƒ } | d d ƒ | d d ƒ | d d ƒ | j ƒ  } |  j t | ƒ d ƒ xD | j ƒ  D]6 } |  j d | ƒ |  j d | ƒ |  j d | ƒ qe Wd  S(   Nc         S` s   |  | S(   N(    (   t   explicit_arg1t   explicit_arg2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ì  s    i   g      ð?i   Rn   Rú   Rû   (   R   t   inspect_llvmRq   R{   Rp   RŽ   (   RH   Rn   t   llvmst   llvm_bc(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_inspect_llvmé  s    c         C` s†   t  d „  ƒ } | d d ƒ | d d ƒ | d d ƒ | j ƒ  } |  j t | ƒ d ƒ x' | j ƒ  D] } |  j d | k ƒ qe Wd  S(   Nc         S` s   |  | S(   N(    (   Rú   Rû   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn     s    i   g      ð?i   Rn   (   R   t   inspect_asmRq   R{   Rp   t
   assertTrue(   RH   Rn   t   asmst   asm(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_inspect_asm  s    t    c         C` sˆ   | r! d j  t | ƒ | ƒ } n  t j d d ƒ d } t | ƒ } d j  | | | ƒ } |  j t | ƒ | ƒ |  j t | j ƒ ƒ d  S(   Ns   {}{}t   .i   i    s   ^digraph "CFG for \'_ZN{}{}{}(	   t   formatR{   RL   t   splitR’   R   R  t   callablet   display(   RH   t   cfgR   t   module_namet
   module_lent   prefix(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   _check_cfg_display  s    c   
      C` s;  t  d „  ƒ } t j d ƒ } t j d ƒ } t j d ƒ } | | ƒ | | ƒ | | ƒ | j ƒ  } |  j t | ƒ d ƒ | j ƒ  \ } } } |  j t | | | g ƒ t t d „  | | | g ƒ ƒ ƒ x! | j	 ƒ  D] }	 |  j
 |	 ƒ qØ W|  j t t | j	 ƒ  ƒ ƒ d ƒ | j d | j d ƒ }	 |  j
 |	 ƒ d  S(	   Nc         S` s
   |  j  ƒ  S(   N(   RÕ   (   t	   the_array(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   %  s    i   i   c         S` s   t  |  ƒ f S(   N(   R	   (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   <lambda>:  R  t	   signaturei    (   i   i   (   i   i   i   (   R   R*   R/   t   inspect_cfgRq   R{   t   keyst   sett   mapRp   R  t   listR   (
   RH   Rn   t   a1t   a2t   a3t   cfgst   s1t   s2t   s3R  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_inspect_cfg"  s"    


""c         C` s   t  d „  ƒ } t j d ƒ } t j d	 ƒ } t j d
 ƒ } | | ƒ | | ƒ | | ƒ | j d | j d d d ƒ } |  j | d d ƒd  S(   Nc         S` s
   |  j  ƒ  S(   N(   RÕ   (   R  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   H  s    i   R  i    t   show_wrappert   pythonR   t   cpython(   i   i   (   i   i   i   (   R   R*   R/   R  R   R  (   RH   Rn   R  R  R  R  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt$   test_inspect_cfg_with_python_wrapperD  s    


	c         C` s„   t  d „  ƒ } | d d ƒ | j t j ƒ  ƒ t | j | j d j ƒ } t ƒ   } | j ƒ  Wd  QX| | j	 ƒ  k s€ t
 ‚ d  S(   Nc         S` s   |  | S(   N(    (   R1   R2   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Z  s    i   i   i    (   R   t   inspect_typesR   t   StringIOR   Ro   R   t   type_annotationR   t   getvaluet   AssertionError(   RH   Rn   RD   t   out(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_inspect_typesY  s    c      
   C` s»   t  d „  ƒ } | d ƒ | d ƒ t ƒ   } | j ƒ  Wd  QXt ƒ   } | j d | j d ƒ Wd  QXt ƒ   } | j d | j d ƒ Wd  QX|  j | j ƒ  | j ƒ  | j ƒ  ƒ d  S(   Nc         S` s   |  d S(   Ni   (    (   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   i  s    i   g      ð?R  i    (   R   R   R$  R   Rq   R'  (   RH   Rn   t   totalt   firstt   second(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt!   test_inspect_types_with_signatureh  s    

s#   please install the 'jinja2' packages%   please install the 'pygments' packagec      
   C` sð   t  d „  ƒ } | d d ƒ t ƒ   | j d t ƒ } Wd  QXx^ | j j ƒ  D]M \ } } t } x+ | d D] } d | d k rk t } qk qk W|  j | ƒ qN W|  j t	 ƒ # } | j d t
 j ƒ  d t ƒ Wd  QX|  j d t | j ƒ ƒ d  S(	   Nc         S` s   |  | S(   N(    (   R1   R2   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ~  s    i   i   t   prettyt   pygments_linest   spant   files$   `file` must be None if `pretty=True`(   R   R   R$  RO   t   annt   itemsR\   R  Rw   R¥   R   R%  RŽ   R   R   (   RH   Rn   R3  t   kt   vt
   span_foundt   lineRž   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_inspect_types_pretty{  s    
"	c         ` sk   t  d „  ƒ ‰  ˆ  d ƒ ˆ  d ƒ t t j ‡  f d †  ˆ  j Dƒ ƒ ƒ } ˆ  j ƒ  } |  j | | ƒ d  S(   Nc         S` s   |  d S(   Ni   (    (   R1   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ˜  s    i   gÍÌÌÌÌÌô?c         3` s$   |  ] } ˆ  j  | ƒ j ƒ  Vq d  S(   N(   t   get_annotation_infoR4  (   R-   Rˆ   (   Rn   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pys	   <genexpr>Ÿ  s   (   R   RN   R   t   from_iterableR   R:  Rq   (   RH   RD   RE   (    (   Rn   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_get_annotation_info—  s    

c   
      C` s   d „  } t  | ƒ } t j d g g ƒ } t j d d g d d g g d d ƒ} t j d d g d d g g d d ƒ} | | d	 d
 ƒ } | | d	 d
 ƒ } |  j d | | d
 d
 ƒ ƒ | | d	 d
 ƒ } | | d	 d
 ƒ }	 |  j | | ƒ |  j | |	 ƒ d S(   sO  
        This test an issue with the dispatcher when an array that is both
        C and F contiguous is supplied as the first signature.
        The dispatcher checks for F contiguous first but the compiler checks
        for C contiguous first. This results in an C contiguous code inserted
        as F contiguous function.
        c         S` s   |  | | f S(   N(    (   t   ARˆ   t   j(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRG   ¬  s    g      ð?g        g       @g      @t   orderRÚ   RÛ   i   i    N(   R   R*   t   arrayRq   (
   RH   RG   t   cfunct   ary_c_and_ft   ary_ct   ary_ft   exp_ct   exp_ft   got_ct   got_f(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt%   test_issue_with_array_layout_conflict¤  s    	''N(   RL   RM   Rø   Rù   R   Rÿ   R  R  R  R#  R*  R.  Ræ   Rç   t   jinja2R=   t   pygmentsR9  R<  RI  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRõ   Å  s   				"			$	t   BaseCacheTestc           B` sS   e  Z d Z d Z d  „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   c         C` s…   t  d ƒ |  _ t j j d |  j ƒ t j j |  j |  j d ƒ |  _ t j j |  j d ƒ |  _	 t
 j |  j |  j ƒ d  |  _ d  S(   NRP   i    s   .pyt   __pycache__(   R   Rg   t   sysRY   t   insertRX   RZ   t   modnamet   modfilet	   cache_dirRe   t   copyt   usecases_fileR=   t   maxDiff(   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   setUpÈ  s    "c         C` s-   t  j j |  j d  ƒ t  j j |  j ƒ d  S(   N(   RN  t   modulest   popRP  R=   RY   t   removeRg   (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   tearDownÐ  s    c         C` s  t  j j |  j d  ƒ } | d  k	 rÐ t  j d k rB | j g } n; | j j d ƒ rc | j g } n | j d | j d g } xP | D]E } y t	 j
 | ƒ Wq„ t k
 rÈ } | j t j k rÉ ‚  qÉ q„ Xq„ Wn  t |  j ƒ } |  j | j j d ƒ |  j ƒ | S(	   Ni   s   .pycs   .pyot   ct   ot   co(   i   (   s   .pycs   .pyo(   RN  RW  RX  RP  R=   t   version_infot
   __cached__t   __file__t   endswithRX   t   unlinkR`   RW   t   ENOENTR   Rq   t   rstripRQ  (   RH   t   oldt   cachedt   fnRj   t   mod(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   import_moduleÔ  s     c         C` si   y6 g  t  j |  j ƒ D] } | j d ƒ s | ^ q SWn, t k
 rd } | j t j k r` ‚  n  g  SXd  S(   Ns   .pycs   .pyo(   s   .pycs   .pyo(   RX   t   listdirRR  Ra  R`   RW   Rc  (   RH   Rg  Rj   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   cache_contentsì  s    c         ` s&   t  ‡  f d †  t ˆ  j ƒ  ƒ Dƒ ƒ S(   Nc         3` s9   |  ]/ } | t  j j t  j j ˆ  j | ƒ ƒ f Vq d  S(   N(   RX   RY   t   getmtimeRZ   RR  (   R-   Rg  (   RH   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pys	   <genexpr>ö  s   (   RN   t   sortedRk  (   RH   (    (   RH   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   get_cache_mtimesõ  s    c         C` s)   |  j  ƒ  } |  j t | ƒ | | ƒ d  S(   N(   Rk  Rq   R{   (   RH   RÅ   R[  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   check_pycacheù  s    c         C` s   d  S(   N(    (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt
   dummy_testý  s    N(   RL   RM   R=   RT  RP  RV  RZ  Ri  Rk  Rn  Ro  Rp  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRL  À  s   							t   BaseCacheUsecasesTestc           B` sS   e  Z e j j e ƒ Z e j j e d  ƒ Z d Z	 d „  Z
 d „  Z d d „ Z RS(   s   cache_usecases.pyt   dispatcher_caching_test_fodderc         C` s“   d t  d |  j d |  j ƒ } t j t j d | g d t j d t j ƒ} | j ƒ  \ } } | j	 d k r t
 d | j	 | j ƒ  f ƒ ‚ n  d  S(	   Nsœ   if 1:
            import sys

            sys.path.insert(0, %(tempdir)r)
            mod = __import__(%(modname)r)
            mod.self_test()
            Rg   RP  s   -ct   stdoutt   stderri    s/   process failed with code %s: stderr follows
%s
(   RN   Rg   RP  t
   subprocesst   PopenRN  t
   executablet   PIPEt   communicatet
   returncodeR(  t   decode(   RH   t   codet   popenR)  t   err(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   run_in_separate_process  s    
c         C` sÅ   |  j  d ƒ | j } |  j | d d ƒ d ƒ |  j  d ƒ |  j | d d ƒ d ƒ |  j  d ƒ | j } |  j | d d ƒ d ƒ |  j  d ƒ |  j | d d ƒ d ƒ |  j  d ƒ | j ƒ  d  S(   Ni    i   i   i   g      @g      @i   (   Ro  t   add_usecaseRA   t   add_objmode_usecaset	   self_test(   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   check_module  s    		c         C` sf   | j  } |  j t | j j ƒ  ƒ | | j ƒ | d  k	 rb |  j t | j j ƒ  ƒ | | j ƒ n  d  S(   N(   t   statsRq   RÕ   t
   cache_hitsRp   R=   t   cache_misses(   RH   t   funct   hitst   missest   st(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt
   check_hits)  s
    	%N(   RL   RM   RX   RY   t   dirnameR`  t   hereRZ   RT  RP  R  Rƒ  R=   R‹  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRq    s   		t	   TestCachec           B` s  e  Z e d  ƒ d „  ƒ Z e 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 e e j e j d k d ƒ d „  ƒ ƒ Z e e j e j d k d ƒ d „  ƒ ƒ Z d „  Z RS(   Rê   c         C` s¸  |  j  d ƒ |  j ƒ  } |  j  d ƒ | j } |  j | d d ƒ d ƒ |  j  d ƒ |  j | d d ƒ d ƒ |  j  d ƒ |  j | d d ƒ | j } |  j | d d ƒ d ƒ |  j  d ƒ |  j | d d ƒ d ƒ |  j  d ƒ |  j | d d ƒ | j } | | j d ƒ } |  j t | ƒ d ƒ | | j	 d ƒ } |  j t | ƒ d ƒ |  j  d
 ƒ |  j | d d ƒ | j
 } |  j | d d ƒ d ƒ |  j | d d ƒ d ƒ |  j ƒ  d  S(   Ni    i   i   i   g      @g      @i   i   g     ÀE@i	   y              @(   i   g     ÀE@(   i   g     ÀE@y       @      @(   Ro  Ri  R€  RA   R‹  R  t   record_returnt   aligned_arrt   tuplet
   packed_arrR(   R  (   RH   Rh  RF   t   rec(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_caching3  s4    				c         C` s¬   |  j  d ƒ |  j ƒ  } |  j  d ƒ | j } |  j | d d ƒ d ƒ |  j  d ƒ |  j | d t j d ƒ ƒ d t j d ƒ d ƒ |  j  d ƒ |  j | d d ƒ d  S(   Ni    i   i   i   i   (   Ro  Ri  R€  RA   R*   R¾   R‹  (   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_caching_nrt_prunedV  s    	3c         C` sø   |  j  ƒ  } |  j | j d d ƒ d ƒ |  j d ƒ | j } |  j | d d ƒ d ƒ |  j d ƒ |  j  ƒ  } | j } |  j | d d ƒ d ƒ |  j d ƒ | j } |  j | d d ƒ d ƒ |  j d ƒ |  j | d d ƒ d ƒ |  j d ƒ d  S(   Ni   i   i   i   g      @g      @(   Ri  RA   t   innerRo  t   outer_uncachedt   outer(   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_inner_then_outerd  s    			c         C` sÃ   |  j  ƒ  } |  j | j d d ƒ d ƒ |  j d ƒ |  j | j d d ƒ d ƒ |  j d ƒ |  j  ƒ  } | j } |  j | d d ƒ d ƒ |  j d ƒ |  j | d d ƒ d ƒ |  j d ƒ d  S(   Ni   i   i   i   g      @g      @i   (   Ri  RA   R˜  Ro  R—  R–  (   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_outer_then_innerx  s    	c         C` s?   |  j  ƒ  } | j } |  j | d d ƒ d ƒ |  j d ƒ d  S(   Ni   i   i   i    (   Ri  t   add_nocache_usecaseRA   Ro  (   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_no_caching†  s    	c         C` sš   |  j  ƒ  } t j d t ƒ C } t j d t ƒ | j } |  j | d ƒ d ƒ |  j d ƒ Wd  QX|  j	 t
 | ƒ d ƒ |  j d t | d j ƒ ƒ d  S(   Nt   recordt   alwaysi   i   i    i   sC   Cannot cache compiled function "looplifted" as it uses lifted loops(   Ri  t   warningst   catch_warningsRO   t   simplefilterR   t
   loopliftedRA   Ro  Rq   R{   RŽ   R   t   message(   RH   Rh  t   wRF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_looplifted  s    		c         C` s   |  j  ƒ  } t j d t ƒ F } t j d t ƒ | j } t j j	 | ƒ  | j
 ƒ |  j d ƒ Wd  QX|  j t | ƒ d ƒ |  j d t | d j ƒ ƒ d  S(   NR  Rž  i    i   sI   Cannot cache compiled function "use_big_array" as it uses dynamic globals(   Ri  RŸ  R   RO   R¡  R   t   use_big_arrayR*   RÁ   t   assert_equalt   biggieRo  Rq   R{   RŽ   R   R£  (   RH   Rh  R¤  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_big_arrayœ  s    		c         C` sÀ   |  j  ƒ  } x­ | j | j | j g D]“ } t j d t ƒ : } t j d t ƒ |  j	 | d ƒ d ƒ |  j
 d ƒ Wd  QX|  j t | ƒ d ƒ |  j d j | j ƒ t | d j ƒ ƒ q% Wd  S(   NR  Rž  g        i    i   s#   Cannot cache compiled function "{}"(   Ri  t	   use_c_sint   use_c_sin_nest1t   use_c_sin_nest2RŸ  R   RO   R¡  R   RA   Ro  Rq   R{   RŽ   R  RL   R   R£  (   RH   Rh  RF   R¤  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_ctypesª  s    c         C` sÆ   |  j  ƒ  } t j d t ƒ b } t j d t ƒ | j } |  j | d ƒ d ƒ | j } |  j | d ƒ d ƒ |  j	 d ƒ Wd  QX|  j
 t | ƒ d ƒ x' | D] } |  j d t | j ƒ ƒ qŸ Wd  S(	   NR  Rž  i   i   i   i    i   s(   Cannot cache compiled function "closure"(   Ri  RŸ  R   RO   R¡  R   t   closure1RA   t   closure2Ro  Rq   R{   RŽ   R   R£  (   RH   Rh  R¤  RF   t   item(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_closure¼  s    			c         C` s|  |  j  ƒ  } | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j | j d ƒ | j | j d ƒ | j d d ƒ |  j	 ƒ  } |  j
 | j d d ƒ |  j  ƒ  } |  j | | ƒ | j } | d d ƒ |  j
 | d d ƒ | d d ƒ |  j
 | d d ƒ | j } | d d ƒ |  j
 | d d ƒ |  j |  j	 ƒ  | ƒ |  j ƒ  |  j |  j	 ƒ  | ƒ d  S(   Ni   i   g      @g      @i    i   (   Ri  R€  R  R—  R˜  R  R’  R  R(   Rn  R‹  t   assertIsNotRq   R  (   RH   Rh  t   mtimest   mod2RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_cache_reuseÍ  s0    		
c         C` sª   |  j  ƒ  } | j } |  j | d d ƒ d ƒ t |  j d ƒ  } | j d ƒ Wd  QX|  j  ƒ  } | j } |  j | d d ƒ d ƒ | j } |  j | d d ƒ d ƒ d  S(   Ni   i   i   R1   s   
Z = 10
i   (   Ri  R€  RA   R]   RQ  R^   R  (   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_cache_invalidateì  s    			c         C` sº   |  j  ƒ  } | j } |  j | d d ƒ d ƒ |  j  ƒ  } | j } d | _ |  j | d d ƒ d ƒ | j ƒ  |  j | d d ƒ d ƒ |  j  ƒ  } | j } |  j | d d ƒ d ƒ d  S(   Ni   i   i   i
   i   (   Ri  R€  RA   t   ZR÷   (   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRø   û  s    			
	c         C` sN   |  j  ƒ  } | j } |  j | d ƒ d ƒ | j } |  j | d ƒ d ƒ d  S(   Ni   i   i   (   Ri  t   renamed_function1RA   t   renamed_function2(   RH   Rh  RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_same_names  s
    		c         C` s¨   d d l  m } | j } t d d d ƒ } zf | | _ t j | ƒ } t j | | ƒ } |  j | ƒ t	 t
 _ t j | | ƒ } |  j | t ƒ Wd  | | _ t
 ` Xd  S(   Ni   (   t   functiont   passs   tests/dummy_module.pyt   exec(   t   dummy_moduleR»  t   __code__Rš   t   inspectt   getfileR   t   from_functiont   assertIsNoneRO   RN  t   frozent   assertIsInstance(   RH   R»  t   old_codet   code_objt   sourcet   locator(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_frozen  s    				c         C` s²   |  j  ƒ  } | j } |  j t j | j j d t ƒ|  j | d d ƒ d ƒ |  j	 | d d ƒ |  j  ƒ  } | j } |  j | d d ƒ d ƒ |  j	 | d d ƒ |  j
 d ƒ d S(   sy   
        With a disabled __pycache__, test there is a working fallback
        (e.g. on the user-wide cache dir)
        t   ignore_errorsi   i   i   i    i   N(   Ri  R€  t
   addCleanupRe   Rf   R„  t
   cache_pathRO   RA   R‹  Ro  (   RH   Rh  RF   R´  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   _test_pycache_fallback+  s    		t   nts3   cannot easily make a directory read-only on Windowsc         C` sO   t  j |  j ƒ j } t  j |  j d ƒ |  j t  j |  j | ƒ |  j ƒ  d  S(   Ni@  (   RX   t   statRg   t   st_modeR_   RÌ  RÎ  (   RH   t	   old_perms(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_non_creatable_pycacheD  s    c         C` sk   t  j j |  j d ƒ } t  j | ƒ t  j | ƒ j } t  j | d ƒ |  j t  j | | ƒ |  j	 ƒ  d  S(   NRM  i@  (
   RX   RY   RZ   Rg   R[   RÐ  RÑ  R_   RÌ  RÎ  (   RH   t   pycacheRÒ  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_non_writable_pycacheO  s    c         ` s
  t  j d d g ‰  ˆ  d d d d g 7‰  y t j ˆ  d g ƒ } Wn* t j k
 rn } ˆ j d | j ƒ n X| j ƒ  j ƒ  } t	 d	 | ƒ t
 j j ˆ j d
 ƒ ‰ t ˆ d ƒ  } | j d ƒ Wd  QX‡  ‡ ‡ f d †  } | ƒ  | ƒ  } ˆ j d | j ƒ  ƒ d  S(   Ns   -mt   IPythons   --quiets   --quicks   --no-banners   --colors=NoColors	   --versions%   ipython not available: return code %ds   ipython version:s   ipython_cache_usecase.txtR¤  s}  
                import os
                import sys

                from numba import jit

                # IPython 5 does not support multiline input if stdin isn't
                # a tty (https://github.com/ipython/ipython/issues/9752)
                f = jit(cache=True)(lambda: 42)

                res = f()
                # IPython writes on stdout, so use stderr instead
                sys.stderr.write(u"cache hits = %d\n" % f.stats.cache_hits[()])

                # IPython hijacks sys.exit(), bypass it
                sys.stdout.flush()
                sys.stderr.flush()
                os._exit(res)
                c          ` sŽ   t  ˆ d ƒ y }  t j ˆ  d |  d t j d t j d t ƒ} | j ƒ  \ } } | j d k r€ ˆ j d | j | | f ƒ n  | SWd  QXd  S(   Nt   rbt   stdinRs  Rt  t   universal_newlinesi*   s6   unexpected return code %d
-- stdout:
%s
-- stderr:
%s
(   R]   Ru  Rv  Rx  RO   Ry  Rz  t   fail(   RØ  t   pR)  R~  (   t   base_cmdt   inputfnRH   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   execute_with_input~  s    				s   cache hits = 1(   RN  Rw  Ru  t   check_outputt   CalledProcessErrort   skipTestRz  t   stripR{  t   printRX   RY   RZ   Rg   R]   R^   RŽ   (   RH   t   verRj   RF   RÞ  R~  (    (   RÜ  RÝ  RH   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_ipython\  s"    		(   RL   RM   R   R”  R•  R™  Rš  Rœ  R¥  R©  R­  R±  Rµ  R¶  Rø   Rº  RÊ  RÎ  t   skip_bad_accessRæ   Rç   RX   R,   RÓ  RÕ  Rå  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRŽ  1  s,   #														t   TestSequentialParForsCachec           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C` s    t  t |  ƒ j ƒ  t t _ d  S(   N(   t   superRç  RV  RO   R   t   sequential_parfor_lowering(   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRV  •  s    c         C` s    t  t |  ƒ j ƒ  t t _ d  S(   N(   Rè  Rç  RZ  R\   R   Ré  (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRZ  š  s    c         C` s›   |  j  ƒ  } |  j d ƒ | j } t j d ƒ } |  j | | ƒ | | | ƒ g  | j j ƒ  D] } | j j	 ^ q_ } |  j
 | t g ƒ |  j d ƒ d  S(   Ni    i
   i   (   Ri  Ro  t   parfor_usecaseR*   R/   RA   Ro   Rp   t   libraryt   has_dynamic_globalsRq   R\   (   RH   Rh  RF   R.   t   crest   dynamic_globals(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR”  Ÿ  s    	%(   RL   RM   RV  RZ  R”  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRç  “  s   		t   TestCacheWithCpuSettingc           B` s)   e  Z e Z d  „  Z d „  Z d „  Z RS(   c         C` sp   d } xM |  j  ƒ  j ƒ  D]9 \ } } | | k r |  j | | | ƒ | d 7} q q W|  j | d d d ƒd  S(   Ni    i   t   msgs   nothing to compare(   Rn  R4  t   assertGreaterEqualt   assertGreater(   RH   t
   mtimes_oldt   match_countR5  R6  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   check_later_mtimes¯  s    c         C` sz  |  j  d ƒ |  j ƒ  } | j ƒ  t |  j ƒ  ƒ } |  j ƒ  } t d d ƒ  |  j ƒ  Wd  QX|  j | ƒ |  j	 t |  j ƒ  ƒ | ƒ | j
 j } | j } | j ƒ  } |  j t | ƒ d ƒ | j ƒ  \ } } | d d t j ƒ  k rý | | }	 }
 n | | }	 }
 |  j |	 d d t j ƒ  ƒ |  j |	 d d t j ƒ  ƒ |  j |
 d d d ƒ |  j |
 d d d ƒ d  S(   Ni    t   NUMBA_CPU_NAMEt   generici   i   R  (   Ro  Ri  R‚  R{   Rk  Rn  R   R  Rõ  Rò  R€  t   _cachet   _cache_filet   _load_indexRq   R  t   llt   get_host_cpu_nameR   t   get_host_cpu_features(   RH   Rh  t
   cache_sizeR³  t   cachet
   cache_filet   cache_indext   key_at   key_bt   key_hostt   key_generic(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_user_set_cpu_name¸  s*    
	c         C` s–  |  j  d ƒ |  j ƒ  } | j ƒ  t |  j ƒ  ƒ } |  j ƒ  } d } t j ƒ  } |  j | | ƒ t	 d | ƒ  |  j
 ƒ  Wd  QX|  j | ƒ |  j t |  j ƒ  ƒ | ƒ | j j } | j } | j ƒ  } |  j t | ƒ d ƒ | j ƒ  \ }	 }
 |	 d d | k r|	 |
 } } n |
 |	 } } |  j | d d t j ƒ  ƒ |  j | d d | ƒ |  j | d d t j ƒ  ƒ |  j | d d | ƒ d  S(   Ni    s	   -sse;-avxt   NUMBA_CPU_FEATURESi   i   (   Ro  Ri  R‚  R{   Rk  Rn  R   Rý  t   assertNotEqualR   R  Rõ  Rò  R€  Rø  Rù  Rú  Rq   R  Rû  Rü  (   RH   Rh  Rþ  R³  t   my_cpu_featurest   system_featuresRÿ  R   R  R  R  R  R  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_user_set_cpu_featuresÔ  s0    
	(   RL   RM   R\   t   _numba_parallel_test_Rõ  R  R  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRï  «  s   			t   TestMultiprocessCachec           B` sD   e  Z e Z e j j e ƒ Z e j j	 e d  ƒ Z
 d Z d „  Z RS(   s   cache_usecases.pyRr  c         C` s§   |  j  ƒ  } | j } d } y t j d ƒ } Wn t k
 rG t } n X| j | ƒ } z" t | j | t | ƒ ƒ ƒ } Wd  | j	 ƒ  X|  j
 | | | d d ƒ d  S(   Ni   t   spawni   i   (   Ri  t   simple_usecase_callert   multiprocessingt   get_contextt   AttributeErrort   PoolRÕ   t   imapRƒ   t   closeRq   (   RH   Rh  RF   RÅ   t   ctxt   poolt   res(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_multiprocessing  s    	
"(   RL   RM   R\   R  RX   RY   RŒ  R`  R  RZ   RT  RP  R  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR  ÷  s
   t   TestCacheFileCollisionc           B` s˜   e  Z e Z e j j e ƒ Z e j j	 e d  ƒ Z
 d Z d Z d Z d „  Z d „  Z d „  Z d „  Z d „  Z e j e e d	 ƒ d
 ƒ d „  ƒ Z RS(   s   cache_usecases.pyt   caching_file_loc_foddersD   
from numba import njit
@njit(cache=True)
def bar():
    return 123
sD   
from numba import njit
@njit(cache=True)
def bar():
    return 321
c      	   C` s  t  d ƒ |  _ t j j d |  j ƒ d |  _ |  j |  j t j ƒ |  j |  _ d j	 |  j d g ƒ |  _
 t j j	 |  j |  j ƒ } t j | ƒ t t j j	 | d ƒ d ƒ  } t |  j d | ƒWd  QXt t j j	 | d	 ƒ d ƒ  } t |  j d | ƒWd  QXd  S(
   Nt   test_cache_file_loci    t   module_name_that_is_unlikelyR  Rn   s   __init__.pyR¤  R2  s   foo.py(   R   Rg   RN  RY   RO  RP  R“   RW  t   modname_bar1RZ   t   modname_bar2RX   R[   R]   Rã  t   source_text_1t   source_text_2(   RH   t   foomodt   fout(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRV  '  s    	!!c         C` sC   t  j j |  j d  ƒ t  j j |  j d  ƒ t  j j |  j ƒ d  S(   N(	   RN  RW  RX  R  R=   R  RY   RY  Rg   (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRZ  5  s    c         C` s   t  |  j ƒ j S(   N(   R   R  R¡   (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   import_bar1:  s    c         C` s   t  |  j ƒ j S(   N(   R   R  R¡   (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   import_bar2=  s    c         C` sv   |  j  ƒ  } |  j ƒ  } | j j j } | j j j } |  j | | ƒ |  j | j d ƒ ƒ |  j | j d ƒ ƒ d  S(   Ns   __init__.bar-3.pys   foo.bar-3.py(   R$  R%  Rø  Rù  t   _index_nameR  R  t
   startswith(   RH   t   bar1t   bar2t   idxname1t   idxname2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_file_location@  s    R  s)   Test requires multiprocessing.get_contextc      
   C` sØ  |  j  ƒ  } |  j ƒ  } t ƒ   } | ƒ  } Wd  QX| j ƒ  } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ t ƒ   } | ƒ  } Wd  QX| j ƒ  } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | | ƒ y t j d ƒ } Wn t	 k
 rnt
 d ƒ n X| j ƒ  } | j d	 t d
 | |  j |  j |  j f ƒ }	 |	 j ƒ  | j ƒ  }
 | j ƒ  } | j ƒ  } | j ƒ  } |	 j ƒ  |  j | | ƒ |  j | | ƒ |  j |
 j d ƒ d ƒ |  j |
 j d ƒ d ƒ |  j |
 j d ƒ d ƒ |  j |
 j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ d  S(   Ns   index savedi   s
   data saveds   index loadedi    s   data loadedR  s   missing spawn contextR‚   RB   (   R$  R%  R   R'  Rq   RÒ   R  R  R  R¥   Rã  t   Queuet   Processt   cache_file_collision_testerRg   R  R  R†   t   getRZ   (   RH   R(  R)  t   buft   res1t   cachelogt   res2t   mpt   qt   proct   log1t   got1t   log2t   got2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_no_collisionJ  sT    	

(   RL   RM   R\   R  RX   RY   RŒ  R`  R  RZ   RT  RP  R   R!  RV  RZ  R$  R%  R,  Ræ   t
   skipUnlesst   hasattrR  R<  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR    s   					
c   	      C` s«   t  j j d | ƒ t | ƒ j } t | ƒ j } t ƒ   } | ƒ  } Wd  QX|  j | j ƒ  ƒ |  j | ƒ t ƒ   } | ƒ  } Wd  QX|  j | j ƒ  ƒ |  j | ƒ d  S(   Ni    (   RN  RY   RO  R   R¡   R   t   putR'  (	   R6  Rg   R  R  R(  R)  R1  t   r1t   r2(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR/  ˆ  s    t#   TestCacheMultipleFilesWithSignaturec           B` s5   e  Z e Z d  Z d Z d „  Z d „  Z d „  Z RS(   s   
from file2 import function2
s¤   
from numba import njit

@njit('float64(float64)', cache=True)
def function1(x):
    return x

@njit('float64(float64)', cache=True)
def function2(x):
    return x
c      	   C` s¥   t  d ƒ |  _ t j j |  j d ƒ |  _ t |  j d ƒ  } t |  j d | ƒWd  QXt j j |  j d ƒ |  _	 t |  j	 d ƒ  } t |  j
 d | ƒWd  QXd  S(   NR  s   file1.pyR¤  R2  s   file2.py(   R   Rg   RX   RY   RZ   t   file1R]   Rã  t   source_text_file1t   file2t   source_text_file2(   RH   R#  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRV  ª  s    c         C` s   t  j |  j ƒ d  S(   N(   Re   Rf   Rg   (   RH   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRZ  µ  s    c         C` s¨   t  j t j |  j g d t  j d t  j ƒ} | j ƒ  \ } } |  j | j d ƒ t  j t j |  j	 g d t  j d t  j ƒ} | j ƒ  \ } } |  j | j d ƒ d  S(   NRs  Rt  i    (
   Ru  Rv  RN  Rw  RC  Rx  Ry  Rq   Rz  RE  (   RH   R}  R)  R~  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt*   test_caching_mutliple_files_with_signature¸  s    		(	   RL   RM   R\   R  RD  RF  RV  RZ  RG  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRB  –  s   		t    TestDispatcherFunctionBoundariesc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         ` sù   t  d t ƒ d „  ƒ ‰  t  d t ƒ d „  ƒ ‰ t  d t ƒ ‡  ‡ f d †  ƒ } d d t j d ƒ g } g  | D] } | d ^ qp } x3 t | | ƒ D]" \ } } |  j | | ƒ | ƒ q– Wx6 t | | ƒ D]% \ } } |  j ˆ ˆ  | ƒ | ƒ qÌ Wd  S(   NR@   c         S` s   |  d S(   Ni   (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   add1Ë  s    c         S` s
   |  | ƒ S(   N(    (   Rg  R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR¡   Ï  s    c         ` s   ˆ ˆ  |  ƒ S(   N(    (   R   (   RI  R¡   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   Ó  s    i   g333333&@i
   (   R   RO   R*   R¾   t   zipRA   (   RH   Rn   t   inputsR   t   expected_resultst   argt   expect(    (   RI  R¡   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_pass_dispatcher_as_argÉ  s    !c         C` sù   t  d t ƒ d „  ƒ } | d d d d g d t  d „  ƒ ƒ} |  j | d ƒ | t t t d	 ƒ t d	 ƒ d  d  d
 … ƒ ƒ d t  d „  ƒ ƒ} |  j | d ƒ | t t t d	 ƒ t d	 ƒ d  d  d
 … ƒ ƒ d t  d „  ƒ ƒ} |  j | d ƒ d  S(   NR@   c         S` sG   |  d } x6 |  d D]* } | | | ƒ } | d k  r | } q q W| S(   Ni    i   (    (   t   seqt   cmpfnRÓ   t   eacht   cmpval(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   maximumã  s    
i   i   i   i   RQ  c         S` s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR  ì  R  i   iÿÿÿÿc         S` s   |  d | d S(   Ni    (    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR  ï  R  i    c         S` s   |  d | d S(   Ni   (    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR  ò  R  (   i   i    (   i    i   (   R   RO   Rq   R  RJ  Rƒ   (   RH   RT  RÃ   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_dispatcher_as_arg_usecaseâ  s    	'11c         C` sf   t  d t ƒ d „  ƒ } t  d „  ƒ } |  j t ƒ  } | | ƒ Wd  QX|  j t | j ƒ d ƒ d  S(   NR@   c         S` s   |  S(   N(    (   Rg  (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   ö  s    c         S` s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR  ú  R  s)   cannot convert native .* to Python object(   R   RO   Rw   R;   R’   R   R   (   RH   Rn   Rg  Rž   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt'   test_dispatcher_cannot_return_to_pythonõ  s    c         ` s´   t  d t ƒ d „  ƒ ‰  t  d t ƒ ‡  f d †  ƒ } t  d t ƒ ‡  f d †  ƒ } t  d t ƒ d „  ƒ } |  j | ˆ  | | f d ƒ d
 ƒ |  j | ˆ  ˆ  ˆ  g d ƒ d ƒ d  S(   NR@   c         S` s   |  d S(   Ni   (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   one  s    c         ` s   ˆ  ˆ  |  ƒ ƒ S(   N(    (   R   (   RW  (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   two  s    c         ` s   ˆ  ˆ  ˆ  |  ƒ ƒ ƒ S(   N(    (   R   (   RW  (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   three
  s    c         S` s+   |  d | ƒ |  d | ƒ |  d | ƒ f S(   Ni    i   i   (    (   t   fnsR   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   choose  s    i   i   i   i   (   i   i   i   (   i   i   i   (   R   RO   Rq   (   RH   RX  RY  R[  (    (   RW  s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_dispatcher_in_sequence_arg  s    "(   RL   RM   RO  RU  RV  R\  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRH  È  s   			t   TestBoxingDefaultErrorc           B` s   e  Z d  „  Z d „  Z RS(   c         C` sf   d „  } t  | t j d ƒ f ƒ } |  j t ƒ  } | j d  ƒ Wd  QX|  j t | j	 ƒ d ƒ d  S(   Nc         S` s   d  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn     s    t
   dummy_types   can't unbox dummy_type type(
   R   R   t   DummyRw   R;   Rr   R=   Rq   R   R   (   RH   Rn   Rí  Rž   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_unbox_runtime_error  s
    	c         C` s]   d „  } t  | d ƒ } |  j t ƒ  } | j ƒ  Wd  QXd } |  j t | j ƒ | ƒ d  S(   Nc           S` s   t  S(   N(   Ræ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   &  s    s/   cannot convert native Module.* to Python object(    (   R   Rw   R;   Rr   R’   R   R   (   RH   Rn   Rí  Rž   t   pat(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_box_runtime_error%  s    	(   RL   RM   R`  Rb  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR]    s   	t   TestNoRetryFailedSignaturec           B` s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s?   Test that failed-to-compile signatures are not recompiled.
    c         C` sÚ   | j  } |  j t | j ƒ d ƒ |  j t j ƒ  | d ƒ Wd  QX|  j t | j ƒ d ƒ |  j t j ƒ  | d ƒ Wd  QX|  j t | j ƒ d ƒ |  j t j ƒ  | d ƒ Wd  QX|  j t | j ƒ d ƒ d  S(   Ni    i   g      ð?i   (   t	   _compilerRq   R{   t   _failed_cacheRw   R
   t   TypingError(   RH   R‡  t   fcom(    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   run_test5  s    	c         C` s)   t  d t ƒ d „  ƒ } |  j | ƒ d  S(   NR@   c         S` s   |  d S(   Ni    (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   F  s    (   R   RO   Rh  (   RH   Rn   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_direct_callE  s    c         ` sh   t  d t ƒ d „  ƒ ‰  t  d t ƒ ‡  f d †  ƒ ‰ t  d t ƒ ‡  ‡ f d †  ƒ } |  j | ƒ d  S(   NR@   c         S` s   |  d S(   Ni    (    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR¡   M  s    c         ` s   ˆ  |  ƒ d  S(   N(    (   R   (   R¡   (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   foobarQ  s    c         ` s   ˆ  |  ƒ ˆ |  ƒ S(   N(    (   R   (   R¡   Rj  (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRn   U  s    (   R   RO   Rh  (   RH   Rn   (    (   R¡   Rj  s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_nested_callL  s    !c         ` sQ   ‡  f d †  } | d t  ƒ } | d t ƒ } ˆ  j | d ƒ ˆ  j | d ƒ d  S(   Nc         ` sÖ   d } i d d 6‰ t  ‡ ‡ f d †  ƒ } t d t ƒ d „  ƒ } | ‡  f d † ‰  ˆ  | f | ƒ } t j d ƒ } ˆ rÁ ˆ j t j ƒ  } | | d	 ƒ Wd  QXˆ j d
 t	 | j
 ƒ ƒ n | | d	 ƒ ˆ d S(   Ni
   i    R[  c         ` s/   ˆ  d c d 7<ˆ r( t  j d ƒ ‚ n  d „  S(   NR[  i   t   invoke_failedc         S` s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyR  j  R  (   R
   Rf  (   R   (   t   countert
   would_fail(    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   triggerd  s    R@   c         S` s   d  S(   N(    (   R)  R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   identl  s    c         ` sQ   |  d |  d  ‰ } t  d t ƒ ‡  ‡ f d †  ƒ } | rI ˆ | | ƒ S| Sd  S(   NiÿÿÿÿR@   c         ` s'   ˆ  |  | ƒ |  d c ˆ | ƒ 7<d  S(   Ni    (    (   R)  R   (   R–  t   tab_head(    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   assigns  s    (   R   RO   (   t   fsR–  t   tab_tailRr  (   t   chain_assign(   R–  Rq  s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRu  p  s
    !i   i   Rl  (   R   R   RO   R*   R/   Rw   R
   Rf  RŽ   R   R   (   t   fieldRn  R5  Ro  Rp  R   R)  Rž   (   RH   (   Ru  Rm  Rn  s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRI   \  s    R1   R[  i   (   R\   RO   Rq   (   RH   RI   t   ct_okt   ct_bad(    (   RH   s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   test_error_count[  s
    -(   RL   RM   Rî   Rh  Ri  Rk  Ry  (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyRc  1  s
   			t   __main__(`   t
   __future__R    R   R   RW   R  RX   t   platformRe   Ru  RN  R„   RŸ  RÀ  R®   R³   t	   itertoolsR   RJ  t   ImportErrorR=   RK  t   numpyR*   t   numbaR   Ræ   R   R   R   R   R	   R
   R   t   numba.compilerR   t   numba.errorsR   t   supportR   R   R   R   R   R   R   t   numba.numpy_supportR   t   numba.targetsR   t   numba.cachingR   t   numba.dispatcherR   R   t   test_linalgR   R   t   llvmlite.bindingt   bindingRû  t   machineRè   R   R    R"   R#   R$   R(   R)   R>   R?   Rl   t   _access_preventablet   _access_msgR=  Ræ  Rm   Ré   Rï   Rð   Rõ   RL  Rq  RŽ  Rç  Rï  R  R  R/  RB  RH  R]  Rc  RL   t   main(    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dispatcher.pyt   <module>   s   

.4			

	!	ÿ ©P*ûA0ÿ cLt	2P`