
    Ug                         d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZmZ ddlmZ dZd Zd Zd	 Zd
 Zd Zd Zd Zd 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 )z Test functions for rbf module     N)assert_assert_array_almost_equalassert_almost_equal)linspacesincosrandomexpallclose)Rbfmultiquadriczinverse multiquadricgaussiancubicquinticz
thin-platelinearc                    t          ddd          }t          |          }t          |||           } ||          }t          ||           t	           |t          |d                             |d                    d S )Nr   
   	   function)r   r   r   r   r   float)r   xyrbfyis        _/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/interpolate/tests/test_rbf.pycheck_rbf1d_interpolationr      s}    2aAAA
aX
&
&
&C	QBa$$$E!A$KK((!A$/////    c                 (   t          j        dd          dz  dz
  }t          j        dd          dz  dz
  }|t          |dz   d|dz  z  z
            z  }t          |||d|           } |||          }|j        |_        t          ||           d S )N2                          ?epsilonr   r	   randr
   r   shaper   )r   r   r   zr   zis         r   check_rbf2d_interpolationr-      s    Bq!AABq!AA	#q!teBq!tGm

A
aAq8
4
4
4C	QBwBHa$$$$$r   c                 \   t          j        dd          dz  dz
  }t          j        dd          dz  dz
  }t          j        dd          dz  dz
  }|t          |dz   |dz  z
            z  }t          ||||d|           } ||||          }|j        |_        t          ||           d S )Nr!   r"   r#   r$   r&   r(   )r   r   r   r+   dr   dis          r   check_rbf3d_interpolationr1   #   s    B1q AB1q AB1q A	#q!teadl

A
aAq!h
7
7
7C	Q1BwBHb!$$$$$r   c                  t    t           D ]/} t          |            t          |            t          |            0d S N)	FUNCTIONSr   r-   r1   r   s    r   test_rbf_interpolationr5   /   sH     , ,!(+++!(+++!(++++, ,r   c                 Z   t          ddd          }t          |          }t          |          }t          j        ||g          j        }t          ||| d          } ||          }t          ||           t           |t          |d                             |d                    d S )Nr   r   r   N-Dr   mode)
r   r   r   npvstackTr   r   r   r   )r   r   y0y1r   r   r   s          r   check_2drbf1d_interpolationr?   6   s    BA	QB	QB
	2r(A
aXE
2
2
2C	QBa$$$E!A$KK((!A$/////r   c                    t          j        d          dz  dz
  }t          j        d          dz  dz
  }|t          |dz   d|dz  z  z
            z  }|t          |dz   d|dz  z  z
            z  }t          j        ||g          j        }t          |||d| d          } |||          }|j        |_        t          ||           d S )Nr!   r#   r$   r%   r7   r'   r   r9   	r	   r)   r
   r:   r;   r<   r   r*   r   )r   r   r   z0z1r+   r   r,   s           r   check_2drbf2d_interpolationrE   B   s    BA!ABA!A	
S!q&2Q;&''	'B	
S!q&2Q;&''	'B
	2r(A
aAq8%
@
@
@C	QBwBHa$$$$$r   c           	         t          j        d          dz  dz
  }t          j        d          dz  dz
  }t          j        d          dz  dz
  }|t          |dz   |dz  z
            z  }|t          |dz   |dz  z
            z  }t          j        ||g          j        }t          ||||d| d          } ||||          }|j        |_        t          ||           d S )Nr!   r#   r$   r7   rA   rB   )	r   r   r   r+   d0d1r/   r   r0   s	            r   check_2drbf3d_interpolationrI   O   s    BA!ABA!ABA!A	
S!q&16!""	"B	
S!q&16!""	"B
	2r(A
aAq!hU
C
C
CC	Q1BwBHb!$$$$$r   c                  t    t           D ]/} t          |            t          |            t          |            0d S r3   )r4   r?   rE   rI   r   s    r   test_2drbf_interpolationrK   ]   sH     . .#H---#H---#H----. .r   c                 d   t          ddd          }t          |          }t          |||           }t          ddd          } ||          }dt          |t          |          z
                                            z  }t          t          |t          |          |          |           d S )Nr   r   r   r   d   abs-diff: %fatol)r   r   r   absmaxr   r   )r   rP   r   r   r   xir   msgs           r   check_rbf1d_regularityrU   d   s     	BAAA
