
    Ug*                         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                            deeeg          Z G d d          Z G d d	          Z G d
 d          ZdS )    N)assert_equalassert_array_equalassert_allclose)raises)griddataNearestNDInterpolatorLinearNDInterpolatorCloughTocher2DInterpolatorinterpolatorc                   J    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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       f/var/www/surfInsights/venv3-11/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2|||,,,a11122223333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 ]k}dD ]f}t          ||f          }t          |d d df         |d d df         f||d d df         |d d df         f||          }t          ||d|	           gld S 
Nr   )      r$   )r$         ?)r%   r%   )g      ?g333333?dtyper   r   nearestlinearcubicTFmethodrescale+=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&' 5 	@ 	@F( @ @FG,--q1vq1v.AaaacFAaaacF3CF&-/ / /2E3?????	@	@ 	@r    c           	      z   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 ]?}dD ]:}t          ||f          }t          |||||          }t          ||d|	           ;@d S r"   r4   r:   s          r   test_multivalue_2dzTestGriddata.test_multivalue_2d(   s    HNNN:' ' 'Yqwqz444QQQtV<x1tAAAv&' 5 	@ 	@F( @ @FG,--aAfgFF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 ]s}dD ]n}t          ||f          }t          |||||          }t          |j        d|	           t          |t          j	        |d d d f         d
          d|           otd S )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&   HNNN:' ' 'Iagaj
333qqqaaax[28GGG,,T!!!D[994 	9 	9F( 9 9FG,--aBvwGGGRXvs;;;;BGAaaafIv$>$>%*C9 9 9 9 9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 ]s}dD ]n}t          ||f          }t          |||||	          }t          |j        d
|           t          |t          j	        |d d d f         d          d|           otd S )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=   HNNN:' ' 'Iagaj
3331TTrT7
Nqqqaaax[28GGG,,T!!!D[994 	9 	9F( 9 9FG,--aBvwGGGRXvs;;;;BGAaaafIv$>$>%*C9 9 9 9 99	9 	9r    c           	      l   t          j        g d          }t          j        g d          }dD ]}t          t          ||||          ||d           t          t          |                    dd          |||          ||d           t          t          |f||f|          ||d           d S )	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       H+++,,H)))**4 	8 	8FHQ1V<<<a$*8 8 8 8HQYYq!__a6JJJA$*8 8 8 8HaT1qd6BBBA$*8 8 8 8 8	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          |                    d
d          |||          ||d	           t          t          |f||f|          ||d	           d S )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'    H+++,,H)))**XsCj!!Hc3Z((	Ar(.0 0 01: &"	$ 	$ 	$ 	$ 	1a!R(.0 0 01: &"	$ 	$ 	$ 	$ 	!B6(.0 0 01: &"	$ 	$ 	$ 	$ 	$ 	$r    c           	      l   t          j        g d          }t          j        g d          }dD ]}t          t          ||||          ||d           t          t          |                    dd          |||          ||d           t          t          |f||f|          ||d           d S )	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                   \  }}|                                }|                                }t          j        ||g          j                                        }d	D ]U}|}t          |||t          j        dd
g          z  |          }	t          ||||d          }
t          |	|
|d           Vd S )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   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!&&((4 	( 	(FC/62bhDz6J6J3J!') ) )B"662f+/1 1 1KBS!&( ( ( ( (	( 	(r    c           	      N   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
          ||||           d S )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   sA   HNNN:' ' 'Iagaj
3331TTrT7
NXsCj!!4 
	) 
	)F!Q6222B!Q46
6:::BBF333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      s        4 4 4@ @ @
@ 
@ 
@9 9 9 9 9 9"
8 
8 
8$ $ $,
8 
8 
8( ( (*) ) ) ) )r    r   c                   &    e Zd Zd Zd Zd Z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_optionsr0   )r2   )r   r7   rV   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   rd   r[   )r   r5   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22sCj3*551v>>> #AaD!A$<ad<<22sCj3*551v>>>>>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   rd   r   r   r   gHz>)distance_upper_bound)r   p)r   r5   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22lAUVVVFBF+	- 	- 	-  "wuzEQJ'>??$FFB|2F!LLLF	
 	
 	
  "wuzEQJ'>??$FB|2FGGGF	
 	
 	
 	
 	
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   r5   r   rt   	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N)r{   r|   r}   r   r   r   r   r~   r    r   r   r      sP        	8 	8 	8? ? ?
 
 
:= = = = =r    r   c                   :    e Zd Zed             Zed             ZdS )TestNDInterpolatorsc                    t           j                            d           t           j                            d          }t           j                            d          }t          j        ||          }t          j        t          |          t          |                    }t          j        t          |          t          |                    }t          j        ||          \  }}t          j        |	                                |	                                f          j
        } |t          t          ||                    |          } ||          }	 |||f          }
 ||df          } |||          } ||d          }t          |	j        |
j        cxk    o"|j        cxk    o|j        cxk    o
|j        k    nc d           d S )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   s    		qIR  IR  HQNN KAA''KAA''{1a  1Y		17799-..0d3q!99ooq11AC))13^(#() ) ) )#() ) ) ) $() ) ) ) $(	) ) ) ) +/		0 	0 	0 	0 	0r    c                    t           j                            d           t           j                            d          }|d d df         |d d df         }}t          j        ||          }t           j                            d          }|                    d           |                    d           |                    d            |||          } ||           d S )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Yg&&!!!Q$xAAAqD1HQNN Yg&&
%   	

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




r    N)r{   r|   r}   parametrize_interpolatorsr   r   r~   r    r   r   r      sJ        0 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      s=       K K K K K K K K K K  * * * * * *; ; ; ; ; ; ; ; ; ; ; ;
 #K33*,@/1  
[) [) [) [) [) [) [) [)|== == == == == == == ==@. . . . . . . . . .r    