
&]\c           @` 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
 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 m Z m Z m Z d  d l m Z d d  i  d  Z  d d d d g Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d e' f d     YZ( d e' f d     YZ) 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   assert_almost_equalt   assert_array_equalt   assert_array_almost_equalt   assert_allcloset   assert_equalt   assert_(   t   raises(   t   KroghInterpolatort   krogh_interpolatet   BarycentricInterpolatort   barycentric_interpolatet   approximate_taylor_polynomialt   pchipt   PchipInterpolatort   pchip_interpolatet   Akima1DInterpolatort   CubicSplinet   make_interp_spline(   t   xrangec         C` s  t  j j d  d d d d d d g } t t d t |  d   } | j | t |  d d  t  j j d
 |   j |  } | j	 d k r d  St  j
 |  }	 |  | | d	 | | |	  }
 | p d | j |  | | j | d } t |
 j |  | rD| j	 d k rD|  t |  t |  d	 | | t |	   n  |	 j	 d k r| d  k r| j |  d t |  | j | d } | t d   f | | j d } | j |  } t  j |
 |  \ }
 } t |
 |  n  d  S(   Ni  ii    i   i   i   i   i   t   axis(   i   (    (   i   (   i   (   t   npt   randomt   seedt   listt   ranget   lent   insertt   randt	   transposet   sizet   zerost   shapeR   t   Nonet   slicet   ndimt   reshapet   broadcast_arraysR   (   t   interpolator_clst   x_shapet   y_shapet   deriv_shapeR   t
   extra_argst   xt   st   yt   xit   yit   target_shapet   bs_shapet   yv(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   check_shape   s&    *1*"i   i   i   i   c          C` s   d   }  x t  t t t t |  g D] } x t D] } x t D] } x t t |  t |   D]h } | t k r t | | | d  |  q_ x: d d g D], } i | d 6} t | | | d  | |  q Wq_ Wq< Wq/ Wq" Wd  S(   Nc         S` s   t  |  | d | S(   NR   (   R   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt
   spl_interp<   s    t   naturalt   clampedt   bc_type(
   R
   R   R   R   R   t   SHAPESR   R   R5   R#   (   R6   t   ipt   s1t   s2R   t   bct   extra(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_shapes:   s    	#c       	   C` so   d d  }  x\ t  D]T } xK t  D]C } x: t t |  t |   D] } t |  | | d |  qC Wq  Wq Wd  S(   Ni    c         S` s   t  |  | |  j S(   N(   R
   t   derivatives(   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   krogh_derivsL   s    i   (   i   (   R:   R   R   R5   (   RB   R<   R=   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_derivs_shapesK   s
    #c          C` s(  d d  }  d d  } d d  } d d  } d d  } d d  } d d  } d d	  } d d
  } d d  }	 d d  }
 d d  } x |  | | | | | | | | |	 |
 | g D]e } x\ t  D]T } xK t  D]C } x: t t |  t |   D] } t | | | d |  q Wq Wq Wq Wd  S(   Ni    c         S` s   t  |  | |  j S(   N(   R
   t
   derivative(   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   krogh_derivV   s    c         S` s   t  |  | |  j   S(   N(   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   pchip_derivY   s    c         S` s   t  |  | |  j d  S(   Ni   (   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   pchip_deriv2\   s    c         S` s   t  |  | |  j   S(   N(   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   pchip_antideriv_   s    c         S` s   t  |  | |  j d  S(   Ni   (   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   pchip_antideriv2b   s    c         S` s&   d t  f d     Y} | |  | |  S(   Nt   Pc           B` s   e  Z d    Z RS(   c         S` s   t  j |  | d  S(   Ni   (   R   t   __call__(   t   selfR-   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRK   g   s    (   t   __name__t
   __module__RK   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRJ   f   s   	(   R   (   R-   R/   R   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   pchip_deriv_inplacee   s    c         S` s   t  |  | |  j   S(   N(   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   akima_derivl   s    c         S` s   t  |  | |  j   S(   N(   R   t   antiderivative(   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   akima_antiderivo   s    c         S` s   t  |  | |  j   S(   N(   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   cspline_derivr   s    c         S` s   t  |  | |  j   S(   N(   R   RQ   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   cspline_antiderivu   s    c         S` s   t  |  | d | j   S(   NR   (   R   RD   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt
   bspl_derivx   s    c         S` s   t  |  | d | j   S(   NR   (   R   RQ   (   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   bspl_antideriv{   s    (    (   R:   R   R   R5   (   RE   RF   RG   RH   RI   RO   RP   RR   RS   RT   RU   RV   R;   R<   R=   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_deriv_shapesU   s&    #c         C` sJ   d d d d g } d d d d g } |  | |  } t  | | |   d  S(   Ni   i   i   i   y              ?(   R   (   R;   R-   R/   t   p(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   _check_complex   s    c          C` s+   x$ t  t t t g D] }  t |   q Wd  S(   N(   R
   R   R   R   RY   (   R;   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_complex   s    t	   TestKroghc           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 d   Z d   Z d   Z d   Z d   Z RS(   c         C` sj   t  j d d d d d g  |  _ t  j d d d  |  _ t  j d d d  |  _ |  j |  j  |  _ d  S(   Nii   i   i   iiid   (   R   t   poly1dt	   true_polyt   linspacet   test_xst   xst   ys(   RL   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   setup_method   s    !c         C` s;   t  |  j |  j  } t |  j |  j  | |  j   d  S(   N(   R
   R`   Ra   R   R]   R_   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_lagrange   s    c         C` sc   t  |  j |  j  } t |  j d  | d   t |  j t j d   | t j d    d  S(   Ni   (   R
   R`   Ra   R   R]   R   t   array(   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_scalar   s    c         C` so   t  |  j |  j  } | j |  j  } xA t | j d  D], } t |  j j	 |  |  j  | |  q; Wd  S(   Ni    (
   R
   R`   Ra   RA   R_   R   R"   R   R]   t   deriv(   RL   RJ   t   Dt   i(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_derivatives   s
    c         C` s   t  |  j |  j  } | j |  j t |  j  d  } xA t | j d  D], } t |  j	 j
 |  |  j  | |  qK Wd  S(   Ni   i    (   R
   R`   Ra   RA   R_   R   R   R"   R   R]   Rf   (   RL   RJ   Rg   Rh   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_low_derivatives   s
    "c         C` sk   t  |  j |  j  } d } | j |  j |  } x4 t |  D]& } t | j |  j |  | |  q= Wd  S(   Ni
   (   R
   R`   Ra   RA   R_   R   R   RD   (   RL   RJ   t   mt   rRh   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_derivative   s
    c         C` sw   t  |  j |  j  } x[ t t |  j  d t |  j   D]4 } t | j |  j |  t j	 t |  j    q; Wd  S(   Ni   (
   R
   R`   Ra   R   R   R   RD   R_   R   R!   (   RL   RJ   Rh   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_high_derivative   s    ,c         C` s   d d d d d d d g } |  j  d  |  j  j d  d  |  j  j d  d  |  j  d  |  j  j d  d  |  j  j d  d  |  j  d  g } t |  j |  j  } t |  j  |  j  | |  j   d  S(   Ni    i   i   (   R]   Rf   R
   R`   Ra   R   R_   (   RL   R`   Ra   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_hermite   s    c         C` s(  d d d g } t  j d d g d d g d d g g  } t | |  } g  t | j d  D]% } t | | d  d   | f  ^ q\ } t  j d d d  } t | |  t  j t  j g  | D] } | |  ^ q  d   t | j	 |  t  j
 t  j g  | D] } | j	 |  ^ q  d   d  S(   Ni    i   i   ii   id   (   i   i   i    (   R   Rd   R
   R   R"   R^   R   t   rollaxist   asarrayRA   R   (   RL   R`   Ra   RJ   Rh   t   PiR_   RX   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_vector   s    *?5.c         C` s,   t  |  j |  j  } t | g   g   d  S(   N(   R
   R`   Ra   R   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt
   test_empty   s    c         C` s   t  |  j |  j  } t t j | d   d  t t j | t j d    d  t t j | d g   d  t t j | d d g   d  d  S(   Ni    i   i   (    (    (   i   (   i   (   R
   R`   Ra   R   R   R"   Rd   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_shapes_scalarvalue   s
    %c         C` s   t  |  j |  j  } | j } t t j | j d   | f  t t j | j t j d    | f  t t j | j d g   | d f  t t j | j d d g   | d f  d  S(   Ni    i   i   (	   R
   R`   Ra   t   nR   R   R"   RA   Rd   (   RL   RJ   Rv   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt"   test_shapes_scalarvalue_derivative   s    	"+(c         C` s   t  |  j t j |  j t j d    } t t j | d   d  t t j | d g   d  t t j | d d g   d  d  S(   Ni   i    i   i   (   i   (   i   i   (   i   i   (   R
   R`   R   t   outerRa   t   arangeR   R"   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_shapes_vectorvalue   s    *c         C` s   t  |  j t j |  j d g   } t t j | d   d  t t j | d g   d  t t j | d d g   d  d  S(   Ni   i    i   (   i   (   i   i   (   i   i   (   R
   R`   R   Rx   Ra   R   R"   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_shapes_1d_vectorvalue   s    $c         C` s   t  |  j t j |  j t j d    } | j } t t j | j	 d   | d f  t t j | j	 d g   | d d f  t t j | j	 d d g   | d d f  d  S(   Ni   i    i   i   (
   R
   R`   R   Rx   Ra   Ry   Rv   R   R"   RA   (   RL   RJ   Rv   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt"   test_shapes_vectorvalue_derivative   s
    *	%+c      	   C` s   t  |  j |  j  } t } t | |  j  | |  j |  j |  j   t | j |  j d  | |  j |  j |  j d d  t | j |  j d  | |  j |  j |  j d d d g  d  S(   Ni   t   deri    i   (   R
   R`   Ra   R   R   R_   RD   RA   (   RL   RJ   t   ki(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_wrapper   s    +"c         C` s   d d d d d d d d d	 d
 d d d g } t  j d d d d d d d d d d d d d g  } t | |  } t t | |  | | j | d   d d d d  S(   Ni    i   i  i  i  i  i|  i$	  i  i  i   i03  i`  gffffffg닥ąg䑉g!p$ЀgV0޿gx*ZֿgDпg2]g H.g9Cg6D.gG/g?i   t   atolg|=(   R   Rd   R
   R   t   absRD   (   RL   R-   t
   offset_cdft   f(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_int_inputs  s    !		&c         C` s   t  j d d d d d g  t  j d d d d d g  } } t | |  } | j d  } t | | j  j d  d t | | j  j d  } t | | d d d  S(   Nii    i   y              ?R   gV瞯<(   R   Rd   R
   RA   t   realt   imagR   (   RL   R-   R/   t   funct   cmplxt   cmplx2(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_derivatives_complex  s    = (   RM   RN   Rb   Rc   Re   Ri   Rj   Rm   Rn   Ro   Rs   Rt   Ru   Rw   Rz   R{   R|   R   R   R   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR[      s$   																		t
   TestTaylorc           B` s   e  Z d    Z RS(   c         C` sr   d } t  t j d | d d  } x7 t | d  D]% } t | d  d  | j   } q2 Wt | d  d  d  S(   Ni   i    i   i   (   R   R   t   expR   R   Rf   (   RL   t   degreeRX   Rh   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_exponential  s    (   RM   RN   R   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR     s   t   TestBarycentricc           B` sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C` sj   t  j d d d d d g  |  _ t  j d d d  |  _ t  j d d d  |  _ |  j |  j  |  _ d  S(   Nii   i   i   iiid   (   R   R\   R]   R^   R_   R`   Ra   (   RL   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRb   (  s    !c         C` s;   t  |  j |  j  } t |  j |  j  | |  j   d  S(   N(   R   R`   Ra   R   R]   R_   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRc   .  s    c         C` sc   t  |  j |  j  } t |  j d  | d   t |  j t j d   | t j d    d  S(   Ni   (   R   R`   Ra   R   R]   R   Rd   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRe   2  s    c         C` sE   t  |  j  } | j |  j  t |  j |  j  | |  j   d  S(   N(   R   R`   t   set_yiRa   R   R]   R_   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_delayed7  s    c         C` sa   t  |  j d  |  j d   } | j |  j d |  j d  t |  j |  j  | |  j   d  S(   Ni   (   R   R`   Ra   t   add_xiR   R]   R_   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_append<  s    c   	      C` s   d d d g } t  j d d g d d g d d g g  } t } | | |  } g  t | j d  D]% } | | | d  d   | f  ^ qb } t  j d d d  } t | |  t  j t  j g  | D] } | |  ^ q  d   d  S(   Ni    i   i   ii   id   (	   R   Rd   R   R   R"   R^   R   Rp   Rq   (	   RL   R`   Ra   t   BIRJ   Rh   Rr   R_   RX   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRs   A  s    *?c         C` s   t  |  j |  j  } t t j | d   d  t t j | t j d    d  t t j | d g   d  t t j | d d g   d  d  S(   Ni    i   i   (    (    (   i   (   i   (   R   R`   Ra   R   R   R"   Rd   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRu   K  s
    %c         C` s   t  |  j t j |  j t j d    } t t j | d   d  t t j | d g   d  t t j | d d g   d  d  S(   Ni   i    i   i   (   i   (   i   i   (   i   i   (   R   R`   R   Rx   Ra   Ry   R   R"   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyRz   R  s    *c         C` s   t  |  j t j |  j d g   } t t j | d   d  t t j | d g   d  t t j | d d g   d  d  S(   Ni   i    i   (   i   (   i   i   (   i   i   (   R   R`   R   Rx   Ra   R   R"   (   RL   RJ   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR{   X  s    $c         C` sJ   t  |  j |  j  } t |  j |  j |  j  } t | |  j  |  d  S(   N(   R   R`   Ra   R   R_   R   (   RL   RJ   t   values(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR   ^  s    (   RM   RN   Rb   Rc   Re   R   R   Rs   Ru   Rz   R{   R   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR   '  s   						
			t	   TestPCHIPc           B` se   e  Z d  d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z RS(   i   c         C` sS   t  j j d  t  j t  j j |   } t  j j |  } t | |  | | f S(   Ni  (   R   R   R   t   sortR   (   RL   t   nptsR0   R1   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   _make_randome  s    c         C` s   |  j    \ } } } x t t |  d  D] } | | | | d } } | | | | d } } | | k r | | } } n  t j | | d  }	 | |	  }
 t | |
 k |
 | k @j    q, Wd  S(   Ni   i
   (   R   R   R   R   R^   R   t   all(   RL   RX   R0   R1   Rh   t   x1t   x2t   y1t   y2t   xpt   yp(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_overshootk  s    c         C` s   |  j    \ } } } x t t |  d  D] } | | | | d } } | | | | d } } t j | | d  }	 | |	  }
 t | | |
 d |
 d  d k j    q, Wd  S(   Ni   i
   i    (   R   R   R   R   R^   R   R   (   RL   RX   R0   R1   Rh   R   R   R   R   R   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_monotonew  s    c         C` s   t  j d d d d d d d d d	 d
 g
 d d d d d d d d d d g
 g  } t  j d
  } t | d | d  |  } | d } t | d | d  |  } t | | d d d d d  S(   Ni    i   i   i   i/   i<   iO   iW   ic   id   iiii   i&   i-   i5   i7   i   g      ?R   g+=t   rtol(   R   Rd   Ry   R   R   (   RL   t   datat   xxt   curvet   data1t   curve1(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt	   test_cast  s    '*
c         C` s   d d l  m } d } t j | |   } t | d  d   d f | d  d   d f  } d } t j | |   } t | d  d   d f | | d  d   d f  d d d d	 d  S(
   Ni    (   t   StringIOs  
          7.99   0.00000E+0
          8.09   0.27643E-4
          8.19   0.43750E-1
          8.70   0.16918E+0
          9.20   0.46943E+0
         10.00   0.94374E+0
         12.00   0.99864E+0
         15.00   0.99992E+0
         20.00   0.99999E+0
        i   s^  
           7.9900       0.0000
           9.1910       0.4640
          10.3920       0.9645
          11.5930       0.9965
          12.7940       0.9992
          13.9950       0.9998
          15.1960       0.9999
          16.3970       1.0000
          17.5980       1.0000
          18.7990       1.0000
          20.0000       1.0000
        R   g        R   g-C6
?(   t   scipy._lib.sixR   R   t   loadtxtR   R   (   RL   R   t   dataStrR   t   pcht	   resultStrt   result(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_nag  s    /c         C` s   t  j d d d d g  } t  j d d d d g  } t  j d d d	 d g  } x^ t | |  t | |  f D]> } x5 | d
 | d f D] } t | | d  d
 k  q Wqp Wd  S(   Ng        g?g      ?gffffff?guq@g     @@g     @@g     @g     p@i    ii   (   R   Rd   R   R   (   RL   R-   R   R   t   ppt   t(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_endslopes  s    %c         C` sy   t  j d  } t  j |  } t j   ! t j d  t | |  } Wd  QXt  j d d d  } t | |  d  d  S(   Ni
   t   errori    i	   ie   g        (	   R   Ry   t
   zeros_liket   warningst   catch_warningst   filterwarningsR   R^   R   (   RL   R-   R/   R   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_all_zeros  s    c         C` sQ   t  j d d d  } t d d g d d g  } t | |  d | d d d  S(   Ni    i   i   i   R   gV瞯<(   R   R^   R   R   (   RL   R-   RX   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_two_points  s    c         C` s   t  t d d d g d d d g d g d d d	 g  t  t d d d g d d d g d g d d
 d g  t  t d d d g d d d g d g d d
 d g d g d g g  d  S(   Ni   i   i   i   i   i   g      ?R}   g      ?i    g      @(   R   R   (   RL   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_pchip_interpolate  s    *
*
0c         C` s8   t  d d g d d g  } | j   } t | d  d  S(   Ni    i   ig      ?(   R   t   rootsR   (   RL   RX   Rl   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt
   test_roots  s    (   RM   RN   R   R   R   R   R   R   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR   d  s   		
		$	
				t   TestCubicSplinec           B` s_   e  Z e d  d  d d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 RS(
   s
   not-a-knotg+=c         C` s  |  j  } |  j } t j |  } | j | j d g d g | j d  } | d  } t | d d d  f | d d d  f | d | d d d  f | d | d d d  f | | d d d  f d | d | t | d d d  f d | d d d  f | d d | d d d  f | | d d d  f d | d | t | d d d  f d | d d d  f | | d d d  f d | d | | j d k r| d	 k r| d	 k rt | d d d | d | d S| d
 k rt |  | d d  |  | d d  d | d | t |  | d d  |  | d d  d | d | t |  | d d  |  | d d  d | d | d S| d	 k r(| j d k r|  | d  |  | d  | d } t |  | d d  | d | d | qt | d | d d | d | n | d k r]t |  | d d  d d | d | ng | d k rt |  | d d  d d | d | n2 | \ }	 }
 t |  | d |	  |
 d | d | | d	 k rR| j d k r.|  | d  |  | d  | d } t |  | d d  | d | d | qt | d | d d | d | n | d k rt |  | d d  d d | d | no | d k rt |  | d d  d d d | d d | n2 | \ }	 }
 t |  | d |	  |
 d | d | d S(   sV   Check that spline coefficients satisfy the continuity and boundary
        conditions.i    i   i   ii   NR   R   s
   not-a-knott   periodicR8   R7   i(   i    i    (   i    i   (   i    i(   i    i(	   R-   t   cR   t   diffR&   R"   R%   R   R    (   t   St   bc_startt   bc_endt   tolR-   R   t   dxt   dxit   slopet   ordert   value(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   check_correctness  sR    		+
s_H'333&)$))&&)$)1c      
   C` s  t  | j  } | | =t j |  } | j d  t j |  } | j d  d d d d | f d | f g } x@ | d  D]4 } t | | d | d	 | }	 |  j |	 | |  qz WxY | D]Q }
 xH | D]@ } t | | d | d	 |
 | f }	 |  j |	 |
 | d
 d q Wq Wd  S(   Ni   is
   not-a-knotR7   R8   i   i   R   R9   R   g+=(   R   R"   R   t   emptyt   fillR   R   (   RL   R-   R/   R   R+   t   first_derivt   second_derivt   bc_allR>   R   R   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   check_all_bc   s$    	!c      	   C` s9  t  j d d d d d d d d g  } t  j d d	 d d
 d d d d g  } x d d
 | j g D] } |  j | |  | |  d  t  j d | d f  } | |  | d d  d   d f <| |  d | d d  d   d f <| |  d | d d  d   d f <| |  d
 | d d  d   d f <|  j | |  | d  qa Wd  S(   Nii    g      ?i   i   g      @g      @i	   g      i   g      @i   (   R   Rd   R    R   R   (   RL   R-   R/   Rv   t   Y(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_general7  s    ''!!!c         C` s'  x d d d g D]} t  j d d t  j |  } t  j |  } t | | d d } |  j | d d  t  j d | d f  } | | d d  d   d f <| d | d d  d   d f <| d | d d  d   d f <| d | d d  d   d f <t | | d d d d } |  j | d d  q Wd  S(	   Ni   i   i   i    R9   R   i   R   (   R   R^   t   pit   cosR   R   R   (   RL   Rv   R-   R/   R   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_periodicD  s    c         C` sn   t  j d d t  j d  } t  j |  } t | | d d } t | d  | d d t  j  d d d  S(	   Ni    i   i
   R9   R   i   t   decimali   (   R   R^   R   R   R   R   (   RL   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_periodic_evalS  s    c         C` s,  t  j d d d d g d t } t  j d d d d g d t } t | |  } |  j |  t  j d d	 d d g  } t | |  } |  j |  t | | d d d d f } |  j | d d  t  j d d d d g  } t | | d d d f d d f g } |  j | d d f d d f  d  S(   Ni    i   i   i   t   dtypeiiy              ?g        g      ?y              ?R9   R7   y               @y              ?y            ?y      ?      y      ?      (   i   y               @(   i   y               @y       @      ?y      ?      y       @      ?y      ?      (   R   Rd   t   intR   R   (   RL   R-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_dtypesY  s    !!'c         C` si   t  j j d  } t  j | j d d   } d | j d d  } t | |  } |  j | d d d  S(   Ni    R    id   g     @R   gvIh%<=(   R   R   t   RandomStateR   t   uniformR   R   (   RL   t   rngR-   R/   R   (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_small_dxj  s
    c      	   C` sr  t  j d d d d g  } t  j d d d d g  } t  j d d d d g  } t  j t  j d d d g  } t  j d d d d g  } t  j t  j d d d g  } d d d g } d g } d g }	 t t t | |  t t t | |  t t t | |  t t t | |  t t t | |  t t t | d  d   t  j f |  t t t | |	  d d d f d d d g }
 x* |
 D]" } t t t | | d | t  qWt  j | | f } d d f } d d d d d g f f } d d d d g g f f } t t t | | d | t  t t t | | d | t  t t t | | d | t  t t t | | d d t  d  S(   Ni   i   i   i   y              ?R   R8   i    i
   g        s
   not-a-typoy      ?      ?(   R   R8   (   i   i    (   i   i
   (   i   i    (   (   i   i    (   g        g        (   i   i    (	   R   Rd   t   nant   assert_raisest
   ValueErrorR   t   newaxist   Truet   c_(   RL   R-   R/   t   xct   xnt   xot   ynt   y3R   R   t   wrong_bcR9   R   t   bc1t   bc2t   bc3(    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   test_incorrect_inputsq  s>    		&		 (   RM   RN   t   staticmethodR   R   R   R   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyR     s   :						(    (   i    (   i   (   i   i   i   (-   t
   __future__R    R   R   R   t   numpyR   t   numpy.testingR   R   R   R   R   R   t   pytestR	   R   t   scipy.interpolateR
   R   R   R   R   R   R   R   R   R   R   R   R   R#   R5   R:   R@   RC   RW   RY   RZ   t   objectR[   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/scipy/interpolate/tests/test_polyint.pyt   <module>   s&   .L!		
	2		
=