
    _Mh+                     L   d dl Zd dlmZmZ d dlZd dlmZ d dlm	Z	m
Z
mZmZ d dlmZ ej                            de
eeg          Zej                            dd          Zej                            d	d
          Z G d d          Z G d d          Z G d d          ZdS )    N)xp_assert_equalxp_assert_close)raises)griddataNearestNDInterpolatorLinearNDInterpolatorCloughTocher2DInterpolator)_run_concurrent_barrierinterpolatormethod)nearestlinearcubicrescale)TFc                   
   e Zd Zd Zeed                         Zeed                         Zeed                         Zeed                         Z	ed             Z
d Zed             Zed	             Zed
             ZdS )TestGriddatac                     g d}g d}t          ||g dd          }t          |g d           t          ||g d          }t          |t          j        t          j        dg           d S )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       g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/interpolate/tests/test_ndgriddata.pytest_fill_valuezTestGriddata.test_fill_value   s    !!!IIa111bAAALLL)))a11122RVRVQ/00000    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   }t          ||f          }t          |d d df         |d d df         f||d d df         |d d df         f||          }t          ||d|           d S 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_callz"TestGriddata.test_alternative_call'   s     HNNN:' ' 'Yqwqz444QQQtV<x1tAAAv&' FG$%%q1vq1v&AaaacFAaaacF+;F%' ' '2E3777777r%   c                 f   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   }t          ||f          }t          |||||          }t          ||d|           d S r'   r2   r8   s          r#   test_multivalue_2dzTestGriddata.test_multivalue_2d4   s     HNNN:' ' 'Yqwqz444QQQtV<x1tAAAv&' FG$%%aAfg>>>2E3777777r%   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   }t          ||f          }t          |||||          }|j        dk    s
J |            t          |t          j        |d d d f         d          d|	           d S )
Nr(   r+   r   r   r   r   r-      r   r   r   r.   r/   	r   r3   r4   r5   r6   r7   r   r   tiler   r   r   r    r!   xir9   r"   s           r#   test_multipoint_2dzTestGriddata.test_multipoint_2d@   s    HNNN:' ' 'Iagaj
333qqqaaax[28GGG,,T!!!D[99FG$%%aBvw???x6!!!3!!!BGAaaafIv66"C	1 	1 	1 	1 	1 	1r%   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   }t          ||f          }t          |||||          }|j        dk    sJ t          |t          j        |d d d f         d	          d
|           d S )Nr(   r+   r                  @r   r>   r-   r?   rA   r.   r/   rB   rD   s           r#   test_complex_2dzTestGriddata.test_complex_2dP   s    HNNN:' ' 'Iagaj
3331TTrT7
Nqqqaaax[28GGG,,T!!!D[99FG$%%aBvw???x6!!!!BGAaaafIv66"C	1 	1 	1 	1 	1 	1r%   c                 b   t          j        g d          }t          j        g d          }t          t          ||||          ||d           t          t          |                    dd          |||          ||d           t          t          |f||f|          ||d           d S )Nr         @r         @r@      r   r   r   g333333@r   r   r   r.   r1   r0   rN   r   r   r3   r   r   reshaper   r   r    r!   s       r#   test_1dzTestGriddata.test_1da       H+++,,H)))**Aq888! &U	4 	4 	4 	41a!QvFFF &U	4 	4 	4 	4!q1$v>>> &U	4 	4 	4 	4 	4 	4r%   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          |                    d
d          |||          ||d	           t          t          |f||f|          ||d	           d S )NrK   rO   ?g      @      ?r   rP   r.   rQ   rN   r   rR   )r   r    r!   rE   	yi_shouldr   s         r#   test_1d_borderszTestGriddata.test_1d_bordersm   s'    H+++,,H)))**XsCj!!Hc3Z((	Ar(.0 0 01: &"	$ 	$ 	$ 	$ 	1a!R(.0 0 01: &"	$ 	$ 	$ 	$ 	!B6(.0 0 01: &"	$ 	$ 	$ 	$ 	$ 	$r%   c                 b   t          j        g d          }t          j        g d          }t          t          ||||          ||d           t          t          |                    dd          |||          ||d           t          t          |f||f|          ||d           d S )N)rL   r   rM   r@   rN   r   rO   rP   g|=rQ   rN   r   rR   rT   s       r#   test_1d_unsortedzTestGriddata.test_1d_unsorted   rV   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                   \  }}|                                }|                                }t          j        ||g          j                                        }|}t          |||t          j        dd	g          z  |
          }	t          ||||d          }
t          |	|
|d           d S )N)r   )r   d   )
   r_   )r`   r   )r   r@   r+   )r   r   r   r   )皙?g?)rY          @g      g      @g      "@r   r`      r_   g      Y@rP   Tr-   g-q=rQ   )
