
    (ph+                     >   S SK rS SKJrJr  S SKrS SKJr  S SKJ	r	J
r
JrJr  S SKJr  \R                  R!                  S\
\\/5      r\R                  R!                  SS5      r\R                  R!                  S	S
5      r " S S5      r " S S5      r " S S5      rg)    N)xp_assert_equalxp_assert_close)raises)griddataNearestNDInterpolatorLinearNDInterpolatorCloughTocher2DInterpolator)_run_concurrent_barrierinterpolatormethod)nearestlinearcubicrescale)TFc                       \ rS rSrS r\\S 5       5       r\\S 5       5       r\\S 5       5       r	\\S 5       5       r
\S 5       rS r\S	 5       r\S
 5       r\S 5       rSrg)TestGriddata   c                     / SQn/ SQn[        X/ SQSS9n[        U/ SQ5        [        X/ SQ5      n[        U[        R                  [        R                  S/5        g )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       Z/var/www/html/venv/lib/python3.13/site-packages/scipy/interpolate/tests/test_ndgriddata.pytest_fill_valueTestGriddata.test_fill_value   sK    !a1bAL)a12RVVRVVQ/0    c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9S S 2S 4   [         R                  " SS/5      S S S 24   -   n[        X45      n[        US S 2S4   US S 2S4   4XCS S 2S4   US S 2S4   4UUS9n[        XFSUS9  g Nr   )      r+   )r+         ?)r,   r,   )g      ?g333333?dtyper   r   r   r   +=atolerr_msgr   arrayfloat64arangeshapereprr   r   r    r   r   r!   r"   msgr#   s          r$   test_alternative_call"TestGriddata.test_alternative_call'   s     HHN::'YYqwwqz4QtV<xx1tAv&' F$%q1vq1v&acFAacF+;F%'E37r'   c                 @   [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9S S 2S 4   [         R                  " SS/5      S S S 24   -   n[        X45      n[        X4X1US9n[        XFSUS9  g r)   r4   r:   s          r$   test_multivalue_2dTestGriddata.test_multivalue_2d4   s     HHN::'YYqwwqz4QtV<xx1tAv&' F$%aAg>E37r'   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUS S 2S S S 24   [         R                  " / SQ5      S S S 2S 4   -   n[        X45      n[        X4XQUS9nUR                  S:X  d   U5       e[        U[         R                  " US S 2S 4   S5      SUS	9  g )
Nr*   r-   r   r   r   r   r/      r   r   r   r0   r1   	r   r5   r6   r7   r8   r9   r   r   tiler    r   r   r!   r"   xir;   r#   s           r$   test_multipoint_2dTestGriddata.test_multipoint_2d@   s     HHN::'IIaggaj

3qax[288G,T!D[99F$%aBw?xx6!&3&!BGGAafIv6"C	1r'   c                    [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSUS S S2   -  -
  nUS S 2S S S 24   [         R                  " / SQ5      S S S 2S 4   -   n[        X45      n[        X4XQUS9nUR                  S:X  d   e[        U[         R                  " US S 2S 4   S	5      S
US9  g )Nr*   r-   r                  @r   rB   r/   rC   rE   r0   r1   rF   rH   s           r$   test_complex_2dTestGriddata.test_complex_2dP   s     HHN::'IIaggaj

31TrT7
Nqax[288G,T!D[99F$%aBw?xx6!!!BGGAafIv6"C	1r'   c           	         [         R                  " / SQ5      n[         R                  " / SQ5      n[        [        X#X!S9UUSS9  [        [        UR	                  SS5      X2US9UUSS9  [        [        U4X24US9UUSS9  g )Nr         @r         @rD      r   r   r   g333333@r   r   r   r0   r3   r2   rT   r   r   r5   r   r   reshaper    r   r!   r"   s       r$   test_1dTestGriddata.test_1da   z    HH+,HH)*q8! &U	41a!vF &U	4!q$v> &U	4r'   c           	      j   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " SS/5      n[         R                  " SS/5      nSn[        [        XUUS9UUSS	9  [        [        UR	                  S
S5      X#US9UUSS	9  [        [        U4X#4US9UUSS	9  g )NrQ   rU   ?g      @      ?r   rV   r0   rW   rT   r   rX   )r    r!   r"   rI   	yi_shouldr   s         r$   test_1d_bordersTestGriddata.test_1d_bordersm   s     HH+,HH)*XXsCj!HHc3Z(	r(.01: &"	$ 	1a!(.01: &"	$ 	!6(.01: &"	$r'   c           	         [         R                  " / SQ5      n[         R                  " / SQ5      n[        [        X#X!S9UUSS9  [        [        UR	                  SS5      X2US9UUSS9  [        [        U4X24US9UUSS9  g )N)rR   r   rS   rD   rT   r   rU   rV   g|=rW   rT   r   rX   rZ   s       r$   test_1d_unsortedTestGriddata.test_1d_unsorted   r]   r'   c           	         [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9n[         R                  " [         R                  " SSS5      S S 2S 4   [         R                  " SSS5      S S S 24   5      u  pVUR                  5       nUR                  5       n[         R                  " XV/5      R                  R                  5       nUn[        X4U[         R                  " SS	/5      -  US
9n	[        X$XqSS9n
[        XUSS9  g )N)r   )r   d   )
   rh   )ri   r   )r   rD   r-   )r   r   r   r   )皙?g?)r`          @g      g      @g      "@r   ri      rh   g      Y@rV   Tr/   g-q=rW   )
r   r5   r6   broadcast_arrayslinspaceravelTcopyr   r   )r    r   pointspoints_rescaledvaluesxxyyrI   r;   zizi_rescaleds              r$   test_square_rescale_manual'TestGriddata.test_square_rescale_manual   s   DBJJW((#L)+5/rzzB$$R[[B%;AdF%C%'[[C%<T!V%DFXXZXXZXXrh!!&&(or"((B:2F/F#%vr'+-"	$r'   c           	         [         R                  " / SQ[         R                  S9n[         R                  " UR                  S   [         R                  S9nUSUS S S2   -  -
  n[         R                  " SS/5      n[        X#XAS9n[        X#US S S 24   US9n[        XVUS9  [         R                  " S/5      n[         R                  " / S	Q5      n[        [        [
        X#UUS9  [        [        [
        X#UUS9  g )
Nr*   r-   r   rM   r   r,   rV   )r3   )r,   r,   r,   )	r   r5   r6   r7   r8   r   r   assert_raises
ValueError)	r    r   r!   r"   rI   p1p2xi1xi3s	            r$   
test_xi_1dTestGriddata.test_xi_1d   s     HHN::'IIaggaj

31TrT7
NXXsCj!aB.aBtAvJv6/hhuohh'j(A##	%j(A##	%r'    N)__name__
__module____qualname____firstlineno__r%   parametrize_methodsparametrize_rescaler<   r?   rJ   rN   r[   rb   re   ry   r   __static_attributes__r   r'   r$   r   r      s    1 	8  	8 8  8 1  1 1  1 	4 	4$, 	4 	4 $ $( % %r'   r   c                   d    \ rS rSrS rS rS rS r\R                  R                  S 5       rSrg)	TestNearestNDInterpolator   c                     Su  p[         R                  " X-  5      R                  X45      n[         R                  " U5      n[        X45      nSSS.n[        X4US9n[	        U" U5      U" U5      SS9  g )N)   r   F)balanced_treecompact_nodes)tree_optionsr0   )r2   )r   r7   rY   r   r   )r    nptsndr!   r"   nndioptsnndi_os           r$   test_nearest_options.TestNearestNDInterpolator.test_nearest_options   sg    IIdg&&z2IIdO$Q*!&?&q$?Q7r'   c                 *   [         R                  " / SQ/ SQ/ SQ/5      nUS S 2SS 24   n[        US   US   4US   5      n[        U" SS	/SS	/5      S
S/5        [        US   US   4[	        US   5      5      n[        U" SS	/SS	/5      S
S/5        g )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   rj   r_           rk   )r   r5   r   r   list)r    r   dNIs       r$   test_nearest_list_argument4TestNearestNDInterpolator.test_nearest_list_argument   s    XX,,,. / q!"uI #AaD!A$<16C:Sz2S#J? #AaD!A$<ad<C:Sz2S#J?r'   c                 .   [         R                  " / SQ/ SQ/ SQ/5      nSnSU-   SU-   /SU-   SU-   /4n[        US   US   4US   5      n[         R                  " US-  US-  -   5      S-
  n[	        U" X5S	9[         R
                  [         R
                  /5        [         R                  " US-  US-  -   5      S-
  n[         R                  n[	        U" X5US
9SS/5        [         R                  " US-  US-  -   5      S-   n[	        U" X5S	9SS/5        g )N)r   r,   r   r   )r   r   r,   r   r   r   r   r   rj   r   r   r   gHz>)distance_upper_bound)r   pr   rk   )r   r5   r   sqrtr   r   inf)r    r   deltaquery_pointsr   r   r   s          r$   test_nearest_query_options4TestNearestNDInterpolator.test_nearest_query_options   s%   XX~%#% & E	1u9-E	1u9/EE #BqE2a5>2a59!wwuzEQJ'>?$F<SFFBFF+	-  "wwuzEQJ'>?$FFF|!L#J	
  "wwuzEQJ'>?$F|G#J	
r'   c                     [         R                  " / SQ/ SQ/ SQ/5      n[        US   US   4US   5      n[        [        5         U" SS/SS	9  S S S 5        g ! , (       d  f       g = f)
N)r   r   r   r   )r   r   r   r   r   r   r   r   r,   znot a dictionary)query_options)r   r5   r   r|   	TypeError)r    r   r   s      r$   test_nearest_query_valid_inputs9TestNearestNDInterpolator.test_nearest_query_valid_inputs   s^    XX|##% & #BqE2a5>2a599%Sz);< &%%s   
A
A'c                    ^ Su  p[         R                  " X-  5      R                  X45      m[         R                  " U5      n[        TU5      nU4S jn[	        SXT5        g )N)2   r   c                    > U" T5        g )Nr   )_splr!   s     r$   	worker_fn=TestNearestNDInterpolator.test_concurrency.<locals>.worker_fn   s
    Fr'   ri   )r   r7   rY   r   r
   )r    r   r   r"   r   r   r!   s         @r$   test_concurrency*TestNearestNDInterpolator.test_concurrency   sQ    IIdi (($4IIdO$Q*	 	 I4r'   r   N)r   r   r   r   r   r   r   r   pytestmarkthread_unsafer   r   r   r'   r$   r   r      s5    	8@
:= [[	5 	5r'   r   c                   4    \ rS rSr\S 5       r\S 5       rSrg)TestNDInterpolatorsi  c                 4   [         R                  R                  S5      nUR                  S5      nUR                  S5      n[         R                  " X45      n[         R                  " [        U5      [        U5      5      n[         R                  " [        U5      [        U5      5      n[         R                  " Xg5      u  pg[         R                  " UR                  5       UR                  5       45      R                  nU" [        [        X45      5      U5      n	U	" U5      n
U	" Xg45      nU	" US45      nU	" Xg5      nU	" US5      nU
R                  UR                  s=:X  a3  UR                  s=:X  a"  UR                  s=:X  a  UR                  :X  d   e   eg )Nr   ri   r   )r   randomRandomStatehypotrn   minmaxmeshgridvstackro   rp   r   zipsize)r    r   rngr!   r"   zXYXYinterpinterp_points0interp_points1interp_points2interp_points3interp_points4s                  r$   test_broadcastable_input,TestNDInterpolators.test_broadcastable_input  sI    ii##A&JJrNJJrNHHQN KKAA'KKAA'{{1 YY	1779-.00d3q9oq1C)3####$##$ ##$ ##	$ 	% $ 	% $r'   c                 N   [         R                  R                  S5      nUR                  S5      nUS S 2S4   US S 2S4   pT[         R                  " XE5      nUR                  S5      nUR	                  SS9  UR	                  SS9  UR	                  SS9  U" X65      nU" U5        g )Nr   )ri   r   r   )r   r   F)write)r   r   r   r   setflags)	r    r   r   xyr!   r"   r   r   r   s	            r$   test_read_only"TestNDInterpolators.test_read_only$  s     ii##A&ZZ !Q$xAqD1HHQN ZZ 
% 	



% b$r
r'   r   N)r   r   r   r   parametrize_interpolatorsr   r   r   r   r'   r$   r   r     s(    % %8  r'   r   )numpyr   scipy._lib._array_apir   r   r   r   r|   scipy.interpolater   r   r   r	   scipy._lib._testutilsr
   r   parametrizer   r   r   r   r   r   r   r'   r$   <module>r      s      *; ; : #KK33*,@/1  kk--"  kk-- [% [%|I5 I5X. .r'   