Ë
    âQ(hm  ã                   ó
  — d Z ddlZddlmZmZ ddlmZmZmZm	Z	m
Z
 ddlmZ ddlmZ ddl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#ejH                  jJ                  d„ «       Z&y)z Test functions for rbf module é    N)Úassert_array_almost_equalÚassert_almost_equal)ÚlinspaceÚsinÚcosÚexpÚallclose)ÚRbf)Ú_run_concurrent_barrier©Úmultiquadriczinverse multiquadricÚgaussianÚcubicÚquinticz
thin-plateÚlinearc                 ó¾   — t        ddd«      }t        |«      }t        ||| ¬«      } ||«      }t        ||«       t	         |t        |d   «      «      |d   d¬«       y )Nr   é
   é	   ©ÚfunctionF)Úcheck_0d)r   r   r
   r   r   Úfloat)r   ÚxÚyÚrbfÚyis        ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_rbf.pyÚcheck_rbf1d_interpolationr      sW   € ä��2�aÓ€AÜˆA‹€AÜ
ˆa�˜XÔ
&€CÙ	ˆQ‹€BÜ˜a Ô$Ü™œE ! A¡$›KÓ(¨!¨A©$¸Ö?ó    c                 óD  — t         j                  j                  d«      }|j                  dd«      dz  dz
  }|j                  dd«      dz  dz
  }|t	        |dz   d|dz  z  z
  «      z  }t        |||d| ¬«      } |||«      }|j                  |_        t        ||«       y )NéÒ  é2   é   é   é   ù              ð?©Úepsilonr   ©ÚnpÚrandomÚRandomStateÚrandr   r
   Úshaper   )r   Úrngr   r   Úzr   Úzis          r   Úcheck_rbf2d_interpolationr2      s›   € ä
�)‰)×
Ñ
 Ó
%€CØ�‰��A‹�qÑ˜Ñ€AØ�‰��A‹�qÑ˜Ñ€AØ	Œ#ˆq�!‰tˆe�B�q˜!‘t‘G‰mÓ
Ñ€AÜ
ˆa��A˜q¨8Ô
4€CÙ	ˆQ�‹€BØ�w‰w€B„HÜ˜a Õ$r   c                 ór  — t         j                  j                  d«      }|j                  dd«      dz  dz
  }|j                  dd«      dz  dz
  }|j                  dd«      dz  dz
  }|t	        |dz   |dz  z
  «      z  }t        ||||d| ¬«      } ||||«      }|j                  |_        t        ||«       y )Nr!   r"   r#   r$   r%   r'   r)   )r   r/   r   r   r0   Údr   Údis           r   Úcheck_rbf3d_interpolationr6   )   s´   € ä
�)‰)×
Ñ
 Ó
%€CØ�‰��Q‹˜Ñ˜AÑ€AØ�‰��Q‹˜Ñ˜AÑ€AØ�‰��Q‹˜Ñ˜AÑ€AØ	Œ#ˆq�!‰tˆe�a˜‘d‰lÓ
Ñ€AÜ
ˆa��A�q !¨hÔ
7€CÙ	ˆQ��1‹€BØ�w‰w€B„HÜ˜b !Õ$r   c                  ó\   — t         D ]#  } t        | «       t        | «       t        | «       Œ% y ©N)Ú	FUNCTIONSr   r2   r6   r   s    r   Útest_rbf_interpolationr:   6   s)   € Üò ,ˆÜ! (Ô+Ü! (Ô+Ü! (Õ+ñ,r   c                 ó  — t        ddd«      }t        |«      }t        |«      }t        j                  ||g«      j
                  }t        ||| d¬«      } ||«      }t        ||«       t         |t        |d   «      «      |d   «       y )Nr   r   r   úN-D©r   Úmode)
r   r   r   r*   ÚvstackÚTr
   r   r   r   )r   r   Úy0Úy1r   r   r   s          r   Úcheck_2drbf1d_interpolationrC   =   sx   € ä��B˜Ó€AÜ	ˆQ‹€BÜ	ˆQ‹€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa�˜X¨EÔ
2€CÙ	ˆQ‹€BÜ˜a Ô$Ü™œE ! A¡$›KÓ(¨!¨A©$Õ/r   c                 óº  — t         j                  j                  d«      }|j                  d«      dz  dz
  }|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        ||«       y )Nr!   r"   r$   r%   r&   r<   ©r(   r   r>   ©
r*   r+   r,   r-   r   r?   r@   r
   r.   r   )	r   r/   r   r   Úz0Úz1r0   r   r1   s	            r   Úcheck_2drbf2d_interpolationrI   I   sÔ   € ä
�)‰)×
Ñ
 Ó
