
˽Xc           @` s$  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m Z m	 Z	 d  d l
 m Z m Z m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z d e f d     YZ d	 e f d
     YZ d e f d     YZ e  d k r e   n  d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   cost   sint   pi(   t   TestCaset   run_module_suitet   assert_equalt   assert_almost_equalt   assert_allcloset   assert_(   t
   quadraturet   rombergt   rombt   newton_cotest   cumtrapzt   quadt   simpst
   fixed_quad(   t   AccuracyWarningt   TestFixedQuadc           B` s   e  Z d    Z d   Z RS(   c         ` sX   d     f d   } d d   } t  | d d d   \ } } t | | d d d  S(	   Ni   c         ` s   |  d   d S(   Ni   i   (    (   t   x(   t   n(    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   <lambda>   s    i   i   i    R   t   rtolg-q=(   R   R
   (   t   selft   funct   expectedt   gott   _(    (   R   sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_scalar   s
    c         ` sn   d } t  j d d |      f d   } d   d } t | d d d | \ } } t | | d d d  S(	   Ni   i   i   c         ` s   |    d  d   d  f S(   N(   t   None(   R   (   t   p(    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR      s    i    R   R   g-q=(   t   npt   arangeR   R
   (   R   R   R   R   R   R   (    (   R!   sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_vector   s    (   t   __name__t
   __module__R   R$   (    (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR      s   	t   TestQuadraturec           B` s}   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z RS(   c         C` s
   t   d  S(   N(   t   NotImplementedError(   R   R   t   at   bt   args(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR   !   s    c         C` sA   d   } t  | d t d  \ } } d } t | | d d d  S(	   Nc         S` s    t  | |  | t |    t S(   N(   R   R   R   (   R   R   t   z(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   myfunc&   s    i    i   g?gۗ?t   decimali   (   i   g?(   R   R   R	   (   R   R-   t   valt   errt	   table_val(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_quadrature$   s    	c         C` sG   d   } t  | d t d	 d d \ } } d
 } t | | d d d  S(   Nc         S` s$   d t  | |  | t |    t S(   NgY)	kR(   R   R   R   (   R   R   R,   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR-   -   s    i    i   g?R   g|=gY)	kRgۗ?(   i   g?g.<R(   R   R   R
   (   R   R-   R/   R0   R1   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_quadrature_rtol,   s    	!c         C` sn   d   } d } xX d d g D]J } t  | d t d d | \ } } t | | d	 d
 t | d k   q Wd  S(   Nc         S` s    t  | |  | t |    t S(   N(   R   R   R   (   R   R   R,   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR-   5   s    gۗ?i   i4   i    i   g?t   miniterR.   i   g      ?(   i   g?(   R   R   R	   R   (   R   R-   R1   R4   R/   R0   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_quadrature_miniter3   s    	!c         C` sJ   d   } t  | d t d d d d \ } } d	 } t | | d d d  S(
   Nc         S` s$   d t  | |  d t |    t S(   NgY)	kRg?(   R   R   R   (   R   R   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR-   >   s    i    R+   i   R   g|=gY)	kRgۗ?g.<R(   R   R   R
   (   R   R-   R/   R0   R1   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_quadrature_single_args=   s    	$c         C` s>   d   } t  | d t d d	 } d } t | | d d d  S(
   Nc         S` s    t  | |  | t |    t S(   N(   R   R   R   (   R   R   R,   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR-   F   s    i    R+   i   g?gۗ?R.   i   (   i   g?(   R   R   R	   (   R   R-   R/   R1   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_rombergD   s    	c         C` sD   d   } t  | d t d d
 d d } d } t | | d d d  S(   Nc         S` s$   d t  | |  | t |    t S(   Ng =`XC(   R   R   R   (   R   R   R,   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR-   N   s    i    R+   i   g?R   g|=g =`XCgۗ?(   i   g?g3>C(   R   R   R
   (   R   R-   R/   R1   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_romberg_rtolL   s    	c         C` s    t  t t j d   d  d  S(   Ni   i   (   R   R   R"   R#   (   R   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt	   test_rombT   s    c      
   C` s   t  j d  } t  j d |  } t |  } t d   | j   | j    \ } } t | | d d d d	 t j	   ? t j
 d
 d t t d   | j   | j   d d } Wd  QXt | | d d d d	 d  S(   Ni   i   i   g?c         S` s   t  j d |   S(   Ng?(   R"   R   (   R   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR   \   s    R   g:0yE>t   atoli    t   ignoret   categoryc         S` s   t  j d |   S(   Ng?(   R"   R   (   R   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR   b   s    t   divmaxg-q=i   i   (   R"   R#   R   R   R   t   mint   maxR
   t   warningst   catch_warningst   filterwarningsR   R   (   R   R   t   yR/   t   val2R0   t   val3(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_romb_gh_3731W   s    'c         C` s>   d d  l  } t | j d d  } d } t | | d d d  S(   Ni    i   g?k?R.   i   (   t   mathR   R   R	   (   R   RG   t   valmatht   expected_val(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_non_dtypef   s    c      	   C` sf  d } t  | d  \ } } t | | t j d d g   t | | d d  d } t  | d  \ } } t | | t j d d d g  d  t | | d	 d
  d } t  | d  \ } } t | | t j d d d d g  d  t | | d	 d  d } t  | d  \ } } t | | t j d d d d d g  d  t | | d d  d S(   s5   Test the first few degrees, for evenly spaced points.i   g      ?i   g      (@i   g      ?g      @g      @i   g     @g      @g       @g     P@i   g      @g      @@g     V@i   g     =AN(   R   R   R"   t   arrayR	   (   R   R   t   wtst   errcoff(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_newton_cotesm   s      '*-c         C` s   t  j d d d g  } | d } t |  \ } } d } t  j | |  } t | |  t  j d d d d	 g  } | d } t |  \ } } d
 } t  j | |  } t | |  d S(   s9   Test newton_cotes with points that are not evenly spaced.g        g      ?g       @i   g       @i   gffffff?g @g      @g      "@NgUUUUUU@(   R"   RK   R   t   dotR	   (   R   R   RC   RL   RM   t   exact_integralt   numeric_integral(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_newton_cotes2   s    

c         C` s   t  j d  } t t |  d  t t | d d d  t t | d t  j d d d  d	  t  j d  } d
 | } t t | d | d d d  t t | d | d d d  t t | d | d d d  d  S(   Ni   i   t   dxg      ?i@   R   i    i   i    i   t   event   avgg     +@t   firstg     +@t   lasti   (   R"   R#   R   R   t   linspace(   R   RC   R   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt
   test_simps   s    (
(   R%   R&   R   R2   R3   R5   R6   R7   R8   R9   RF   RJ   RN   RR   RY   (    (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyR'       s   				
								t   TestCumtrapzc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s   t  j d d d d } | } t | | d d } d d d	 d d g } t | |  t | | d d  } t | | d
  d  S(   Nii   t   numi   t   initiali    g        g      g       i   (   R"   RX   R   R
   R    (   R   R   RC   t   y_intt
   y_expected(    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_1d   s    c         C` sJ  t  j d  j d d d  } | } t | | d d } t  j d d d d	 g d d	 d
 d g g d d d d g d d d d g g d d d d g d d d d g g g  } t | |  d d d g } x| t d d d g |  D]b \ } } t | | d d d | } t | j d  t | | d d  d | } t | j |  q Wd  S(    Ni   i   i   R\   i    g        g      ?g       @g      @g      $@g     0@g      !@g      2@g     <@g      )@g      :@g     @D@g      A@g     @J@g     4@g      E@g      P@i   g@t   axisi   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (
   R"   R#   t   reshapeR   RK   R
   t   zipR   t   shapeR    (   R   R   RC   R]   R^   t   shapesR`   Rc   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_y_nd_x_nd   s     %c      	   C` s  t  j d2  j d d d  } t  j d  d } t  j d d d d g d d	 d
 d g g d d d d g d d d d g g g  t  j d d d d g g d
 d d d g g d d d d g g g  t  j d d d g d d d g g d  d! d" g d# d$ d% g g d& d' d( g d) d* d+ g g g  f } x\ t d, d- d g |  D]B \ } } t | d. | | j |  d/ | d0 d  } t | |  q=Wd  S(3   Ni   i   i   g      @g      @g      @g      @g       @g      "@g      $@g      &@g      D@g      F@g      H@g      J@g      L@g      N@g      P@g      Q@g       @g      @g      (@g      *@g      2@g      3@g      4@g      5@g      ?g     1@g      @g     J@g      !@g     B@g     `V@g      )@g     J@g     `_@g     0@g     @Q@g     0d@g     4@g     @U@g     h@i    i   R   R`   R\   i   i   (	   R"   R#   Ra   RK   Rb   R   Rc   R    R
   (   R   RC   R   t   ys_expectedR`   R^   R]   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_y_nd_x_1d   s$    %)c         C` s   t  j d d d d } t |  } d d d d g } t | |  t | d d	 } d	 d d d d g } t | |  t | d
 d } d d d d g } t | |  t | d
 d d d	 } d	 d d d d g } t | |  d  S(   Nii   R[   i   g      g       g        R\   gGz?RS   i   g      g      (   R"   RX   R   R
   (   R   RC   R]   R^   (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   test_x_none   s    (   R%   R&   R_   Re   Rg   Rh   (    (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyRZ      s   	
		t   __main__(!   t
   __future__R    R   R   R@   t   numpyR"   R   R   R   t   numpy.testingR   R   R   R	   R
   R   t   scipy.integrateR   R   R   R   R   R   R   R   t   scipy.integrate.quadratureR   t   objectR   R'   RZ   R%   (    (    (    sD   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_quadrature.pyt   <module>   s   .:K