Ë
    âQ(h+  ã                   ó>  — d dl Zd dlmZmZ d dlZd dlmZ d dlm	Z	m
Z
mZmZ d dlmZ ej                  j!                  de
eeg«      Zej                  j!                  dd«      Zej                  j!                  d	d
«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    N)Úxp_assert_equalÚxp_assert_close)Úraises)ÚgriddataÚNearestNDInterpolatorÚLinearNDInterpolatorÚCloughTocher2DInterpolator)Ú_run_concurrent_barrierÚinterpolatorÚmethod)ÚnearestÚlinearÚcubicÚrescale)TFc                   óÀ   — e Zd Zd„ Zeed„ «       «       Zeed„ «       «       Zeed„ «       «       Zeed„ «       «       Z	ed„ «       Z
d„ Zed„ «       Zed	„ «       Ze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       úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_ndgriddata.pyÚtest_fill_valuezTestGriddata.test_fill_value   sO   € Ú!ˆÚˆä�a˜Ò1¸bÔAˆÜ˜šLÔ)ä�a˜Ò1Ó2ˆÜ˜œRŸV™V¤R§V¡V¨QÐ/Õ0ó    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   }t        ||f«      }t        |d d …df   |d d …df   f||d d …df   |d d …df   f||¬«      }t        ||d|¬«       y ©N©r   )ç      à¿r)   )r)   ç      à?)r*   r*   )g      Ð?g333333Ó?©Údtyper   r   ©r   r   ç›+¡†›„=©Ú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¼   € ô �H‰HÒNÜŸ:™:ô'ˆä�Y‰Y�q—w‘w˜q‘z¬¯©Ô4²Q°t°VÑ<Ü�x‰x˜˜1˜‹˜t¢A˜vÑ&ñ'ˆô �F˜GÐ$Ó%ˆÜ�qš˜1˜‘v˜q¢ 1 ™vÐ&¨¨Aªa°¨c©F°A²a¸°c±FÐ+;ÀFØ%ô'ˆä˜˜2 E°3Ö7r%   c                 óZ  — 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   }t        ||f«      }t        |||||¬«      }t        ||d|¬«       y r'   r2   r8   s          r#   Útest_multivalue_2dzTestGriddata.test_multivalue_2d4   s�   € ô �H‰HÒNÜŸ:™:ô'ˆä�Y‰Y�q—w‘w˜q‘z¬¯©Ô4²Q°t°VÑ<Ü�x‰x˜˜1˜‹˜t¢A˜vÑ&ñ'ˆô �F˜GÐ$Ó%ˆÜ�a˜˜A f°gÔ>ˆÜ˜˜2 E°3Ö7r%   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   }t        ||f«      }t        |||||¬«      }|j                  dk(  sJ |«       ‚t        |t        j                  |d d …d f   d«      d|¬	«       y )
Nr(   r+   r   ©r   r   r   r-   ©é   r   ©r   r   r.   r/   ©	r   r3   r4   r5   r6   r7   r   r   Útile©r   r   r   r    r!   Úxir9   r"   s           r#   Útest_multipoint_2dzTestGriddata.test_multipoint_2d@   s¼   € ô �H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆàŠq�’aˆx‰[œ2Ÿ8™8¢GÓ,¨T²!°D¨[Ñ9Ñ9ˆä�F˜GÐ$Ó%ˆÜ�a˜˜B v°wÔ?ˆà�x‰x˜6Ò!Ð& 3Ó&Ð!Ü˜œBŸG™G A¢a¨ f¡I¨vÓ6Ø"¨Cö	1r%   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   }t        ||f«      }t        |||||¬«      }|j                  dk(  sJ ‚t        |t        j                  |d d …d f   d	«      d
|¬«       y )Nr(   r+   r   ù               @r   r>   r-   r?   rA   r.   r/   rB   rD   s           r#   Útest_complex_2dzTestGriddata.test_complex_2dP   sÌ   € ô �H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘T�r�T‘7‘
‰NˆàŠq�’aˆx‰[œ2Ÿ8™8¢GÓ,¨T²!°D¨[Ñ9Ñ9ˆä�F˜GÐ$Ó%ˆÜ�a˜˜B v°wÔ?ˆà�x‰x˜6Ò!Ð!Ð!Ü˜œBŸG™G A¢a¨ f¡I¨vÓ6Ø"¨Cö	1r%   c                 ó,  — t        j                  g d¢«      }t        j                  g d¢«      }t        t        ||||¬«      ||d¬«       t        t        |j	                  dd«      |||¬«      ||d¬«       t        t        |f||f|¬«      ||d¬«       y )N©r   ç      @r   ç      @r@   é   ©r   r   r   g333333@r   r   ©r   r.   ©r1   r0   rN   r   ©r   r3   r   r   Úreshape©r   r   r    r!   s       r#   Útest_1dzTestGriddata.test_1da   ó‚   € ä�H‰HÒ+Ó,ˆÜ�H‰HÒ)Ó*ˆäœ  A q°Ô8¸!Ø &¨Uõ	4äœ §¡¨1¨a£°!°Q¸vÔFÈØ &¨Uõ	4äœ !  q¨1¨$°vÔ>ÀØ &¨Uö	4r%   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 )NrK   rO   çÍÌÌÌÌÌì?g      @ç      ð?r   rP   r.   rQ   rN   r   rR   )r   r    r!   rE   Ú	yi_shouldr   s         r#   Útest_1d_borderszTestGriddata.test_1d_bordersm   sÀ   € ô �H‰HÒ+Ó,ˆÜ�H‰HÒ)Ó*ˆÜ�X‰X�s˜C�jÓ!ˆÜ—H‘H˜c 3˜ZÓ(ˆ	àˆÜœ  A rØ(.ô0Ø1:Ø &Ø"õ	$ô 	œ §¡¨1¨a£°!°RØ(.ô0Ø1:Ø &Ø"õ	$ô 	œ ! ¨¨B¨6Ø(.ô0Ø1:Ø &Ø"ö	$r%   c                 ó,  — t        j                  g d¢«      }t        j                  g d¢«      }t        t        ||||¬«      ||d¬«       t        t        |j	                  dd«      |||¬«      ||d¬«       t        t        |f||f|¬«      ||d¬«       y )N)rL   r   rM   r@   rN   r   rO   rP   g»½×Ùß|Û=rQ   rN   r   rR   rT   s       r#   Útest_1d_unsortedzTestGriddata.test_1d_unsortedƒ   rV   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                  «       }|}t        |||t        j                  dd	g«      z  |¬
«      }	t        ||||d¬«      }
t        |	|
|d¬«       y )N)r   )r   éd   )é
   r_   )r`   r   )r   r@   r+   )r   r   r   r   )çš™™™™™¹?gš™™™™™©?)rY   ç       @g      Àg      @g      "@r   r`   é   r_   g      Y@rP   Tr-   gê-�™—q=rQ   )