%€CØ�‰�‹˜Ñ˜QÑ€AØ�‰�‹˜Ñ˜QÑ€AØ	
ŒS�!�q‘&�˜2  Q¡™;Ñ&Ó'Ñ	'€BØ	
ŒS�!�q‘&�˜2  Q¡™;Ñ&Ó'Ñ	'€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa��A˜q¨8¸%Ô
@€CÙ	ˆQ�‹€BØ�w‰w€B„HÜ˜a Õ$r   c           	      óà  — t         j                  j                  d«      }|j                  d«      dz  dz
  }|j                  d«      dz  dz
  }|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        |	|«       y )Nr!   r"   r$   r%   r<   rE   rF   )
r   r/   r   r   r0   Úd0Úd1r4   r   r5   s
             r   Úcheck_2drbf3d_interpolationrM   W   sç   € ä
�)‰)×
Ñ
 Ó
%€CØ�‰�‹˜Ñ˜QÑ€AØ�‰�‹˜Ñ˜QÑ€AØ�‰�‹˜Ñ˜QÑ€AØ	
ŒS�!�q‘&�˜1 ™6Ñ!Ó"Ñ	"€BØ	
ŒS�!�q‘&�˜1 ™6Ñ!Ó"Ñ	"€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa��A�q !¨h¸UÔ
C€CÙ	ˆQ��1‹€BØ�w‰w€B„HÜ˜b !Õ$r   c                  ó\   — t         D ]#  } t        | «       t        | «       t        | «       Œ% y r8   )r9   rC   rI   rM   r   s    r   Útest_2drbf_interpolationrO   f   s)   € Üò .ˆÜ# HÔ-Ü# HÔ-Ü# HÕ-ñ.r   c                 ó  — t        ddd«      }t        |«      }t        ||| ¬«      }t        ddd«      } ||«      }dt        |t        |«      z
  «      j	                  «       d›�}t        |t        |«      |¬«      sJ |«       ‚y )	Nr   r   r   r   éd   ú
abs-diff: Úf©Úatol)r   r   r
   ÚabsÚmaxr	   )r   rU   r   r   r   Úxir   Úmsgs           r   Úcheck_rbf1d_regularityrZ   m   s€   € ô 	��B˜Ó€AÜˆA‹€AÜ
