Ë
    qwjêP  ã                   ó¼  — d dl Z d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dl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 ej.                  j0                  Zefd	„Zd
„ Zd„ Zd„ Zej.                  j;                  d ee«      «      d„ «       Z G d„ d«      Z  ee«       G d„ de «      «       Z! edd¬«       G d„ de «      «       Z" edd¬«       G d„ de!«      «       Z#y)é    N)ÚLinAlgError)Úxp_assert_closeÚmake_xp_test_case)ÚHalton)ÚcKDTree)Ú
_AVAILABLEÚ_SCALE_INVARIANTÚ_NAME_TO_MIN_DEGREEÚRBFInterpolatorÚ_get_backend)Ú_rbfinterp_pythran)Ú_run_concurrent_barrierc                 ó~   — t        |«      }|j                  | j                  d   ||«      }|j                  | ||«      S )Né   )r   Ú_monomial_powersÚshapeÚpolynomial_matrix)ÚxÚdegreeÚxpÚbackendÚpowerss        úk/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_rbfinterp.pyÚ_vandermonder      s?   € ô ˜2Ó€GØ×%Ñ% a§g¡g¨a¡j°&¸"Ó=€FØ×$Ñ$ Q¨°Ó3Ð3ó    c                 ó¢   — | d d …df   } d|j                  |  «      d|j                  d| z  «      z  z
  d|j                  d| z  «      z  z   z  }|S )Nr   g
×£p=
@é   éþÿÿÿé   éýÿÿÿ©Úexp)r   r   Úys      r   Ú_1d_test_functionr$      sT   € ð 	
Š!ˆQˆ$‰€AØˆb�f‰f�a�R‹j˜1˜RŸV™V B q¡D›\™>Ñ)¨A¨b¯f©f°R¸±T«l©NÑ:Ñ;€AØ€Hr   c                 ó®  — | d d …df   | d d …df   }}d|j                  d|z  dz
  dz   dz  d|z  dz
  dz  dz  z
  «      z  }d|j                  d|z  dz   dz   dz  d|z  dz   dz  z
  «      z  }d	|j                  d|z  d
z
  dz   dz  d|z  dz
  dz  dz  z
  «      z  }d|j                  d|z  dz
  dz   d|z  d
z
  dz  z
  «      z  }||z   |z   |z   }|S )Nr   r   g      è?é	   é   r   é1   é
   g      à?é   r   gš™™™™™É¿r!   )	r   r   Úx1Úx2Úterm1Úterm2Úterm3Úterm4r#   s	            r   Ú_2d_test_functionr1   "   s  € ð Šq�!ˆt‰W�aš˜1˜‘gˆ€BØ�2—6‘6˜A˜b™D ™F Q™;˜, q™.¨A¨b©D°©F°Q©;°q©=Ñ8Ó9Ñ9€EØ�2—6‘6˜A˜b™D ™F Q™;˜, r™/¨Q¨r©T°!©V°R©KÑ7Ó8Ñ8€EØ�"—&‘&˜1˜R™4 ™6 A™+˜ a™¨1¨R©4°©6°A©+°a©-Ñ7Ó8Ñ8€EØ�2—6‘6˜A˜b™D ™F Q™;˜,¨!¨B©$¨q©&°1©Ñ4Ó5Ñ5€EØ�‰˜Ñ Ñ%€AØ€Hr   c                 ó^  — d}d}dD ]ÿ  }t        |dt        j                  j                  «       ¬«      }t	        |«      D ]Ä  }d|j                  |«      z  dz
  }t        j                  || «      }t        ||dz
  «      }	t        j                  j                  |	d¬	«      \  }
}|
d d …|	j                  d   d …f   }|j                  j                  |«      j                  |«      }	 t        j                  j                  |«       ŒÆ �Œ y
# t        j                  j                  $ r Y   yw xY w)Nr)   éd   )r   r'   r   r   é   F©ÚscrambleÚseedr'   r   Úcomplete)ÚmodeT)r   ÚnpÚrandomÚRandomStateÚranger   Ú_kernel_matrixr   ÚlinalgÚqrr   ÚTÚdotÚcholeskyr   )ÚkernelÚmÚnxÚntestsÚndimÚseqÚ_r   ÚAÚPÚQÚRÚQ2ÚBs                 r   Ú#_is_conditionally_positive_definiterQ   .   s  € ð 
€BØ€FÛˆô �T E´·	±	×0EÑ0EÓ0GÔHˆÜ�v–ˆAØ�#—*‘*˜R“.Ñ  1Ñ$ˆAÜ"×1Ñ1°!°VÓ<ˆAÜ˜Q  A¡Ó&ˆAÜ—9‘9—<‘< ¨
�<Ó3‰DˆAˆqð
 ’1�a—g‘g˜a‘j‘k�>Ñ"ˆBØ—‘—‘˜“—‘ Ó#ˆAðÜ—	‘	×"Ñ" 1Õ%ò ð	  ð( øô —9‘9×(Ñ(ò Ûðús   Ã%D
