
&]\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
 d  d l m Z d  d l Z d  d l m Z d  d l j j Z d  d l j j Z d  d l Z d   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   assert_equalt   assert_allcloset   assert_almost_equal(   t   raises(   t   suppress_warningsc         C` s.   t  j j t  j j t  j j t   d |   S(   Nt   data(   t   ost   patht   joint   abspatht   dirnamet   __file__(   t   basename(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt	   data_file   s    $t   TestLinearNDInterpolationc           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` so   t  j d d d	 d
 d g d t  j } t  j | j d d t  j } t j | |  |  } t | |  d  S(   Ni    g      g      ?g      ?g333333?t   dtype(   i    i    (   g      g      (   g      g      ?(   g      ?g      ?(   g      ?g333333?(   t   npt   arrayt   doublet   aranget   shapet   interpndt   LinearNDInterpolatorR   (   t   selft   xt   yt   yi(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_smoketest   s
    c         C` s   t  j d d	 d
 d d g d t  j } t  j | j d d t  j } t j | d  d   d f | d  d   d f f |  | d  d   d f | d  d   d f  } t | |  d  S(   Ni    g      g      ?g      ?g333333?R   i   (   i    i    (   g      g      (   g      g      ?(   g      ?g      ?(   g      ?g333333?(   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_smoketest_alternate    s
    ac         C` s}   t  j d d	 d
 d d g d t  j } t  j | j d d t  j } | d | } t j | |  |  } t | |  d  S(   Ni    g      g      ?g      ?g333333?R   y              @(   i    i    (   g      g      (   g      g      ?(   g      ?g      ?(   g      ?g333333?(   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_complex_smoketest)   s    c         C` s   t  j d d	 d
 d d g d t  j } t  j | j d d t  j } | d | } t j |  } t j | |  |  } t	 | |  d  S(   Ni    g      g      ?g      ?g333333?R   y              @(   i    i    (   g      g      (   g      g      ?(   g      ?g      ?(   g      ?g333333?(
   R   R   R   R   R   t   qhullt   DelaunayR   R   R   (   R   R   R   t   triR   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_tri_input3   s    c         ` s  t  j d
 d d d g d t  j } t  j d d d d g d t  j     f d   } t  j t  j d d d	  d  d   d  f t  j d d d	  d  d  d   f  \ } } | j   } | j   } t  j | | g  j j   } t	 j
 |    |  } t | | | |   d  S(   Ni    i   R   g      ?g       @g      g      @c   	      ` s   |  | d k } | } |  | } | | } |  | } | | } d |  }   d d | |   d |   d | | | <  d | | d   d d |   d d | | | <| S(   Ni   i    i   i   (    (	   R   R   t   t1t   t2t   x1t   y1t   x2t   y2t   z(   t   values(    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   ipL   s    




2:i   (   i    i    (   i    i   (   i   i   (   i   i    (   R   R   R   t   broadcast_arrayst   linspacet   Nonet   ravelt   Tt   copyR   R   R   (   R   t   pointsR-   t   xxt   yyt   xit   zi(    (   R,   sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_square>   s    $$	(.c         C` su   t  j d d	 d
 d d g d t  j } t  j | j d d t  j } t j | | d t |  } t | |  d  S(   Ni    ii   g      @i   R   t   rescale(   i    i    (   ii(   ii   (   i   i   (   g      @i   (	   R   R   R   R   R   R   R   t   TrueR   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_smoketest_rescalek   s
    c         C` s  t  j d d d d g d t  j } t  j d d d d g d t  j } t  j t  j d d d	  d  d   d  f t  j d d d	  d  d  d   f  \ } } | j   } | j   } t  j | | g  j j   } t	 j
 | |  |  } t	 j
 | | d
 t |  } t | |  d  S(   Ni    id   i
   R   g      ?g       @g      g      @i   R:   (   i    i    (   i    id   (   i
   id   (   i
   i    (   R   R   R   R.   R/   R0   R1   R2   R3   R   R   R;   R   (   R   R4   R,   R5   R6   R7   R8   t   zi_rescaled(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_square_rescalet   s    $$(.c         C` s   t  j d	 d
 d d d g d t  j } t  j | j d d t  j } | d | } t j |  } t j | j	 |  |  } t j | j	 | d t
 |  } t | |  d  S(   Ni    ii   g      @i   R   y              @R:   (   i    i    (   ii(   ii   (   i   i   (   g      @i   (   R   R   R   R   R   R!   R"   R   R   R4   R;   R   (   R   R   R   R#   R   t
   yi_rescale(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_tripoints_input_rescale   s    c      	   C` s   t  j d d d d d g d t  j } t  j | j d d t  j } | d | } t j |  } d } t j t	 d	 | ! t
 j | | d
 t |  Wd  QXd  S(   Ni    ii   g      @i   R   y              @sO   Rescaling is not supported when passing a Delaunay triangulation as ``points``.t   matchR:   (   i    i    (   ii(   ii   (   i   i   (   g      @i   (   R   R   R   R   R   R!   R"   t   pytestR   t
   ValueErrorR   R   R;   (   R   R   R   R#   RA   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_tri_input_rescale   s    c         C` s   t  j j d  t  j j d d  } t  j j d  d t  j j d  } t j | |  } t j t j |   } t	 | d d  | d d   d  S(   Ni  i   i   y              ?g      ?(
   R   t   randomt   seedt   randR   R   t   picklet   loadst   dumpsR   (   R   R   R   R-   t   ip2(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_pickle   s    &(   t   __name__t
   __module__R   R   R    R$   R9   R<   R>   R@   RD   RL   (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyR      s   					
		-					t   TestEstimateGradients2DGlobalc           B` s   e  Z d    Z d   Z RS(   c   	      C` s.  t  j d d d d d d g d t } t j |  } d	   d f d
   d f d   d f d   d  f g } x t |  D] \ } \ } } | | d  d   d f | d  d   d f  } t j | | d d } t | j	 d!  t
 | t  j |  d  d  d   f d | d d d d d d | qy Wd  S("   Ni    i   i   g      ?g      ?g333333?g?R   c         S` s   d |  d S(   Ni    i   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   <lambda>   s    c         S` s   d |  S(   Ni    (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    c         S` s   d | S(   Ni(    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    c         S` s   d d |  d | S(   Ni   gL,@(    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    i   gL,@t   tolgư>i   t   rtolgh㈵>t   atolt   err_msgs   item %d(   i    i    (   i    i   (   i   i    (   i   i   (   g      ?g      ?(   g333333?g?(   i    i    (   i   i    (   i    i   (   i   gL,@(   i   i   (   R   R   t   floatR!   R"   t	   enumerateR   t   estimate_gradients_2d_globalR   R   R   R0   (	   R   R   R#   t   funcst   jt   funct   gradR+   t   dz(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyR      s    /-c      	   C` s|   t  j t d   } t  j j | j d  } t j |  } t   0 } | j	 t
 j d  t
 j | | d d Wd  QXd  S(   Ns   estimate_gradients_hang.npyi    s$   Gradient estimation did not converget   maxiteri   (   R   t   loadR   RE   RG   R   R!   R"   R   t   filterR   t   GradientEstimationWarningRW   (   R   R4   R,   R#   t   sup(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_regression_2359   s    (   RM   RN   R   Rb   (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRO      s   	t   TestCloughTocher2DInterpolatorc           B` sn   e  Z d d  e e d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   gư>c      	   K` s  t  j j d  | d  k rI t  j d d d d d d d g d
 t } n  | s t j | | | d  d   d f | d  d   d f  d d d | } nm t j | d  d   d f | d  d   d f f | | d  d   d f | d  d   d f  d d d | } t  j j d d  } | s0| |  }	 n/ | | d  d   d f | d  d   d f  }	 | | d  d   d f | d  d   d f  }
 y t	 |	 |
 |  Wn5 t
 k
 rt t |	 |
   t | j    n Xd  S(   Ni  i    i   g      ?g      ?g333333?g?g      ?g?R   RQ   gư>R:   i2   i   (   i    i    (   i    i   (   i   i    (   i   i   (   g      ?g      ?(   g333333?g?(   g      ?g?(   R   RE   RF   R0   R   RU   R   t   CloughTocher2DInterpolatorRG   R   t   AssertionErrort   printt   absR[   (   R   RZ   R   RQ   t	   alternateR:   t   kwR-   t   pt   at   b(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   _check_accuracy   s.    	8////c         C` s   d   d   d   d   g } x t  |  D] \ } } |  j | d d d d d	 d d
 d | |  j | d d d d d	 d d t d
 d | |  j | d d d d d	 d d
 d | d t |  j | d d d d d	 d d t d t d
 d | q+ Wd  S(   Nc         S` s   d |  d S(   Ni    i   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    c         S` s   d |  S(   Ni    (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    c         S` s   d | S(   Ni(    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    c         S` s   d d |  d | S(   Ni   gL,@(    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP      s    RQ   gvIh%<=RS   gHz>RR   RT   s   Function %dRh   s   Function (alternate) %ds   Function (rescaled) %dR:   s!   Function (alternate, rescaled) %d(   RV   Rm   R;   (   R   RX   RY   RZ   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_linear_smoketest   s    c         C` s   d   d   d   d   g } xr t  |  D]d \ } } |  j | d d d d d	 d
 d d | |  j | d d d d d	 d
 d d | d t q+ Wd  S(   Nc         S` s   |  d S(   Ni   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP     s    c         S` s   | d S(   Ni   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP     s    c         S` s   |  d | d S(   Ni   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP     s    c         S` s   |  | S(   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP     s    RQ   g&.>RS   g)\(?RR   i    RT   s   Function %dR:   (   RV   Rm   R;   (   R   RX   RY   RZ   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_quadratic_smoketest  s    c         C` s   t  j d d	 d
 d d g d t  j } t  j | j d d t  j } | d | } t j |  } t j | |  |  } t	 | |  d  S(   Ni    g      g      ?g      ?g333333?R   y              @(   i    i    (   g      g      (   g      g      ?(   g      ?g      ?(   g      ?g333333?(
   R   R   R   R   R   R!   R"   R   Rd   R   (   R   R   R   R#   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyR$     s    c      	   C` s   t  j d d d d d g d t  j } t  j | j d d t  j } | d | } t j |  } d } t j t	 d	 | ! t
 j | | d
 t |  Wd  QXd  S(   Ni    ii   g      @i   R   y              @sO   Rescaling is not supported when passing a Delaunay triangulation as ``points``.RA   R:   (   i    i    (   ii(   ii   (   i   i   (   g      @i   (   R   R   R   R   R   R!   R"   RB   R   RC   R   Rd   R;   (   R   R   R   R#   RA   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRD   "  s    c         C` s   t  j d	 d
 d d d g d t  j } t  j | j d d t  j } | d | } t j |  } t j | j	 |  |  } t j | j	 | d t
 |  } t | |  d  S(   Ni    ii   g      @i   R   y              @R:   (   i    i    (   ii(   ii   (   i   i   (   g      @i   (   R   R   R   R   R   R!   R"   R   Rd   R4   R;   R   (   R   R   R   R#   R   R?   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyR@   /  s    !c         C` s   d   d   d   d   d   g } t  j j d  t  j t  j d d d d g d	 t t  j j d d  f } x~ t |  D]p \ } } |  j | d | d d d d d d d d | |  j | d | d d d d d d d d | d t	 q~ Wd  S(   Nc         S` s   |  d S(   Ni   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP   >  s    c         S` s   | d S(   Ni   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP   ?  s    c         S` s   |  d | d S(   Ni   (    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP   @  s    c         S` s   |  | S(   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP   A  s    c         S` s0   t  j d t  j |   t  j d t  j |  S(   Ni   (   R   t   cost   pit   sin(   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRP   B  s    i  i    i   R   i   i   R   RQ   g&.>RS   g{Gzt?RR   g{Gz?RT   s   Function %dR:   (   i    i    (   i    i   (   i   i    (   i   i   i  (
   R   RE   RF   t   r_R   RU   RG   RV   Rm   R;   (   R   RX   t   gridRY   RZ   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt
   test_dense;  s    $$$c         C` sA   t  j j d d  } t  j j d  } t t t j | |  d  S(   Ni   i   (   R   RE   t   randnt   assert_raisesRC   R   Rd   (   R   R   R   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_wrong_ndimO  s    c         C` s   t  j j d  t  j j d d  } t  j j d  d t  j j d  } t j | |  } t j t j |   } t	 | d d  | d d   d  S(   Ni  i   i   y              ?g      ?(
   R   RE   RF   RG   R   Rd   RH   RI   RJ   R   (   R   R   R   R-   RK   (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRL   T  s    &c         C` s  t  j d d	 d t  j d  d f g  } t  j d d d g  } t j | |  } d | j d <d } t  j d t  j |  d t  j |  g  } t  j d t  j t  j d |  d t  j t  j d |  g  } | |  } | |  } t	 | |  t  j
 j d  t  j
 j d d  }	 t  j
 j d  }
 |	 j | j  j |
 d  d  d   f } |	 j |  |
 } |	 j |  |
 } t j | |  } d | j d <| |  } | |  } t	 | |  t	 | |  d  S(
   Ni    i   g      ?i   i   .g333333?(   i    i    (   i   i    (   R   R   t   sqrtR   Rd   R[   Rp   Rr   Rq   R   RE   RF   Rv   t   dotR2   R0   (   R   R4   R,   R-   t   alphat   p1t   p2t   v1t   v2t   ARl   t   w1t   w2(    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   test_boundary_tri_symmetry_  s,    +/E)N(   RM   RN   R0   t   FalseRm   Rn   Ro   R$   RD   R@   Ru   Rx   RL   R   (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyRc      s   								(   t
   __future__R    R   R   R	   t   numpyR   t   numpy.testingR   R   R   RB   R   Rw   t   scipy._lib._numpy_compatR   t   scipy.interpolate.interpndt   interpolateR   t   scipy.spatial.qhullt   spatialR!   RH   R   t   objectR   RO   Rc   (    (    (    sD   lib/python2.7/site-packages/scipy/interpolate/tests/test_interpnd.pyt   <module>   s   	%