r   r3   r4   broadcast_arrayslinspaceravelTcopyr   r   )r   r   pointspoints_rescaledvaluesxxyyrE   r9   zizi_rescaleds              r#   test_square_rescale_manualz'TestGriddata.test_square_rescale_manual   sm   DDDBJWWW(#L#L#L)+5 5 5///rzBBB$R[B%;%;AAAdF%C%'[C%<%<T!!!V%DF FBXXZZXXZZXr2h!&&((ovr"(B:2F2F/F#% % %vvr&'+- - -K"	$ 	$ 	$ 	$ 	$ 	$r%   c                 D   t          j        g dt           j                  }t          j        |j        d         t           j                  }|d|d d d         z  z
  }t          j        ddg          }t          ||||          }t          |||d d d f         |          }t          |||           t          j        dg          }t          j        g d	          }t          t          t
          ||||           t          t          t
          ||||           d S )
Nr(   r+   r   rH   r   r*   rP   )r1   )r*   r*   r*   )	r   r3   r4   r5   r6   r   r   assert_raises
ValueError)	r   r   r    r!   rE   p1p2xi1xi3s	            r#   
test_xi_1dzTestGriddata.test_xi_1d   s/    HNNN:' ' 'Iagaj
3331TTrT7
NXsCj!!aBv...aBtAAAvJv666B////huooh''j(Aq##	% 	% 	% 	%j(Aq##	% 	% 	% 	% 	% 	%r%   N)__name__
__module____qualname__r$   parametrize_methodsparametrize_rescaler:   r<   rF   rI   rU   r[   r]   rp   rx    r%   r#   r   r      s>       1 1 1 	8 	8  	8 8 8  8 1 1  1 1 1  1 	4 	4 	4$ $ $, 	4 	4 	4 $ $ $( % % % % %r%   r   c                   P    e Zd Zd Zd Zd Zd Zej        j	        d             Z
dS )TestNearestNDInterpolatorc                 &   d\  }}t          j        ||z                                ||f          }t          j        |          }t          ||          }ddd}t          |||          }t	           ||           ||          d           d S )N)   r   F)balanced_treecompact_nodes)tree_optionsr.   )r0   )r   r5   rS   r   r   )r   nptsndr    r!   nndioptsnndi_os           r#   test_nearest_optionsz.TestNearestNDInterpolator.test_nearest_options   s    bId2g&&bz22IdOO$Q**!&??&q!$???Q77777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           d S )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   ra   rX           rb   )r   r3   r   r   list)r   r   dNIs       r#   test_nearest_list_argumentz4TestNearestNDInterpolator.test_nearest_list_argument   s    X,,,,,,,,,. / / qqq!""uI #AaD!A$<166C:Sz22S#J??? #AaD!A$<ad<<C:Sz22S#J?????r%   c                 d   t          j        g dg dg dg          }d}d|z   d|z   gd|z   d|z   gf}t          |d         |d         f|d                   }t          j        |dz  |dz  z             dz
  }t	           |||	          t           j        t           j        g           t          j        |dz  |dz  z             dz
  }t           j        }t	           ||||
          ddg           t          j        |dz  |dz  z             dz   }t	           |||	          ddg           d S )N)r   r*   r   r   )r   r   r*   r   r   r   r   r   ra   r   r   r   gHz>)distance_upper_bound)r   pr   rb   )r   r3   r   sqrtr   r   inf)r   r   deltaquery_pointsr   r   r   s          r#   test_nearest_query_optionsz4TestNearestNDInterpolator.test_nearest_query_options   s}   X~~~%~~#||% & & E	1u9-E	1u9/EE #BqE2a5>2a599!wuzEQJ'>??$F<>RSSSFBF+	- 	- 	-  "wuzEQJ'>??$FFB|2F!LLL#J	
 	
 	
  "wuzEQJ'>??$FB|2FGGG#J	
 	
 	
 	
 	