Ä
D,Ä+D,rD   c                 óR   — t        j                  | d«      dz   }t        | |«      sJ ‚y )Néÿÿÿÿr   )r
   ÚgetrQ   )rD   rE   s     r   Ú$test_conditionally_positive_definiterU   M   s+   € ô
 	×Ñ ¨Ó+¨aÑ/€AÜ.¨v°qÔ9Ð9Ñ9r   c                   ó¾  — e Zd Zej                  j                  d ee«      «      d„ «       Zej                  j                  d ee«      «      d„ «       Z	ej                  j                  d ee
«      «      d„ «       Zd„ Zej                  j                  d„ «       Zd„ Zd„ Zej                  j                  d ee
«      «      d	„ «       Zej                  j                  d ee
«      «      d
„ «       Zej                  j                  d ee
«      «      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dd¬«       edd¬«      d„ «       «       Z d„ Z!d„ Z"y)Ú_TestRBFInterpolatorrD   c                 óŒ  — t        ddt        j                  j                  «       ¬«      }d|j                  d«      z  }|j	                  |«      }t        ||«      }d|j                  d«      z  }|j	                  |«      } | j                  ||d|¬«      |«      } | j                  ||d|¬«      |«      }t        ||d	¬
«       y )Nr   Fr5   r   é2   ç      ð?©ÚepsilonrD   ç       @ç:Œ0âŽyE>©Úatol)r   r:   r;   r<   Úasarrayr$   Úbuildr   ©	ÚselfrD   r   rI   r   r#   ÚxitpÚyitp1Úyitp2s	            r   Útest_scale_invariance_1dz-_TestRBFInterpolator.test_scale_invariance_1dW   s°   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆØˆc�j‰j˜‹nÑˆØ�J‰J�q‹Mˆä˜a Ó$ˆØ�—‘˜B“ÑˆØ�z‰z˜$Óˆà<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆØ<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆÜ˜˜u¨4Ö0r   c                 ó€  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j	                  |«      }t        ||«      }|j                  d«      }|j	                  |«      } | j                  ||d|¬«      |«      } | j                  ||d|¬«      |«      }t        ||d¬	«       y )
Nr'   Fr5   r3   rZ   r[   r]   r^   r_   )r   r:   r;   r<   ra   r1   rb   r   rc   s	            r   Útest_scale_invariance_2dz-_TestRBFInterpolator.test_scale_invariance_2dg   s¦   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆØ�J‰J�s‹OˆØ�J‰J�q‹Mˆä˜a Ó$ˆØ�z‰z˜#‹ˆØ�z‰z˜$Óˆà<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆØ<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆÜ˜˜u¨4Ö0r   c                 ó8  — t        ddt        j                  j                  «       ¬«      }d}d}|j                  d«      }|j	                  |«      }t        ||«      }|j                  d«      }|j	                  |«      }|t        v rA | j                  |||¬«      |«      }	 | j                  ||z  |z   ||¬«      ||z  |z   «      }
nE | j                  ||d|¬	«      |«      }	 | j                  ||z  |z   |d|z  |¬	«      ||z  |z   «      }
t        |	|
d
¬«       y )Nr'   Fr5   gšd~ÅQJgAüjéZKr3   ©rD   ç      @r[   r^   r_   )	r   r:   r;   r<   ra   r1   r	   rb   r   )rd   rD   r   rI   ÚscaleÚshiftr   r#   re   rf   rg   s              r   Útest_extreme_domainsz)_TestRBFInterpolator.test_extreme_domainsw   s7  € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆØˆØˆà�J‰J�s‹OˆØ�J‰J�q‹Mˆä˜a Ó$ˆØ�z‰z˜#‹ˆØ�z‰z˜$ÓˆàÔ%Ñ%Ø3�D—J‘J˜q !¨F�JÓ3°DÓ9ˆEð�D—J‘JØ�%‘˜%‘ Øð ó ð �u‘*˜uÑ$ó&‰Eð
 A�D—J‘J˜q !¨S¸�JÓ@ÀÓFˆEð�D—J‘JØ�%‘˜%‘ Ø˜E™	Øð ó ð �u‘*˜uÑ$ó	&ˆEô 	˜˜u¨4Ö0r   c                 óä  — t         j                  j                  d«      }t        dd|¬«      }d}|j                  d«      }|j                  d«      }|j	                  |«      }|j	                  |«      }t        |||«      }t        |||«      }|j                  dd|j                  d	   «      }	|j	                  |	«      }	||	z  }
