
\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 m Z d  d l	 Z
 d  d l m Z d  d l m Z d  d l m Z m Z m Z m Z d  d l m Z d  d l m Z d  d	 l m Z m Z d
 d l m Z m Z m Z d
 d l  m! Z! e   Z" e" j# 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   Z0 d   Z1 d   Z2 d   Z3 d   Z4 d   Z5 d    Z6 d!   Z7 e8 d"  Z9 d  d#  Z: e8 d  d$  Z; d%   Z< d  d&  Z= d'   Z> d  d(  Z? e8 e@ d)  ZA d*   ZB e8 eC e@ e8 d+  ZD e8 eC d,  ZE e8 e8 d-  ZF d.   ZG d/   ZH d0   ZI d1   ZJ d2   ZK d3   ZL d4   ZM d5   ZN d6   ZO d7   ZP d8   ZQ d  d9  ZR d:   ZS d;   ZT d<   ZU d=   ZV d>   ZW d?   ZX d@ e e f dA     YZY dB e f dC     YZZ d S(D   i    (   t   print_functiont   absolute_importt   divisionN(   t   partial(   t   unittest_support(   t   Flags(   t   jitt   njitt   typeoft   types(   t   version(   t   TypingError(   t   IS_WIN32t	   IS_32BITSi   (   t   TestCaset   CompilationCachet   MemoryLeakMixin(   t
   needs_blast   nrtc         C` s   t  j |   S(   N(   t   npt   sinc(   t   x(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR      s    c         C` s   t  j |   S(   N(   R   t   angle(   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   angle1   s    c         C` s   t  j |  |  S(   N(   R   R   (   R   t   deg(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   angle2    s    c         C` s   t  j |  |  S(   N(   R   t   delete(   t   arrt   obj(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   $   s    c         C` s   t  j |   S(   N(   R   t   diff(   t   a(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   diff1(   s    c         C` s   t  j |  |  S(   N(   R   R   (   R   t   n(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   diff2,   s    c         C` s   t  j |   S(   N(   R   t   bincount(   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   bincount10   s    c         C` s   t  j |  d | S(   Nt   weights(   R   R"   (   R   t   w(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   bincount24   s    c         C` s   t  j |  |  S(   N(   R   t   searchsorted(   R   t   v(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR'   8   s    c         C` s   t  j |  | d d S(   Nt   sidet   left(   R   R'   (   R   R(   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   searchsorted_left<   s    c         C` s   t  j |  | d d S(   NR)   t   right(   R   R'   (   R   R(   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   searchsorted_right@   s    c          G` s   t  j |    S(   N(   R   t   digitize(   t   args(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR.   D   s    c          G` s   t  j |    S(   N(   R   t	   histogram(   R/   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR0   H   s    c          G` s
   t  j   S(   N(   R   t   MachAr(   R/   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   macharL   s    c          G` s   t  j |    S(   N(   R   t   iinfo(   R/   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR3   P   s    c          G` s   t  j |    S(   N(   R   t   finfo(   R/   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR4   T   s    c          G` s   t  j |    j S(   N(   R   R4   R2   (   R/   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   finfo_macharX   s    c         C` s   t  j |  |  S(   N(   R   t	   correlate(   R   R(   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR6   \   s    c         C` s   t  j |  |  S(   N(   R   t   convolve(   R   R(   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR7   `   s    c         C` s   t  j |   S(   N(   R   t   tri(   t   N(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   tri_nd   s    c         C` s   t  j |  |  S(   N(   R   R8   (   R9   t   M(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   tri_n_mh   s    c         C` s   t  j |  |  S(   N(   R   R8   (   R9   t   k(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   tri_n_kl   s    c         C` s   t  j |  | |  S(   N(   R   R8   (   R9   R;   R=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   tri_n_m_kp   s    c         C` s   t  j |   S(   N(   R   t   tril(   t   m(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   tril_mt   s    c         C` s   t  j |  |  S(   N(   R   R@   (   RA   R=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   tril_m_kx   s    c         C` s   t  j |   S(   N(   R   t   triu(   RA   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   triu_m|   s    c         C` s   t  j |  |  S(   N(   R   RD   (   RA   R=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   triu_m_k   s    c         C` s   t  j |  | |  S(   N(   R   t   vander(   R   R9   t
   increasing(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRG      s    c         C` s   t  j |  |  S(   N(   R   t	   partition(   R   t   kth(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRI      s    c         C` s   t  j |  | | | |  S(   N(   R   t   cov(   RA   t   yt   rowvart   biast   ddof(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRK      s    c         C` s   t  j |  | |  S(   N(   R   t   corrcoef(   R   RL   RM   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRP      s    c         C` s   t  j |  | |  S(   N(   R   t   ediff1d(   t   aryt   to_endt   to_begin(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRQ      s    c         C` s   t  j |  |  S(   N(   R   t   roll(   R   t   shift(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRU      s    c         C` s   t  j |   S(   N(   R   t   asarray(   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRW      s    c         C` s   t  j |  d | S(   Nt   dtype(   R   RW   (   R   RX   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   asarray_kws   s    c         C` s   t  j |  |  S(   N(   R   t   extract(   t	   conditionR   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRZ      s    c         C` s   t  j |   S(   N(   R   t   trapz(   RL   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   np_trapz   s    c         C` s   t  j |  |  S(   N(   R   R\   (   RL   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   np_trapz_x   s    c         C` s   t  j |  d | S(   Nt   dx(   R   R\   (   RL   R_   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   np_trapz_dx   s    c         C` s   t  j |  | |  S(   N(   R   R\   (   RL   R   R_   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   np_trapz_x_dx   s    c         C` s   t  j |  | |  S(   N(   R   t   interp(   R   t   xpt   fp(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRb      s    c         C` s   t  j |  |  S(   N(   R   t   repeat(   R   t   repeats(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   np_repeat   s    c         C` s   t  j |   j |  S(   N(   R   RW   Re   (   R   Rf   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   array_repeat   s    c         C` s   t  j |  | d | S(   Nt   default(   R   t   select(   t   condlistt
   choicelistRi   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   np_select   s    c         C` s   t  j |  |  S(   N(   R   Rj   (   Rk   Rl   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   np_select_defaults   s    c         C` s   t  j |   S(   N(   R   t   bartlett(   R;   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   np_bartlett   s    c         C` s   t  j |   S(   N(   R   t   blackman(   R;   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   np_blackman   s    c         C` s   t  j |   S(   N(   R   t   hamming(   R;   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   np_hamming   s    c         C` s   t  j |   S(   N(   R   t   hanning(   R;   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   np_hanning   s    c         C` s   t  j |  |  S(   N(   R   t   kaiser(   R;   t   beta(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   np_kaiser   s    t   TestNPFunctionsc           B` s  e  Z d  Z d   Z e dj dj e dj d  Z d   Z e d  Z	 e
 j e j   d k 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 d   Z d   Z d   Z d   Z dj d  Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d    Z' d!   Z( d"   Z) e* d#    Z+ d$   Z, d%   Z- d&   Z. d'   Z/ d(   Z0 d)   Z1 d*   Z2 d+   Z3 d,   Z4 d-   Z5 d.   Z6 d/   Z7 d0   Z8 d1   Z9 d2   Z: d3   Z; d4   Z< d5   Z= e
 j> e? dk k d8  e@ d9     ZA d:   ZB e
 j> e? dl k d;  e@ d<     ZC e
 j> e? dm k d8  e@ d=     ZD e
 j> e? dn k d8  e@ d>     ZE e
 j> e? do k d;  e@ d?     ZF d@   ZG e
 j> e? dp k d;  e@ dA     ZH e
 j> e? dq k dC  e@ dD     ZI e
 j> e? dr k d8  e@ dE     ZJ e
 j> e? ds k d8  e@ dF     ZK e
 j> e? dt k dH  dI    ZL e
 j> e? du k dH  dJ    ZM e
 j> e? dv k dH  dK    ZN dL   ZO dM   ZP dN   ZQ dO   ZR dP   ZS dQ   ZT e
 jU dR  dS    ZV dT   ZW dU   ZX dV   ZY e
 j> e? dw k dW  dX    ZZ dY   Z[ dZ   Z\ e
 j> e? dx k dW  d[    Z] e
 j> e? dy k d\  d]    Z^ e
 j> e? dz k dW  d^    Z_ e
 j> d{ e? k o d| k  n d\  d_    Z` e
 j> e? d} k dW  d`    Za e
 j> e? d~ k dW  da    Zb e
 j> e? d k db  dc    Zc dd   Zd de   Ze df   Zf dg   Zg dh   Zh di   Zi RS(   s,   
    Tests for various Numpy functions.
    c         C` s8   t  t |   j   t   |  _ t j j d  |  _ d  S(   Ni*   (	   t   superRz   t   setUpR   t   ccacheR   t   randomt   RandomStatet   rnd(   t   self(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR|      s    c	         K` s/  x(t  | |  D]\ }
 } | d	 k r8 d
 g } } n  x t  | |  D] \ } } |  j j | |
 f | d | } | j } | | |  } | | |  } y |
 j } Wn t k
 r |
 } n X| t j t j	 f k r d n d } d | | f } |  j
 | | d | d | d | d | |	 qH Wq Wd	 S(   s  
        Runs tests for a unary function operating in the numerical real space.

        Parameters
        ----------
        pyfunc : a python function definition holding that calls the numpy
                 functions to be tested.
        x_types: the types of the values being tested, see numba.types
        x_values: the numerical values of the values to be tested
        flags: flags to pass to the CompilationCache::ccache::compile function
        func_extra_types: the types of additional arguments to the numpy
                          function
        func_extra_args:  additional arguments to the numpy function
        ignore_sign_on_zero: boolean as to whether to allow zero values
        with incorrect signs to be considered equal
        prec: the required precision match, see assertPreciseEqual

        Notes:
        ------
        x_types and x_values must have the same length

        t   flagst   singlet   doubles   for input %r with prec %rt   prect   msgt   ignore_sign_on_zerot   abs_tolN(    (   t   zipt   NoneR}   t   compilet   entry_pointRX   t   AttributeErrorR	   t   float32t	   complex64t   assertPreciseEqual(   R   t   pyfunct   x_typest   x_valuesR   t   func_extra_typest   func_extra_argsR   R   t   kwargst   txt   vxt   xtypest   xargst   crt   cfunct   gott   expectedt   scaltyR   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   run_unary   s*    		
c         ` s}  t    d  t       f d   } d d d d d d d	 d
 d d g
 } t j t j g t |  d } | | |  t j | d t j g } g  | D] } t |  ^ q } | | |  d d d d d d d d d  d! d" d# d$ d% d d& 
g } t j	 t j
 g t |  d } | | | d d t j | d t j
 g } g  | D] } t |  ^ qN} | | | d d d S('   sv   
        Tests the sinc() function.
        This test is purely to assert numerical computations are correct.
        t   epsc      	   ` s&    j   |  | d   d  | d  S(   NR   R   (   R   (   R   R   R   (   t   isozR   R   t   tol(    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   check6  s    	g      ?g      g        g       g      ?g      i   ig#B;g#Bi   RX   y                ii    y              ?y              ?y              @y        #B;t   ulpsNy      ?        y              y                y                y              ?y              y      ?        y              y      ?      ?y            y      @      @y            y#B;        y#B        y        #B(   t   TrueR   R	   R   t   float64t   lenR   t   arrayR   R   t
   complex128(   R   R   R   R   R(   (    (   R   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   test_sinc  s$    	$  c         ` sD  t    t      f d   } d d d d d d d d	 g } t j t j g t |  d
 d } | | |  t j | d t j g } g  | D] } t |  ^ q } | | |  d d d d d d d d d d d d g } t j	 t j
 g t |  d
 d } | | |  t j |  } t j	 t j
 g } | | |  d S(   sw   
        Tests the angle() function.
        This test is purely to assert numerical computations are correct.
        c         ` sa    j    |  |  t f t f g } t j f g t |  }  j   |  | d | d | d  S(   NR   R   (   R   R   t   FalseR	   t   bool_R   (   R   R   t   xtra_valuest
   xtra_types(   t   pyfunc1t   pyfunc2R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   [  s    g      ?g      g        g       g      ?g      i   ii   i   RX   y                iy              ?y              y              ?y              @Ny      ?        y              y                y                y      ?        y              y      ?      ?y            y      @      @y            (   R   R   R	   R   R   R   R   R   R   R   R   (   R   R   R   R   R   R(   (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   test_angleS  s     $$t   ppc64les   LLVM bugc         C` sp   d   } t  } t d t  |  } xE |   D]: \ } } | | |  } | | |  } |  j | |  q. Wd  S(   Nc           s` s2  d d d d d g d f Vd d d d d g d d g f Vt  j d  d f Vt  j d  d f Vt  j d  d d d g f Vt  j d  d d d d g f Vt  j d  j d d d  d f Vt  j d  j d d d  d d	 d
 d g f Vd d d d g t d d d  f Vt  j d  t d  f Vd  S(   Ni   i   i   i   i   i
   ii   i   i   i   i   i<   i   i<   (   R   t   aranget   reshapet   slice(    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   arrays~  s      #/#t   nopython(   R   R   R   R   (   R   R   R   R   R   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_delete{  s    	c      
   C` s?  t  } t d t  |  } |  j   |  j t   } | d d g d  Wd  QX|  j d t | j   |  j t  & } | t	 j
 d  d d d	 g  Wd  QX|  j d t | j   |  j t   } | d d
  Wd  QX|  j d t | j   |  j t   } | d d g d
  Wd  QX|  j d t | j   d  S(   NR   i   i   gQ	@s   obj should be of Integer dtypei
   g      @gffffff@g@i   s)   arr must be either an Array or a Sequences"   obj must be less than the len(arr)(   R   R   R   t   disable_leak_checkt   assertRaisesR   t   assertInt   strt	   exceptionR   R   t
   IndexError(   R   R   R   t   raises(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_delete_exceptions  s.    
%c         c` sQ   t  j d  d } | V| j d  } | Vt  j d  j d  d } | Vd S(	   s0   
        Some test arrays for np.diff()
        i   i   i   i   i   N(   i   i   (   i   i   i   (   R   R   R   (   R   R   t   bt   c(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   diff_arrays  s    c         C` s   t  } t d t  |  } x< |  j   D]. } | |  } | |  } |  j | |  q( Wt j d  } |  j    | |  Wd  QXd  S(   NR   i*   (   R   R   R   R   R   R   R   t   assertTypingError(   R   R   R   R   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   test_diff1  s    c      	   C` s   t  } t d t  |  } x |  j   D]r } | j d } x\ d d d d | d | | d d f D]4 } | | |  } | | |  } |  j | |  qb Wq( Wd  S(   NR   ii    i   i   i   i  (   R!   R   R   R   t   shapeR   (   R   R   R   R   t   sizeR    R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   test_diff2  s    -c      	   C` s   t  } t d t  |  } |  j   t j d  } |  j    | | d  Wd  QXt j d  } xL d	 D]D } |  j t	   } | | |  Wd  QX|  j
 d t | j   qj Wd  S(
   NR   i*   i   i
   iiis   order must be non-negative(   iii(   R!   R   R   R   R   R   R   R   R   t
   ValueErrorR   R   R   (   R   R   R   R   R    R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_diff2_exceptions  s    
c         C` sg   d d d d d d g } t  j d d d d g  } |  j j d d	 d
 d j t  j  } | | | f S(   s7   
        Some test sequences for np.bincount()
        i   i   i   i   i   i   i*   i    id   R   i,  (   R   R   R   t   randintt   astypet   int8(   R   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   bincount_sequences  s    'c         C` s^   t  } t d t  |  } x< |  j   D]. } | |  } | |  } |  j | |  q( Wd  S(   NR   (   R#   R   R   R   R   (   R   R   R   t   seqR   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_bincount1  s    c         C` sj   t  } t d t  |  } |  j   |  j t   } | d d g  Wd  QX|  j d t | j   d  S(   NR   i   is#   first argument must be non-negative(	   R#   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_bincount1_exceptions  s    
	c   	      C` s   t  } t d t  |  } x |  j   D] } g  | D] } t j |  d ^ q5 } xZ | t j |  | t j |  f D]4 } | | |  } | | |  } |  j | |  qy Wq( Wd  S(   NR   i   (	   R&   R   R   R   t   matht   sqrtR   R   R   (	   R   R   R   R   R   R%   R$   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_bincount2  s    &+c         C` s   t  } t d t  |  } |  j   |  j t    } | d d g d d g  Wd  QX|  j d t | j   |  j t   } | d d g d g  Wd  QX|  j d t | j   d  S(   NR   i   ii    s#   first argument must be non-negatives+   weights and list don't have the same length(	   R&   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_bincount2_exceptions  s    
		c      
   ` s`  t   t d t      t  t d t     t  t d t             f d   } t j d  d } t j d  d } xx | t |  f D]d } x | D] } | | |  q Wx* | | j d  f D] } | | |  q W| | t |   q Wt j	 t |  t
 d  g d	  d
 } t j d  d } xx | t |  f D]d } x | D] } | | |  qpWx* | | j d  f D] } | | |  qW| | t |   qcWd   } t d t  |     j      d d g d  Wd  QXd d  } t d t  |     j      d d g d d d Wd  QXd  S(   NR   c         ` s    |  |  }   |  |  }  j  | |   |  |  }  |  |  }  j  | |   |  |  }  |  |  }  j  | |  d  S(   N(   R   (   R   R(   R   R   (   R   t
   cfunc_leftt   cfunc_rightR   t   pyfunc_leftt   pyfunc_rightR   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   6  s    i   i   i   i   i   t   nani   g       @g      ?c         S` s   t  j |  | d d S(   NR)   t   nonsense(   R   R'   (   R   R(   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   bad_side`  s    R*   c         S` s   t  j |  | d | S(   NR)   (   R   R'   (   R   R(   R)   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   nonconst_sideg  s    R)   R,   (   i   i   (   i   i   (   R'   R   R   R+   R-   R   R   t   listR   R   t   floatR   (   R   R   t   binst   valuesR   R(   R   R   (    (   R   R   R   R   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_searchsorted,  s>    !*	c         ` s4  t   t d t          f d   } t j d d d d d d d	 d
 d t d  t d  t d  f  } t |  d k s t   j j	 |  t j d d d d	 g  } t j d d d d	 t d  t d  g  } t j d d d d	 t d  t d  g t d  g d  } t
 d k rV| | | g } | | j d  g } n | | g } | g } xP | D]H } | j   x5 | D]- }	 | |	 |  | |	 | d  d  d   qWqrWx\ | D]T } | j   xA t t f D]3 }
 | | | |
  | | | d  d  d  |
  qWqW| t |  |  d  S(   NR   c          ` s,    |    }   |    }  j  | |  d  S(   N(   R   (   R/   R   R   (   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   q  s    i    gGz?i   g@g      @i   i   i	   g      #@t   infs   -infR   i   i   i
   i   i(   i   i
   (   i   i   (   R.   R   R   R   R   R   R   t   AssertionErrorR   t   shufflet
   np_versionR   t   sortR   R   (   R   R   R   t   bins1t   bins2t   bins3t   all_binst   xsR   R   R,   (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_digitizem  s6    !$-'	
"
%c         ` s   t   t d t          f d     f d   } t j d  } t |  d k sf t   j j |  | |  d  S(   NR   c          ` sT    |    \ } }   |    \ } }  j  | |   j  | | d d d d d  S(   NR   R   R   i   (   R   (   R/   t   pyhistt   pybinst   chistt   cbins(   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR     s    c         ` si   t  j d d d d g  }   |  |    |  j d	  |    |  d    |  d d
    |   d  S(   Ni   i   g      @i   i   i   g      ?g      +@(   i   i   (   g      ?g      +@(   R   R   R   (   R   R   (   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   check_values  s    i    gGz?i   g@g      @i   i   i	   g      #@g     @E@g      g       i   (   i    gGz?i   g@g      @i   i   i	   g      #@g     @E@g      g       (	   R0   R   R   R   R   R   R   R   R   (   R   R   R   (    (   R   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_histogram  s    	c         C` s  t  d t  |  } d } t j t j t j t j t j t j t j	 g } x t
 j | | | |  D] \ } } } } t j | d | }	 t j | d | }
 t j | t j  r |	 d |	 j |  }	 n  t j | t j  r |
 d |
 j |  }
 n  | |	 |
  } | |	 |
  } |  j | |  qd Wt j d  j d	 d  } t j d  } xj | | f | | f g D]P \ } } |  j t   } | | |  Wd  QXd
 } |  j | t | j   qsWd  S(   NR   i   i   i   i   RX   y              ?i   i   s   only supported on 1D arrays(   i   i   i   i   (   R   R   R   R   t   int32t   int64R   R   R   R   t	   itertoolst   productR   t
   issubdtypet   complexfloatingR   R   R   R   R   R   R   R   (   R   R   R   t   lengthst   dtst   dt1t   dt2R    RA   R   R(   R   R   t   _at   _bR   RL   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _test_correlate_convolve  s*    +%c         C` s   |  j  t  t j d d  } t j d  } t d t  t  } x] | | f | | f | | f g D]: \ } } t | |  } | | |  } |  j | |  qe Wd  S(   NR   i    i   R   (   i    (   R  R6   R   t   onesR   R   R   R   (   R   R   R   R   R   RL   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_correlate  s    .c         C` s   |  j  t  d  S(   N(   R  R7   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_convolve  s    c         C` s   |  j    t j d d  } t j d  } t d t  t  } x | | f | | f g D]x \ } } |  j t   } | | |  Wd  QXt	 |  d k r |  j
 d t | j   qY |  j
 d t | j   qY Wd  S(   NR   i    i   R   s   'a' cannot be emptys   'v' cannot be empty(   i    (   R   R   R  R   R   R   R7   R   R   R   R   R   R   (   R   R   R   R   R   RL   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_convolve_exceptions  s    
%c         C` s2   | |   } | |   } |  j  | | d | d  S(   NR   (   R   (   R   R   R   t   paramsR   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _check_output  s    c         ` s  t  } t d t  |  } t |  j | |      f d   } | t j d d d d g   | t j d  d  | t j d d	 d   | t j d
 t j	 t j
 t j
 g   | t j g    | t j d d  d  | t j t g d t g d   x? t j t j t j t j f D] } | t j d	 d |  q(W| d d d d g  | d  | d  | d  | d  | t t d f  d  S(   NR   c         ` s   d  d d d d d g } t t g } i |  d 6}   |  x, | D]$ } i |  d 6| d 6}   |  qB Wx, | D]$ } i |  d 6| d 6}   |  qq WxD | D]< } x3 | D]+ } i |  d 6| d 6| d 6}   |  q Wq Wd  S(	   Ni    i   i   i   i   R   R9   RH   (   R   R   R   (   R   t	   n_choicest   increasing_choicesR  R    RH   (   R  (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _check   s    
i   i   i   i   i   g      %@i
   g333333?ig333333?i   RX   i    i   g        g      ?g       @g-@gA`"	@(   i   i   i   i   (   g        g      ?g       @(    (   i   g-@gA`"	@(   RG   R   R   R   R  R   R   R   t   linspaceR   R   R   R   R   R   R   (   R   R   R   R
  RX   (    (   R  s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_vander_basic  s&    )%%



c         ` s  t  } t d t  |     j   t j d  d      f d   } x- d t t j d d g f D] } | |  qi W j t   }    d d	 Wd  QXd
 t	 | j
  k s t     f d   } t j d  j d   |   d d f  |   d  S(   NR   i   g      ?c         ` sD    j     }    d |  Wd  QXd t | j  k s@ t  d  S(   NR9   s,   Second argument N must be None or an integer(   R   R   R   R   (   R9   R   (   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _check_n9  s    g?i   i   R9   is#   Negative dimensions are not allowedc         ` s?    j  t   }   |   Wd  QX j d t | j   d  S(   Ns.   x must be a one-dimensional array or sequence.(   R   R   t   assertEqualR   R   (   R   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   _check_1dE  s    i   i   i   (   i   i   i   (   i   i   (   i   i   (   RG   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R  R9   R   R  (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_vander_exceptions0  s    
"
c         C` sh   t  } t d t  |  } t |  j | |  } d   } x( |   D] } i | d 6} | |  qC Wd  S(   NR   c           S` s   t  j d d  S(   Nii   (   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   n_variationsU  s    R9   (   R:   R   R   R   R  (   R   R   R   R
  R  R    R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tri_n_basicP  s    	c   	      C` s   t  } t d t  |  } t |  j | |  } d   } d   } x( |   D] } i | d 6} | |  qL WxC |   D]8 } x/ |   D]$ } i | d 6| d 6} | |  q Wqw Wd  S(   NR   c           S` s   t  j d d  S(   Nii   (   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR  b  s    c           S` s"   t  j j d  g t d d  f  S(   Nii	   (   R   t   chaint   from_iterableR   t   range(    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   m_variationse  s    R9   R;   (   R<   R   R   R   R  (	   R   R   R   R
  R  R  R    R  RA   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tri_n_m_basic]  s    		c   	      C` s   t  } t d t  |  } t |  j | |  } d   } d   } x( |   D] } i | d 6} | |  qL WxC |   D]8 } x/ |   D]$ } i | d 6| d 6} | |  q Wqw Wd  S(   NR   c           S` s   t  j d d  S(   Nii   (   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR  x  s    c           S` s   t  j d d  S(   Nii
   (   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   k_variations{  s    R9   R=   (   R>   R   R   R   R  (	   R   R   R   R
  R  R  R    R  R=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tri_n_k_basics  s    		c         C` sg  t  } t d t  |  } t |  j | |  } d   } d   } d   } x( |   D] } i | d 6} | |  qU WxC |   D]8 } x/ |   D]$ }	 i | d 6|	 d 6} | |  q Wq WxC |   D]8 } x/ |   D]$ }
 i | d 6|
 d 6} | |  q Wq Wx^ |   D]S } xJ |   D]? }
 x6 |   D]+ }	 i | d 6|	 d 6|
 d 6} | |  q,WqWqWd  S(   NR   c           S` s   t  j d d  S(   Nii   (   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR    s    c           S` s"   t  j j d  g t d d  f  S(   Nii	   (   R   R  R  R   R  (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR    s    c           S` s   t  j d d  S(   Nii
   (   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR    s    R9   R;   R=   (   R?   R   R   R   R  (   R   R   R   R
  R  R  R  R    R  RA   R=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tri_n_m_k_basic  s,    			c         ` sk   t  } t d t  |     j      f d   } x- d t t j d d g f D] } | |  qS Wd  S(   NR   c      	   ` sG    j     }   d d d |  Wd  QXd t | j  k sC t  d  S(   Ni   i   R=   s   k must be an integer(   R   R   R   R   (   R=   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
    s    g      ?i   i   (   R?   R   R   R   R   R   (   R   R   R
  R=   (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tri_exceptions  s    
"c         ` s=   t  d t          f d   }  j   |  S(   NR   c         ` sE    |   }   |   }  j  | j | j  t j j | |  d  S(   N(   R  RX   R   t   testingt   assert_array_equal(   R   R   R   (   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
    s    (   R   R   t   _triangular_matrix_tests_inner(   R   R   R
  (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _triangular_matrix_tests_m  s    c         ` s=   t  d t          f d   }  j   |  S(   NR   c         ` s   x t  j j d  g t d d  f  D]o } | d  k r@ i  } n i | d 6}  |  |  }   |  |  }  j | j | j  t j j	 | |  q% Wd  S(   Nii
   R=   (
   R   R  R  R   R  R  RX   R   R  R  (   R   R=   R  R   R   (   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
    s    +	(   R   R   R  (   R   R   R
  (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _triangular_matrix_tests_m_k  s    c         ` s    f d   }   f d   } | t  j d  d  | t  j d  d    t  j d  j d d d	 d
     t  j g      t  j d  j d  d  d  d     t  j d  j d d d  t  j d  d j d  }   |    t  j |   d  S(   Nc         ` sM     |   |  j  d  }    |   |  j  d  }    |     |  j  d  S(   Ni	   i   i   i   (   i	   i   (   i   i   i   i   (   R   t   T(   R   (   R
  (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt	   check_odd  s    


c         ` sM     |   |  j  d  }    |   |  j  d  }    |     |  j  d  S(   Ni   i   i   (   i   i   (   i   i   i   i   (   R   R!  (   R   (   R
  (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   check_even  s    


i?   g      %@i@   ih  i   i   i   i   i	   it   ordert   Fi   (   i   i   (   i   i   (   i   i   i   i   (   R   R   R   R   t   asfortranarray(   R   R   R
  R"  R#  R   (    (   R
  s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR    s    %)"
c         C` sr   t  d t  |  } |  j   t j d  } |  j    } | | d d Wd  QXd t | j  k sn t  d  S(   NR   i   i   R=   g      ?s   k must be an integer(   i   i   (	   R   R   R   R   R  R   R   R   R   (   R   R   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _triangular_matrix_exceptions  s    
c         C` s   |  j  t  |  j t  d  S(   N(   R  RB   R   RC   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tril_basic  s    c         C` s   |  j  t  d  S(   N(   R'  RC   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_tril_exceptions
  s    c         C` s   |  j  t  |  j t  d  S(   N(   R  RE   R   RF   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_triu_basic  s    c         C` s   |  j  t  d  S(   N(   R'  RF   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_triu_exceptions  s    c         C` sv   | | |  } | | |  } |  j  t j | |   t j | |    |  j  t j | |  t j | |   d  S(   N(   R   R   t   unique(   R   R   R   R   RJ   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   partition_sanity_check  s    *c   
      C` se  t  } t d t  |  } xCt d d  D]2} x)t d | d  D]} t j |  } |  j j |  | |  j j d d  } |  j j | j	  } d | | | d | | g } t j
 |  | } |  j | | |  | |  |  j | | j   |  | |  |  j | t | j    |  | |  x$ | D] }	 |  j | | | |	  q9WqE Wq+ Wd  S(   NR   i
   i   i   i   i    (   RI   R   R   R  R   R   R   R   R   R   R   R   t   tolistt   tupleR-  (
   R   R   R   t   jt   it   dt   idxRJ   t   tgtR=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_partition_fuzz  s    #)c         ` sq   t  } t d t  |     j   t j d  }    f d   } | | d  | | d  | | d  d  S(   NR   i
   c         ` sD    j  t   }   |  |  Wd  QXt | j  d k s@ t  d  S(   Ns   kth out of bounds(   R   R   R   R   R   (   R   RJ   t   e(   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
  @  s    ii   i   (   i   i   (   RI   R   R   R   R   R   (   R   R   R   R
  (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt%   test_partition_exception_out_of_range4  s    
c         ` s   t  } t d t  |     j      f d   } t j d  } | | d  | | d	  | | t j d d t j f   d  S(
   NR   c         ` s?    j     }   |  |  Wd  QX j d t | j   d  S(   Ns   Partition index must be integer(   R   R   R   R   (   R   RJ   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
  R  s    i
   g      "@gffffff
@g@i   i   (   gffffff
@g@(   RI   R   R   R   R   R   R   R   (   R   R   R
  R   (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt(   test_partition_exception_non_integer_kthI  s    
c         ` sU   t  } t d t  |     j      f d   } | d d  | d d  d  S(   NR   c         ` s?    j     }   |  |  Wd  QX j d t | j   d  S(   Ns(   The first argument must be an array-like(   R   R   R   R   (   R   RJ   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
  c  s    i   i    t   Sausages(   RI   R   R   R   (   R   R   R
  (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt)   test_partition_exception_a_not_array_like\  s    
c         ` sQ   t  } t d t  |     j      f d   } | t j d  d  d  S(   NR   c         ` s?    j     }   |  |  Wd  QX j d t | j   d  S(   Ns3   The first argument must be at least 1-D (found 0-D)(   R   R   R   R   (   R   RJ   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
  r  s    i   i    (   RI   R   R   R   R   R   (   R   R   R
  (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt#   test_partition_exception_a_zero_dimk  s
    
c         ` si   t  } t d t  |     j      f d   } | t j d  d t j d  j d d  d  S(   NR   c         ` sB    j  t   }   |  |  Wd  QX j d t | j   d  S(   Ns   kth must be scalar or 1-D(   R   R   R   R   R   (   R   RJ   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
    s    i
   RJ   i   i   i   (   RI   R   R   R   R   R   R   (   R   R   R
  (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt.   test_partition_exception_kth_multi_dimensionaly  s
    
c         ` s|   t   t d t      d     f d  } t j g   } d | _ x* | d t j g   f D] } | |  qd Wd  S(	   NR   i    c         ` s2    |  |  }   |  |  }  j  | |  d  S(   N(   R   (   R   RJ   R   R   (   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR     s    i   i   i   (   i   i   i   i    (    (   RI   R   R   R   R   R   (   R   R   R   R   (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_partition_empty_array  s    	c         C` s  t  } t d t  |  } t j g   } | | d  } |  j | |  t j d  } | | d  } |  j | |  t j d d d g  } | j   } | t j d  |  |  j | |  x d d g d d g d d g f D]l } t j |  } t j	 |  } xE d D]= }	 |  j | | |	  |	 | |	  |  j
 | | | |	  qWq Wx d	 d d g d d d	 g d d d	 g d d	 d g d d d g d d d g d d d g d d d g f D]l } t j |  } t j	 |  } xE d D]= }	 |  j | | |	  |	 | |	  |  j
 | | | |	  qWqWt j d
  } |  j | | d  |  t j d  } xA d D]9 }	 |  j | | |	  |	 |	  |  j
 | | | |	  qhWt j d  d  d  d  } x | | j   t | j    f D] }
 |  j | |
 d  d d  |  j | |
 d  d d  |  j | |
 d  | |
 d   |  j | |
 d  | |
 d   |  j
 | | | d  qWt j d  } t j | | j d  } | j d d } |  j | | |  | |  t j d  } t j | | j d d  } | j d d } |  j | | |  | |  t j d  } d | d <|  j | | d   d d  |  j | | d!  d d  t j | d <t j | | d"  d  st  t j d  d } t j	 t j d  d  } |  j j |  xN t | j  D]= } |  j | | |  | | |  |  j
 | | | |  qWt j d d d d	 d d d d d d d d d d d d d d d d d d d g  } d d	 d d g } |  j t | | |  |  d#  g  t j t j g D] } d$ D] } | | f ^ qq} x | D] \ } } t j | d | } |  j j |  t j t j | d | d%  } t |  j j |  x t | j  D]y } | | |  } |  j | | |  t j j | |  | |  t j j | | | | d  |  j
 | | | |  qWqWd  S(&   NR   i    i   i   i   i   i(   i   i   i2   i1   i/   ii   i   ii)   ii   i@B iAB i
   i   i   i	   i   i   RX   (   i    i   (   i    i   i   (   i   i   (   i   i(   i   i(   i   i(   i    i   i   i   (   i	   i   (   i   i   (   RI   R   R   R   R   R   R  t   copyR   R   R-  R  R.  R/  RU   R   R   t   isnanR   R   R   R  R   R   t   tilet   mapR  t   assert_array_less(   R   R   R   R2  R   RJ   t   oktht   rR4  R=   R   R   t   midR1  t   dtt   st   tdt   d1t   p(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_partition_basic  s    (!3:!(""
"!9#8!c         C` s   d } x t  j |  D] } t  j j | | | !| | d d | | | | | k j   s t d | | | | | f   | d } |  j | | | |  q Wd  S(   Ni    t   err_msgs   kth %ds   kth %d, %r not greater equal %di   (   R   R   R  RB  t   allR   R-  (   R   R   R   R2  RJ   t   prevR=   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   assert_partitioned  s    (;
c         C` s  t  } t d t  |  } t |  j | |  } t j d d d d g  } | | d  } | | d  | | t j | d  d  |  j | | | d   t j	 d	  } |  j
 j |  |  j t j	 d	  | | t t | j     t j	 d	  } |  j
 j |  t j d d d
 d g  } |  j
 j |  | | |  } | | |  |  j
 j |  |  j | | |  |  t j	 d  d  d  d  } | | | d g d  d g  | | | d g d d d g  d g d d d g  d  S(   NR   i   i   i   i   i    iii   i   ii   i   i   i   (   i    i   (   i    i   (   i    i   (   i    i   (   ii(   RI   R   R   R   RO  R   R   t   argpartitionR   R   R   R   R   R  R   (   R   R   R   RO  R2  RJ  t   keys(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_partition_iterative  s,    1 c         ` s   t   t d t          f d   } d   } t j d d d  } t j | d d +t j | d	 <t j | d
 <| j d  } x; | |  D]- } x$ t d d  D] } | | |  q Wq Wd  S(   NR   c         ` s    |  |  }   |  |  }  j  | d  d   d  d   | f | d  d   d  d   | f  x t j | j d   D]j }  j  t j | | |   t j | | |     j  t j | | |  t j | | |   qw Wd  S(   Ni(   R   R   t   ndindexR   R,  (   R   RJ   R   R   RG  (   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   -  s    B2c         s` sh   |  V|  j  Vt j |   Vt j |  d t j Vt j |  d t j Vd d t j d f f f Vd  S(   Nt
   fill_valueg      ?gA`"	@i   (   R!  R   R&  t	   full_likeR   R   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   a_variations6  s    i   i
   i0   i   i   i   i	   i   i(   i   i   i   (	   RI   R   R   R   R  R   R   R   R  (   R   R   RV  R   R   R=   (    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_partition_multi_dim)  s    		c         C` s   t  } t d t  |  } xk t j d d d  t j t t t f  f D]< } x3 t t d d d f D] } |  j | | | |  qe WqI Wd  S(   NR   i   i
   i   ii    (   RI   R   R   R   R  R   R   R-  (   R   R   R   R2  RJ   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_partition_boolean_inputsH  s
    4i   i
   s   cov needs Numpy 1.10+c      	   C` sd  t  } t d t  |  } |  j   t j d d g d d g d d g g  j } x[ t j d  d f D]D } |  j    } | | d | Wd  QX|  j	 d t
 | j   qh Wx[ t j t j f D]G } |  j t   } | | d | Wd  QX|  j	 d	 t
 | j   q WxO d D]G } |  j t   } | | d | Wd  QX|  j	 d t
 | j   qWd  S(   NR   i    i   i   i   y              @RO   s)   ddof must be a real numerical scalar types)   Cannot convert non-finite ddof to integerg?gffffffs   ddof must be integral value(   g?gffffff(   RK   R   R   R   R   R   R!  R   R   R   R   R   R   R   R   R   (   R   R   R   RA   RO   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_cov_invalid_ddofP  s     
-c         ` sh   t  d t  |  } t   j | | d d }   f d   } x" |   D] } | i | | 6 qI Wd  S(   NR   R   g+=c           3` s  t  j d d g d d g d d g g  j V  j j d  j d d  Vt  j t  j d d g d d g d d g g  j  V  j j d  j d d  d  d   d  d  d  f Vt  j d d d	 d
 d g  Vt  j d" d t Vt  j t  j	 d t  j
 d
 d g  Vt  j d d d  j d d  Vd# d$ d% f Vd& d' d( f Vd) Vd* Vd d d g Vd+ d, f Vd- d. g Vd Vd0 Vt  j g   Vt  j g   j d d  Vt  j g   j d d  Vd1 Vd  S(2   Ni    i   i   id   i   i   g&S:?go_?g#~j?gZӼ?gQ|?i   RT  ii   i!   g?g?g)\(?gRQ?g
ףp=
?gzG?y        
ףp=
?y        zG?g ig333333@i   g333333?gA`"	@g?g@g      ?(   i   i   (   g?g?(   g)\(?gRQ?(   g
ףp=
?gzG?(   g?g?(   g)\(?gRQ?(   y        
ףp=
?y        zG?(   g ig333333@(   i   i   i   (   g?g?g333333?(   g?g?g333333?(   i   i   i   (   i   i   i   (   g?g@g      ?(   (   g?g@g      ?(    (   R   R   R!  R   t   randnR   R&  t   fullR   R   R   R  (    (   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   input_variationsn  s*    ,56$ (   R   R   R   R  (   R   R   t   first_arg_nameR   R
  R\  t	   input_arr(    (   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   corr_corrcoef_basicj  s
    s   corrcoef needs Numpy 1.10+c         C` s   t  } |  j | d d d  S(   NR]  R   (   RP   R_  (   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_corrcoef_basic  s    c         C` s   t  } |  j | d d d  S(   NR]  RA   (   RK   R_  (   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_cov_basic  s    c         C` s  t  } t d t  |  } t |  j | | d d } |  j j d  j d d  } d  | d  d  d  f } t	 t f } t	 t f } d  d d d	 d
 t f } x_ t
 j | | | |  D]E \ }	 }
 } } i | d 6|	 d 6| d 6| d 6|
 d 6} | |  q Wd  S(   NR   R   g+=ii   i   i   ii    i   g      @RA   RL   RO   RN   RM   (   RK   R   R   R   R  R   RZ  R   R   R   R   R   (   R   R   R   R
  RA   t	   y_choicest   rowvar_choicest   bias_choicest   ddof_choiceRL   RM   RN   RO   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_cov_explicit_arguments  s    +)c   
      C` s   t  } t d t  |  } t |  j | | d d } |  j j d  j d d  } d  | d  d  d  f } t	 t f } xE t
 j | |  D]1 \ } } i | d 6| d	 6| d
 6}	 | |	  q Wd  S(   NR   R   g+=ii   i   i   iR   RL   RM   (   RP   R   R   R   R  R   RZ  R   R   R   R   R   (
   R   R   R   R
  R   Rb  Rc  RL   RM   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt    test_corrcoef_explicit_arguments  s    c   	      C` sQ  t  d t  |  } t |  j | | d d } t j d d d g  } t j d d d	 g  } i | | 6| d
 6} | |  t j d d d g  } t j d d d g g  } i | | 6| d
 6} | |  t j d d d g  } d } i | | 6| d
 6} | |  i | | 6| d
 6} | |  t j d d d g  } d } i | | 6| d
 6} | |  i | | 6| d
 6} | |  t j g   } t j g   } i | | 6| d
 6} | |  d } d } i | | 6| d
 6} | |  |  j j d d  } t j d d d g  j d d  d } i | | 6| d
 6} | |  t j d d d g  } t j d d d	 g d d d	 g g  } i | | 6| d
 6} | |  x t	 t f D] } t j d d d g  } t j d d d	 g d d d	 g d d d	 g g  } i | | 6| d
 6| d 6} | |  i | | 6| d
 6| d 6} | |  qWd  S(   NR   R   g+=g ig333333@i   g?gQ?RL   i   i   y              ?y               @y              @g@i
   i   RM   (   y              ?y               @y              @(   y              ?y               @i   (
   R   R   R   R  R   R   R   RZ  R   R   (	   R   R   R]  R   R
  RA   RL   R  RM   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   cov_corrcoef_edge_cases  sZ    







(
'
3
c         C` s   t  } |  j | d d t d t  |  } t |  j | | d d } x8 t j t j d d f D] } i | d 6} | |  qc Wd  S(   NR]  R   R   R   g+=gA`"	@i    (	   RP   Rh  R   R   R   R  R   R   R   (   R   R   R   R
  R   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_corrcoef_edge_cases  s     i   s   behaviour per Numpy 1.11+c         C` s]   t  } t d t  |  } t |  j | | d d } d d f } i | d 6} | |  d  S(	   NR   R   g+=g0.++g}Ô%ITR   (   g0.++g}Ô%IT(   g}Ô%ITg0.++(   RP   R   R   R   R  (   R   R   R   R
  R   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt&   test_corrcoef_edge_case_extreme_values  s    c         C` s   t  } |  j | d d t d t  |  } t |  j | | d d } t j d d g d d g d d g g  j } i | d 6d	 d
 6} | |  d  S(   NR]  RA   R   R   g+=i    i   i   i   RO   (	   RK   Rh  R   R   R   R  R   R   R!  (   R   R   R   R
  RA   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_cov_edge_cases  s    -c         ` s  t  } t d t  |     j      f d   } t j d  } | |  d d f f f } | |  d d d g g g } | |     f d	   } t j d  } t j d  } | | |  t j d  } d } | | |  t j d  } t j d  }  j t	   }   | d | Wd  QX j
 d t | j   t j d d d g  j d d  }  j t   }   |  Wd  QX j
 d t | j   d  S(   NR   c         ` s<    j     }   |   Wd  QX j d t | j   d  S(   Ns   m has more than 2 dimensions(   R   R   R   R   (   RA   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _check_m3  s    i   i   i   i   i   i   c         ` sB    j     }   |  d | Wd  QX j d t | j   d  S(   NRL   s   y has more than 2 dimensions(   R   R   R   R   (   RA   RL   R   (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _check_yA  s    g?g@g333333?gffffff@i   RL   s$   m and y have incompatible dimensionsg ig333333@s/   2D array containing a single row is unsupported(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   (   i   i   i   (   g?g@g?(   g333333?g@gffffff@(   (   g333333?g@gffffff@(   (   (   g333333?g@gffffff@(   RK   R   R   R   R   R  R   R   R   R   R   R   R   R   t   RuntimeError(   R   R   Rl  RA   Rm  RL   R   (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_cov_exceptions*  s4    



$i   s   ediff1d needs Numpy 1.12+c   
      C` s  t  } t d t  |  } t |  j | |  } d   } d   } x | t j d d d   D] } i | d 6} | |  x | |  D]~ } i | d 6| d 6} | |  i | d 6| d	 6} | |  x9 | |  D]+ }	 i | d 6| d 6|	 d	 6} | |  q Wq Wq^ Wd  S(
   NR   c         s` s   d  V|  V|  j t j  Vd  S(   N(   R   R   R   t   int16(   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   to_variationsa  s    c         s` s.   |  V|  j  d d d  V|  j t j  Vd  S(   Ni   i   (   R   R   R   R   (   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   ary_variationsf  s    ii   i   RR   RT   RS   (   RQ   R   R   R   R  R   R  (
   R   R   R   R
  Rq  Rr  RR   R  R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_ediff1d_basic[  s     		"


c   	   
   ` s/  t   t d t      t  j     }     f d   } d   } x6 |   D]+ } i | d 6| d 6| d 6} | |  qX Wi d g d 6t f d 6t t f d 6} | |  t j d d d	 t j d
 d d d t j g	  } i t j	 d d  d 6| d 6} t
 d k  r!| |  n | | d  i d	 d 6} | |  i d d 6d	 d 6} t
 d k  rr| |  n+ | | d  i d d 6d	 d 6} | |  i t j	 d d  d 6d d 6t d 6} t r!t r!t
 d k r! j t   } | |  Wd  QXd }  j | t | j   n
 | |  d  S(   NR   c         ` s    j  t   }   |    Wd  QXd | }  j | t | j    j  t   }  |    Wd  QXt | j  }  j d |   j d |   j d |  d  S(   Ns-   dtype of %s must be compatible with input arys   cannot converts   to array with dtypes   as required for input ary(   R   R   R   R   R   R   (   R  t   argR   R   t   excstr(   R   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _check_raises_type_error  s    
c       
   s` s   d d f Vd d d g Vt  j g   Vd Vt d k  r t  j t  j t  j d t  j d g  Vt  j t  j d t  j d d d d	 d
 d g	  }  |  d |  d  d  d  } | j d d  Vn  d  S(   Ni   i   i   i   i   i   i   gA`"	@i   i   i	   y              ?i(   i   i   i   (   i   i   i   (    (   i   i   (   R   R   R   R   R   R   (   t   partsR   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR\    s    '0RR   RS   RT   i   i   gA`"	@i   i   i   iii   i   g      @is3   dtype of to_begin must be compatible with input ary(   i   i   (   i   i   (   i   i   (   RQ   R   R   R   R  R   R   R   R   R   R   R   R   R   R   R   R   R   (	   R   R
  Rv  R\  R1  R  RT   R   t   expected_msg(    (   R   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_ediff1d_edge_casesz  s<    	'
0 

'c      	   C` s{   t  } t d t  |  } |  j   |  j   # } | t j t t t f   Wd  QXd } | t | j	  k sw t
  d  S(   NR   s+   Boolean dtype is unsupported (as per NumPy)(   RQ   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R6  R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_ediff1d_exceptions  s    
"c   	      C` s   t  } t d t  |  } d   } d   } xS |   D]H } x? |   D]4 } | | |  } | | |  } |  j | |  qG Wq7 Wd  S(   NR   c           s` s   t  j d  Vt  j d  j d d d  Vd d d g Vt t t f Vt Vd Vd Vt  j t  j d t  j g t  j d	 g g   Vt  j g   Vd Vd  S(   Ni   i   i   i   g?g@gffffff
@i	   g333333@i   i<   (   i	   (    (	   R   R   R   R   R   R&  R   R   R   (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRV    s    /c           S` s%   t  j j t t f t d d  f  S(   Nii
   (   R   R  R  R   R   R  (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   shift_variations  s    (   RU   R   R   R   (	   R   R   R   RV  R{  R   RV   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_roll_basic  s    		c         C` s   t  } t d t  |  } |  j   x` d d f D]R } |  j    } | t j d  |  Wd  QXd } | t | j  k s2 t	  q2 Wd  S(   NR   g?i   i   i
   s   shift must be an integer(   i   i   (
   RU   R   R   R   R   R   R   R   R   R   (   R   R   R   RV   R6  R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_roll_exceptions  s    
c      	   C` s  t  } t d t  |  } t |  j | |  } t j d  } |  j j |  x; t	 d d  D]* } | | k } | i | d 6| d 6 q_ Wt j d  j
 d d	 d
  } | d k } | i | d 6| d 6 d d d f } t j d
  j   } | i | d 6| d 6 d d d d g } d d d d g } | i | d 6| d 6 t j d d d  } t t t j d d d d d d f	 } x_ t j | d  D]K } | i | d 6| d 6 | i t j |  j
 d d  d 6| d 6 qWt j d d d
 g  } t j g   } | i | d 6| d 6 t j d d d
 g  } t j d d d d g  } | i | d 6| d 6 t j d d d
 g d d	 d g g  } d d d d d d g } | i | d 6| d 6 t j d d d
 g d d	 d g g  } t j d d d d d d d d g  j
 d d d  } | i | d 6| d 6 t j t j d  j
 d
 d d	   } t j d d  } | i | d 6| d 6 | i | d 6| d  d  d  d 6 t j d  } x& d  D] } | i | d 6| d 6 qWd } d } | i | d 6| d 6 t j d  } t j t t g  } | i | d 6| d 6 t j d  } t j d d d d d d g  j
 d d
  d } | i | d 6| d 6 d  S(!   NR   i
   ii   R[   R   i<   i   i   i   gffffff&@i   i   i   g?g@gffffff
@g@i    iig      g333333g      ?y              ?i   y              ?(   i   i   i   (   i   i   i   (   i   i   i   (   i    i   (   i    i   (   RZ   R   R   R   R  R   R   R   R   R  R   t   eyet   flattenR  R   R   R   t   combinations_with_replacementR   R&  Re   (   R   R   R   R
  R   t	   thresholdt   condt   element_pool(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_extract_basic  sd    $1''6'%1c      	   ` s  t  } t d t  |     j   t j g   } t j d d d g  }  j t   }   | |  Wd  QX j d t	 | j
      f d   } t j d d d g d d d g g  } d d d d d d d g } | | |  t j d d d g  } t j d d d d d g  } | | |  t j d  } d
 } | | |  t j d	  } t j t t t t t g  } | | |  t j d	  } t j t t t t t t t g  } | | |  d  S(   NR   i   i   i   s"   Cannot extract from an empty arrayc         ` sH   d }  j  t   }   |  |  Wd  QX j | t | j   d  S(   Ns+   condition shape inconsistent with arr shape(   R   R   R   R   R   (   R  R   R   R6  (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR
  O  s    i    i<   i   (   i    i   (   RZ   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R  R6  R
  (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_extract_exceptionsA  s0    
'$c         C` s  t  } t d t  |  } t |  j | |  } d d d g } | i | d 6 d } | i | d 6 t j d  j d d  } | i | d 6 t j d d	 d
  j d d d  } | i | d 6d d |  j	 j
 |  | i | d 6d d t j g   } | i | d 6 t j d t j t j t j d g  } | i | d 6 t j d  t j d d	 d  d } | i | d 6 t j g  d t j } | i | d 6 t t t f } | i | d 6 d  S(   NR   i   i   i   RL   i   i   ii
   i<   i   R   gvIh%<=gA`"	@i   i    y              ?RX   (   i   i   i   i   i   (   R]   R   R   R   R  R   R   R   R  R   R   R   R   R   R   R   (   R   R   R   R
  RL   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_np_trapz_basici  s.    $(&c         C` s  t  } t d t  |  } t |  j | |  } d d d g } d d d g } | i | d 6| d	 6 d d d d d
 g } d } | i | d 6| d	 6 d } d d
 d d d g } | i | d 6| d	 6 t j d d d d d
 g  } d d g } | i | d 6| d	 6 t j g   } t j d d g  } | i | d 6| d	 6 d } d  } | i | d 6| d	 6 t j d  j	 d
 d  } t j d d
 g  } | i | d 6| d	 6 t j d  j	 d
 d  } t j d d
 d d g  } | i | d 6| d	 6 t j d  j	 d
 d d  } t j d d
 g  } | i | d 6| d	 6 t j d  j	 d
 d d  } t j d d
 d g  } | i | d 6| d	 6 t j d  j	 d
 d d  } |  j
 j |  | d } |  j
 j |  | i | d 6| d	 6 t j d  } | t j d d d  d } | i | d 6| d	 6 t j d d d g  } t j d d g  } | i | d 6| d	 6 d  S(   NR   i   i   i   i   i   i   RL   R   i   i   i   i<   g?i    i
   y              ?y               @(   i   i   (   i   i   i   i   i   (   i   i   i   i   i   y      ?      ?y      ?       @(   R^   R   R   R   R  R   R   R   R   R   R   R   R  (   R   R   R   R
  RL   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_np_trapz_x_basic  sX    
s   NumPy behaviour questionablec         C` s   t  } t d t  |  } t |  j | |  } t j t t t t g  j t j	  } | i | d 6 t j t t t t g  } | i | d 6 d  S(   NR   RL   (
   R]   R   R   R   R  R   R   R   R   t   int(   R   R   R   R
  RL   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_trapz_numpy_questionable  s    'c         C` s  t  } t d t  |  } t |  j | |  } d d d g } d } | i | d 6| d 6 d d d d d g } d d d d	 g } | i | d 6| d 6 d d d d d g } d d d d	 g } | i | d 6| d 6 t j d
 d d  } t j } | i | d 6| d 6 t j d
 d d  } t j } | i | d 6| d 6 t j d
 d d  } t j d
 d d  } | i | d 6| d 6d d t j	 d  j
 d d d  d } t j	 d  j
 d d d  } | i | d 6| d 6 t j	 d d d  } | t j d | d  t j d t j  d d } t j j | d d  t j	 d  } d } | i | d 6| d 6 t j	 d  } t j d g  } | i | d 6| d 6 d  S(   NR   i   i   i   RL   R_   i   i   i   ii
   i	   R   gvIh%<=i<   y              ?i(   ig?g      i   i   (   R`   R   R   R   R  R   R  R   R   R   R   t   expR   t   piR  t   assert_almost_equalR   (   R   R   R   R
  RL   R_   R   RD  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_np_trapz_dx_basic  sB    		"7c         C` s  t  } t d t  |  } t |  j | |  } xYd  d t j d d d d d g  f D]0} d d d g } d d d g } | i | d	 6| d
 6| d 6 d d d d d g } d d g } | i | d	 6| d
 6| d 6 d d d d d g } d d d d d g } | i | d	 6| d
 6| d 6 t j d  j	 d d d  } |  j
 j |  | d } t j | d <| i | d	 6| d
 6| d 6 qX Wd  S(   NR   i   i   i   i   i   i   i   RL   R   R_   i   i<   g?(   i   i   i   (   Ra   R   R   R   R  R   R   R   R   R   R   R   R   (   R   R   R   R
  R_   RL   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_np_trapz_x_dx_basic  s$    .
c      
   ` sg  t  } t d t  |     j      f d   } d d d d d g } xB d d d d	 d
 d g d d d g f D] } | | | d f  qt Wt j d  j d d d  } t j d  j d d d  } | | | d f  t j d  j d d d  } t j d d d d	 g  } | | | d f  d d d d d g } t j d d g  } | | d  | f  t j d  j d d d  } t j d  j d d d  } | | d  | f   j	   ) } t j d  } | | d  d f  Wd  QX j
 d t | j   xX d t t j f D]D }  j	    }   | d  d  Wd  QX j
 d t | j   qWd  S(   NR   c         ` s?    j  t   }   |    Wd  QX j d t | j   d  S(   Ns   unable to broadcast(   R   R   R   R   R   (   R  R6  (   R   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   check_not_ok$  s    i   i   i   i   i   i   i   i   i	   g      ?i<   i$   g       @s   y cannot be 0Ds   y cannot be a scalar(   Ra   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R  RL   R   R_   R6  (    (   R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_np_trapz_x_dx_exceptions  s6    
.s   interp needs Numpy 1.10+c         C` sd  t  } t d t  |  } t |  j | | d d } t j d d d  } t j d d  } | d	 } | d
 i | d 6| d 6| d 6 |  j j	 |  | d
 i | d 6| d 6| d 6 |  j j	 |  | d
 i | d 6| d 6| d 6 t j
 | d *t j | d )|  j j	 |  | d
 i | d 6| d 6| d 6 t j
 | d *t j | d )|  j j	 |  | d
 i | d 6| d 6| d 6 t j d d  } | d } | d } | d
 i | d 6| d 6| d 6 d9 } d: } d; } | d
 i | d 6| d 6| d 6 d< d= f } t j d d d  } t j d d  } | d
 i | d 6| d 6| d 6 t j d t j
 t j t j d d g  } | j d d d d } t j d d d  } t j d d  } | d
 i | d 6| d 6| d 6 xN t d  d  D]= } d! d d g } d> } | d
 i | d 6| d 6| d 6 qWt j g   } d! d d g } d? } | d
 i | d 6| d 6| d 6 t j d! d d"  j d d d  } t j d#  } | d } | d
 i | d 6| d 6| d 6 t j
 } t j d  } t j d t j
  } | d
 i | d 6| d 6| d 6 t j
 } d g } d g } | d
 i | d 6| d 6| d 6 t j d d  } | } | } | d
 i | d 6| d 6| d 6 t t g } t j d d  } | } | d
 i | d 6| d 6| d 6 t j d$ d d% t j g } t j d d  } | d } | d
 i | d 6| d 6| d 6 t j d& d d  } t j t j d$ d d% t j g  } | d } | d
 i | d 6| d 6| d 6 |  j j d'  } t j d( d d'  } t j d' d) d* } | d
 i | d 6| d 6| d 6 xd d@ D]\ } t j d d d g  | } d d g } d d g } | d
 i | d 6| d 6| d 6 qWd } d g } t g } | d
 i | d 6| d 6| d 6 t j d! d d  } t j d! d d  } t j d! d d,  }	 | |	 | |  }
 t j j |
 |	  t j d d d d g  } t j d d d d g  } t j d d d- d g  } | d
 i | d 6| d 6| d 6 d g } t j g } | d
 i d d 6| d 6| d 6 t j d d d. d d g  } t j d d d d g  } t j d d t j
 d g  } | i | d 6| d 6| d 6 t j d d	 d d. d d d/ d d0 g	  } t j d d d d d g  } t j t j
 d t j
 d t j
 g  } | i | d 6| d 6| d 6 t j d d d. d d g  } t j d d d d g  } t j d d t j d g  } | i | d 6| d 6| d 6 t j d d	 t j
 d. t j d d/ d t j d! d g  } t j d d d d d d g  } t j d d t j
 d d t j g  } | i | d 6| d 6| d 6 t j d1 d2 d3 g  } t j d! d dA  } t j | d5  } | i | d 6| d 6| d 6 |  j j d! d t j dB  } t j d! d t j d6  } t j |  } t j |  } | | | |  } t j j | | d7 d8 |  j j d  } t j d& d d6  } t j |  } | i | d 6| d 6| d 6 |  j j d6  } t j d& d d  } t j |  } | i | d 6| d 6| d 6 d  S(C   NR   R   g|=ii   i   ii   g      ?R  R   Rc   Rd   i   i   g@gffffff
@g      i   i   i   i   g333333?g?g      @i
   gffffff?g        g333333"R$  R%  ii    i<   i   g      g      ?iid   iRT  gA`"	@ii2   gGz@g      @g      @g      @g~@g<ԛ@g3@i N  g       @i  t   atolgh㈵>(   g@gffffff
@g      (   i   i   i   (   i   i   i   (   g@gffffff
@g      (   g333333?g?g      @(   i   i   i   (   i   i   i   (   i   ii!N  (   id   (   Rb   R   R   R   R  R   R  R   R   R   R   R   R   R   R  R[  R   RZ  R  R  t   sint   uniformR  t   cost   assert_allcloset	   ones_like(   R   R   R   R
  R   Rc   Rd   t   factorRL   t   x0t   outt   exactR   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_interp_basicJ  s   
"""""

"""+"&"$
"	"			"""
"%
""&		""	"*':!'c         C` s   | j  d } t j | |  j j t | j   | d t t j  t j | |  j j t | j   | d t t j  t j | |  j j t | j   | d t t j  d  S(   Nid   t   replace(	   R   R   t   putR   t   choiceR  R   R   R   (   R   R   RJ  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   _make_some_values_non_finite  s    45c         c` s  t  j d d d | d  Vt  j d d d |  Vt  j d d d | d  Vt  j d d d | d  Vt  j d	 d
 d | d  Vt  j d d d |  d Vt  j d d d | d  d Vt  j d d d |  d Vt  j d d d | d  d Vt  j d d d | d  d t  j t  j d | d  t  j d | d  Vt  j d d d |  |  j j d d | d d |  Vt  j d d d |  |  j j d d | d d |  Vt  j d d d |  |  j j d d | d d |  Vt  j d d d |  |  j j d d | d d |  Vt  j d d d |  |  j j d d | d d |  Vt  j d d d |  |  j j d d | d d |  V|  j j d |  d d V|  j j d | d  d d Vd  S(   Ng       @g      @i   i   g @g333333@i   g      @g?g      #@g@g333333@gq=
ףp?g @gQ?g333333?R   t   scaleg      ?g      @g      4@g      I@g      i@g      "@g333333?g      @g?(   R   R  R  R   R  R   t   normalt   rand(   R   t   ndata(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR     s2      #.""""""c   
      C` s^  t  } t d t  |  } d } t j d d d |  } t j | d  } x
|  j |  D]} d } | | | |  } | | | |  }	 |  j | |	 d | |  j j	 |  | | | |  } | | | |  }	 |  j | |	 d | |  j j	 |  | | | |  } | | | |  }	 |  j | |	 d | |  j j	 |  | | | |  } | | | |  }	 |  j | |	 d | |  j
 |  | | | |  } | | | |  }	 |  j | |	 d | |  j
 |  | | | |  } | | | |  }	 |  j | |	 d | |  j
 |  | | | |  } | | | |  }	 |  j | |	 d | q] Wd  S(	   NR   i N  i    i
   i   g       @g+=R   (   Rb   R   R   R   R  R  R   R   R   R   R  (
   R   R   R   R  Rc   Rd   R   R  R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_interp_stress_tests&	  sD    s   complex interp: Numpy 1.12+c         C` s  t  } t d t  |  } d } t j d d d |  } t j | d  } |  j j t j t j t j	 g d  | d *|  j j
 |  t j | d  } |  j j t j t j t j	 g d  | d *|  j j
 |  | d | } x |  j |  D] } | | | |  }	 | | | |  }
 t j j |	 |
 d	 t |  j j
 |  |  j j
 |  |  j j
 |  t j j |	 |
 d	 t q Wd  S(
   NR   i  i    i
   i   g       @i   y              ?t	   equal_nan(   Rb   R   R   R   R  R  R   R  R   R   R   R  R   R  R  (   R   R   R   R  Rc   t   realt   imagRd   R   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt    test_interp_complex_stress_testsX	  s&    ,,c   	      C` s  t  } t d t  |  } |  j   t j d d d g  } t j g   } t j g   } |  j t   } | | | |  Wd  QXd } |  j | t	 | j
   d } t j d d d g  } t j d d g  } |  j t   } | | | |  Wd  QXd } |  j | t	 | j
   d } t j d  j d d  } t j d  } |  j    } | | | |  Wd  QXd } |  j | t	 | j
   d } t j d  } t j d  j d d  } |  j    } | | | |  Wd  QXd	 } |  j | t	 | j
   d } t j d  } t j d  } |  j    } | | | |  Wd  QXd } |  j | t	 | j
   d } t j d  d
 j t j  } t j d  } |  j    } | | | |  Wd  QX|  j | t	 | j
   d  S(   NR   i   i   i   s   array of sample points is emptys#   fp and xp are not of the same size.i   s   xp must be 1Ds   fp must be 1Dy              ?s:   Cannot cast array data from complex dtype to float64 dtypey      ?      ?(   Rb   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (	   R   R   R   R   Rc   Rd   R6  R   t   complex_dtype_msg(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_interp_exceptionst	  sX    
c         C` s   t  } t d t  |  } |  j   t j d  } t j d  } t j d  d } |  j    } | | | |  Wd  QXd } |  j | t | j	   d  S(   NR   i   y              ?s:   Cannot cast array data from complex dtype to float64 dtype(
   Rb   R   R   R   R   R   R   R   R   R   (   R   R   R   R   Rc   Rd   R6  R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_interp_pre_112_exceptions	  s    
c         C` s"  t  } t d t  |  } t |  j | |  } t j d d d d g  } t j t j d d t j g  } t j d d	 g  } i | d
 6| d 6| d 6} | |  t j t j d d t j g  } t j d d d d g  } t j d d	 g  } i | d
 6| d 6| d 6} | |  d  S(   NR   i    i   i	   i
   g?g?g?g      #@R   Rc   Rd   (   Rb   R   R   R   R  R   R   R   (   R   R   R   R
  Rc   Rd   R   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt"   test_interp_non_finite_calibration	  s    "
"c         C` s  t  } t d t  |  } x t d d  D] } t j | d t j } t j | d t j } t j d d | d | g d t j } | d  d  d  } | | | |  } | | | |  }	 t j d d d d g d t	 }
 |
 d  d  d  } t j
 j | |
  t j
 j |	 |  q+ Wt j d d d  } t j d d d  } d } t j
 j | | | |  |  d } t j
 j | | | |  |  t j d  } t j
 j | | | |  |  t j d  } t j
 j | | | |  |  t j } t j
 j | | | |  |  t j d d d  } t j d d d  } t j d  } t j
 j | | | |  |  t j d d d	  } t j |  } t j
 j | t j | |  d
  d  S(   NR   i   i
   RX   ii    i   g333333?g-C6?g        (   Rb   R   R   R  R   R   R   R  R   R   R  R  R  R   R   R   R  R  (   R   R   R   R   Rc   t   ypt   incptst   decptst   increst   decrest   inctgtt   dectgtR   RL   R  Rd   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_interp_supplemental_tests	  s@    (!	s   complex interp: Numpy 1.10+c         C` s   t  } t d t  |  } t j d d d  } t j d d d  d t j d d d  d } d } | d | d } t j j | | | |  |  d  S(   NR   i    i   i   y              ?g333333?(   Rb   R   R   R   R  R  R  (   R   R   R   R   RL   R  t   y0(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt&   test_interp_supplemental_complex_tests
  s    0c   	      ` sc  d   }   f d   } xDt  t g D]6} t d t  |  } t   j | |  } x|   D] } i | d 6} d | j k r x8 d  t j	 g D] } | | d <| |  q Wn
 | |  t j
 d d t j } i | d 6} d | j k rGd  | d <| | t |  t j	 | d <| | t |  t j | d <| | t |  q_ | | t |  q_ Wq% Wd  S(   Nc           s` s   d Vd Vt  Vd Vd d d g Vd	 d
 g Vd Vd d f Vd d d g d d d g f Vt j g   Vt j d  Vt j d  j d d  Vt j d  j d d  j Vd S(   sm  
            To quote from: https://docs.scipy.org/doc/numpy/reference/generated/numpy.asarray.html
            Input data, in any form that can be converted to an array.
            This includes:
            * lists
            * lists of tuples
            * tuples
            * tuples of tuples
            * tuples of lists
            * ndarrays
            y              ?g333333?i   i   i   i   i   N(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R   R   R   R   R   R!  (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR\  
  s    c         ` sx   |  |   } | r,   j  | | d k  nH   j  | | d k	  t j j | | d    j  | j | d k  d  S(   NR   RX   (   t
   assertTrueR   R  R  RX   (   t   jittedt   expect_sameR  t   returned(   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   check_pass_through9
  s    R   R   t   kwsRX   i
   (   RW   RY   R   R   R   R  t   __name__R   R   R   R   R   R   (	   R   R\  R  R   R   R
  R   R  RF  (    (   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_asarray
  s,    	



c      	   ` s  t  } t |  } t } t |  } x| | f | | f f D]\        f d   } t j d  t j d  t j d d g d d g g  t j g   t j g  g  g  g } t j t j t j	 t j
 t j t j t j t j g } d   t j | |  D } d d t d	 d d d g d g }	 xj t j | |	  D]V }
 | |
 d
 d | |
 d
 d | |
 d
 d | |
 d
 d | |
 d
 d q>Wt j d  } xI d g d g d g f D]/ }
 | | d
 |
 | | d
 t j |
  qWt j d  } xv d d g d d g d d g d d g d d g d d g d d g f D]/ }
 | | d
 |
 | | d
 t j |
  qHW| | d
 t j d d g d t j | t j d  d
 t j d  q= Wd  S(   Nc         ` s&    j   |  |    |  |   d  S(   N(   R   (   R   Rf   (   t   nbfuncR   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   i
  s    i   i  i    i   i   c         s` s*   |  ]  \ } } t  j | d  | Vq d S(   RX   N(   R   R   (   t   .0R   t   t(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pys	   <genexpr>
  s    g      ?y              ?Rf   id   RX   i
   (   i    i   i   (   Rg   R   Rh   R   R  R   R   t   uint32R   t   uint64R   R   R   R   R   R   R   R   R  (   R   t	   np_pyfunct	   np_nbfunct   array_pyfunct   array_nbfuncR   t   target_numpy_valuest   target_numpy_typest   target_numpy_inputst   target_non_numpy_inputsR1  t   onet   two(    (   R  R   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_repeat]
  sZ    		L(c   	      C` s  t  } t |  } t } t |  } |  j   xR| | f | | f f D]8\ } } |  j t   } | t j d  d  Wd  QX|  j d t	 | j
   |  j t   } | t j d  d  Wd  QX|  j d t	 | j
   |  j t  , } | t j d  t j d d g   Wd  QX|  j d t	 | j
   |  j t  / } | t j d  t j d d d g   Wd  QX|  j d t	 | j
   |  j t  2 } | t j d  t j d d d d g   Wd  QX|  j d t	 | j
   |  j t  # } | t j d  d d g  Wd  QX|  j d t	 | j
   xC t d	 d
 g D]2 } |  j t   | t j d  |  Wd  QXqIWqG Wd  S(   Ni   is#   negative dimensions are not allowedg      ?sI   The repeats argument must be an integer or an array-like of integer dtypei   s(   operands could not be broadcast togetheri   R   t   1(   Rg   R   Rh   R   R   R   R   R  R   R   R   R   R   R   (	   R   R  R  R  R  R   R  R6  t   rep(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_repeat_exception
  sH    
	+	.	1	"c   
      C` s  t  } t t   } t j t t t g  t j t t t g  t j t t t g  g t j d d d g  t j d d d g  t j d d d	 g  g d
 f t j t g  t j t g  g t j d g  t j d g  g d f t j t g  g d t j d g  g d d f t j t j d d d t j d d g   g d t j d d d t j d d g  g d d f t j t j d d d t j d d g g   g d t j d d d t j d d g g  g d d f t j t j d d d t j d d g   g d t j d d d t j d d g  g d d f g } x t j d  t j d  j	 d  f D] } | j
 | d k  | d k g | | d g d f  | j
 | d k  | d k f | | d f d f  | j
 | d k  | d k g | | d f d f  | j
 | d k  | d k f | | d g d f  qgWx? | D]7 \ } } } |  j | | | |  | | | |   q@Wt } t t  }	 |  j | | |  |	 | |   d  S(   Ni   i   i   i   i   i   i   i   i	   g.@i    id   y               @i
   y      @       @y      @       @(   i   i   (   Rm   R   R   R   R   R   R?  R   R   R   t   appendR   Rn   (
   R   R  R  t
   test_casesR   Rk   Rl   Ri   t   np_pyfunc_defaultst   np_nbfunc_defaults(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_select
  s:    921.4114.2226c   	      C` s  t  t  } t j d  } |  j   xt j t  t j t t t g  g t j d  t j d  j d d  g d t	 d f t j t  t j t  g t j d g  t j d g  g d t	 d	 f t j t g  t j t g  g t j d g g  t j d g g  g d t	 d	 f t j t  t j t  g t j d  t j d  g d t	 d f t j
 t j d d d t j d
 d g   t j d d d t j d
 d g  d t	 d f t g d g d g t	 d f | d k  j t  | d
 k j t  g | | d g d t	 d f | d k | d k | d k | d k g | | d | g d t d f t f g d t j d g  g d d t	 d f t j t g  g d d g d d t	 d f g
 D]V \ } } } } } |  j |   } | | | |  Wd  QX|  j | t | j   qWd  S(   Ni
   i   i   i   i   i    s/   condlist arrays must be of at least dimension 1i   sH   condlist and choicelist elements must have the same number of dimensionsi   i   s"   condlist must be a List or a Tuples   default must be a scalars%   condlist arrays must contain booleansi	   i   i   s7   list of cases must be same length as list of conditionsid   s    items of condlist must be arrayss"   items of choicelist must be arrays(   i   (   R   Rm   R   R   R   R   R   R   R   R   R?  R   R   R  R   R   R   R   R   (	   R   R  R   Rk   Rl   Ri   t   expected_errort   expected_textR6  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_select_exception  s<    
$*	<!-9	*'7	=	)&c   	   	   ` s    f d   } | t   | t  | t  | t  t } t t  } x d d d d g D] } x d d d g D]q } | | |  } | | |  } t s t j   d k r   j	 | | d d d d qr   j	 | | d d qr Wq\ WxU d d d g D]D }   j
 t   } | | d  Wd  QX  j d t | j   q WxR d d g D]D }   j
 t   } | d |  Wd  QX  j d t | j   qPWd  S(   Nc         ` s   |  } t  |   } xB d d d d g D]. } | |  } | |  }   j | |  q% WxR d d d g D]A }   j t   } | d  Wd  QX  j d t | j   qg Wd  S(	   Ni    i   i   i   R   g?y              ?s   M must be an integer(   R   R   R   R   R   R   R   (   t   funcR  R  R;   R   R   R   (   R   (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   check_windowF  s    i    i   i   i   g        g      @g      ,@R   t   aarch64R   R   R   i   R  R   g?y              ?g      ?s   M must be an integers    beta must be an integer or float(   R   R  (   Rp   Rr   Rt   Rv   Ry   R   R   t   platformt   machineR   R   R   R   R   R   (	   R   R  R  R  R;   Rx   R   R   R   (    (   R   s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_windowingE  s,    



N(   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   i
   (   i   i   (   i   i
   (   i   i
   (   i   i   (   i   i
   (   i   i
   (   i   i   (j   R  t
   __module__t   __doc__R|   t   no_pyobj_flagsR   R   R   R   R   t   unittestt   skipIfR  R  R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R  R  R  R  R  R  R  R   t   staticmethodR  R'  R(  R)  R*  R+  R-  R5  R7  R8  R:  R;  R<  R=  RK  RO  RR  RW  RX  t
   skipUnlessR   R   RY  R_  R`  Ra  Rf  Rg  Rh  Ri  Rj  Rk  Ro  Rs  Ry  Rz  R|  R}  R  R  R  R  t   skipR  R  R  R  R  R  R   R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyRz      s   	.	9('	!			
								A	+	#					5	 				&			 														e		"			$	=0!!P!			B	(	#	;	.		-!		-!2!!F1!!*!	C	D	:	3	7t   TestNPMachineParametersc           B` sS   e  Z d  Z e d	 k r d
 n d Z d   Z d   Z d   Z d   Z d   Z	 RS(   s0   
def foo():
    ty = np.%s
    return np.%s(ty)
i   i   t   bitsc   	      G` sj   | } t  d t  |  } | |   } | |   } x0 | D]( } |  j t | |  t | |   q: Wd  S(   NR   (   R   R   R   t   getattr(	   R   R  t   attrsR/   R   R   R   R   t   attr(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR   }  s    c         C` sF   | j  } | j  } |  j | | f } t t | d d   t   d S(   Ns   <string>t   exect   foo(   R  t   templatet   evalR   t   locals(   R   t   basefunct   tyt   tystrt   basestrt   funcstr(    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   create_harcoded_variant  s
    		c         C` s   d } |  j  t |  d  S(   Nt   ibetat   itt   machepR   t   negept   epsnegt   iexpt   minexpt   xmint   maxexpt   xmaxt   irndt   ngrdt   epsilont   tinyt   huget	   precisiont
   resolution(   R  R  R  R   R  R  R  R  R  R   R  R  R  R  R  R  R  R  (   R   R2   (   R   R  (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   test_MachAr  s      c         C` s  t  j t  j t  j t  j g } |  j d } xL | D]D } |  j t | | d   |  j t  j |  } |  j | |  q2 W|  j	 t
  & } t d t  t  } | d  Wd  QXd } |  j | t | j   |  j   - t d t  t  } | t  j d   Wd  QXd  S(   NR   R  R  R  t   maxR   R  t   nexpt   nmantR  R  R  i   R   g      @s(   Unknown attribute 'machar' of type finfoi   (   R   R  R  R  R
  R   R  R  R  R  R  R  (   R   R   R   R   R   R  R   R4   R  R   R   R   R   R5   R   R   R   R   R   (   R   R	   R  R  t   hc_funcR   R   R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   test_finfo  s      c         C` s   t  j t  j t  j t  j t  j t  j t  j t  j g } d |  j	 } xL | D]D } |  j
 t | | d   |  j t  j |  } |  j
 | |  qJ W|  j   - t d t  t  } | t  j d   Wd  QXd  S(   Nt   minR
  i   R   i   (   R  R
  (   R   R   Rp  R   R   t   uint8t   uint16R  R  R  R   R3   R  R   R   R   R   (   R   R	   R  R  R  R   (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt
   test_iinfo  s    $(   i   i   (   R  (    (
   R  R  R  R   R  R   R  R	  R  R  (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyR  r  s   					([   t
   __future__R    R   R   R   R   R  t	   functoolsR   t   numpyR   t   numbaR   R  t   numba.compilerR   R   R   R   R	   t   numba.numpy_supportR
   R   t   numba.errorsR   t   numba.configR   R   t   supportR   R   R   t   matmul_usecaseR   R  t   setR   R   R   R   R   R!   R#   R&   R'   R+   R-   R.   R0   R2   R3   R4   R5   R6   R7   R:   R   R<   R>   R?   RB   RC   RE   RF   R   RG   RI   R   RK   RP   RQ   RU   RW   RY   RZ   R]   R^   R`   Ra   Rb   Rg   Rh   Rm   Rn   Rp   Rr   Rt   Rv   Ry   Rz   R  (    (    (    s<   lib/python2.7/site-packages/numba/tests/test_np_functions.pyt   <module>   s   "																																									          