Ë
    âQ(h–J  ã                   ó>  — d dl Z d dlZd dlZd dlmZ d dl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 d	„ Zd
„ Zd„ Zd„ Zej4                  j7                  d ee«      «      d„ «       Z G d„ d«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z!y)é    N)ÚLinAlgError)Úxp_assert_close)ÚHalton)ÚcKDTree)Ú
_AVAILABLEÚ_SCALE_INVARIANTÚ_NAME_TO_MIN_DEGREEÚ_monomial_powersÚRBFInterpolator)Ú_rbfinterp_pythran)Ú_run_concurrent_barrierc                 ó`   — t        | j                  d   |«      }t        j                  | |«      S )Né   )r
   Úshaper   Ú_polynomial_matrix)ÚxÚdegreeÚpowerss      úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_rbfinterp.pyÚ_vandermonder      s+   € ô ˜aŸg™g a™j¨&Ó1€FÜ×0Ñ0°°FÓ;Ð;ó    c                 óº   — | d d …df   } dt        j                  |  «      dt        j                  d| z  «      z  z
  dt        j                  d| z  «      z  z   z  }|S )Nr   g
×£p=
@é   éþÿÿÿé   éýÿÿÿ©ÚnpÚexp)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t        j                  d|z  dz
  dz   dz  d|z  dz
  dz  dz  z
  «      z  }dt        j                  d|z  dz   dz   dz  d|z  dz   dz  z
  «      z  }d	t        j                  d|z  d
z
  dz   dz  d|z  dz
  dz  dz  z
  «      z  }dt        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   Úx1Úx2Úterm1Úterm2Úterm3Úterm4r    s           r   Ú_2d_test_functionr.      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   r   Ú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_definiterM   +   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,r@   c                 óR   — t        j                  | d«      dz   }t        | |«      sJ ‚y )Néÿÿÿÿr   )r	   ÚgetrM   )r@   rA   s     r   Ú$test_conditionally_positive_definiterQ   J   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ej                  j:                  d„ «       Zd„ Zd„ Z d„ Z!d„ Z"y)Ú_TestRBFInterpolatorr@   c                 óF  — t        ddt        j                  j                  «       ¬«      }d|j                  d«      z  }t	        |«      }d|j                  d«      z  } | j                  ||d|¬«      |«      } | j                  ||d|¬«      |«      }t        ||d	¬
«       y )Nr   Fr2   r   é2   ç      ð?©Úepsilonr@   ç       @ç:Œ0âŽyE>©Úatol)r   r   r7   r8   r!   Úbuildr   ©Úselfr@   rE   r   r    ÚxitpÚyitp1Úyitp2s           r   Útest_scale_invariance_1dz-_TestRBFInterpolator.test_scale_invariance_1dT   s“   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆØˆc�j‰j˜‹nÑˆÜ˜aÓ ˆØ�—‘˜B“ÑˆØ<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆØ<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆÜ˜˜u¨4Ö0r   c                 ó:  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }t	        |«      }|j                  d«      } | j                  ||d|¬«      |«      } | j                  ||d|¬«      |«      }t        ||d¬	«       y )
Nr$   Fr2   r0   rV   rW   rY   rZ   r[   )r   r   r7   r8   r.   r]   r   r^   s           r   Útest_scale_invariance_2dz-_TestRBFInterpolator.test_scale_invariance_2d`   s‰   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆØ�J‰J�s‹OˆÜ˜aÓ ˆØ�z‰z˜#‹ˆØ<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆØ<�—
‘
˜1˜a¨°V�
Ó<¸TÓBˆÜ˜˜u¨4Ö0r   c                 óò  — t        ddt        j                  j                  «       ¬«      }d}d}|j                  d«      }t	        |«      }|j                  d«      }|t
        v rA | j                  |||¬«      |«      } | j                  ||z  |z   ||¬«      ||z  |z   «      }	nE | j                  ||d|¬	«      |«      } | j                  ||z  |z   |d|z  |¬	«      ||z  |z   «      }	t        ||	d