||	z  } | j                  ||
|¬
«      |«      }t        ||d¬«       y )Nr   r'   Fr5   r   rY   ç        rZ   r   ©r   r^   r_   )
r:   r;   r<   r   ra   r   Únormalr   rb   r   )rd   r   ÚrngrI   r   r   re   rL   ÚPitpÚpoly_coeffsr#   rf   rg   s                r   Útest_polynomial_reproductionz1_TestRBFInterpolator.test_polynomial_reproduction–   sÞ   € ô �i‰i×#Ñ# AÓ&ˆÜ�Q ¨SÔ1ˆØˆà�J‰J�r‹NˆØ�z‰z˜"‹~ˆØ�J‰J�q‹MˆØ�z‰z˜$Óˆä˜˜F BÓ'ˆÜ˜D &¨"Ó-ˆà—j‘j  c¨1¯7©7°1©:Ó6ˆØ—j‘j Ó-ˆà�‰OˆØ�{Ñ"ˆØ/�—
‘
˜1˜a¨�
Ó/°Ó5ˆä˜˜u¨4Ö0r   c                 ó6  ‡— t         j                  j                  d«      }t        dd|¬«      }d}d}|j                  d«      }|j                  |«      }|j	                  |«      }|j	                  |«      }t        |||«      }	t        |||«      }
|j                  dd	|	j                  d
   «      }|j	                  |«      }|	|z  }|
|z  }| j                  |||¬«      }|j                  Šˆfd„}|j                  |d|«        ||«      }t        ||d¬«       y )Nr   r'   Fr5   r   i	  rY   rr   rZ   r   rs   c                  ó8   •— |j                  d¬«        ‰| i |¤ŽS )Nr3   )Úmemory_budget)Úupdate)ÚargsÚkwargsÚce_reals     €r   Ú_chunk_evaluatorz<_TestRBFInterpolator.test_chunking.<locals>._chunk_evaluatorË   s!   ø€ Ø�M‰M¨ˆMÔ,Ù˜DÐ+ FÑ+Ð+r   r€   r^   r_   )r:   r;   r<   r   ra   r   rt   r   rb   r€   Úsetattrr   )rd   Úmonkeypatchr   ru   rI   r   ÚlargeNr   re   rL   rv   rw   r#   rf   Úinterpr€   rg   r   s                    @r   Útest_chunkingz"_TestRBFInterpolator.test_chunking¯   s  ø€ ô
 �i‰i×#Ñ# AÓ&ˆÜ�Q ¨SÔ1ˆØˆàˆà�J‰J�r‹NˆØ�z‰z˜&Ó!ˆà�J‰J�q‹MˆØ�z‰z˜$Óˆä˜˜F BÓ'ˆÜ˜D &¨"Ó-ˆà—j‘j  c¨1¯7©7°1©:Ó6ˆØ—j‘j Ó-ˆà�‰OˆØ�{Ñ"ˆØ—‘˜A˜q¨�Ó0ˆØ×)Ñ)ˆô	,ð 	×Ñ˜FÐ$6Ð8HÔIÙ�t“ˆÜ˜˜u¨4Ö0r   c           	      ó\  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }|j	                  |«      }|j	                  |«      }|j                  t        ||«      t        |j                  |d¬«      |«      g«      j                  } | j                  ||«      |«      } | j                  ||d d …df   «      |«      } | j                  ||d d …df   «      |«      }t        |d d …df   |«       t        |d d …df   |«       y )Nr'   Fr5   r3   r   )Úaxisr   )r   r:   r;   r<   ra   Ústackr1   ÚfliprA   rb   r   ©	rd   r   rI   r   re   r#   rf   rg   Úyitp3s	            r   Útest_vector_dataz%_TestRBFInterpolator.test_vector_dataÓ   s  € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆà�J‰J�s‹OˆØ�z‰z˜#‹ˆà�J‰J�q‹MˆØ�z‰z˜$Óˆà�H‰HÔ'¨¨2Ó.Ü'¨¯©°¸¨Ó(:¸BÓ?ðAó BßBCÁ!ð 	
ð !�—
‘
˜1˜aÓ  Ó&ˆØ&�—
‘
˜1˜a¢ 1 ™gÓ& tÓ,ˆØ&�—
‘
˜1˜a¢ 1 ™gÓ& tÓ,ˆä˜ša ˜d™ UÔ+Ü˜ša ˜d™ UÕ+r   c           	      óB  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }t	        |t        «      dt	        |d d …d d d…f   t        «      z  z   }t        |j                  |||f«      \  }}} | j                  ||«      |«      } | j                  ||j                  «      |«      } | j                  ||j                  «      |«      }t        |j                  |«       t        |j                  |«       y )Nr'   Fr5   r3   y              ð?rS   )r   r:   r;   r<   r1   Úmapra   rb   ÚrealÚimagr   rŠ   s	            r   Útest_complex_dataz&_TestRBFInterpolator.test_complex_dataè   sè   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆà�J‰J�s‹OˆØ�z‰z˜#‹ˆä˜a¤Ó$ rÔ*;¸AºaÁÀ2À¸g¹JÌÓ*KÑ'KÑKˆä˜Ÿ™ a¨¨q \Ó2‰
ˆˆ4�à �—
‘
˜1˜aÓ  Ó&ˆØ%�—
‘
˜1˜aŸf™fÓ% dÓ+ˆØ%�—
‘
˜1˜aŸf™fÓ% dÓ+ˆä˜Ÿ
™
 EÔ*Ü˜Ÿ
