o
    Eb                     @   sZ   d dl Zd dlmZmZmZ d dlmZ d dl	m
Z
mZ G dd dZdd Zd	d
 ZdS )    N)assert_equalassert_array_equalassert_allclose)raises)griddataNearestNDInterpolatorc                   @   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	   )Z
fill_value)g      r   r   r   )r   r   npnan)selfxyyi r   I/usr/lib/python3/dist-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?Zdtyper   r   nearestZlinearZ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   r)   r/   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   r*   r+   r,   r-   r.   r   r   r   Ztiler   r   r   xir#   r$   r0   r   r   r   r   test_multipoint_2d,   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   r3   r   r!   r"   r4   r6   r7   r%   r&   r8   r9   r   r   r   test_complex_2d<   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         @r5      r   r   r   g333333@r   r   r   r#   r%   r(   r'   rB   r   r   r*   r   r   reshaper   r   r   r#   r   r   r   test_1dM      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 )Nr?   rC   ?g      @      ?r    rD   r%   rE   rB   r   rF   )r   r   r   r:   Z	yi_shouldr#   r   r   r   test_1d_bordersY   s4   

zTestGriddata.test_1d_bordersc                 C   r>   )	N)r@   r   rA   r5   rB   r   rC   r   rD   g|=rE   rB   r   rF   rH   r   r   r   test_1d_unsortedo   rJ   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   )
   rO   )rP   r   )r   r5   r   )r	   r
   r   r   )皙?g?)rL   g       @g      g      @g      "@r   rP      rO   r   g      Y@rD   Tr"   g-q=rE   )
r   r*   r+   Zbroadcast_arraysZlinspaceZravelTcopyr   r   )r   ZpointsZpoints_rescaledvaluesZxxZyyr:   r#   r0   ZziZ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   r<   r   r   r   rD   r6   )r   r   r   )	r   r*   r+   r,   r-   r   r   assert_raises
ValueError)	r   r   r   r:   r#   Zp1Zp2Zxi1Zxi3r   r   r   
test_xi_1d   s&   
zTestGriddata.test_xi_1dN)__name__
__module____qualname__r   r1   r2   r;   r=   rI   rM   rN   rV   rY   r   r   r   r   r      s    
r   c                  C   sf   d\} }t | | | |f}t | }t||}ddd}t|||d}t||||dd d S )N)   r   F)Zbalanced_treeZcompact_nodes)Ztree_optionsr%   )r'   )r   r,   rG   r   r   )Znptsndr   r   ZnndiZoptsZnndi_or   r   r   test_nearest_options   s   


r_   c                  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   rQ   rK   )r   r*   r   r   list)r^   dZNIr   r   r   test_nearest_list_argument   s   
 rb   )Znumpyr   Znumpy.testingr   r   r   Zpytestr   rW   Zscipy.interpolater   r   r   r_   rb   r   r   r   r   <module>   s     