r   r3   r4   Úbroadcast_arraysÚlinspaceÚravelÚTÚcopyr   r   )r   r   ÚpointsÚpoints_rescaledÚvaluesÚxxÚyyrE   r9   ÚziÚzi_rescaleds              r#   Útest_square_rescale_manualz'TestGriddata.test_square_rescale_manual�   s  € ä—‘ÒDÌBÏJÉJÔWˆÜŸ(™(Ò#LÜ)+¯©ô5ˆä—‘Ò/´r·z±zÔBˆä×$Ñ$¤R§[¡[°°B¸Ó%;ºA¸d¸FÑ%CÜ%'§[¡[°°C¸Ó%<¸TÂ!¸VÑ%DóF‰ˆˆBà�X‰X‹ZˆØ�X‰X‹ZˆÜ�X‰X�r˜2�hÓ×!Ñ!×&Ñ&Ó(ˆàˆÜ�o v¨r´"·(±(¸BÀ¸:Ó2FÑ/FØ#ô%ˆä˜v v¨r¸&Ø'+ô-ˆä˜˜K°Ø"ö	$r%   c                 ó$  — t        j                  g d¢t         j                  ¬«      }t        j                  |j                  d   t         j                  ¬«      }|d|d d d…   z  z
  }t        j                  ddg«      }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   rH   r   r*   rP   )r1   )r*   r*   r*   )	r   r3   r4   r5   r6   r   r   Úassert_raisesÚ