ˆa�˜XÔ
&€CÜ	�!�R˜Ó	€BÙ	ˆR‹€BØ”s˜2¤ B£™<Ó(×,Ñ,Ó.¨qÐ1Ð
2€CÜ�Bœ˜B› dÕ+Ð0¨SÓ0Ñ+r   c                  óf   — ddddddddœ} t         D ]  }t        || j                  |d«      «       Œ  y ©Ngš™™™™™¹?g333333Ã?gš™™™™™É?r   g{®Gáz„?)r9   rZ   Úget©Ú
tolerancesr   s     r   Útest_rbf_regularityr`   y   sF   € àØ $ØØØØØñ€Jô ò IˆÜ˜x¨¯©¸À$Ó)GÕHñIr   c           
      ó  — 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
  «      j                  «       d›�}	t        |t        j                  t        |«      t        |«      g«      j
                  |¬	«      sJ |	«       ‚y )
Nr   r   r   r<   r=   rQ   rR   rS   rT   )
r   r   r   r*   r?   r@   r
   rV   rW   r	   )
r   rU   r   rA   rB   r   r   rX   r   rY   s
             r   Úcheck_2drbf1d_regularityrb   ‡   sÔ   € ô 	��B˜Ó€AÜ	ˆQ‹€BÜ	ˆQ‹€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa�˜X¨EÔ
2€CÜ	�!�R˜Ó	€BÙ	ˆR‹€BØ”s˜2¤§	¡	¬3¨r«7´C¸³GÐ*<Ó =× ?Ñ ?Ñ?Ó@×DÑDÓFÀqÐIÐ
J€CÜ�BœŸ	™	¤3 r£7¬C°«GÐ"4Ó5×7Ñ7¸dÕCÐHÀSÓHÑCr   c                  óf   — ddddddddœ} t         D ]  }t        || j                  |d«      «       Œ  y r\   )r9   rb   r]   r^   s     r   Útest_2drbf_regularityrd   •   sF   € àØ $ØØØØØñ€Jô ò KˆÜ  ¨:¯>©>¸(ÀDÓ+IÕJñKr   c                 ó®  — t         j                  j                  d«      }t        j                  ddd«      }|d|j	                  t        |«      «      z  z   }t        ||| ¬«      }t        j                  ddd«      } ||«      }t        j                  ||z
  «      j                  «       t        j                  ||z
  «      j                  «       z  dk  sJ ‚y )	Nr!   r   r   r"   g      @r   iè  gš™™™™™ñ?)	r*   r+   r,   r   ÚrandnÚlenr
   rV   rW   )r   r/   r   r0   r   rX   r   s          r   Úcheck_rbf1d_stabilityrh   £   s¬   € ô
 �)‰)×
Ñ
 Ó
%€CÜ
�‰�A�r˜2Ó€AØ	ˆC�#—)‘)œC ›FÓ#Ñ#Ñ#€Aä
ˆa�˜XÔ
&€CÜ	�‰�Q˜˜DÓ	!€BÙ	ˆR‹€Bô �6‰6�"�R‘%‹=×ÑÓ¤§¡¨¨!©£§¡Ó!2Ñ2°SÒ8Ð8Ñ8r   c                  ó0   — t         D ]  } t        | «       Œ y r8   )r9   rh   r   s    r   Útest_rbf_stabilityrj   ³   s   € Üò (ˆÜ˜hÕ'ñ(r   c                  ót   — t        ddd«      } t        | «      }t        | |«      } || «      }t        ||«       y )Nr   r   r   ©r   r   r
   r   )r   r   r   r   s       r   Útest_default_constructionrm   ¸   s9   € ô 	��2�aÓ€AÜˆA‹€AÜ
ˆa�‹)€CÙ	ˆQ‹€BÜ˜a Õ$r   c                  ó~   — t        ddd«      } t        | «      }d„ }t        | ||¬«      } || «      }t        ||«       y )Nr   r   r   c                 ó   — | S r8   © )r   s    r   Úlinfuncz*test_function_is_callable.<locals>.linfuncÆ   s   € Øˆr   r   rl   )r   r   rq   r   r   s        r   Útest_function_is_callablerr   Â   s?   € ä��2�aÓ€AÜˆA‹€Aòä
ˆa�˜WÔ
%€CÙ	ˆQ‹€BÜ˜a Õ$r   c                  ó~   — d„ } t        ddd«      }t        |«      }t        ||| ¬«      } ||«      }t        ||«       y )Nc                 ó    — | j                   |z   S r8   ©r(   )ÚselfÚrs     r   Ú_funcz0test_two_arg_function_is_callable.<locals>._funcÐ   s   € Ø�|‰|˜aÑÐr   r   r   r   r   rl   )rx   r   r   r   r   s        r   Ú!test_two_arg_function_is_callablery   Í   sA   € ò ô 	��2�aÓ€AÜˆA‹€AÜ
ˆa�˜UÔ
#€CÙ	ˆQ‹€BÜ˜a Õ$r   c                  óP   — t        ddd«      } t        | «      }t        | |d ¬«       y )Nr   r   r   ru   )r   r   r
   )r   r   s     r   Útest_rbf_epsilon_noner{   Ú   s%   € Ü��B˜Ó€AÜˆA‹€AÜˆˆ1�dÖr   c                  ó\   — g d¢} g d¢}g d¢}t        | ||d ¬«      }|j                  dkD  sJ ‚y )N)r#   r%   é   )r$   r$   r$   )é   é   é   ru   r   )r
   r(   )r   r   r0   r   s       r   Útest_rbf_epsilon_none_collinearr�   à   s3   € ò 	€AÚ€AÚ€AÜ
ˆa��A˜tÔ
$€CØ�;‰;˜Š?Ð‰?r   c                  óÊ   — t        ddd«      } t        | «      }t        | «      }t        j                  ||g«      j
                  }t        | |d¬«      }d„ }t        d||| «       y )Nr   r   rQ   r<   )r>   c                 ó   —  ||«       y r8   rp   )Ú_ÚinterpÚxps      r   Ú	worker_fnz'test_rbf_concurrency.<locals>.worker_fnò   s	   € Ùˆr�
r   )r   r   r   r*   r?   r@   r
   r   )r   rA   rB   r   r   r‡   s         r   Útest_rbf_concurrencyrˆ   ê   s]   € ä��B˜Ó€AÜ	ˆQ‹€BÜ	ˆQ‹€BÜ
�	‰	�2�r�(Ó×Ñ€AÜ
ˆa�˜Ô
€Còô ˜B 	¨3°Õ2r   )'Ú__doc__Únumpyr*   Úscipy._lib._array_apir   r   r   r   r   r   r	   Úscipy.interpolate._rbfr
   Úscipy._lib._testutilsr   Úpytestr9   r   r2   r6   r:   rC   rI   rM   rO   rZ   r`   rb   rd   rh   rj   rm   rr   ry   r{   r�   ÚmarkÚthread_unsaferˆ   rp   r   r   ú<module>r‘      s¥   ðá %ã ç Pç 3Õ 3Ý &Ý 9ã ð9€	ò@ò	%ò
%ò,ò	0ò%ò%ò.ò	1òIòIòKò9ò (ò
%ò%ò
%òòð ‡�×Ññ
3ó ñ
3r   