™
 EÕ*r   c                 óŽ  — t        ddt        j                  j                  «       ¬«      }d|j                  d«      z  }d|j                  d«      z  }|j	                  |«      }|j	                  |«      }t        ||«      }t        ||«      } | j                  ||d|¬«      |«      }|j                  ||z
  dz  «      }	|	d	k  sJ ‚y )
Nr   Fr5   r   rY   rm   r[   r'   ç-Cëâ6?)r   r:   r;   r<   ra   r$   rb   Úmean©
rd   rD   r   rI   r   re   r#   ÚytrueÚyitpÚmses
             r   Útest_interpolation_misfit_1dz1_TestRBFInterpolator.test_interpolation_misfit_1dû   s¶   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆàˆc�j‰j˜‹nÑˆØ�—‘˜B“Ñˆà�J‰J�q‹MˆØ�z‰z˜$Óˆä˜a Ó$ˆÜ! $¨Ó+ˆØ;ˆt�z‰z˜!˜Q¨°FˆzÓ;¸DÓAˆà�g‰g�t˜e‘| aÑ'Ó(ˆØ�VŠ|Ð‰|r   c                 ó‚  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }|j	                  |«      }|j	                  |«      }t        ||«      }t        ||«      } | j                  ||d|¬«      |«      }|j                  ||z
  dz  «      }	|	dk  sJ ‚y )Nr'   Fr5   r3   rm   r[   g-Cëâ6*?)r   r:   r;   r<   ra   r1   rb   r”   r•   s
             r   Útest_interpolation_misfit_2dz1_TestRBFInterpolator.test_interpolation_misfit_2d  s¬   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆà�J‰J�s‹OˆØ�z‰z˜#‹ˆØ�J‰J�q‹MˆØ�z‰z˜$Óˆä˜a Ó$ˆÜ! $¨Ó+ˆØ;ˆt�z‰z˜!˜Q¨°FˆzÓ;¸DÓAˆà�g‰g�t˜e‘| aÑ'Ó(ˆØ�VŠ|Ð‰|r   c           	      ó  — t         j                  j                  d«      }t        dd|¬«      }d}d}d|j	                  ddd	«      z  }d
|j                  d«      z  }t        |t         «      |j                  d|d«      z   }	|j                  |«      }|j                  |	«      }	t        ||«      }
d}|D ]M  } | j                  ||	d||¬«      |«      }|j                  |j                  ||
z
  dz  «      «      }||k  sŒKd} n |sJ ‚y )Nr   r   Fr5   gš™™™™™É?gš™™™™™¹?r)   éüÿÿÿé   r   r3   rr   )r3   rZ   )r\   Ú	smoothingrD   r'   T)r:   r;   r<   r   Úlinspacer$   rt   ra   rb   Úsqrtr”   )rd   rD   r   ru   rI   ÚnoiseÚrmse_tolÚsmoothing_ranger   r#   r–   Úrmse_within_tolrŸ   ÚysmoothÚrmses                  r   Útest_smoothing_misfitz*_TestRBFInterpolator.test_smoothing_misfit   s  € ô �i‰i×#Ñ# AÓ&ˆÜ�Q ¨SÔ1ˆàˆØˆØ˜bŸk™k¨"¨a°Ó4Ñ4ˆàˆc�j‰j˜‹oÑˆÜ˜a¤Ó$ s§z¡z°#°u¸fÓ'EÑEˆà�J‰J�q‹MˆØ�J‰J�q‹MˆÜ! ! RÓ(ˆØˆÛ(ˆIð�d—j‘jØ�1ØØ#Øð	 !ó ð  !ó	"ˆGð
 —7‘7˜2Ÿ7™7 G¨e¡O°aÑ#7Ó8Ó9ˆDØ�h‹Ø"&�Ùð )ñ Ð‰r   c                 ó  — t         j                  j                  d«      }t        dd|¬«      }d}|j                  d«      }t	        ||«      }|j                  dd|j                  d   «      }||z  }|j                  «       }	|	d	xx   dz  cc<   t        j                  d
«      }
d|
d	<   t        |j                  ||||f«      \  }}}}t        |j                  |	|
f«      \  }	}
 | j                  ||	|