¬«       y )Nr$   Fr2   gšd~ÅQJgAüjéZKr0   ©r@   ç      @rW   rZ   r[   )r   r   r7   r8   r.   r   r]   r   )
r_   r@   rE   ÚscaleÚshiftr   r    r`   ra   rb   s
             r   Útest_extreme_domainsz)_TestRBFInterpolator.test_extreme_domainsl   s  € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆØˆØˆà�J‰J�s‹OˆÜ˜aÓ ˆØ�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«      }t	        ||«      }t	        ||«      }|j                  dd|j                  d	   «      }|j                  |«      }	|j                  |«      }
 | j                  ||	|¬
«      |«      }t        |
|d¬«       y )Nr   r$   Fr2   r   rU   ç        rV   r   ©r   rZ   r[   )
r   r7   r8   r   r   Únormalr   r>   r]   r   )r_   ÚrngrE   r   r   r`   rH   ÚPitpÚpoly_coeffsr    ra   rb   s               r   Útest_polynomial_reproductionz1_TestRBFInterpolator.test_polynomial_reproductionˆ   sº   € ô �i‰i×#Ñ# AÓ&ˆÜ�Q ¨SÔ1ˆØˆà�J‰J�r‹NˆØ�z‰z˜"‹~ˆä˜˜FÓ#ˆÜ˜D &Ó)ˆà—j‘j  c¨1¯7©7°1©:Ó6ˆà�E‰E�+ÓˆØ—‘˜Ó%ˆØ/�—
‘
˜1˜a¨�
Ó/°Ó5ˆä˜˜u¨4Ö0r   c                 óü  ‡— t         j                  j                  d«      }t        dd|¬«      }d}d}|j                  d«      }|j                  |«      }t	        ||«      }t	        ||«      }	|j                  dd	|j                  d
   «      }
|j                  |
«      }|	j                  |
«      }| j                  |||¬«      }|j                  Šˆfd„}|j                  |d|«        ||«      }t        ||d¬«       y )Nr   r$   Fr2   r   i	  rU   rm   rV   r   rn   c                  ó8   •— |j                  d¬«        ‰| i |¤ŽS )Nr0   )Úmemory_budget)Úupdate)ÚargsÚkwargsÚce_reals     €r   Ú_chunk_evaluatorz<_TestRBFInterpolator.test_chunking.<locals>._chunk_evaluator¶   s!   ø€ Ø�M‰M¨ˆMÔ,Ù˜DÐ+ FÑ+Ð+r   r{   rZ   r[   )r   r7   r8   r   r   ro   r   r>   r]   r{   Úsetattrr   )r_   Úmonkeypatchrp   rE   r   ÚlargeNr   r`   rH   rq   rr   r    ra   Úinterpr{   rb   rz   s                   @r   Útest_chunkingz"_TestRBFInterpolator.test_chunkingž   sé   ø€ ô
 �i‰i×#Ñ# AÓ&ˆÜ�Q ¨SÔ1ˆØˆàˆà�J‰J�r‹NˆØ�z‰z˜&Ó!ˆä˜˜FÓ#ˆÜ˜D &Ó)ˆà—j‘j  c¨1¯7©7°1©:Ó6ˆà�E‰E�+ÓˆØ—‘˜Ó%ˆØ—‘˜A˜q¨�Ó0ˆØ×)Ñ)ˆô	,ð 	×Ñ˜FÐ$6Ð8HÔIÙ�t“ˆÜ˜˜u¨4Ö0r   c           
      ó  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }t        j                  t        |«      t        |d d …d d d…f   «      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$   Fr2   r0   rO   r   r   )	r   r   r7   r8   Úarrayr.   r=   r]   r   ©r_   rE   r   r`   r    ra   rb   Úyitp3s           r   Útest_vector_dataz%_TestRBFInterpolator.test_vector_data¾   së   € ô �Q ¬R¯Y©Y×-BÑ-BÓ-DÔEˆà�J‰J�s‹OˆØ�z‰z˜#‹ˆä�H‰HÔ'¨Ó*Ü'¨ª!©T¨r¨T¨'©
