
&]\c           @` s  d  d l  m Z m Z m 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 d  d l 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 d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   cost   sint   pi(   t   assert_equalt   assert_almost_equalt   assert_allcloset   assert_(   t   suppress_warnings(   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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt   <lambda>   s    i   i   i    R   t   rtolg-q=(   R   R   (   t   selft   funct   expectedt   gott   _(    (   R   sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyR      s    i    R   R   g-q=(   t   npt   arangeR   R   (   R   R   R   R   R   R   (    (   R    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt   test_vector   s    (   t   __name__t
   __module__R   R#   (    (    (    sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyR,   -   s    i    i   g?R   g|=gY)	kRgۗ?(   i   g?g.<R(   R   R   R   (   R   R,   R.   R/   R0   (    (    sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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,   R0   R3   R.   R/   (    (    sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyR,   >   s    i    R*   i   R   g|=gY)	kRgۗ?g.<R(   R   R   R   (   R   R,   R.   R/   R0   (    (    sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyR,   F   s    i    R*   i   g?gۗ?R-   i   (   i   g?(   R   R   R   (   R   R,   R.   R0   (    (    sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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.   R0   (    (    sD   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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
 d
  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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyR   \   s    R   g:0yE>t   atoli    s   divmax .4. exceededc         S` s   t  j d |   S(   Ng?(   R!   R   (   R   (    (    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyR   b   s    t   divmaxg-q=i   i   (   R!   R"   R   R   R   t   mint   maxR   R
   t   filterR   R   (   R   R   t   yR.   t   val2R/   t   supt   val3(    (    sD   lib/python2.7/site-packages/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   RC   t   valmatht   expected_val(    (    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt   test_non_dtypee   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   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt   test_newton_cotesl   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!   RG   R   t   dotR   (   R   R   R>   RH   RI   t   exact_integralt   numeric_integral(    (    sD   lib/python2.7/site-packages/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   R>   R   (    (    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt
   test_simps   s    (
(   R$   R%   R   R1   R2   R4   R5   R6   R7   R8   RB   RF   RJ   RN   RU   (    (    (    sD   lib/python2.7/site-packages/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!   RT   R   R   R   (   R   R   R>   t   y_intt
   y_expected(    (    sD   lib/python2.7/site-packages/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   RX   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   RG   R   t   zipR   t   shapeR   (   R   R   R>   RY   RZ   t   shapesR\   R_   (    (    sD   lib/python2.7/site-packages/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\   RX   i   i   (	   R!   R"   R]   RG   R^   R   R_   R   R   (   R   R>   R   t   ys_expectedR\   RZ   RY   (    (    sD   lib/python2.7/site-packages/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   RW   i   g      g       g        RX   gGz?RO   i   g      g      (   R!   RT   R   R   (   R   R>   RY   RZ   (    (    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt   test_x_none   s    (   R$   R%   R[   Ra   Rc   Rd   (    (    (    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyRV      s   	
		(   t
   __future__R    R   R   t   numpyR!   R   R   R   t   numpy.testingR   R   R   R	   t   scipy._lib._numpy_compatR
   t   scipy.integrateR   R   R   R   R   R   R   R   t   scipy.integrate.quadratureR   t   objectR   R&   RV   (    (    (    sD   lib/python2.7/site-packages/scipy/integrate/tests/test_quadrature.pyt   <module>   s   ":