¬«      |«      }t        ||d¬«       y )Nr   r   Fr5   r'   rY   rr   rZ   r)   )rY   g     @�@©rŸ   r“   r_   )r:   r;   r<   r   r   rt   r   ÚcopyÚzerosrŽ   ra   rb   r   )rd   r   ru   rI   r   r   rL   rw   r#   Úy_with_outlierrŸ   r—   s               r   Útest_array_smoothingz)_TestRBFInterpolator.test_array_smoothing?  sû   € ô �i‰i×#Ñ# AÓ&ˆÜ�Q ¨SÔ1ˆØˆà�J‰J�r‹NˆÜ˜˜FÓ#ˆØ—j‘j  c¨1¯7©7°1©:Ó6ˆØ�‰OˆàŸ™›ˆØ�rÓ˜cÑ!ÓÜ—H‘H˜U“Oˆ	Øˆ	�"‰ä" 2§:¡:°°1°kÀ1Ð/EÓFÑˆˆ1ˆk˜1Ü$'¨¯
©
°^ÀYÐ4OÓ$PÑ!ˆ˜	àAˆt�z‰z˜!˜^°yˆzÓAÀ!ÓDˆä˜˜a dÖ+r   c                 óœ  — t        ddt        j                  j                  «       ¬«      j                  d«      }t	        |t        «      }t        ddt        j                  j                  «       ¬«      j                  d«      }d}t        j                  t        |¬«      5   | j                  ||«      |«       d d d «       y # 1 sw Y   y xY w)Nr'   Fr5   r)   r   zExpected the second axis of `x`©Úmatch)	r   r:   r;   r<   r1   ÚpytestÚraisesÚ
ValueErrorrb   )rd   r#   Údr   r±   s        r   Ú$test_inconsistent_x_dimensions_errorz9_TestRBFInterpolator.test_inconsistent_x_dimensions_errorW  s�   € ô �1˜u¬2¯9©9×+@Ñ+@Ó+BÔC×JÑJÈ2ÓNˆÜ˜a¤Ó$ˆÜ�1˜u¬2¯9©9×+@Ñ+@Ó+BÔC×JÑJÈ2ÓNˆØ1ˆÜ�]‰]œ:¨UÖ3ØˆD�J‰J�q˜!Ó˜QÔ÷ 4×3Ñ3ús   Â CÃCc                 óò   — t        j                  ddd«      d d …d f   }t        j                  d«      }d}t        j                  t
        |¬«      5  | j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr   r   r4   zExpected the first axis of `d`r°   ©r:   r    r¬   r²   r³   r´   rb   ©rd   r#   rµ   r±   s       r   Ú test_inconsistent_d_length_errorz5_TestRBFInterpolator.test_inconsistent_d_length_errora  sW   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆØ0ˆÜ�]‰]œ:¨UÖ3Ø�J‰J�q˜!Ô÷ 4×3Ñ3ús   ÁA-Á-A6c                 óä   — t        j                  ddd«      }t        j                  d«      }d}t        j                  t
        |¬«      5  | j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr   r   r4   z"`y` must be a 2-dimensional array.r°   r¸   r¹   s       r   Útest_y_not_2d_errorz(_TestRBFInterpolator.test_y_not_2d_errorh  sN   € Ü�K‰K˜˜1˜aÓ ˆÜ�H‰H�Q‹KˆØ4ˆÜ�]‰]œ:¨UÖ3Ø�J‰J�q˜!Ô÷ 4×3Ñ3ús   Á
A&Á&A/c                 ó   — t        j                  ddd«      d d …d f   }t        j                  d«      }t        j                  d«      }d}t	        j
                  t        |¬«      5  | j                  |||¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r4   zExpected `smoothing` to ber°   rª   )r:   r    r¬   Úonesr²   r³   r´   rb   )rd   r#   rµ   rŸ   r±   s        r   Ú(test_inconsistent_smoothing_length_errorz=_TestRBFInterpolator.test_inconsistent_smoothing_length_erroro  sh   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ—G‘G˜A“Jˆ	Ø,ˆÜ�]‰]œ:¨UÖ3Ø�J‰J�q˜! yˆJÔ1÷ 4×3Ñ3ús   Á&BÂBc                 óö   — t        j                  ddd«      d d …d f   }t        j                  d«      }d}t        j                  t
        |¬«      5  | j                  ||d¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r4   z`kernel` must be one ofr°   Útestrl   r¸   r¹   s       r   Útest_invalid_kernel_name_errorz3_TestRBFInterpolator.test_invalid_kernel_name_errorw  s[   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆØ)ˆÜ�]‰]œ:¨UÖ3Ø�J‰J�q˜! FˆJÔ+÷ 4×3Ñ3úó   ÁA/Á/A8c                 ó  — t        j                  ddd«      d d …d f   }t        j                  d«      }t        D ]E  }|t        v rŒd}t        j                  t        |¬«      5  | j                  |||¬«       d d d «       ŒG y # 1 sw Y   ŒRxY w)Nr   r   r4   z`epsilon` must be specifiedr°   rl   )	r:   r    r¬   r   r	   r²   r³   r´   rb   )rd   r#   rµ   rD   r±   s        r   Ú test_epsilon_not_specified_errorz5_TestRBFInterpolator.test_epsilon_not_specified_error~  sv   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹Kˆß ˆFØÔ)Ñ)Øà1ˆEÜ—‘œz°Ö7Ø—