r%   c                     t          j        g dg dg dg          }t          |d         |d         f|d                   }t          t                    5   |ddgd	           d d d            d S # 1 swxY w Y   d S )
N)r   r   r   r   )r   r   r   r   r   r   r   r   r*   znot a dictionary)query_options)r   r3   r   rr   	TypeError)r   r   r   s      r#   test_nearest_query_valid_inputsz9TestNearestNDInterpolator.test_nearest_query_valid_inputs   s    X|||#||#||% & & #BqE2a5>2a5999%% 	= 	=BSz);<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   A33A7:A7c                     d\  }}t          j        ||z                                ||f          t          j        |          }t          |          }fd}t	          d||           d S )N)2   r   c                      |           d S )Nr~   )_splr    s     r#   	worker_fnz=TestNearestNDInterpolator.test_concurrency.<locals>.worker_fn   s    CFFFFFr%   r`   )r   r5   rS   r   r
   )r   r   r   r!   r   r   r    s         @r#   test_concurrencyz*TestNearestNDInterpolator.test_concurrency   s    bIdRi  (($44IdOO$Q**	 	 	 	 	 	 It44444r%   N)ry   rz   r{   r   r   r   r   pytestmarkthread_unsafer   r~   r%   r#   r   r      st        	8 	8 	8@ @ @
 
 
:= = = [	5 	5 	5 	5 	5r%   r   c                   :    e Zd Zed             Zed             ZdS )TestNDInterpolatorsc                 d   t           j                            d          }|                    d          }|                    d          }t          j        ||          }t          j        t          |          t          |                    }t          j        t          |          t          |                    }t          j        ||          \  }}t          j        |	                                |	                                f          j
        } |t          t          ||                    |          }	 |	|          }
 |	||f          } |	|df          } |	||          } |	|d          }|
j        |j        cxk    r#|j        cxk    r|j        cxk    r|j        k    sn J d S )Nr   r`   r   )r   randomRandomStatehypotre   minmaxmeshgridvstackrf   rg   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_inputz,TestNDInterpolators.test_broadcastable_input  s    i##A&&JJrNNJJrNNHQNN KAA''KAA''{1a  1Y		17799-..0d3q!99ooq11AC))13##$ $ $ $#$ $ $ $ #$ $ $ $ #	$ $ $ $ $ $ $ $r%   c                    t           j                            d          }|                    d          }|d d df         |d d df         }}t          j        ||          }|                    d          }|                    d           |                    d           |                    d            |||          } ||           d S )Nr   )r`   r   r   )r   r   F)write)r   r   r   r   setflags)	r   r   r   xyr    r!   r   r   r   s	            r#   test_read_onlyz"TestNDInterpolators.test_read_only$  s     i##A&&ZZ  !!!Q$xAAAqD1HQNN ZZ  
%   	



%   b!$$r




r%   N)ry   rz   r{   parametrize_interpolatorsr   r   r~   r%   r#   r   r     sJ        % % %8     r%   r   )numpyr   scipy._lib._array_apir   r   r   r   rr   scipy.interpolater   r   r   r	   scipy._lib._testutilsr
   r   parametrizer   r|   r}   r   r   r   r~   r%   r#   <module>r      s               * * * * * *; ; ; ; ; ; ; ; ; ; ; ; : 9 9 9 9 9 #K33*,@/1   k--"   k--  [% [% [% [% [% [% [% [%|I5 I5 I5 I5 I5 I5 I5 I5X. . . . . . . . . .r%   