
    xf$                         d dl Zd dlmZmZmZ d dlZd dlmZ d dl	m
Z
mZmZmZ ej                  j                  deeeg      Z G d d      Z G d d	      Z G d
 d      Zy)    N)assert_equalassert_array_equalassert_allclose)raises)griddataNearestNDInterpolatorLinearNDInterpolatorCloughTocher2DInterpolatorinterpolatorc                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestGriddatac                     g d}g d}t        ||g dd      }t        |g d       t        ||g d      }t        |t        j                  t        j                  dg       y )N)r   r   r      r   r   )r         )r   r   )r   r   r   )
fill_value)g      r   r   r   )r   r   npnan)selfxyyis       I/usr/lib/python3/dist-packages/scipy/interpolate/tests/test_ndgriddata.pytest_fill_valuezTestGriddata.test_fill_value   sO    !a1bA2|,a12223    c           
         t        j                  g dt         j                        }t        j                  |j                  d   t         j                        d d d f   t        j                  ddg      d d d f   z   }dD ]U  }dD ]N  }t        ||f      }t        |d d df   |d d df   f||d d df   |d d df   f||      }t        ||d|	       P W y 
Nr   )      r$   )r$         ?)r%   r%   )g      ?g333333?dtyper   r   nearestlinearcubicTFmethodrescale+=atolerr_msgr   arraydoublearangeshapereprr   r   r   r   r   r.   r/   msgr   s          r   test_alternative_callz"TestGriddata.test_alternative_call   s    HHN99&YYqwwqz3AdF;xx1tAv&' 5 	@F( @FG,-q1vq1v.AacFAacF3CF&-/2E3?	@	@r    c           	      v   t        j                  g dt         j                        }t        j                  |j                  d   t         j                        d d d f   t        j                  ddg      d d d f   z   }dD ]5  }dD ].  }t        ||f      }t        |||||      }t        ||d|	       0 7 y r"   r4   r:   s          r   test_multivalue_2dzTestGriddata.test_multivalue_2d(   s    HHN99&YYqwwqz3AdF;xx1tAv&' 5 	@F( @FG,-aAfgF2E3?@	@r    c           
         t        j                  g dt         j                        }t        j                  |j                  d   t         j                        }|d d d d d f   t        j                  g d      d d d d f   z   }dD ]h  }dD ]a  }t        ||f      }t        |||||      }t        |j                  d|	       t        |t        j                  |d d d f   d
      d|       c j y )Nr#   r&   r   r   r   r   r(   r,   r-      r   r3   r   r   r0   r1   
r   r5   r6   r7   r8   r9   r   r   r   tiler   r   r   xir.   r/   r;   r   s           r   test_multipoint_2dzTestGriddata.test_multipoint_2d4   s    HHN99&IIaggaj		2qax[288G,T!D[994 	9F( 9FG,-aBvwGRXXvs;BGGAafIv$>%*C99	9r    c           
         t        j                  g dt         j                        }t        j                  |j                  d   t         j                        }|d|d d d   z  z
  }|d d d d d f   t        j                  g d      d d d d f   z   }dD ]h  }dD ]a  }t        ||f      }t        |||||	      }t        |j                  d
|       t        |t        j                  |d d d f   d      d|       c j y )Nr#   r&   r                  @r   r@   r(   r,   r-   rA   rC   rD   r0   r1   rE   rG   s           r   test_complex_2dzTestGriddata.test_complex_2dD   s    HHN99&IIaggaj		21TrT7
Nqax[288G,T!D[994 	9F( 9FG,-aBvwGRXXvs;BGGAafIv$>%*C99	9r    c           	      :   t        j                  g d      }t        j                  g d      }dD ]h  }t        t        ||||      ||d       t        t        |j	                  dd      |||      ||d       t        t        |f||f|      ||d       j y )	Nr         @r         @rB      r   r   r   g333333@r   r   r(   r.   r0   r3   r2   rQ   r   r   r5   r   r   reshaper   r   r   r.   s       r   test_1dzTestGriddata.test_1dU       HH+,HH)*4 	8FHQ1V<a$*8HQYYq!_a6JA$*8HaT1qd6BA$*8	8r    c                    t        j                  g d      }t        j                  g d      }t        j                  ddg      }t        j                  ddg      }d}t        t        ||||      ||d	       t        t        |j	                  d
d      |||      ||d	       t        t        |f||f|      ||d	       y )NrN   rR   ?g      @      ?r)   rS   r0   rT   rQ   r   rU   )r   r   r   rH   	yi_shouldr.   s         r   test_1d_borderszTestGriddata.test_1d_bordersa   s     HH+,HH)*XXsCj!HHc3Z(	Ar(.01: &"	$ 	1a!R(.01: &"	$ 	!B6(.01: &"	$r    c           	      :   t        j                  g d      }t        j                  g d      }dD ]h  }t        t        ||||      ||d       t        t        |j	                  dd      |||      ||d       t        t        |f||f|      ||d       j y )	N)rO   r   rP   rB   rQ   r   rR   r(   rS   g|=rT   rQ   r   rU   rW   s       r   test_1d_unsortedzTestGriddata.test_1d_unsortedw   rY   r    c           
         t        j                  g dt         j                        }t        j                  g dt         j                        }t        j                  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                         }d	D ]J  }|}t        |||t        j                  dd
