ó
+Šm\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 d  d l m Z d  d l 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 m Z m Z m Z d  d l j Z  d  d l! m" Z" d  d l# m$ Z$ m% Z% d  d l& j' j( Z) d  d	 l* m+ Z+ d
 e, f d „  ƒ  YZ- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d  d „ Z4 d d d „ Z5 d „  Z6 d e, f d „  ƒ  YZ7 d e, f d „  ƒ  YZ8 d „  Z9 d „  Z: d d „ Z; d e, f d „  ƒ  YZ< d S(    i    (   t   divisiont   absolute_importt   print_functionN(   t   assert_equalt   assert_allcloset   assert_(   t   suppress_warnings(   t   raises(   t   BSplinet   BPolyt   PPolyt   make_interp_splinet   make_lsq_splinet   _bsplt   splevt   splrept   splprept   spldert
   splantidert   sproott   splintt   insert(   t   NumpyVersion(   t   _not_a_knott   _augknt(   t   _splintt   TestBSplinec           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 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  t t f t t d d d g d d g d d ƒ  t j d d	 ƒ 6 t  t t t d d t j g d d g d d ƒ  Wd  QXt  t t t d d t j g d d g d d ƒ  t  t t t d d d
 g d d g d d ƒ  t  t t t d d g d g g d d g d d ƒ  t  t t t d d d d g d d g d d ƒ  t  t t t d d d d d d g d d d g d d ƒ  t  t t t d d d d d d d g d d d d g d d ƒ  t  t t t d d d d d d d g d d d d g d d ƒ  t  t t t d d d d d d d g d d d d g d d ƒ  d \ } } t j	 | | d ƒ } t j
 j
 | ƒ } t | | | ƒ } t | | j ƒ t | | j ƒ t | | j ƒ d  S(   Nt   ti   y              ð?t   cg      ð?t   ki    t   invalidt   ignoreiÿÿÿÿi   i   i   g        g       @g      @g      @t   cubicg      @i   (   i   i   (   t   assert_raisest	   TypeErrort
   ValueErrorR   t   dictt   npt   errstatet   nant   inft   aranget   randomR   R   R   R   R   (   t   selft   nR   R   R   t   b(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt	   test_ctor   s.    %71.41	1	7	7	7c         C` s‰   t  ƒ  } | j } t | j | d d d d d ƒt | j | d d d d d ƒt | j | d ƒ t j t	 ƒ  d | _ Wd  QXd  S(   Ni    t   atolgVçž¯Ò<t   rtoli   i   t   foo(
   t   _make_random_splinet   tckR   R   R   R   R   t   pytestR   t   AttributeError(   R+   R-   R3   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_tck9   s    		  c         C` s¢   t  j d d d ƒ } t d d d g d d g d d ƒ } t | | ƒ d ƒ t d d d	 d g d d d
 g d d ƒ } t | | ƒ t  j | d	 k  d d
 ƒ ƒ d  S(   Ni    i   i
   R   R   g      @R   i   gffffffÖ?i   (   R%   t   linspaceR   R   t   where(   R+   t   xxR-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_degree_0E   s
    $*c         C` sÓ   d d d d d g } d d d g } d } t  | | | ƒ } t j d d d ƒ } t | d t | ƒ | d t | d ƒ | d t | d ƒ | | ƒ d d ƒt t | | | | f ƒ | | ƒ d d ƒd  S(	   Ni    i   i   i   i   i2   R/   g›+¡†›„=(   R   R%   R7   R   t   B_012R   (   R+   R   R   R   R-   t   x(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_degree_1N   s    @c         C` sì   d } t  j d g | d d g | d ƒ } t  j d d d d g ƒ } t | j d d ƒ d d g ƒ } t | | | ƒ } t  j d	 d d
 ƒ } t | | d t ƒ| | d t ƒd d ƒt t | | | | f ƒ | | ƒ d d ƒd  S(   Ni   i    i   g      ð?g       @g      @g      @iÿÿÿÿg      ð¿i
   t   extrapolateR/   g›+¡†›„=(	   R%   t   asarrayR	   t   reshapeR   R7   R   t   TrueR   (   R+   R   R   R   t   bpt   bsplR9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_bernsteinY   s    )!c   
      C` sÃ   t  ƒ  } | j \ } } } t j | | | | d d ƒ } | | ƒ } g  | D] } t | | | | ƒ ^ qP } t | | d d ƒg  | D] } t | | | | ƒ ^ q‹ }	 t | |	 d d ƒd  S(   Ni   i2   R/   g›+¡†›„=(   R2   R3   R%   R7   t   _naive_evalR   t   _naive_eval_2(
   R+   R-   R   R   R   R9   t   y_bR<   t   y_nt   y_n2(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_rndm_naive_evalg   s    	"((c         C` sl   t  ƒ  } | j \ } } } t j | | | | d d ƒ } t | | ƒ t | | | | f ƒ d d ƒd  S(   Ni   i2   R/   g›+¡†›„=(   R2   R3   R%   R7   R   R   (   R+   R-   R   R   R   R9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_rndm_splevu   s    	"c         C` s³   t  j j d ƒ t  j t  j j d ƒ ƒ } t  j j d ƒ } t | | ƒ } t | Œ  } | j | j } } t  j | | | | d d ƒ } t	 | | ƒ t
 | | ƒ d d ƒd  S(   NiÒ  i   i   iP   R/   g›+¡†›„=(   R%   R*   t   seedt   sortR   R   R   R   R7   R   R   (   R+   R<   t   yR3   R-   R   R   R9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_rndm_splrep{   s    "c         C` sc   t  ƒ  } t j | j ƒ | _ t j | j | j | j | j d d ƒ } t | | ƒ d ƒ d  S(   Ni   id   g      ð?(   R2   R%   t	   ones_likeR   R7   R   R   R   (   R+   R-   R9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_rndm_unity‡   s    	.c   	      C` s©   d	 \ } } t  j t  j j | ƒ ƒ } t  j j d | d d f ƒ } t | | | ƒ } | | | | d } } | | | t  j j d
 ƒ } t | | ƒ j d ƒ d  S(   Ni   i   t   sizei   i   i   i   i   (   i   i   (   i   i   i   (   i   i   i   i   i   (   R%   RM   R*   R   R   t   shape(	   R+   R,   R   R   R   R-   t   tmt   tpR9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_vectorization   s    c   
      C` s9  d	 \ } } t  j t  j j | | d ƒ ƒ } t  j j | ƒ } t  j | t  j j | d ƒ f } t | | | ƒ t | | | ƒ } } | d | d } t  j | d | | d | d ƒ }	 t | |	 ƒ | |	 ƒ d d ƒt | |	 ƒ t |	 | | | f ƒ d d ƒt | |	 ƒ t |	 | | | f ƒ d d ƒd  S(
   Ni!   i   i   iÿÿÿÿi    i2   R/   g›+¡†›„=(   i!   i   (   R%   RM   R*   t   r_R   R7   R   R   (
   R+   R,   R   R   R   t   c_padR-   t   b_padt   dtR9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt
   test_len_c–   s    ##%%+c         C` s‰   t  ƒ  } | j \ } } } | | | | d } } xM t t f D]? } t | | | g | ƒ | | d | d g | ƒ d d ƒqB Wd  S(   Ni   g»½×Ùß|Û=R/   g•Ö&è.>(   R2   R3   RA   t   FalseR   (   R+   R-   R   t   _R   RT   RU   t   extrap(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_endpoints¨   s    	c         C` sf   t  ƒ  } | j \ } } } t | | | d | d !d ƒ | | | d | d !d ƒ d d ƒd  S(   Ni   g»½×Ùß|Û=R/   g•Ö&è.>(   R2   R3   R   (   R+   R-   R   R]   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_continuity±   s    	@c         C` sÜ   t  ƒ  } | j \ } } } | d | d } t j | | | | | d | d ƒ } | | | k  | | | d k  @} t | | | d t ƒ| | | d t ƒƒ t | | d t ƒt | | | | f d d ƒƒ d  S(   Niÿÿÿÿi    i   i2   R>   t   ext(   R2   R3   R%   R7   R   RA   R\   R   (   R+   R-   R   R   R   RZ   R9   t   mask(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_extrap¸   s    	*#c         C` sd   t  ƒ  } | j \ } } } | d d | d d g } | | ƒ } t t j t j | ƒ ƒ ƒ d  S(   Ni    i   iÿÿÿÿ(   R2   R3   R   R%   t   allt   isnan(   R+   R-   R   R]   R   R9   t   yy(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_default_extrapÇ   s
    	c   	      C` sO  t  j j d ƒ t  j t  j j d ƒ ƒ } t  j j d ƒ } d } t | | | d d ƒ} | j | d } | d | d	 } t  j | | | | | | d
 ƒ } | | | | | | | | | } t | | ƒ t | | | | f ƒ ƒ d d	 d d g } | | | | | | | | | } t	 | | d d ƒ| | d t
 ƒƒ d  S(   NiÒ  i   i   i   R>   t   periodici   iÿÿÿÿi    i2   g      à?(   R%   R*   RL   RM   R   RR   R7   R   R   R   RA   (	   R+   R   R   R   R-   R,   RZ   R9   t   xy(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_periodic_extrapÏ   s    %&%&c         C` sz   t  ƒ  } | j \ } } } t j | | | f ƒ } t j | | | | d ƒ } t | | ƒ | | ƒ d d d d ƒd  S(   Nid   R/   g›+¡†›„=R0   (   R2   R3   R
   t   from_splineR%   R7   R   (   R+   R-   R   R   R   t   ppR9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt
   test_ppolyá   s
    	c         C` sÍ   t  ƒ  } | j \ } } } t j | d | d d ƒ } t j | | f } xX t d | d ƒ D]C } t | | | | f d | ƒ} t | | | d | ƒd d ƒq_ Wt | | d | d ƒd d d ƒd  S(	   Ni    iÿÿÿÿi2   i   t   dert   nuR/   g›+¡†›„=(   R2   R3   R%   R7   RW   t   rangeR   R   (   R+   R-   R   R   R   R9   Rn   t   yd(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_derivative_rndmé   s    	#c         C` sÈ  d } d d d d d d d d d d d d g } t  j j d	 ƒ t  j d d t  j j d
 ƒ d d f } t | | | ƒ } t  j d d d d g ƒ } t | | | d k d ƒ | | | d k d ƒ ƒ t t  j | d ƒ | d ƒ ƒ ƒ t  j d d g ƒ } t | | d d d ƒ| | d d d ƒƒ t  j d d g ƒ } t t  j	 t  j | | d d d ƒ| | d d d ƒƒ ƒ ƒ t t  j	 t  j | | d d d ƒ| | d d d ƒƒ ƒ ƒ d  S(   Ni   iÿÿÿÿi    i   i   i   i   i   iÒ  i   g»½×Ùß|Û=g      @Ro   g2Hþÿÿÿ@gÎ·   @(
   R%   R*   RL   RW   R   R?   R   R   t   allcloseRd   (   R+   R   R   R   R-   R<   t   x0t   x1(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_derivative_jumpsö   s"    *(#""c         C` s÷   t  j d d d ƒ } t j d d d d d g ƒ } t | | ƒ t | | j | j | j f ƒ d	 d
 ƒt | | ƒ t	 | ƒ d	 d
 ƒt j d d d d d g ƒ } t  j d d d ƒ } t | | ƒ t  j
 | d k  | | d | d ƒ d	 d
 ƒd  S(   Niÿÿÿÿi   i   R   i    i   i   i   R/   g›+¡†›„=i
   g       @(   R%   R7   R   t   basis_elementR   R   R   R   R   t   B_0123R8   (   R+   R9   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_basis_element_quadratic  s    (c         C` si   t  ƒ  } | j \ } } } t j | | | | d d ƒ } t | | ƒ t | | | | ƒ d d ƒd  S(   Ni   i   R/   g›+¡†›„=(   R2   R3   R%   R7   R   t   _sum_basis_elements(   R+   R-   R   R   R   R9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_basis_element_rndm  s    	"c   	      C` sÑ   t  ƒ  } | j \ } } } | d } t | | | ƒ } t | | j j | ƒ } t | | j j | ƒ } t j | | | | d d ƒ } t | | ƒ j | | ƒ d d ƒt | | ƒ j | | ƒ d d ƒd  S(   Ng      ð?y              @i   i   R/   g›+¡†›„=y      ð?      @(	   R2   R3   R   R   t   realt   imagR%   R7   R   (	   R+   R-   R   R   R   t   cct   b_ret   b_imR9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt
   test_cmplx%  s    	
""c         C` s;   t  j d d d d g ƒ } t t j | t j ƒ ƒ ƒ d  S(   Ni    i   i   (   R   Rw   R   R%   Re   R'   (   R+   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_nan2  s    c         C` s§   t  d d ƒ } | j \ } } } t | | | ƒ } t j | | | | d d ƒ } xK t d | ƒ D]: } | j ƒ  } t | | | ƒ | | ƒ d d d d ƒqe Wd  S(   NR   i   i   i   R/   gê-™—q=R0   (   R2   R3   R   R%   R7   Rp   t
   derivativeR   (   R+   R-   R   R   R   t   b0R9   t   j(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_derivative_method7  s    "c         C` sà   t  ƒ  } | j \ } } } t j | | | | d d ƒ } t | j ƒ  j ƒ  | ƒ | | ƒ d d d d ƒt j | | | f } t j | | f ƒ } t	 | | | ƒ } t | j ƒ  j ƒ  | ƒ | | ƒ d d d d ƒd  S(   Ni   i   R/   g›+¡†›„=R0   (
   R2   R3   R%   R7   R   t   antiderivativeRƒ   t   c_t   dstackR   (   R+   R-   R   R   R   R9   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_antiderivative_method@  s    	"c         C` s&  t  j d d d g ƒ } t | j d d ƒ d ƒ t | j d d ƒ d ƒ t | j d d ƒ d ƒ t | j d d ƒ d ƒ t | j d d d t ƒd ƒ t | j d d d t ƒd ƒ t | j d d d t ƒd ƒ | j \ } } } t | j d d d t ƒt | | | d d ƒ d ƒ d | _ | j	 ƒ  } | d ƒ | d ƒ } t | j d d ƒ | ƒ t | j d d ƒ d | ƒ t | j d	 d
 ƒ | ƒ t | j d d ƒ d | ƒ t | j d d ƒ | d ƒ | d ƒ ƒ t | j d d ƒ | d ƒ | d ƒ | d ƒ | d ƒ ƒ t | j d d ƒ | d ƒ | d ƒ | d ƒ | d ƒ ƒ t | j d d ƒ | d ƒ | d ƒ | d ƒ | d ƒ d | ƒ t | j d d ƒ | d ƒ | d ƒ ƒ t | j d	 d ƒ | d ƒ | d ƒ ƒ t | j d d	 ƒ | d ƒ | d ƒ d | ƒ d  S(   Ni    i   i   g      à?iÿÿÿÿg      à¿R>   Rh   i÷ÿÿÿiùÿÿÿiøÿÿÿiüÿÿÿg      ø?i   i   i   iöÿÿÿi   g      à¿g      à¿g      +@i   i   (
   R   Rw   R   t	   integrateRA   R\   R3   R   R>   R‡   (   R+   R-   R   R   R   t   it
   period_int(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_integralN  s6    	)=+3))c         C` s…   d d d d d g } t  | | ƒ } d | _ t j | ƒ } xB d d d g D]1 \ } } t | j | | ƒ | j | | ƒ ƒ qL Wd  S(   Ni    i   i   i   i   Rh   iûÿÿÿg      à?i   iüÿÿÿi   (   iûÿÿÿg      à?(   g      à?i   (   iüÿÿÿi   (   R   R>   R
   Rk   R   R‹   (   R+   R<   R-   t   pRt   Ru   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_integrate_ppolyt  s    	c         C` sq   d t  f d „  ƒ  Y} | j d d d d g ƒ } t | j | ƒ t | j ƒ  j | ƒ t | j ƒ  j | ƒ d  S(   Nt   Bc           B` s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR‘     s   i    i   i   (   R   Rw   R   t	   __class__Rƒ   R‡   (   R+   R‘   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_subclassing  s
    c         C` så  d \ } } t  j d d | | d ƒ } d d d g } x¦t d ƒ D]˜} | } | j | | ƒ t  j j d	 | ƒ } t | | | d
 | ƒ} t | j j | | g | |  | | d ƒ t  j j d ƒ }	 t | |	 ƒ j | |  t	 |	 j ƒ | | d ƒ xB d | j
 g D]1 }
 t t t t d | d | d | d
 |
 ƒ  qWx“ t | | | d
 | ƒj ƒ  t | | | d
 | ƒj d ƒ t | | | d
 | ƒj ƒ  t | | | d
 | ƒj d ƒ g D] } t | j | j ƒ qÀWqE Wd  S(   Ni   i   i    i   i   i   i   i   RR   t   axisi   iÿÿÿÿR   R   R   i   (   i   i   (   i   i   i   (   R%   R7   Rp   R   R*   R   R   R   RS   t   listt   ndimR!   R#   R$   Rƒ   R‡   R–   (   R+   R,   R   R   t   sh0R–   t   shR   R-   t   xpt   axt   b1(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt	   test_axis‰  s(    "$/((   R’   R“   R.   R6   R:   R=   RD   RJ   RK   RO   RQ   RV   R[   R_   R`   Rc   Rg   Rj   Rm   Rr   Rv   Ry   R{   R   R‚   R†   RŠ   RŽ   R   R•   Rž   (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR      s:   	#																													&		
c       	   C` s©   d d d d „ }  x d d d d d g D]y } t  d	 | ƒ } xa t t | ƒ ƒ D]M \ } } |  | | ƒ x1 t d | d ƒ D] } |  | | | d
 d
 ƒ q} WqP Wq( Wd  S(   Ni    g›+¡†›„=c   	      S` s¥   |  j  \ } } } t j | ƒ } t j | d d d | d | d  | d d f } t t | | | | f | ƒ |  | | ƒ d | d | d d	 | |  j f ƒd  S(
   Ni    gš™™™™™¹?g      à?i   iÿÿÿÿR/   R0   t   err_msgs   der = %s  k = %s(   R3   R%   t   uniqueRW   R   R   R   (	   R-   R…   Rn   R/   R0   R   R   R   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   check_splev©  s
    6*i   i   i   i   i   R   gê-™—q=(   R2   t	   enumeratet   _make_multiplesRp   (   R¡   R   R-   R…   R   Rn   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_knots_multiplicity¥  s    
c         C` s  | d k r< | | |  k o/ | | d k  n r8 d Sd S| | | | | k r] d } n9 |  | | | | | | | t  |  | d | | ƒ } | | | d | | d k r¿ d } nM | | | d |  | | | d | | d t  |  | d | d | ƒ } | | S(   sw   
    Naive way to compute B-spline basis functions. Useful only for testing!
    computes B(x; t[i],..., t[i+k+1])
    i    i   g      ð?g        (   t   _naive_B(   R<   R   RŒ   R   t   c1t   c2(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¥   ¼  s    0	9 	Mc         ` s¸   ˆ ˆ ˆ k r ˆ ‰ n t  j ˆ ˆ ƒ d ‰ ˆ ˆ ˆ k oR ˆ ˆ d k n s] t ‚ ˆ ˆ k r ˆ t ˆ ƒ ˆ k  s… t ‚ t ‡  ‡ ‡ ‡ ‡ f d †  t d ˆ d ƒ Dƒ ƒ S(   s=   
    Naive B-spline evaluation. Useful only for testing!
    i   c         3` s4   |  ]* } ˆ  ˆ | t  ˆ ˆ ˆ | ˆ ƒ Vq d  S(   N(   R¥   (   t   .0R…   (   R   RŒ   R   R   R<   (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pys	   <genexpr>Ù  s    i    (   R%   t   searchsortedt   AssertionErrort   lent   sumRp   (   R<   R   R   R   (    (   R   RŒ   R   R   R<   sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyRE   Ï  s    	.(c         ` s•   t  ˆ ƒ ˆ d } | ˆ d k s* t ‚ t  ˆ  ƒ | k sB t ‚ ˆ ˆ ˆ k oa ˆ | k n sl t ‚ t ‡  ‡ ‡ ‡ f d †  t | ƒ Dƒ ƒ S(   s'   Naive B-spline evaluation, another way.i   c         3` s,   |  ]" } ˆ  | t  ˆ ˆ | ˆ ƒ Vq d  S(   N(   R¥   (   R¨   RŒ   (   R   R   R   R<   (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pys	   <genexpr>â  s    (   R«   Rª   R¬   Rp   (   R<   R   R   R   R,   (    (   R   R   R   R<   sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyRF   Ü  s
    *c         C` s¨   t  | ƒ | d } | | d k s* t ‚ t  | ƒ | k sB t ‚ d } xY t | ƒ D]K } t j | | | | d !d t ƒ|  ƒ } | | | t j | ƒ 7} qU W| S(   Ni   g        i   R>   (   R«   Rª   Rp   R   Rw   R\   R%   t
   nan_to_num(   R<   R   R   R   R,   t   sRŒ   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyRz   å  s    *c         C` sm   t  j |  ƒ }  t  j |  |  d k  |  d k B|  d k |  d k  @|  d k |  d k @g d „  d „  d „  g ƒ S(   s+    A linear B-spline function B(x | 0, 1, 2).i    i   i   c         S` s   d S(   Ng        (    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   <lambda>ö  s    c         S` s   |  S(   N(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯   ö  s    c         S` s   d |  S(   Ng       @(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯   ö  s    (   R%   t
   atleast_1dt	   piecewise(   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR;   ð  s
    c         C` s±   t  j |  ƒ }  |  d k  |  d k |  d k  @|  d k g } | d k ra d „  d „  d „  g } n7 | d k rˆ d „  d „  d	 „  g } n t d
 | ƒ ‚ t  j |  | | ƒ } | S(   s0   A quadratic B-spline function B(x | 0, 1, 2, 3).i   i   i    c         S` s   |  |  d S(   Ng       @(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯   þ  s    c         S` s   d |  d d S(   Ng      @i   i   g      è?g      ø?(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯   ÿ  s    c         S` s   d |  d d S(   Ng      @i   (    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯      s    c         S` s   d S(   Ng      ð?(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯     s    c         S` s   d S(   Ng       À(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯     s    c         S` s   d S(   Ng      ð?(    (   R<   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¯     s    s   never be here: der=%s(   R%   R°   R#   R±   (   R<   Rn   t   condst   funcst   pieces(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyRx   ù  s    +i#   i   c         C` sX   t  j j d ƒ t  j t  j j |  | d ƒ ƒ } t  j j |  ƒ } t j | | | ƒ S(   Ni{   i   (   R%   R*   RL   RM   R   t   construct_fast(   R,   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR2     s    #c         c` s»   |  j  |  j } } |  j j ƒ  } | d | d d +| d | d <t | | | ƒ V|  j j ƒ  } | d | | d *t | | | ƒ V|  j j ƒ  } | d | | d )t | | | ƒ Vd S(	   s   Increase knot multiplicity.i   i   i   i   i    i   iÿÿÿÿN(   R   R   R   t   copyR   (   R-   R   R   t   t1(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR£     s    t   TestInteropc           B` s€   e  Z d  „  Z d „  Z d „  Z e j j d d ƒ d „  ƒ Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C` sê   t  j d d t  j d ƒ } t  j | ƒ } t | | ƒ } | j | j | j f |  _ | | | |  _	 |  _
 |  _ t  j d d t  j d ƒ |  _ t  j | j | j | j f } t  j | | f ƒ |  _ t | j |  j | j ƒ |  _ d  S(   Ni    g      @i)   i   (   R%   R7   t   pit   cosR   R   R   R   R3   R9   Rf   R-   t   xnewRˆ   R‰   R§   R   t   b2(   R+   R9   Rf   R-   R§   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   setup_method(  s    c   	      C` sp  |  j  |  j |  j } } } t t | | ƒ | | ƒ d d d d ƒt t | | j ƒ | | ƒ d d d d ƒt g  | D] } t | | ƒ ^ qz | | ƒ d d d d ƒt ƒ  ? } | j t d ƒ t t | | ƒ | | ƒ d d d d ƒWd  QXt	 t
 d | j j ƒ ƒ d } | j j | ƒ } | j | | j f } t t | | ƒ | | ƒ j | ƒ d d d d ƒd  S(   NR/   gVçž¯Ò<R0   sH   Calling splev.. with BSpline objects with c.ndim > 1 is not recommended.i   i    (   i    (   R»   R-   R¼   R   R   R3   R   t   filtert   DeprecationWarningt   tupleRp   R   R˜   t	   transposeR   R   (	   R+   R»   R-   R¼   R<   t   supRš   R~   R3   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt
   test_splev5  s     "	.c         C` s'  |  j  |  j } } t | | ƒ } t j | | ƒ \ } } } t | d | d d ƒt | d | d d ƒt | d | ƒ t | | d t ƒ\ } } } } t | d | d d ƒt | d | d d ƒt | d | ƒ t | | ƒ }	 t | |	 d d ƒt | Œ  }
 t | |
 | ƒ d d ƒd  S(   Ni    R/   gVçž¯Ò<i   i   t   full_output(	   R9   Rf   R   t   _implR   R   RA   R   R   (   R+   R<   RN   R3   R   R   R   t   tck_fR]   Rf   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splrepR  s    !t   reasons/   requires SciPy to be built with NumPy >= 1.14.0c         C` sÌ   |  j  |  j } } t j | | f } t t ƒ  t | | ƒ Wd  QXt t ƒ  t j | | ƒ Wd  QXt t d d ƒ t | d  | d  ƒ Wd  QXt t d d ƒ t j | d  | d  ƒ Wd  QXd  S(   Nt   matchs   m > k must holdi   (	   R9   Rf   R%   Rˆ   R!   R#   R   RÅ   R"   (   R+   R<   RN   t   y2(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splrep_errorsj  s    c   	      C` sç   t  j d ƒ j d	 ƒ } t | ƒ \ } } t j | ƒ \ } } t | | d d ƒt t | | ƒ | d d ƒt t | | ƒ | d d ƒt | d d d t ƒ\ \ } } } } } t | | d d ƒt t | | ƒ | d d ƒd  S(
   Ni   i   i   R/   gVçž¯Ò<R®   i    RÄ   (   i   i   (   R%   R)   R@   R   RÅ   R   R   RA   (	   R+   R<   R-   t   uR3   t   u1t   b_ft   u_fR]   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splprep{  s    *c         C` s€  t  j d ƒ j d ƒ } t t d d ƒ t | ƒ Wd  QXt t d d ƒ t j | ƒ Wd  QXt  j d d d d ƒ} t t d d	 ƒ t | g ƒ Wd  QXt t d d	 ƒ t j | g ƒ Wd  QXd
 d
 d d g } t t d d ƒ t | g ƒ Wd  QXt t d d ƒ t j | g ƒ Wd  QXd d d d g } d d d d g } t t d d ƒ t | g d  | g Œ  Wd  QXd  S(   Ni   i   i   RÉ   s   too many values to unpacki    i(   t   nums   m > k must holdg– Ð>IÀg– Ð>KÀs   Invalid inputsi   i   g333333Ó?gš™™™™™É?i   i<   (   i   i   i   (
   R%   R)   R@   R!   R#   R   RÅ   R7   R"   t   None(   R+   R<   RÌ   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splprep_errorsŠ  s&    c         C` s\  |  j  |  j } } t j d d d d g ƒ t j } t t | ƒ | d d d d ƒt t | j | j | j	 f ƒ | d d d d ƒt
 ƒ  ) } | j t d ƒ t | d	 d
 ƒ} Wd  QXt j | ƒ } t | j d ƒ t | | d d d ƒ| j j d d d ƒ } t j t | j | | j	 f d	 d
 ƒƒ } t | j d ƒ t | | d d d ƒd  S(   Ng      à?g      ø?g      @g      @R/   gH¯¼šò×z>R0   sI   Calling sproot.. with BSpline objects with c.ndim > 1 is not recommended.t   mesti2   i   i   i   i    gê-™—q=i   (   i   i   i   (   i   i   i   (   R-   R¼   R%   t   arrayR¹   R   R   R   R   R   R   R¾   R¿   R?   R   RS   RÁ   (   R+   R-   R¼   t   rootsRÂ   t   rt   c2rt   rr(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_sproot§  s    "1	*c      	   C` s.  |  j  |  j } } t t d d | ƒ t d d | j ƒ d d ƒt t d d | ƒ | j d d ƒ d d ƒt ƒ  B } | j t d ƒ t t d d | ƒ | j d d ƒ d d ƒWd  QX| j	 j
 d d d ƒ } t j t d d | j | | j f ƒ ƒ } t | j d ƒ t | t d d | ƒ d d ƒd  S(	   Ni    i   R/   g›+¡†›„=sI   Calling splint.. with BSpline objects with c.ndim > 1 is not recommended.i   i   (   i   i   (   R-   R¼   R   R   R3   R‹   R   R¾   R¿   R   RÁ   R%   R?   R   R   R   RS   (   R+   R-   R¼   RÂ   RØ   t   integr(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splint¾  s    	1*c         C` s4  x-|  j  |  j g D]} t | j ƒ t | j ƒ } | d k rw t j | j t j | f | j j d ƒ f | _ n  x² d d d g D]¡ } t	 | ƒ } t
 j	 | j | j | j f ƒ } t | j | d d d ƒt | j | d d d ƒt | j | d ƒ t t | t ƒ ƒ t t | t ƒ ƒ q‡ Wq Wd  S(   Ni    i   i   i   R/   gVçž¯Ò<(   R-   R¼   R«   R   R   R%   RW   t   zerosRS   R   RÅ   R   R   R   R   t
   isinstanceR   RÀ   (   R+   R-   t   ctR,   t   bdt   tck_d(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splderÓ  s    6!c         C` s4  x-|  j  |  j g D]} t | j ƒ t | j ƒ } | d k rw t j | j t j | f | j j d ƒ f | _ n  x² d d d g D]¡ } t	 | ƒ } t
 j	 | j | j | j f ƒ } t | j | d d d ƒt | j | d d d ƒt | j | d ƒ t t | t ƒ ƒ t t | t ƒ ƒ q‡ Wq Wd  S(   Ni    i   i   i   R/   gVçž¯Ò<(   R-   R¼   R«   R   R   R%   RW   RÝ   RS   R   RÅ   R   R   R   R   RÞ   R   RÀ   (   R+   R-   Rß   R,   Rà   Rá   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_splantiderã  s    6!c         C` sŒ  |  j  |  j |  j } } } | j j d } d | j | | j | d } t | | ƒ t | | j | j | j f ƒ } } t t	 | | ƒ t	 | | ƒ d d ƒt
 t | t ƒ ƒ t
 t | t ƒ ƒ t t | j j ƒ ƒ } | j j | d d ƒ }	 t | | j |	 | j f ƒ }
 t | | ƒ } t t j t	 | |
 ƒ ƒ j d d d ƒ | | ƒ d d ƒt
 t | t ƒ ƒ t
 t |
 t ƒ ƒ d  S(   Ni   g      à?i   R/   gVçž¯Ò<i    (   i    (   R-   R¼   R9   R   RR   R   R   R   R   R   R   RÞ   R   RÀ   Rp   R˜   RÁ   R%   R?   (   R+   R-   R¼   R9   R…   t   tnt   bnt   tck_nRš   Rˆ   t   tck_n2t   bn2(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_insertó  s      1'(   R’   R“   R½   RÃ   RÇ   R4   t   markt   xfailRË   RÐ   RÓ   RÚ   RÜ   Râ   Rã   Ré   (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR¸   $  s   									t
   TestInterpc           B` s  e  Z e j d  d e j ƒ Z e j e ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z e j j d	 d
 ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j j d d d d d g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(   g        g       @c      	   C` s0   t  t ƒ  t |  j |  j d d ƒWd  QXd  S(   NR   g      @(   R!   R"   R   R9   Rf   (   R+   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_non_int_order  s    c         C` sŠ   t  |  j |  j d d ƒ} t | |  j ƒ |  j d d d d ƒt  |  j |  j d d d d ƒ} t | |  j ƒ |  j d d d d ƒd  S(   NR   i    R/   g›+¡†›„=R0   R–   iÿÿÿÿ(   R   R9   Rf   R   (   R+   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_order_0  s    %!c         C` sŠ   t  |  j |  j d d ƒ} t | |  j ƒ |  j d d d d ƒt  |  j |  j d d d d ƒ} t | |  j ƒ |  j d d d d ƒd  S(   NR   i   R/   g›+¡†›„=R0   R–   iÿÿÿÿ(   R   R9   Rf   R   (   R+   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_linear  s    %!c         C` sX   xQ d d g D]C } t  |  j |  j | ƒ } t | |  j ƒ |  j d d d d ƒq Wd  S(   Ni   i   R/   g›+¡†›„=R0   (   R   R9   Rf   R   (   R+   R   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_not_a_knot%  s    c         C` s  d g } t  |  j |  j d d d d  | f ƒ} t | |  j ƒ |  j d d d d ƒt | |  j d	 d ƒ | d
 d d d d d ƒt  |  j |  j d d d | d  f ƒ} t | |  j ƒ |  j d d d d ƒt | |  j d
 d ƒ | d
 d d d d d ƒd  S(   Ni   g       @R   i   t   bc_typeR/   g›+¡†›„=R0   iÿÿÿÿi    (   i   g       @(   R   R9   Rf   RÒ   R   (   R+   Rn   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_quadratic_deriv*  s    	'%1'%c         C` s  d } d g d g } } t  |  j |  j | d | | f ƒ} t | |  j ƒ |  j d d d d ƒt | |  j d	 d ƒ | |  j d
 d ƒ g | d	 d | d	 d g d d d d ƒd g d g } } t  |  j |  j | d | | f ƒ} t | |  j ƒ |  j d d d d ƒd  S(   Ni   i   g      @g      @Rñ   R/   g›+¡†›„=R0   i    iÿÿÿÿi   (   i   g      @(   i   g      @(   i   i    (   i   i    (   R   R9   Rf   R   (   R+   R   t   der_lt   der_rR-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_cubic_deriv7  s    $%,)$c   
      C` s  d \ } } t  j | ƒ j t  j ƒ } t  j | ƒ } d d g } d d g } t | | d | d	 | | f ƒ} t | | ƒ | d
 d d d ƒt | | d d ƒ | | d d ƒ g g  | D] \ } }	 |	 ^ q» ƒ t | | d d ƒ | | d d ƒ g g  | D] \ } }	 |	 ^ qƒ d  S(   Ni   i   i   g      (Ài   g       @g      @R   Rñ   R/   g›+¡†›„=R0   i    iÿÿÿÿ(   i   i   (   i   g      (À(   i   i   (   i   g       @(   i   g      @(   R%   R)   t   astypet   float_t   sinR   R   (
   R+   R   R,   R<   RN   Ró   Rô   R-   Ro   t   val(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_quintic_derivsF  s    !& &RÈ   t   unstablec         C` st   d } t  |  j | ƒ } d
 d g } t |  j |  j | | d | d  f ƒ} t | |  j ƒ |  j d d d	 d ƒd  S(   Ni   i   g      @i   g      @Rñ   R/   g›+¡†›„=R0   (   i   g      @(   i   g      @(   R   R9   R   Rf   RÒ   R   (   R+   R   R   Ró   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_cubic_deriv_unstableS  s
    'c      	   C` së   d } t  j |  j d f | d |  j d |  j d  d |  j d f | d f } t |  j |  j | | d d g d g f ƒ} t | |  j ƒ |  j d d d	 d ƒt | |  j d d ƒ | |  j d d ƒ g d
 d
 g d d ƒd  S(   Ni   i    i   iÿÿÿÿg       @Rñ   R/   g›+¡†›„=R0   g        (   i   i    (   i   i    (   R%   RW   R9   R   Rf   R   (   R+   R   R   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_knots_not_data_sitesb  s    %8c         C` s   d } d d g } d d g } t  | | | d d
 g d g f ƒ} t j d d ƒ } | d } t | | ƒ | d d d	 d ƒd  S(   Ni   g        g      ð?Rñ   i   g      @R/   g›+¡†›„=R0   (   i   g        (   i   g      @(   R   R%   R7   R   (   R+   R   R<   RN   R-   R9   Rf   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_minimum_points_and_derivq  s    $
c         C` sý   d d d d d d g } } t  t ƒ ! t | | d d g d  f ƒWd  QXt  t ƒ  t | | d d ƒWd  QXt  t ƒ  t | | d d g ƒWd  QXt  t ƒ  t | | d d
 ƒWd  QXd d } } t  t ƒ  t | | d | | f ƒWd  QXd  S(   Ng      ð?i   i   i   i   i   Rñ   i   g        i*   (   i   g        (   i   g        (   i   g        (   i   g        (   i   g        (   R!   R#   R   RÒ   (   R+   R<   RN   t   lR×   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_deriv_spec}  s    "c         C` s  d } |  j  } |  j d |  j } d g d d f g } } t | | | d | | f ƒ} t | | ƒ | d d	 d
 d	 ƒt | | d d ƒ | | d d ƒ g | d d | d d g d d	 d
 d	 ƒxB d D]: } t | | d | ƒ} t | | ƒ | d d	 d
 d	 ƒqÏ Wd  S(   Ni   y              ð?i   y              @g      @y               @Rñ   R/   g›+¡†›„=R0   i    iÿÿÿÿR   (   i   y              @y      @       @(   i    i   (   R9   Rf   R   R   (   R+   R   R9   Rf   Ró   Rô   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_complex”  s    	&)c         C` sj   t  j d ƒ j t  j ƒ } t  j d ƒ j t  j ƒ } x- d D]% } t | | d | ƒ} | | ƒ q= Wd  S(   Ni
   i    i   i   i   R   (   i    i   i   i   (   R%   R)   Rö   t   int_R   (   R+   R<   RN   R   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_int_xy¥  s
    c         C` sc   t  j d d d ƒ } | d  d  d … } | d  d  d … } x! d	 D] } t | | d | ƒqB Wd  S(
   Niÿÿÿÿi   id   i   i    i   i   R   (   i    i   i   i   (   R%   R7   R   (   R+   R9   R<   RN   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_sliced_input¯  s
    c         C` sg   t  j d ƒ j t ƒ } | d } x> t  j t  j t  j g D]# } | | d <t t t | | ƒ q< Wd  S(   Ni
   i   iÿÿÿÿ(	   R%   R)   Rö   t   floatR'   R(   R!   R#   R   (   R+   R<   RN   t   z(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_check_finite¹  s
    
 
R   i   i   i   i   c         C` sF   t  t d ƒ ƒ } g  | D] } | d ^ q } t | | d | ƒd  S(   Ni
   i   R   (   R—   Rp   R   (   R+   R   R<   t   aRN   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_list_inputÂ  s    c         C` s  t  j t  j |  j ƒ t  j |  j ƒ f } d d d g f g } d d d g f g } t |  j | d d d | | f ƒ} t | |  j ƒ | d	 d
 d d
 ƒt | |  j d d ƒ | d d d	 d
 d d
 ƒt | |  j d d ƒ | d d d	 d
 d d
 ƒd  S(   Ni   g      ð?g       @g      @g      @R   i   Rñ   R/   g›+¡†›„=R0   i    iÿÿÿÿ(   R%   Rˆ   Rø   R9   Rº   R   R   (   R+   Rf   Ró   Rô   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_multiple_rhsÉ  s    +$"1c         C` s  t  j j d ƒ d
 \ } } t  j t  j j d | ƒ ƒ } t  j j d | d d d f ƒ } t | | | ƒ } t | j j | d d d f ƒ d t  j j d ƒ f g } d t  j j d ƒ f g } t | | | d	 | | f ƒ} t | j j | | d d d d f ƒ d  S(   NiÒ  i   i   RR   i   i   i   i   Rñ   (   i   i   (   i   i   i   (   i   i   i   (   R%   R*   RL   RM   R   R   R   RS   (   R+   R   R,   R<   RN   R-   t   d_lt   d_r(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_shapesÓ  s    !c         C` sD  t  j |  j ƒ } t |  j | d d d d ƒ} t |  j | d d d d g d g f ƒ} t | j | j d d ƒt |  j | d d d d ƒ} t |  j | d d d d g d g f ƒ} t | j | j d d ƒt |  j | d d d d ƒ} t |  j | d d d d  d g f ƒ} t | j | j d d ƒt |  j | d d d d ƒ} t |  j | d d d d  ƒ} t | j | j d d ƒt t ƒ ! t |  j | d d d d ƒWd  QXt  j	 t  j |  j ƒ t  j
 |  j ƒ f } d
 d d g f g } d d d g f g } t |  j | d d d | | f ƒ} t |  j | d d d d ƒ} t | j | j d d ƒt  j j d ƒ d \ } } t  j t  j j d | ƒ ƒ } t  j j d | d d d f ƒ }	 d
 t  j d ƒ f g }
 d
 t  j d ƒ f g } t | |	 | d |
 | f ƒ} t | |	 | d d	 ƒ} t | j | j d d ƒd  S(   NR   i   Rñ   t   naturali   i    R/   gVçž¯Ò<t   clampedi   g        s
   not-a-knott   typoiÒ  i   RR   i   i   i   (   i   i    (   i   i    (   R  R  (   i   i    (   i   i    (   NR  (   i   g        (   R  R  (   i   i   (   i   i   i   (   i   i   i   (   R%   Rø   R9   R   R   R   RÒ   R!   R#   Rˆ   Rº   R*   RL   RM   RÝ   (   R+   Rf   R   R¼   Ró   Rô   R   R,   R<   RN   R  R  (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_string_aliasesâ  sB    *	'"+$	!c         C` s¨   t  j j d ƒ d \ } } t  j t  j j d | ƒ ƒ } t  j j d | ƒ } t | | ƒ } t | | | | ƒ } t | | | | ƒ } t | j | d d d d ƒd  S(	   NiÒ  i   i   RR   R/   g›+¡†›„=R0   (   i   i   (	   R%   R*   RL   RM   R   R   t   make_interp_full_matrR   R   (   R+   R   R,   R<   RN   R   R-   t   cf(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_full_matrix  s    (    R’   R“   R%   R7   R¹   R9   Rø   Rf   Rí   Rî   Rï   Rð   Rò   Rõ   Rú   R4   Rê   Rë   Rü   Rý   Rþ   R   R  R  R  R  t   parametrizeR	  R
  R  R  R  (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyRì     s,   												
	
		*	
		3c         C` sû   |  j  | j  k s t ‚ | j  |  j  | d k s8 t ‚ |  j  } t j | | f d t j ƒ} xƒ t | ƒ D]u } |  | } | | | k r• | } n t j | | ƒ d } t j | | | | ƒ }	 |	 | | | | | d … f <ql Wt	 j
 | | ƒ }
 |
 S(   s»   Assemble an spline order k with knots t to interpolate
    y(x) using full matrices.
    Not-a-knot BC only.

    This routine is here for testing only (even though it's functional).
    i   t   dtype(   RR   Rª   R%   RÝ   R÷   Rp   R©   R   t   evaluate_all_bsplt   slt   solve(   R<   RN   R   R   R,   t   AR…   t   xvalt   leftt   bbR   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR  !  s     	
	"c      	   C` sV  t  t j |  | | f ƒ \ }  } } |  j } | j | d } | | | d k sX t ‚ t j | | f d t j ƒ} d } |  d | | k r™ | } n t j | |  d ƒ d } |  d | | k rÐ | }	 n t j | |  d ƒ d }	 x« t | d ƒ D]™ }
 t	 j
 | | |  d | d |
 d ƒ} | | |
 | | | d … f <t	 j
 | | |  d |	 d |
 d ƒ} | | |
 |	 | |	 d … f <| d 7} qû Wt j d g | d | f } x‡ t | ƒ D]y } |  | } | | | k rì| } n t j | | ƒ d } t	 j
 | | | | ƒ } | | | | | | | d … f <qÃWt j | | ƒ } | S(   Ni   R  i    iÿÿÿÿRo   (   t   mapR%   R?   RR   Rª   RÝ   R÷   R©   Rp   R   R  RW   R  R  (   R<   RN   R   R   R,   t   ntR  t   offsetR  t   left2RŒ   R  R…   R  R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   make_interp_per_full_matr>  s8    $			&&
	&c         C` s.  t  t j |  | | f ƒ \ }  } } |  j } | j | d } t j | | f d t j ƒ} xƒ t | ƒ D]u } |  | } | | | k r’ | }	 n t j | | ƒ d }	 t j	 | | | |	 ƒ }
 |
 | | |	 | |	 d … f <qi Wt j
 | j | ƒ } t j
 | j | ƒ } t j | | ƒ } | | | f f S(   s,   Make the least-square spline, full matrices.i   R  (   R  R%   R?   RR   RÝ   R÷   Rp   R©   R   R  t   dott   TR  R  (   R<   RN   R   R   t   mR,   R  R…   R  R  R  R‘   t   YR   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   make_lsq_full_matrixr  s    $	
	"t   TestLSQc           B` s¶   e  Z e j j d  ƒ d \ Z Z e j e j j e ƒ ƒ Z e j j e ƒ Z	 e
 e j e d e d d ƒ e ƒ Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z RS(   iÒ  i   i   i    iÿÿÿÿi   c         C` sÒ   |  j  |  j |  j |  j f \ } } } } t | | | | ƒ \ } } t | | | | ƒ } t | j | ƒ t | j j	 | j
 | d f ƒ | \ } }	 t j j | | d d ƒ\ }
 } } } t | j |
 ƒ d  S(   Ni   t   rcondiÿÿÿÿ(   R<   RN   R   R   R'  R   R   R   R   RS   RR   R%   t   linalgt   lstsq(   R+   R<   RN   R   R   t   c0t   AYR-   t   aaRf   R¦   R]   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt
   test_lstsq˜  s    *!'c         C` s²   |  j  |  j |  j |  j f \ } } } } t j | ƒ } t | | | | ƒ } t | | | | d | ƒ} t | j | j d d ƒt | j | j d d ƒt	 | j | j ƒ d  S(   Nt   wR/   g›+¡†›„=(
   R<   RN   R   R   R%   RP   R   R   R   R   (   R+   R<   RN   R   R   R0  R-   t   b_w(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_weights§  s    *c         C` sŽ   |  j  |  j |  j |  j f \ } } } } t j j d | d d d f ƒ } t | | | | ƒ } t | j j	 | j
 | d d d d f ƒ d  S(   NRR   i   i   i   i   (   R<   R   R   R,   R%   R*   R   R   R   RS   RR   (   R+   R<   R   R   R,   RN   R-   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR
  ³  s    *!c         C` s¦   |  j  |  j |  j } } } |  j d } t | | | | ƒ } t | | j | | ƒ } t | | j | | ƒ } t | | ƒ | | ƒ d | | ƒ d d d d ƒd  S(   Ng      ð?y               @y              ð?R/   gVçž¯Ò<R0   y      ð?       @(   R<   R   R   RN   R   R|   R}   R   (   R+   R<   R   R   t   ycR-   R   R€   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR  º  s    c         C` sb   t  j d ƒ j t  j ƒ } t  j d ƒ j t  j ƒ } t | d d ƒ} t | | | d d ƒd  S(   Ni
   R   i   (   R%   R)   Rö   R  R   R   (   R+   R<   RN   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR  Å  s    c         C` sd   t  j d d d ƒ } | d  d  d … } | d  d  d … } t | d ƒ } t | | | d d ƒd  S(   Niÿÿÿÿi   id   i   R   (   R%   R7   R   R   (   R+   R9   R<   RN   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR  Ì  s
    c         C` sy   t  j d ƒ j t ƒ } | d } t | d ƒ } xA t  j t  j t  j g D]& } | | d <t t t	 | | | ƒ qK Wd  S(   Ni   i   i   iÿÿÿÿ(
   R%   R)   Rö   R  R   R'   R(   R!   R#   R   (   R+   R<   RN   R   R  (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   test_checkfiniteÕ  s    
 
(   i   i   (   R’   R“   R%   R*   RL   R,   R   RM   R<   RN   R   R7   R   R/  R2  R
  R  R  R  R4  (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyR(  Ž  s   &							(=   t
   __future__R    R   R   t   numpyR%   t   numpy.testingR   R   R   t   scipy._lib._numpy_compatR   R4   R   R!   t   scipy.interpolateR   R	   R
   R   R   R   R   R   R   R   R   R   R   R   t   scipy.linalgR*  R  t   scipy._lib._versionR   t   scipy.interpolate._bsplinesR   R   t   scipy.interpolate._fitpack_implt   interpolatet   _fitpack_implRÅ   t   scipy.interpolate._fitpackR   t   objectR   R¤   R¥   RE   RF   Rz   R;   Rx   R2   R£   R¸   Rì   R  R"  R'  R(  (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_bsplines.pyt   <module>   s:   ^ÿ ’									êÿ 		4