
    tKg*                         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                  j                  deeeg      Z G d d      Z G d d	      Z G d
 d      Zy)    N)assert_equalassert_array_equalassert_allclose)raises)griddataNearestNDInterpolatorLinearNDInterpolatorCloughTocher2DInterpolatorinterpolatorc                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestGriddatac                     g d}g d}t        ||g dd      }t        |g d       t        ||g d      }t        |t        j                  t        j                  dg       y )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       k/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/interpolate/tests/test_ndgriddata.pytest_fill_valuezTestGriddata.test_fill_value   sO    !a1bA2|,a1222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 ]U  }dD ]N  }t        ||f      }t        |d d df   |d d df   f||d d df   |d d df   f||      }t        ||d|	       P W y 
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    HHN::'YYqwwqz4QtV<xx1tAv&' 5F(FG,-q1vq1v.AacFAacF3CF&-/2E3?	 ) 5r    c           	      v   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 ]5  }dD ].  }t        ||f      }t        |||||      }t        ||d|	       0 7 y r"   r4   r:   s          r   test_multivalue_2dzTestGriddata.test_multivalue_2d(   s    HHN::'YYqwwqz4QtV<xx1tAv&' 5F(FG,-aAfgF2E3? ) 5r    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 ]h  }dD ]a  }t        ||f      }t        |||||      }t        |j                  d|	       t        |t        j                  |d d d f   d
      d|       c j y )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    HHN::'IIaggaj

3qax[288G,T!D[994F(FG,-aBvwGRXXvs;BGGAafIv$>%*C9 ) 5r    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 ]h  }dD ]a  }t        ||f      }t        |||||	      }t        |j                  d
|       t        |t        j                  |d d d f   d      d|       c j y )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    HHN::'IIaggaj

31TrT7
Nqax[288G,T!D[994F(FG,-aBvwGRXXvs;BGGAafIv$>%*C9 ) 5r    c           	      :   t        j                  g d      }t        j                  g d      }dD ]h  }t        t        ||||      ||d       t        t        |j	                  dd      |||      ||d       t        t        |f||f|      ||d       j y )	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       HH+,HH)*4FHQ1V<a$*8HQYYq!_a6JA$*8HaT1qd6BA$*8 5r    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        |j	                  d
d      |||      ||d	       t        t        |f||f|      ||d	       y )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     HH+,HH)*XXsCj!HHc3Z(	Ar(.01: &"	$ 	1a!R(.01: &"	$ 	!B6(.01: &"	$r    c           	      :   t        j                  g d      }t        j                  g d      }dD ]h  }t        t        ||||      ||d       t        t        |j	                  dd      |||      ||d       t        t        |f||f|      ||d       j y )	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         \  }}|j                         }|j                         }t        j                  ||g      j                  j                         }d	D ]J  }|}t        |||t        j                  dd
g      z  |      }	t        ||||d      }
t        |	|
|d       L y )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   DBJJW((#L)+5/rzzB$$R[[B%;AdF%C%'[[C%<T!V%DFBXXZXXZXXr2h!!&&(4FC/62bhhDz6J3J!')B"662f+/1KBS!&( 5r    c           	      2   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
        ||||        y )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   s    HHN::'IIaggaj

31TrT7
NXXsCj!4F!Q62B!Q46
6:BBF3((C5/C((?+C*h1c!')*h1c!') 5r    N)__name__
__module____qualname__r   r<   r>   rI   rL   rX   r^   r`   rr   rz    r    r   r   r      s6    4@
@9 9"
8$,
8(*)r    r   c                   $    e Zd Zd Zd Zd Zd Zy)TestNearestNDInterpolatorc                     d\  }}t        j                  ||z        j                  ||f      }t        j                  |      }t        ||      }ddd}t        |||      }t	         ||       ||      d       y )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   sq    bIId2g&&bz2IIdO$Q*!&?&q!$?Q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       y )
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    XX,,,. / q!"uI #AaD!A$<162sCj3*51v> #AaD!A$<ad<2sCj3*51v>r    c                 >   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       y )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.   XX~%#% & E	1u9-E	1u9/EE #BqE2a5>2a59!wwuzEQJ'>?$F2lAUVFFBFF+	-  "wwuzEQJ'>?$FFF|2F!LF	
  "wwuzEQJ'>?$F|2F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        y # 1 sw Y   y xY w)
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^    XX|##% & #BqE2a5>2a599%Sz);< &%%s   AA$N)r{   r|   r}   r   r   r   r   r~   r    r   r   r      s    	8?
:=r    r   c                   ,    e Zd Zed        Zed        Zy)TestNDInterpolatorsc                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t        j                  ||      }t        j                  t        |      t        |            }t        j                  t        |      t        |            }t        j                  ||      \  }}t        j                  |j                         |j                         f      j                  } |t        t        ||            |      } ||      }	 |||f      }
 ||df      } |||      } ||d      }t        |	j                  |
j                  cxk(  xr9 |j                  cxk(  xr' |j                  cxk(  xr |j                  k(  d       y c d       y )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   sf    			qIIR IIR HHQN KKAA'KKAA'{{1a 1YY	1779-.00d3q!9oq1AC)13^((#(()#(() $(() $((	) +/		0 ) +/		0r    c                    t         j                  j                  d       t         j                  j                  d      }|d d df   |d d df   }}t        j                  ||      }t         j                  j                  d      }|j	                  d       |j	                  d       |j	                  d        |||      } ||       y )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YYg&!Q$xAqD1HHQN YYg&
% 	



% b!$r
r    N)r{   r|   r}   parametrize_interpolatorsr   r   r~   r    r   r   r      s(    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      sh     K K  *; ;
 #KK33*,@/1 
[) [)|== ==@. .r    