g      z  |      }	t        ||||d      }
t        |	|
|d       L y )N)r   )r   d   )
   rb   )rc   r   )r   rB   r&   )r   r   r   r   )皙?g?)r\   g       @g      g      @g      "@r   rc      rb   r(   g      Y@rS   Tr-   g-q=rT   )
r   r5   r6   broadcast_arrayslinspaceravelTcopyr   r   )r   pointspoints_rescaledvaluesxxyyrH   r.   r;   zizi_rescaleds              r   test_square_rescale_manualz'TestGriddata.test_square_rescale_manual   s    DBIIV((#LTVT]T]^/ryyA$$R[[B%;AdF%C%'[[C%<T!V%DFBXXZXXZXXr2h!!&&(4 	(FC/62bhhDz6J3J!')B"662f+/1KBS!&(	(r    c           	      2   t        j                  g dt         j                        }t        j                  |j                  d   t         j                        }|d|d d d   z  z
  }t        j                  ddg      }dD ]  }t        ||||      }t        |||d d d f   |      }t        |||	       t        j                  dg      }t        j                  g d
      }t        t        t
        ||||       t        t        t
        ||||        y )Nr#   r&   r   rK   r   r%   r(   rS   rC   )r%   r%   r%   )	r   r5   r6   r7   r8   r   r   assert_raises
ValueError)	r   r   r   rH   r.   p1p2xi1xi3s	            r   
test_xi_1dzTestGriddata.test_xi_1d   s    HHN99&IIaggaj		21TrT7
NXXsCj!4 
	)F!Q62B!Q46
6:BBF3((C5/C((?+C*h1c!')*h1c!')
	)r    N)__name__
__module____qualname__r   r<   r>   rI   rL   rX   r^   r`   rr   rz    r    r   r   r      s6    4@
@9 9"
8$,
8(()r    r   c                       e Zd Zd Zd Zy)TestNearestNDInterpolatorc                     d\  }}t        j                  ||z        j                  ||f      }t        j                  |      }t        ||      }ddd}t        |||      }t	         ||       ||      d       y )N)   r   F)balanced_treecompact_nodes)tree_optionsr0   )r2   )r   r7   rV   r   r   )r   nptsndr   r   nndioptsnndi_os           r   test_nearest_optionsz.TestNearestNDInterpolator.test_nearest_options   sq    bIId2g&&bz2IIdO$Q*!&?&q!$?Q7r    c                 (   t        j                  g dg dg dg      }|d d dd f   }t        |d   |d   f|d         }t         |dd	gdd	g      ddg       t        |d   |d   ft	        |d               }t         |dd	gdd	g      ddg       y )
N)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   rd   r[   )r   r5   r   r   list)r   r   dNIs       r   test_nearest_list_argumentz4TestNearestNDInterpolator.test_nearest_list_argument   s    XX,,,. / q!"uI #AaD!A$<162sCj3*51v> #AaD!A$<ad<2sCj3*51v>r    N)r{   r|   r}   r   r   r~   r    r   r   r      s    	8?r    r   c                   ,    e Zd Zed        Zed        Zy)TestNDInterpolatorsc                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t        j                  ||      }t        j                  t        |      t        |            }t        j                  t        |      t        |            }t        j                  ||      \  }}t        j                  |j                         |j                         f      j                  } |t        t        ||            |      } ||      }	 |||f      }
 ||df      } |||      } ||d      }t        |	j                  |
j                  cxk(  xr9 |j                  cxk(  xr' |j                  cxk(  xr |j                  k(  d       y c d       y )Nr   rc   g        T)r   randomseedhypotrg   minmaxmeshgridvstackrh   ri   r   zipr   size)r   r   r   r   zXYXYinterpinterp_points0interp_points1interp_points2interp_points3interp_points4s                 r   test_broadcastable_inputz,TestNDInterpolators.test_broadcastable_input   sf    			qIIR IIR HHQN KKAA'KKAA'{{1a 1YY	1779-.00d3q!9oq1AC)13^((#(()#(() $(() $((	) +/		0 ) +/		0r    c                    t         j                  j                  d       t         j                  j                  d      }|d d df   |d d df   }}t        j                  ||      }t         j                  j                  d      }|j	                  d       |j	                  d       |j	                  d        |||      } ||       y )Nr   )rc   r   r   )2   r   F)write)r   r   r   r   setflags)r   r   xyr   r   r   r   r   s           r   test_read_onlyz"TestNDInterpolators.test_read_only   s     			qYYg&!Q$xAqD1HHQN YYg&
% 	



% b!$r
r    N)r{   r|   r}   parametrize_interpolatorsr   r   r~   r    r   r   r      s(    0 08  r    r   )numpyr   numpy.testingr   r   r   pytestr   rt   scipy.interpolater   r   r	   r
   markparametrizer   r   r   r   r~   r    r   <module>r      sg     K K  *; ;
 #KK33*,@/1 
Z) Z)z? ?6. .r    