ó
\K]c           @   s¯   d  d l  Z  d  d l Z d  d l m Z d  d l m Z e d e d e ƒ d „  ƒ Z e d e d e ƒ d „  ƒ Z	 e d e ƒ d „  ƒ Z
 d	 e f d
 „  ƒ  YZ d „  Z d S(   iÿÿÿÿN(   t   njit(   t   TestCaset   parallelt   cachec         C   s   |  |  j  ƒ  S(   N(   t   sum(   t   arr(    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt   arrayexprs_case	   s    c         C   sO   t  j |  ƒ } d |  j ƒ  } x) t |  j ƒ D] } |  | | | | <q/ W| S(   Ni   (   t   npt
   zeros_likeR   t   ranget   size(   R   t   outt   ct   i(    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt   prange_case   s
    c         C   s   t  t |  ƒ ƒ S(   N(   R   R   (   R   (    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt   caller_case   s    t   _TestModulec           B   s    e  Z d  Z d „  Z d „  Z RS(   s¥   
    Tests for functionality of this module's functions.
    Note this does not define any "test_*" method, instead check_module()
    should be called by hand.
    c         C   s‡   d } xd | j  | j | j g D]J } t j d ƒ } |  j | | ƒ | j | ƒ ƒ | t | j j	 ƒ 7} q W|  j
 | d d d ƒd  S(   Ni    i   t   msgs*   At least one dispatcher has used the cache(   R   R   R   R   t   onest   assertPreciseEqualt   py_funct   lent   statst
   cache_hitst   assertGreater(   t   selft   modt   total_cache_hitst   fnR   (    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt   check_module"   s    	c         C   s
   t  ‚ d  S(   N(   t   NotImplementedError(   R   (    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt   runTest1   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyR      s   	c          C   s!   t  j t }  t ƒ  j |  ƒ d  S(   N(   t   syst   modulesR    R   R   (   R   (    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt	   self_test5   s    (   R#   t   numpyR   t   numbaR    t   numba.tests.supportR   t   TrueR   R   R   R   R%   (    (    (    sA   lib/python2.7/site-packages/numba/tests/parfors_cache_usecases.pyt   <module>   s   	