Ó3ð5ó 6ß67±að 	
ð !�—
‘
˜1˜aÓ  Ó&ˆØ&�—
‘
˜1˜a¢ 1 ™gÓ& tÓ,ˆØ&�—
‘
˜1˜a¢ 1 ™gÓ& tÓ,ˆä˜ša ˜d™ UÔ+Ü˜ša ˜d™ UÕ+r   c           	      óô  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }t	        |«      dt	        |d d …d d d…f   «      z  z   } | j                  ||«      |«      } | j                  ||j                  «      |«      } | j                  ||j                  «      |«      }t        |j                  |«       t        |j                  |«       y )Nr$   Fr2   r0   y              ð?rO   )	r   r   r7   r8   r.   r]   Ú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Ó  2Ô&7¸º!¹T¸r¸T¸'¹
Ó&CÑ#CÑCˆà �—
‘
˜1˜aÓ  Ó&ˆØ%�—
‘
˜1˜aŸf™fÓ% dÓ+ˆØ%�—
‘
˜1˜aŸf™fÓ% dÓ+ˆä˜Ÿ
™
 EÔ*Ü˜Ÿ
™
 EÕ*r   c                 óN  — t        ddt        j                  j                  «       ¬«      }d|j                  d«      z  }d|j                  d«      z  }t	        |«      }t	        |«      } | j                  ||d|¬«      |«      }t        j                  ||z
  dz  «      }|d	k  sJ ‚y )