‘
˜1˜a¨�
Ô/÷ 8Ð7ñ !÷
 8Ð7ús   Á#BÂB	c                 ó,  — t        j                  ddd«      d d …d f   }t        j                  ddd«      }t        j                  d«      }d}t        j                  t
        |¬«      5   | j                  ||«      |«       d d d «       y # 1 sw Y   y xY w)Nr   r   r4   z"`x` must be a 2-dimensional array.r°   r¸   )rd   r#   r   rµ   r±   s        r   Útest_x_not_2d_errorz(_TestRBFInterpolator.test_x_not_2d_error‰  sp   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�K‰K˜˜1˜aÓ ˆÜ�H‰H�Q‹KˆØ4ˆÜ�]‰]œ:¨UÖ3ØˆD�J‰J�q˜!Ó˜QÔ÷ 4×3Ñ3ús   Á(B
Â
Bc                 óö   — t        j                  ddd«      d d …d f   }t        j                  d«      }d}t        j                  t
        |¬«      5  | j                  ||d¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   z#At least 2 data points are requiredr°   Úthin_plate_splinerl   r¸   r¹   s       r   Ú"test_not_enough_observations_errorz7_TestRBFInterpolator.test_not_enough_observations_error‘  s\   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆØ5ˆÜ�]‰]œ:¨UÖ3Ø�J‰J�q˜!Ð$7ˆJÔ8÷ 4×3Ñ3úrÃ   c           
      óJ  — t        j                  ddd«      d d …d f   }t        j                  d«      }t        j                  «       D ]M  \  }}|dk\  sŒd|› �}t        j                  t        |¬«      5  | j                  ||d||dz
  ¬«       d d d «       ŒO y # 1 sw Y   ŒZxY w)Nr   r   r4   z`degree` should not be below r°   rZ   ©r\   rD   r   )	r:   r    r¬   r
   Úitemsr²   ÚwarnsÚWarningrb   )rd   r#   rµ   rD   Údegr±   s         r   Útest_degree_warningz(_TestRBFInterpolator.test_degree_warning˜  s�   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ.×4Ñ4Ö6‰KˆF�Cà�a‹xØ7¸°uÐ=�Ü—\‘\¤'°Ö7Ø—J‘J˜q !¨S¸ÈÈAÉ�JÔN÷ 8Ð7ñ	 7÷ 8Ð7ús   Á4BÂB"	c                 óÎ   — t        j                  ddd«      d d …d f   }t        j                  d«      }t        j                  «       D ]  \  }}| j                  ||d|d¬«       Œ y )Nr   r   r4   rZ   rS   rÌ   )r:   r    r¬   r
   rÍ   rb   )rd   r#   rµ   rD   rJ   s        r   Útest_minus_one_degreez*_TestRBFInterpolator.test_minus_one_degree¢  sW   € ä�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ,×2Ñ2Ö4‰IˆF�AØ�J‰J�q˜! S°ÀˆJÕCñ 5r   z	jax.numpyz+solve raises no error for a singular matrix)ÚreasonÚcupyc                 óö   — |j                  ddgddgddgg«      }|j                  g d¢«      }d}t        j                  t        |¬«      5   | j	                  ||d¬«      |«       d d d «       y # 1 sw Y   y xY w)	Nr]   rr   rZ   )rr   rr   rr   zdoes not have full column rankr°   rÉ   rl   )ra   r²   r³   r   rb   )rd   r   r#   rµ   r±   s        r   Útest_rank_errorz$_TestRBFInterpolator.test_rank_error©  sl   € ð
 �J‰J˜˜c˜
 S¨# J°°c°