aX
&
&
&C	!R		B	RB
3rCGG|,,0022
2CHRRt,,,c22222r   c                  v    dddddddd} t           D ]&}t          ||                     |d                     'd S Ng?g333333?g?r   g{Gz?)r4   rU   get
tolerancesr   s     r   test_rbf_regularityr[   p   sc     $ J  I Ix$)G)GHHHHI Ir   c                 R   t          ddd          }t          |          }t          |          }t          j        ||g          j        }t          ||| d          }t          ddd          } ||          }dt          |t          j        t          |          t          |          g          j        z
                                            z  }	t          t          |t          j        t          |          t          |          g          j        |          |	           d S )	Nr   r   r   r7   r8   rM   rN   rO   )r   r   r   r:   r;   r<   r   rQ   rR   r   r   )
r   rP   r   r=   r>   r   r   rS   r   rT   s
             r   check_2drbf1d_regularityr]   ~   s     	BA	QB	QB
	2r(A
aXE
2
2
2C	!R		B	RB
3rBIs2wwB.@$A$A$CCDDHHJJ
JCHRCGGSWW#5668tDDDcJJJJJr   c                  v    dddddddd} t           D ]&}t          ||                     |d                     'd S rW   )r4   r]   rX   rY   s     r   test_2drbf_regularityr_      sc     $ J  K K :>>(D+I+IJJJJK Kr   c                    t           j                            d           t          j        ddd          }|dt           j                            t          |                    z  z   }t          |||           }t          j        ddd          } ||          }t          t          j        ||z
            	                                t          j        ||z
            	                                z  dk                d S )	Ni  r   r   r!   g      @r   i  g?)
r:   r	   seedr   randnlenr   r   rQ   rR   )r   r   r+   r   rS   r   s         r   check_rbf1d_stabilityrd      s    
 INN4
Ar2A	C")//#a&&))))A
aX
&
&
&C	QD	!	!B	RB BF2b5MM"&1++//"3"33c9:::::r   c                  8    t           D ]} t          |            d S r3   )r4   rd   r   s    r   test_rbf_stabilityrf      s,     ( (h''''( (r   c                      t          ddd          } t          |           }t          | |          } ||           }t          ||           d S )Nr   r   r   r   r   r   r   )r   r   r   r   s       r   test_default_constructionri      sP     	2aAAA
a))C	QBa$$$$$r   c                      t          ddd          } t          |           }d }t          | ||          } ||           }t          ||           d S )Nr   r   r   c                     | S r3    )r   s    r   linfuncz*test_function_is_callable.<locals>.linfunc   s    r   r   rh   )r   r   rm   r   r   s        r   test_function_is_callablern      sd    2aAAA  
aW
%
%
%C	QBa$$$$$r   c                      d } t          ddd          }t          |          }t          |||           } ||          }t          ||           d S )Nc                     | j         |z   S r3   r'   )selfrs     r   _funcz0test_two_arg_function_is_callable.<locals>._func   s    |ar   r   r   r   r   rh   )rt   r   r   r   r   s        r   !test_two_arg_function_is_callableru      sf          	2aAAA
aU
#
#
#C	QBa$$$$$r   c                  j    t          ddd          } t          |           }t          | |d            d S )Nr   r   r   rq   )r   r   r   )r   r   s     r   test_rbf_epsilon_nonerw      s9    BAAA1dr   c                  t    g d} g d}g d}t          | ||d           }t          |j        dk               d S )N)r"   r$      )r#   r#   r#   )         rq   r   )r   r   r'   )r   r   r+   r   s       r   test_rbf_epsilon_none_collinearr}      sO     			A		A		A
aAt
$
$
$CCK!Or   )#__doc__numpyr:   numpy.testingr   r   r   r   r   r   r	   r
   r   scipy.interpolate._rbfr   r4   r   r-   r1   r5   r?   rE   rI   rK   rU   r[   r]   r_   rd   rf   ri   rn   ru   rw   r}   rl   r   r   <module>r      s   % %    0 0 0 0 0 0 0 0 0 0 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; & & & & & &9	0 0 0% % %	% 	% 	%, , ,	0 	0 	0
% 
% 
%% % %. . .	3 	3 	3I I IK K KK K K; ; ; ( ( (
% % %% % %
% 
% 
%      r   