ValueError)	r   r   r    r!   rE   Úp1Úp2Úxi1Úxi3s	            r#   Ú
test_xi_1dzTestGriddata.test_xi_1d¤   sÚ   € ô �H‰HÒNÜŸ:™:ô'ˆä�I‰I�a—g‘g˜a‘j¬¯
©
Ô3ˆØ��1‘T�r�T‘7‘
‰Nˆä�X‰X�s˜C�jÓ!ˆä�a˜˜B vÔ.ˆÜ�a˜˜B˜t¢A˜v™J¨vÔ6ˆÜ˜˜B¨Õ/ä�h‰h˜�u‹oˆÜ�h‰h’Ó'ˆÜ”j¤(¨A¨q°#Ø#õ	%ä”j¤(¨A¨q°#Ø#ö	%r%   N)Ú__name__Ú
__module__Ú__qualname__r$   Úparametrize_methodsÚparametrize_rescaler:   r<   rF   rI   rU   r[   r]   rp   rx   © r%   r#   r   r      sÌ   „ ò1ð Øñ	8ó ó ð	8ð Øñ8ó ó ð8ð Øñ1ó ó ð1ð Øñ1ó ó ð1ð ñ	4ó ð	4ò$ð, ñ	4ó ð	4ð ñ$ó ð$ð( ñ%ó ñ%r%   r   c                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  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_optionsr.   )r0   )r   r5   rS   r   r   )r   ÚnptsÚndr    r!   ÚnndiÚoptsÚnndi_os           r#   Útest_nearest_optionsz.TestNearestNDInterpolator.test_nearest_options»   sq   € à‰ˆˆbÜ�I‰I�d˜2‘gÓ×&Ñ&¨¨b zÓ2ˆÜ�I‰I�d‹OˆÜ$ 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   ra   rX   ç        rb   )r   r3   r   r   Úlist)r   r‡   ÚdÚNIs       r#   Útest_nearest_list_argumentz4TestNearestNDInterpolator.test_nearest_list_argumentÆ   s©   € Ü�X‰XÒ,Ú,Ú,ð.ó /ˆð Šq�!‘"ˆu‰Iˆô # A a¡D¨!¨A©$ <°°1±Ó6ˆÜ™˜C ˜:¨¨S zÓ2°S¸#°JÔ?ô # A a¡D¨!¨A©$ <´°a¸±d³Ó<ˆÜ™˜C ˜:¨¨S zÓ2°S¸#°JÕ?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   ra   r   r   r   gH¯¼šò×z>)Údistance_upper_bound)r”   Úpr�   rb   )r   r3   r   Úsqrtr   r   Úinf)r   r‡   ÚdeltaÚquery_pointsr�   r”   r•   s          r#   Útest_nearest_query_optionsz4TestNearestNDInterpolator.test_nearest_query_optionsÔ   s.  € Ü�X‰X’~Ú%Ú#ð%ó &ˆð ˆØ˜E™	 1 u¡9Ð-°°E±	¸1¸u¹9Ð/EÐEˆô # B q¡E¨2¨a©5 >°2°a±5Ó9ˆÜ!Ÿw™w u°¡z°E¸Q±JÑ'>Ó?À$ÑFÐÜ™˜<Ð>RÔSÜŸF™F¤B§F¡FÐ+ô	-ô  "Ÿw™w u°¡z°E¸Q±JÑ'>Ó?À$ÑFÐÜ�F‰FˆÜÙˆ|Ð2FÈ!ÔLØ�#ˆJô	
ô  "Ÿw™w u°¡z°E¸Q±JÑ'>Ó?À$ÑFÐÜÙˆ|Ð2FÔGØ�#ˆJõ	
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   r3   r   rr   Ú	TypeError)r   r‡   r�   s      r#   Útest_nearest_query_valid_inputsz9TestNearestNDInterpolator.test_nearest_query_valid_inputsñ   sg   € Ü�X‰X’|Ú#Ú#ð%ó &ˆô # B q¡E¨2¨a©5 >°2°a±5Ó9ˆÜœ9Ó%ñ 	=Ù��SˆzÐ);Õ<÷	=÷ 	=ñ 	=ús   ÁAÁA$c                 óÈ   ‡— d\  }}t        j                  ||z  «      j                  ||f«      Št        j                  |«      }t        ‰|«      }ˆfd„}t	        d||«       y )N)é2   r   c                 ó   •—  |‰«       y )Nr~   )Ú_Úsplr    s     €r#   Ú	worker_fnz=TestNearestNDInterpolator.test_concurrency.<locals>.worker_fn   s
   ø€ Ù��Fr%   r`   )r   r5   rS   r   r
   )r   r†   r‡   r!   rˆ   r¤   r    s         @r#   Útest_concurrencyz*TestNearestNDInterpolator.test_concurrencyù   sY   ø€ à‰ˆˆbÜ�I‰I�d˜R‘iÓ ×(Ñ(¨$°¨Ó4ˆÜ�I‰I�d‹OˆÜ$ Q¨Ó*ˆô	ô 	   I¨tÕ4r%   N)ry   rz   r{   r‹   r‘   rš   rž   ÚpytestÚmarkÚthread_unsafer¥   r~   r%   r#   r€   r€   º   s5   „ ò	8ò@ò
ò:=ð ‡[�[×Ññ	5ó ñ	5r%   r€   c                   ó,   — e Zd Zed„ «       Zed„ «       Zy)ÚTestNDInterpolatorsc                 ó.  — t         j                  j                  d«      }|j                  d«      }|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«      }|
j                  |j                  cxk(  r0|j                  cxk(  r |j                  cxk(  r|j                  k(  sJ ‚ J ‚y )Nr   r`   r�   )r   ÚrandomÚRandomStateÚhypotre   ÚminÚmaxÚmeshgridÚvstackrf   rg   rŽ   ÚzipÚsize)r   r   Úrngr    r!   ÚzÚXÚYÚXYÚinterpÚinterp_points0Úinterp_points1Úinterp_points2Úinterp_points3Úinterp_points4s                  r#   Útest_broadcastable_inputz,TestNDInterpolators.test_broadcastable_input  sU  € ô �i‰i×#Ñ# AÓ&ˆØ�J‰J�r‹NˆØ�J‰J�r‹NˆÜ�H‰H�Q˜‹Nˆô �K‰Kœ˜A›¤ A£Ó'ˆÜ�K‰Kœ˜A›¤ A£Ó'ˆÜ�{‰{˜1˜aÓ ‰ˆˆ1Ü�Y‰Y˜Ÿ™›	 1§7¡7£9Ð-Ó.×0Ñ0ˆÙœd¤3 q¨!£9›o¨qÓ1ˆá ›ˆá  A ›ˆÙ  C Ó)ˆá  1›ˆÙ  3›ˆà×#Ñ#Ø×#Ñ#ô$à×#Ñ#ô$ð ×#Ñ#ô$ð ×#Ñ#ò	$ð 	%ñ $ð 	%ñ $r%   c                 ód  — t         j                  j                  d«      }|j                  d«      }|d d …df   |d d …df   }}t        j                  ||«      }|j                  d«      }|j	                  d¬«       |j	                  d¬«       |j	                  d¬«        |||«      } ||«       y )Nr   )r`   r   r   )r    r   F)Úwrite)r   r¬   r­   r®   Úsetflags)	r   r   rµ   Úxyr    r!   r¶   r¹   rº   s	            r#   Útest_read_onlyz"TestNDInterpolators.test_read_only$  s›   € ô �i‰i×#Ñ# AÓ&ˆØ�Z‰Z˜Ó ˆØ’!�Q�$‰x˜šA˜q˜D™ˆ1ˆÜ�H‰H�Q˜‹Nˆð �Z‰Z˜Ó ˆà
�‰˜%ˆÔ Ø	�
‰
˜ˆ
ÔØ
�‰˜%ˆÔ á˜b !Ó$ˆÙˆr�
r%   N)ry   rz   r{   Úparametrize_interpolatorsrÀ   rÅ   r~   r%   r#   rª   rª     s(   „ Øñ%ó ð%ð8 ñó ñr%   rª   )Únumpyr   Úscipy._lib._array_apir   r   r¦   r   rr   Úscipy.interpolater   r   r   r	   Úscipy._lib._testutilsr
   r§   ÚparametrizerÆ   r|   r}   r   r€   rª   r~   r%   r#   ú<module>rÌ      sª   ðÛ ÷ó Ý *÷;ó ;õ :ð #ŸK™K×3Ñ3ØÐ*Ð,@Ø/ð1óÐ ð —k‘k×-Ñ-ØØ"óÐ ð —k‘k×-Ñ-ØØóÐ ÷[%ñ [%÷|I5ñ I5÷X.ò .r%   