Ð;Ó<ˆØ�J‰J’Ó'ˆØ0ˆÜ�]‰]œ;¨eÖ4Ø8ˆD�J‰J�q˜!Ð$7ˆJÓ8¸Ô;÷ 5×4Ñ4ús   ÁA/Á/A8c                 ó¾   — dD ]X  }|j                  d|f«      }|j                  d|j                  ¬«      } | j                  ||d¬«      |«      }t	        ||«       ŒZ y )N)r   r'   r   r   )r   )ÚdtypeÚlinearrl   )r¬   r¾   Úfloat64rb   r   )rd   r   Údimr#   rµ   Úfs         r   Útest_single_pointz&_TestRBFInterpolator.test_single_point´  s[   € ó ˆCØ—‘˜!˜S˜Ó"ˆAØ—‘˜ B§J¡J�Ó/ˆAØ1�—
‘
˜1˜a¨�
Ó1°!Ó4ˆAÜ˜A˜qÕ!ñ	 r   c                 ó²  — t        ddt        j                  j                  d«      ¬«      }d|j                  d«      z  }d|j                  d«      z  }|j	                  |«      |j	                  |«      }}t        ||«      }| j                  ||«      } ||«      } t        j                  t        j                  |«      «      |«      }t        ||d¬«       y )	Nr   Fl   eä r5   r   rY   g¼‰Ø—²Òœ<r_   )r   r:   r;   r<   ra   r$   rb   ÚpickleÚloadsÚdumpsr   )	rd   r   rI   r   re   r#   r„   rf   rg   s	            r   Útest_pickleablez$_TestRBFInterpolator.test_pickleable½  s®   € ô �Q ¬R¯Y©Y×-BÑ-BÀ:Ó-NÔOˆàˆc�j‰j˜‹nÑˆØ�—‘˜B“ÑˆØ—*‘*˜Q“- §¡¨DÓ!1ˆ4ˆä˜a Ó$ˆà—‘˜A˜qÓ!ˆá�t“ˆØ2”—‘œVŸ\™\¨&Ó1Ó2°4Ó8ˆä˜˜u¨5Ö1r   N)#Ú__name__Ú
__module__Ú__qualname__r²   ÚmarkÚparametrizeÚsortedr	   rh   rj   r   rp   rx   Úslowr…   rŒ   r‘   r™   r›   r¨   r®   r¶   rº   r¼   r¿   rÂ   rÅ   rÇ   rÊ   rÑ   rÓ   Úskip_xp_backendsr×   rÞ   rã   © r   r   rW   rW   V   sŸ  „ Ø‡[�[×Ñ˜X¡vÐ.>Ó'?Ó@ñ1ó Að1ð ‡[�[×Ñ˜X¡vÐ.>Ó'?Ó@ñ1ó Að1ð ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñ1ó ;ð1ò<1ð2 ‡[�[×Ññ!1ó ð!1òF,ò*+ð& ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñó ;ðð$ ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñó ;ðð" ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñó ;ðò<,ò0 òòò2ò,ò	0ò ò9òOòDñ �kÐ*WÔXÙ�fÐ%RÔSñ<ó Tó Yð<ò"ó2r   rW   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú TestRBFInterpolatorNeighborsNonec                 ó   — t        |i |¤ŽS ©N©r   ©rd   r}   r~   s      r   rb   z&TestRBFInterpolatorNeighborsNone.buildÒ  s   € Ü Ð/¨Ñ/Ð/r   c                 óº  — t        ddt        j                  j                  «       ¬«      }d}d}d|j                  d«      z  }d|j                  d«      z  }t	        |t        «      } | j                  ||||¬«      |«      }t        ||«      }t        ||«      }	|	j                  t        j                  j                  ||d ¬«      d	   «      }
t        ||
d
¬«       y )Nr   Fr5   r   ç    „×—ArY   ©r   rŸ   ©Úrcondr   r^   r_   )r   r:   r;   r<   r$   rb   r   rB   r?   Úlstsqr   ©rd   rI   r   rŸ   r   re   r#   rf   rL   rv   rg   s              r   Útest_smoothing_limit_1dz8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_1dÕ  sÑ   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆàˆØˆ	àˆc�j‰j˜‹nÑˆØ�—‘˜B“ÑˆÜ˜a¤Ó$ˆð�—
‘
ØˆqØØð ó ð ó	ˆô ˜˜FÓ#ˆÜ˜D &Ó)ˆØ—‘œŸ™Ÿ™¨¨A°T˜Ó:¸1Ñ=Ó>ˆä˜˜u¨4Ö0r   c                 ó®  — t        ddt        j                  j                  «       ¬«      }d}d}|j                  d«      }|j                  d«      }t	        |t        «      } | j                  ||||¬«      |«      }t        ||«      }t        ||«      }	|	j                  t        j                  j                  ||d ¬«      d	   «      }
t        ||
d
¬«       y )Nr'   Fr5   r   rô   r3   rõ   rö   r   r^   r_   )r   r:   r;   r<   r1   rb   r   rB   r?   rø   r   rù   s              r   Útest_smoothing_limit_2dz8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_2dí  sÇ   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆàˆØˆ	à�J‰J�s‹OˆØ�z‰z˜#‹ˆä˜a¤Ó$ˆð�—
‘
ØˆqØØð ó ð ó	ˆô ˜˜FÓ#ˆÜ˜D &Ó)ˆØ—‘œŸ™Ÿ™¨¨A°T˜Ó:¸1Ñ=Ó>ˆä˜˜u¨4Ö0r   N)rä   rå   ræ   rb   rú   rü   rì   r   r   rî   rî   Ð  s   „ ò0ò1ó01r   rî   Tzneighbors not None uses KDTree)Únp_onlyrÔ   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestRBFInterpolatorNeighbors20c                 ó    — t        |i |¤ddi¤ŽS )NÚ	neighborsrž   rñ   rò   s      r   rb   z$TestRBFInterpolatorNeighbors20.build
  s   € Ü Ð=¨Ñ=¸"Ò=Ð=r   c           	      ó´  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }t	        |t        «      } | j                  ||«      |«      }g }t        |«      }|D ]D  }|j                  |d«      \  }	}
