o
    g$                     @   s   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 dZG dd	 d	ZG d
d dZdS )    N)assert_equalassert_array_equalassert_allclose)raises)griddataNearestNDInterpolatorLinearNDInterpolatorCloughTocher2DInterpolatorinterpolatorc                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )TestGriddatac                 C   sZ   g d}g d}t ||g d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yi r   e/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/scipy/interpolate/tests/test_ndgriddata.pytest_fill_value   s   zTestGriddata.test_fill_valuec              	   C   s   t jg dt jd}t j|jd t jdd d d f t ddgd d d f  }dD ]:}dD ]5}t||f}t|d d df |d d df f||d d df |d d df f||d}t||d|d	 q.q*d S 
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   r   r   r   test_alternative_call   s   
 Bz"TestGriddata.test_alternative_callc              	   C   s   t jg dt jd}t j|jd t jdd d d f t ddgd d d f  }dD ]}dD ]}t||f}t|||||d}t||d|d	 q.q*d S r   r0   r6   r   r   r   test_multivalue_2d(   s   
 zTestGriddata.test_multivalue_2dc              	   C   s   t jg dt jd}t j|jd t jd}|d d d d d f t g dd d d d f  }dD ]0}dD ]+}t||f}t|||||d}t|jd|d	 t|t 	|d d d f d
d|d q4q0d S )Nr   r"   r   r   r   r   r$   r(   r)      r   r/   r   r   r,   r-   
r   r1   r2   r3   r4   r5   r   r   r   tiler   r   r   xir*   r+   r7   r   r   r   r   test_multipoint_2d4   s   
2zTestGriddata.test_multipoint_2dc              	   C   s   t jg dt jd}t j|jd t jd}|d|d d d   }|d d d d d f t g dd d d d f  }dD ]0}dD ]+}t||f}t|||||d	}t|jd
|d t|t 	|d d d f dd|d q?q;d S )Nr   r"   r                  @r   r:   r$   r(   r)   r;   r=   r>   r,   r-   r?   rA   r   r   r   test_complex_2dD   s    
2zTestGriddata.test_complex_2dc                 C      t g d}t g d}dD ]2}tt||||d||dd tt|dd|||d||dd tt|f||f|d||dd qd S )	Nr         @r         @r<      r   r   r   g333333@r   r   r$   r*   r,   r/   r.   rJ   r   r   r1   r   r   reshaper   r   r   r*   r   r   r   test_1dU      zTestGriddata.test_1dc                 C   s   t g d}t g d}t ddg}t ddg}d}tt||||d||dd	 tt|d
d|||d||dd	 tt|f||f|d||dd	 d S )NrG   rK   ?g      @      ?r%   rL   r,   rM   rJ   r   rN   )r   r   r   rB   	yi_shouldr*   r   r   r   test_1d_bordersa   s4   

zTestGriddata.test_1d_bordersc                 C   rF   )	N)rH   r   rI   r<   rJ   r   rK   r$   rL   g|=rM   rJ   r   rN   rP   r   r   r   test_1d_unsortedw   rR   zTestGriddata.test_1d_unsortedc              	   C   s   t jg dt jd}t jg dt jd}t jg dt jd}t t dddd d d f t dddd d d f \}}| }| }t ||gj }d	D ]$}|}t|||t dd
g |d}	t||||dd}
t	|	|
|dd qPd S )N)r   )r   d   )
   rX   )rY   r   )r   r<   r"   )r   r   r   r   )皙?g?)rT   g       @g      g      @g      "@r   rY      rX   r$   g      Y@rL   Tr)   g-q=rM   )
r   r1   r2   broadcast_arrayslinspaceravelTcopyr   r   )r   pointspoints_rescaledvaluesxxyyrB   r*   r7   zizi_rescaledr   r   r   test_square_rescale_manual   s*   
z'TestGriddata.test_square_rescale_manualc           	   	   C   s   t jg dt jd}t j|jd t jd}|d|d d d   }t ddg}dD ]@}t||||d}t|||d d d f |d}t|||d	 t dg}t g d
}ttt||||d ttt||||d q)d S )Nr   r"   r   rD   r   r!   r$   rL   r=   )r!   r!   r!   )	r   r1   r2   r3   r4   r   r   assert_raises
ValueError)	r   r   r   rB   r*   p1p2xi1xi3r   r   r   
test_xi_1d   s&   
zTestGriddata.test_xi_1dN)__name__
__module____qualname__r   r8   r9   rC   rE   rQ   rV   rW   rh   ro   r   r   r   r   r      s    
r   c                   @   s   e Zd Zdd Zdd ZdS )TestNearestNDInterpolatorc                 C   sf   d\}}t || ||f}t |}t||}ddd}t|||d}t||||dd d S )N)   r   F)balanced_treecompact_nodes)tree_optionsr,   )r.   )r   r3   rO   r   r   )r   nptsndr   r   nndioptsnndi_or   r   r   test_nearest_options   s   


z.TestNearestNDInterpolator.test_nearest_optionsc                 C   s   t 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   rZ   rS   )r   r1   r   r   list)r   ry   dNIr   r   r   test_nearest_list_argument   s   
 z4TestNearestNDInterpolator.test_nearest_list_argumentN)rp   rq   rr   r}   r   r   r   r   r   rs      s    rs   c                   @   s$   e Zd Zedd Zedd ZdS )TestNDInterpolatorsc                 C   s  t jd t jd}t jd}t ||}t t|t|}t t|t|}t ||\}}t |	 |	 fj
}|tt|||}||}	|||f}
||df}|||}||d}t|	j|
j  ko}|j  ko}|j  ko}|jkn  d d S )Nr   rY   g        T)r   randomseedhypotr]   minmaxmeshgridvstackr^   r_   r~   zipr   size)r   r
   r   r   zXYXYinterpinterp_points0interp_points1interp_points2interp_points3interp_points4r   r   r   test_broadcastable_input   s2   

z,TestNDInterpolators.test_broadcastable_inputc                 C   s   t jd t jd}|d d df |d d df }}t ||}t jd}|jdd |jdd |jdd |||}|| d S )Nr   )rY   r   r   )2   r   F)write)r   r   r   r   setflags)r   r
   xyr   r   r   r   r   r   r   r   test_read_only   s   "
z"TestNDInterpolators.test_read_onlyN)rp   rq   rr   parametrize_interpolatorsr   r   r   r   r   r   r      s
    
r   )numpyr   numpy.testingr   r   r   pytestr   ri   scipy.interpolater   r   r   r	   markparametrizer   r   rs   r   r   r   r   r   <module>   s     