Nr   Fr2   r   rU   rh   rW   r$   ç-Cëâ6?)r   r   r7   r8   r!   r]   Úmean©	r_   r@   rE   r   r`   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“Ñˆä˜aÓ ˆÜ! $Ó'ˆØ;ˆt�z‰z˜!˜Q¨°FˆzÓ;¸DÓAˆä�g‰g�t˜e‘| aÑ'Ó(ˆØ�VŠ|Ð‰|r   c                 óB  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }t	        |«      }t	        |«      } | j                  ||d|¬«      |«      }t        j                  ||z
  dz  «      }|dk  sJ ‚y )Nr$   Fr2   r0   rh   rW   g-Cëâ6*?)r   r   r7   r8   r.   r]   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˜#‹ˆä˜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t        j                  ddd	«      z  }d
|j                  d«      z  }t        |«      |j                  d|d«      z   }t        |«      }	d}
|D ]U  } | j                  ||d||¬«      |«      }t        j                  t        j                  ||	z
  dz  «      «      }||k  sŒSd}
 n |
sJ ‚y )Nr   r   Fr2   gš™™™™™É?gš™™™™™¹?r&   éüÿÿÿé   r   r0   rm   )r0   rV   )rX   Ú	smoothingr@   r$   T)
r   r7   r8   r   Úlinspacer!   ro   r]   ÚsqrtrŒ   )r_   r@   rp   rE   Ú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Ó  3§:¡:¨c°5¸&Ó#AÑAˆÜ! !Ó$ˆØˆØ(ò 		ˆ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   «      }|j                  |«      }t        j                  |«      }|d	xx   dz  cc<   t        j                  d
«      }	d|	d	<    | j                  |||	¬«      |«      }
t        |
|d¬«       y )Nr   r   Fr2   r$   rU   rm   rV   r&   )rU   g     @�@©r—   r‹   r[   )r   r7   r8   r   r   ro   r   r>   ÚcopyÚzerosr]   r   )r_   rp   rE   r   r   rH   rr   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ˆØ�E‰E�+ÓˆÜŸ™ ›ˆØ�rÓ˜cÑ!ÓÜ—H‘H˜U“Oˆ	Øˆ	�"‰ØAˆt�z‰z˜!˜^°yˆzÓAÀ!ÓDˆä˜˜a dÖ+r   c                 ó’  — t        ddt        j                  j                  «       ¬«      j                  d«      }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$   Fr2   r&   r   zExpected the second axis of `x`©Úmatch)	r   r   r7   r8   r.   ÚpytestÚraisesÚ
ValueErrorr]   )r_   r    Údr   r©   s        r   Ú$test_inconsistent_x_dimensions_errorz9_TestRBFInterpolator.test_inconsistent_x_dimensions_error0  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Ô÷	 ÷ 	 ñ 	 ús   ÂB=Â=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   r1   zExpected the first axis of `d`r¨   ©r   r˜   r¤   rª   r«   r¬   r]   ©r_   r    r­   r©   s       r   Ú test_inconsistent_d_length_errorz5_TestRBFInterpolator.test_inconsistent_d_length_error:  s`   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆØ0ˆÜ�]‰]œ:¨UÔ3ñ 	Ø�J‰J�q˜!Ô÷	÷ 	ñ 	ú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   r1   z"`y` must be a 2-dimensional array.r¨   r°   r±   s       r   Útest_y_not_2d_errorz(_TestRBFInterpolator.test_y_not_2d_errorA  sW   € Ü�K‰K˜˜1˜aÓ ˆÜ�H‰H�Q‹KˆØ4ˆÜ�]‰]œ:¨UÔ3ñ 	Ø�J‰J�q˜!Ô÷	÷ 	ñ 	ú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   r1   zExpected `smoothing` to ber¨   r¢   )r   r˜   r¤   Úonesrª   r«   r¬   r]   )r_   r    r­   r—   r©   s        r   Ú(test_inconsistent_smoothing_length_errorz=_TestRBFInterpolator.test_inconsistent_smoothing_length_errorH  sq   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ—G‘G˜A“Jˆ	Ø,ˆÜ�]‰]œ:¨UÔ3ñ 	2Ø�J‰J�q˜! yˆJÔ1÷	2÷ 	2ñ 	2ú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   r1   z`kernel` must be one ofr¨   Útestrg   r°   r±   s       r   Útest_invalid_kernel_name_errorz3_TestRBFInterpolator.test_invalid_kernel_name_errorP  sd   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆØ)ˆÜ�]‰]œ:¨UÔ3ñ 	,Ø�J‰J�q˜! FˆJÔ+÷	,÷ 	,ñ 	,úó   Á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   r1   z`epsilon` must be specifiedr¨   rg   )	r   r˜   r¤   r   r   rª   r«   r¬   r]   )r_   r    r­   r@   r©   s        r   Ú test_epsilon_not_specified_errorz5_TestRBFInterpolator.test_epsilon_not_specified_errorW  s„   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ ò 	0ˆFØÔ)Ñ)Øà1ˆEÜ—‘œz°Ô7ñ 0Ø—
‘
˜1˜a¨�
Ô/÷0ð 0ñ	0÷
0ð 0ú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   r1   z"`x` must be a 2-dimensional array.r¨   r°   )r_   r    r   r­   r©   s        r   Útest_x_not_2d_errorz(_TestRBFInterpolator.test_x_not_2d_errorb  sy   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�K‰K˜˜1˜aÓ ˆÜ�H‰H�Q‹KˆØ4ˆÜ�]‰]œ:¨UÔ3ñ 	 ØˆD�J‰J�q˜!Ó˜QÔ÷	 ÷ 	 ñ 	 ú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_splinerg   r°   r±   s       r   Ú"test_not_enough_observations_errorz7_TestRBFInterpolator.test_not_enough_observations_errorj  se   € Ü�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆØ5ˆÜ�]‰]œ:¨UÔ3ñ 	9Ø�J‰J�q˜!Ð$7ˆJÔ8÷	9÷ 	9ñ 	9ú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   r1   z`degree` should not be below r¨   rV   ©rX   r@   r   )	r   r˜   r¤   r	   Úitemsrª   ÚwarnsÚWarningr]   )r_   r    r­   r@   Údegr©   s         r   Útest_degree_warningz(_TestRBFInterpolator.test_degree_warningq  s¢   € ä�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ.×4Ñ4Ó6ò 	O‰KˆF�Cà�a‹xØ7¸°uÐ=�Ü—\‘\¤'°Ô7ñ OØ—J‘J˜q !¨S¸ÈÈAÉ�JÔN÷Oð Oñ		O÷Oð Oú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   r1   rV   rO   rÄ   )r   r˜   r¤   r	   rÅ   r]   )r_   r    r­   r@   rF   s        r   Útest_minus_one_degreez*_TestRBFInterpolator.test_minus_one_degree|  s^   € ä�K‰K˜˜1˜aÓ ¢ D Ñ)ˆÜ�H‰H�Q‹KˆÜ,×2Ñ2Ó4ò 	D‰IˆF�AØ�J‰J�q˜! S°ÀˆJÕCñ	Dr   c                 ó  — t        j                  ddgddgddgg«      }t        j                  g d¢«      }d}t        j                  t        |¬«      5   | j                  ||d¬«      |«       d d d «       y # 1 sw Y   y xY w)	NrY   rm   rV   )rm   rm   rm   zdoes not have full column rankr¨   rÁ   rg   )r   r‚   rª   r«   r   r]   r±   s       r   Útest_rank_errorz$_TestRBFInterpolator.test_rank_errorƒ  su   € ô �H‰H�s˜C�j 3¨ *¨s°C¨jÐ9Ó:ˆÜ�H‰H’_Ó%ˆØ0ˆÜ�]‰]œ;¨eÔ4ñ 	<Ø8ˆD�J‰J�q˜!Ð$7ˆJÓ8¸Ô;÷	<÷ 	<ñ 	<ús   ÁA7Á7B c                 ó¶   — dD ]T  }t        j                  d|f«      }t        j                  d«      } | j                  ||d¬«      |«      }t	        ||«       ŒV y )N)r   r$   r   r   )r   Úlinearrg   )r   r¤   r¶   r]   r   )r_   Údimr    r­   Úfs        r   Útest_single_pointz&_TestRBFInterpolator.test_single_pointŒ  sW   € ð ò 	"ˆCÜ—‘˜!˜S˜Ó"ˆAÜ—‘˜“ˆAØ1�—
‘
˜1˜a¨�
Ó1°!Ó4ˆAÜ˜A˜qÕ!ñ		"r   c                 ól  — t        ddt        j                  j                  d«      ¬«      }d|j                  d«      z  }d|j                  d«      z  }t	        |«      }| j                  ||«      } ||«      } t        j                  t        j                  |«      «      |«      }t        ||d¬«       y )	Nr   Fl   eä r2   r   rU   g¼‰Ø—²Òœ<r[   )
r   r   r7   r8   r!   r]   ÚpickleÚloadsÚdumpsr   )r_   rE   r   r`   r    r   ra   rb   s           r   Útest_pickleablez$_TestRBFInterpolator.test_pickleable•  s’   € ô �Q ¬R¯Y©Y×-BÑ-BÀ:Ó-NÔOˆàˆc�j‰j˜‹nÑˆØ�—‘˜B“Ñˆä˜aÓ ˆà—‘˜A˜qÓ!ˆá�t“ˆØ2”—‘œVŸ\™\¨&Ó1Ó2°4Ó8ˆä˜˜u¨5Ö1r   N)#Ú__name__Ú
__module__Ú__qualname__rª   ÚmarkÚparametrizeÚsortedr   rc   re   r   rk   rs   Úslowr€   r…   r‰   r‘   r“   r    r¦   r®   r²   r´   r·   rº   r½   r¿   rÂ   Úthread_unsaferÉ   rË   rÍ   rÒ   r×   © r   r   rS   rS   S   s�  „ Ø‡[�[×Ñ˜X¡vÐ.>Ó'?Ó@ñ	1ó Að	1ð ‡[�[×Ñ˜X¡vÐ.>Ó'?Ó@ñ	1ó Að	1ð ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñ1ó ;ð1ò61ð, ‡[�[×Ññ1ó ð1ò>,ò$+ð" ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñó ;ðð ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñó ;ðð ‡[�[×Ñ˜X¡v¨jÓ'9Ó:ñó ;ðò6,ò& òòò2ò,ò	0ò ò9ð ‡[�[×ÑñOó ðOòDò<ò"ó2r   rS   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú TestRBFInterpolatorNeighborsNonec                 ó   — t        |i |¤ŽS ©N©r   ©r_   rx   ry   s      r   r]   z&TestRBFInterpolatorNeighborsNone.build¨  s   € Ü Ð/¨Ñ/Ð/r   c                 ó°  — t        ddt        j                  j                  «       ¬«      }d}d}d|j                  d«      z  }d|j                  d«      z  }t	        |«      } | j                  ||||¬«      |«      }t        ||«      }t        ||«      }	|	j                  t        j                  j                  ||d ¬«      d	   «      }
t        ||
d
¬«       y )Nr   Fr2   r   ç    „×—ArU   ©r   r—   ©Úrcondr   rZ   r[   )r   r   r7   r8   r!   r]   r   r>   r;   Úlstsqr   ©r_   rE   r   r—   r   r`   r    ra   rH   rq   rb   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	        |«      } | j                  ||||¬«      |«      }t        ||«      }t        ||«      }	|	j                  t        j                  j                  ||d ¬«      d	   «      }
t        ||
d
¬«       y )Nr$   Fr2   r   rè   r0   ré   rê   r   rZ   r[   )r   r   r7   r8   r.   r]   r   r>   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Ú   r]   rî   rð   rà   r   r   râ   râ   §  s   „ ò0ò1ó21r   râ   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   r]   z$TestRBFInterpolatorNeighbors20.buildà  s   € Ü Ð=¨Ñ=¸"Ò=Ð=r   c           	      óª  — t        ddt        j                  j                  «       ¬«      }|j                  d«      }|j                  d«      }t	        |«      } | j                  ||«      |«      }g }t        |«      }|D ]D  }|j                  |d«      \  }	}
|j                   t        ||
   ||
   «      |d    «      d   «       ŒF t        ||d¬«       y )	Nr$   Fr2   r0   r–   r   rZ   r[   )r   r   r7   r8   r.   r]   r   ÚqueryÚappendr   r   )r_   rE   r   r`   r    ra   rb   ÚtreeÚxirF   Ú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ˆØò 	GˆBØ—Z‘Z  BÓ'‰FˆAˆsØ�L‰LÐ8œ¨¨3©°°3±Ó8¸¸D¹ÓBÀ1ÑEÕFð	Gô 	˜˜u¨4Ö0r   c                 óú   — t        ddt        j                  j                  d«      ¬«      }|j                  d«      }|j                  d«      }t	        |«      }| j                  ||«      }d„ }t        d|||«       y )Nr$   Fr   r2   r0   c                 ó   —  ||«       y rä   rà   )rF   r   Úxps      r   Ú	worker_fnzBTestRBFInterpolatorNeighbors20.test_concurrency.<locals>.worker_fn   s	   € Ù�2�Jr   r&   )r   r   r7   r8   r.   r]   r   )r_   rE   r   r`   r    r   rÿ   s          r   Útest_concurrencyz/TestRBFInterpolatorNeighbors20.test_concurrencyõ  sj   € ô �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Ú   r]   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   r]   z%TestRBFInterpolatorNeighborsInf.build	  s   € Ü ÐA¨ÑA¼"¿&¹&ÒAÐAr   c                 ó.  — t        ddt        j                  j                  «       ¬«      }d|j                  d«      z  }d|j                  d«      z  }t	        |«      } | j                  ||«      |«      } t        ||«      |«      }t        ||d¬«       y )Nr   Fr2   r   rU   rZ   r[   )r   r   r7   r8   r!   r]   r   r   )r_   rE   r   r`   r    ra   rb   s          r   rû   zCTestRBFInterpolatorNeighborsInf.test_equivalent_to_rbf_interpolator  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Ú   r]   rû   rà   r   r   r  r    s   „ òBó
1r   r  )"rÔ   rª   Únumpyr   Únumpy.linalgr   Úscipy._lib._array_apir   Úscipy.stats.qmcr   Úscipy.spatialr   Úscipy.interpolate._rbfinterpr   r   r	   r
   r   Úscipy.interpolater   Úscipy._lib._testutilsr   r   r!   r.   rM   rÛ   rÜ   rÝ   rQ   rS   râ   rò   r  rà   r   r   ú<module>r     s    ðÛ Û Û Ý $Ý 1Ý "Ý !÷õ õ 1Ý 9ò<òò	òð> ‡�×Ñ˜¡6¨*Ó#5Ó6ñ:ó 7ð:÷Q2ñ Q2ôh
41Ð';ô 41ôn%=Ð%9ô %=ôP1Ð&Fõ 1r   