|j                   t        ||
   ||
   «      |d    «      d   «       ŒF t        ||d¬«       y )	Nr'   Fr5   r3   rž   r   r^   r_   )r   r:   r;   r<   r1   rb   r   ÚqueryÚappendr   r   )rd   rI   r   re   r#   rf   rg   ÚtreeÚxirJ   Únbrs              r   Ú#test_equivalent_to_rbf_interpolatorzBTestRBFInterpolatorNeighbors20.test_equivalent_to_rbf_interpolator  sÀ   € Ü�Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆà�J‰J�s‹OˆØ�z‰z˜#‹ˆä˜a¤Ó$ˆà �—
‘
˜1˜aÓ  Ó&ˆàˆÜ�q‹zˆÛˆBØ—Z‘Z  BÓ'‰FˆAˆsØ�L‰LÐ8œ¨¨3©°°3±Ó8¸¸D¹ÓBÀ1ÑEÕFð ô 	˜˜u¨4Ö0r   c                 ó  — t        ddt        j                  j                  d«      ¬«      }|j                  d«      }|j                  d«      }t	        |t        «      }| j                  ||«      }d„ }t        d|||«       y )Nr'   Fr   r5   r3   c                 ó   —  ||«       y rð   rì   )rJ   r„   r   s      r   Ú	worker_fnzBTestRBFInterpolatorNeighbors20.test_concurrency.<locals>.worker_fn*  s	   € Ù�2�Jr   r)   )r   r:   r;   r<   r1   rb   r   )rd   rI   r   re   r#   r„   r  s          r   Útest_concurrencyz/TestRBFInterpolatorNeighbors20.test_concurrency  sl   € ô �Q ¬R¯Y©Y×-BÑ-BÀ1Ó-EÔFˆØ�J‰J�s‹OˆØ�z‰z˜#‹ˆä˜a¤Ó$ˆà—‘˜A˜qÓ!ˆò	ô 	   I¨v°tÕ<r   N)rä   rå   ræ   rb   r  r  rì   r   r   rÿ   rÿ     s   „ ò>ò1ó$=r   rÿ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestRBFInterpolatorNeighborsInfc                 ó<   — t        |i |¤dt        j                  i¤ŽS )Nr  )r   r:   Úinfrò   s      r   rb   z%TestRBFInterpolatorNeighborsInf.build4  s   € Ü ÐA¨ÑA¼"¿&¹&ÒAÐAr   c                 ó8  — t        ddt        j                  j                  «       ¬«      }d|j                  d«      z  }d|j                  d«      z  }t	        |t        «      } | j                  ||«      |«      } t        ||«      |«      }t        ||d¬«       y )Nr   Fr5   r   rY   r^   r_   )r   r:   r;   r<   r$   rb   r   r   )rd   rI   r   re   r#   rf   rg   s          r   r  zCTestRBFInterpolatorNeighborsInf.test_equivalent_to_rbf_interpolator7  sƒ   € Ü�Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆàˆc�j‰j˜‹nÑˆØ�—‘˜B“Ñˆä˜a¤Ó$ˆØ �—
‘
˜1˜aÓ  Ó&ˆØ%”  1Ó% dÓ+ˆä˜˜u¨4Ö0r   N)rä   rå   ræ   rb   r  rì   r   r   r  r  0  s   „ òBó
1r   r  )$rà   r²   Únumpyr:   Únumpy.linalgr   Úscipy._lib._array_apir   r   Úscipy.stats.qmcr   Úscipy.spatialr   Úscipy.interpolate._rbfinterpr   r	   r
   r   r   Úscipy.interpolater   Úscipy._lib._testutilsr   rç   rë   r   r$   r1   rQ   rè   ré   rU   rW   rî   rÿ   r  rì   r   r   Ú<module>r     sù   ðÛ Û Û Ý $ß DÝ "Ý !÷õ õ 1Ý 9à—;‘;×/Ñ/Ð ð  "ó 4òò	òð> ‡�×Ñ˜¡6¨*Ó#5Ó6ñ:ó 7ð:÷w2ñ w2ñt �?Ó#ô31Ð';ó 31ó $ð31ñl ˜$Ð'GÔHô%=Ð%9ó %=ó Ið%=ñP ˜$Ð'GÔHô1Ð&Fó 1ó Iñ1r   