Ë
    âQ(h+@  ã                   óH   — d dl Zd dlmZ d dlZd dlmZ dd„Z G d„ d«      Zy)é    N)Úassert_allclose)Úgeometric_slerpc                 ó
  — t         j                  j                  d«       t         j                  j                  || f¬«      }|t         j                  j                  |d¬«      d d …t         j                  f   z  }|d   |d   fS )Né{   )Úsizeé   ©Úaxisr   )ÚnpÚrandomÚseedÚnormalÚlinalgÚnormÚnewaxis)ÚndimÚn_ptsÚpointss      ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/spatial/tests/test_slerp.pyÚ_generate_spherical_pointsr      sj   € ô
 ‡I�I‡N�N�3ÔÜ�Y‰Y×Ñ E¨4 =ÐÓ1€FØ
Œb�i‰i�n‰n˜V¨!ˆnÓ,ªQ´·
±
¨]Ñ;Ñ;€FØ�!‰9�f˜Q‘iÐÐó    c                   óN  — e Zd Zej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       Zej                  j                  dg d¢«      ej                  j                  dddg«      d„ «       «       Zej                  j                  d	 ej                  d
«       ej                  d
«      f ej                  d
«       ej                  d«      f ej                  d«       ej                  d«      fg«      d„ «       Zej                  j                  d	 ej                  d«       ej                  d«      f ej                  d«       ej                  d«      f ej                  g «       ej                  d«      fg«      d„ «       Zej                  j                  d	 ej                  g «       ej                  g «      fg«      d„ «       Zej                  j                  ej                  j                  d ej                  g d¢«       ej                  g d¢«      df ej                  g d¢«       ej                  g d¢«      df ej                  g d¢«       ej                  g d¢«      dfg«      d„ «       «       Zej                  j                  d ej                  ddg«       ej                  ddg«       ej                  ddg ej"                  d«      dz  dgd ej"                  d«      dz  gddgg«      f ej                  g d¢«       ej                  g d¢«       ej                  g d¢ ej"                  d«      dz  ddgd ej"                  d«      dz  dgg d¢g«      f ej                  g d¢«       ej                  g d¢«       ej                  g d¢ ej"                  d«      dz  ddddgd ej"                  d«      dz  dddgg d¢g«      fg«      d „ «       Zej                  j                  d! ej&                  d"d#d$«       ej&                  d%d&d«      g«      d'„ «       Zej                  j                  d	 ej                  dg«       ej                  dg«      f ej                  dg«       ej                  dg«      f ej                  d(g«       ej                  d)g«      fg«      d*„ «       Zej                  j                  d+d,d-g d.¢ ej                  d/«      g«      d0„ «       Zej                  j                  d+d1d2g«      d3„ «       Zej                  j                  d	 ej                  ddg«       ej                  ddg«      f ej                  g d4¢«       ej                  g d5¢«      f ej                  g d6¢«       ej                  g d7¢«      fg«      d8„ «       Zej                  j                  d	 ej                  ddg«       ej                   ej"                  d«      d9z   ej"                  d«      d9z  g«      f ej                  ddg«       ej                   ej"                  d«       d9z   ej"                  d«      d9z  g«      fg«      ej                  j                  d:ej&                  ej2                  g«      d;„ «       «       Zej                  j                  d!d<g«      d=„ «       Zd>„ Zd?„ Zej                  j                  d@ ej                  g d¢«       ej                  ddg«      g«      ej                  j                  d! ej                  d«       ej                  dg«       ej                  dgg«       ej                  dggg«       ej                  g «       ej&                  ddd,«      g«      dA„ «       «       Zej                  j                  dB ej2                  dCdDdE«      «      dF„ «       Zej                  j                  d!ddggddgggggggggg«      dG„ «       Z yH)IÚTestGeometricSlerpÚn_dims)é   é   é   é   é	   r   )r   r   é   c           	      óŽ   — t        |d«      \  }}t        ||t        j                  dd|«      ¬«      }|j                  ||fk(  sJ ‚y )Nr   r   r   ©ÚstartÚendÚt)r   r   r   ÚlinspaceÚshape©Úselfr   r   r#   r$   Úactuals         r   Útest_shape_propertyz&TestGeometricSlerp.test_shape_property   sK   € ô 0°¸Ó:‰
ˆˆsä  uØ%(Ü#%§;¡;¨q°!°UÓ#;ô=ˆð �|‰|  v˜Ò.Ð.Ñ.r   r   r    c           	      ó¤   — t        |d«      \  }}t        ||t        j                  dd|«      ¬«      }t	        |d   |«       t	        |d   |«       y )Nr   r   r   r"   éÿÿÿÿ)r   r   r   r&   r   r(   s         r   Útest_include_endsz$TestGeometricSlerp.test_include_ends$   sQ   € ô 0°¸Ó:‰
ˆˆsä  uØ%(Ü#%§;¡;¨q°!°UÓ#;ô=ˆô 	˜˜q™	 5Ô)Ü˜˜r™
 CÕ(r   z
start, end)r   r   r   )r   r   c           
      óª   — t        j                  t        d¬«      5  t        ||t	        j
                  ddd«      ¬«       d d d «       y # 1 sw Y   y xY w)Nzone-dimensional©Úmatchr   r   é
   r"   ©ÚpytestÚraisesÚ
ValueErrorr   r   r&   ©r)   r#   r$   s      r   Útest_input_shape_flatz(TestGeometricSlerp.test_input_shape_flat9   sE   € ô �]‰]œ:Ð->Ô?ñ 	5Ü %Ø #Ü Ÿk™k¨!¨Q°Ó3õ5÷	5÷ 	5ñ 	5úó   œ$A	Á	Ar   r   c           
      óª   — t        j                  t        d¬«      5  t        ||t	        j
                  ddd«      ¬«       d d d «       y # 1 sw Y   y xY w)NÚ
dimensionsr0   r   r   r2   r"   r3   r7   s      r   Útest_input_dim_mismatchz*TestGeometricSlerp.test_input_dim_mismatchI   sD   € ô �]‰]œ:¨\Ô:ñ 	5Ü %Ø #Ü Ÿk™k¨!¨Q°Ó3õ5÷	5÷ 	5ñ 	5úr9   c           
      óª   — t        j                  t        d¬«      5  t        ||t	        j
                  ddd«      ¬«       d d d «       y # 1 sw Y   y xY w)Núat least two-dimr0   r   r   r2   r"   r3   r7   s      r   Útest_input_at_least1dz(TestGeometricSlerp.test_input_at_least1dZ   sE   € ô �]‰]œ:Ð-?Ô@ñ 	5Ü %Ø #Ü Ÿk™k¨!¨Q°Ó3õ5÷	5÷ 	5ñ 	5úr9   zstart, end, expected)r   r   ç      ð?)r   r   g      ð¿Úwarning)ç        gÔ¬3OD¿gkêš›ÿÿï?)rB   gè¾ÿ{tO¿gx¤€ÿÿï?Úsuccessc           
      óR  — |dk(  rHt        j                  t        d¬«      5  t        ||t	        j
                  ddd«      ¬«      }d d d «       n#t        ||t	        j
                  ddd«      ¬«      }t        t        j                  j                  d¬«      d	«       y # 1 sw Y   Œ5xY w)
NrA   Ú	antipodesr0   r   r   r2   r"   r	   r@   )	r4   ÚwarnsÚUserWarningr   r   r&   r   r   r   )r)   r#   r$   ÚexpectedÚress        r   Útest_handle_antipodesz(TestGeometricSlerp.test_handle_antipodesg   s‘   € ð6 �yÒ Ü—‘œk°Ô=ñ ?Ü%¨EØ*-Ü(*¯©°A°q¸"Ó(=ô?�÷?ð ?ô
 "¨Ø&)Ü$&§K¡K°°1°bÓ$9ô;ˆCô 	œŸ	™	Ÿ™ s°˜Ó3°SÕ9÷?ð ?ús   ¡$BÂB&r   ç      à?)r   r   r   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   c           	      óf   — t        ||t        j                  ddd«      ¬«      }t        ||d¬«       y )Nr   r   é   r"   ç¼‰Ø—²Òœ<©Úatol)r   r   r&   r   )r)   r#   r$   rH   r*   s        r   Útest_straightforward_examplesz0TestGeometricSlerp.test_straightforward_examples‘   s2   € ôD ! uØ%(Ü#%§;¡;¨q°!°QÓ#7ô9ˆô 	˜ ¨uÖ5r   r%   iìÿÿÿé   i,  g-Cëâ6¿g-Cëâ6?c                 óÔ   — t        j                  t        d¬«      5  t        t	        j
                  ddg«      t	        j
                  ddg«      |¬«      }d d d «       y # 1 sw Y   y xY w)Nzinterpolation parameterr0   r   r   r"   ©r4   r5   r6   r   r   Úarray©r)   r%   Ú_s      r   Útest_t_values_limitsz'TestGeometricSlerp.test_t_values_limits¸   sT   € ô �]‰]œ:Ð-FÔGñ 	%Ü¤b§h¡h°°1¨vÓ&6Ü$&§H¡H¨a°¨VÓ$4Ø"#ô%ˆA÷	%÷ 	%ñ 	%ús   œ9AÁA'g33333³1ÀgÍÌÌÌÌ¼d@c           
      óª   — t        j                  t        d¬«      5  t        ||t	        j
                  ddd«      ¬«      }d d d «       y # 1 sw Y   y xY w)Nr>   r0   r   r   rM   r"   r3   )r)   r#   r$   rW   s       r   Útest_0_sphere_handlingz)TestGeometricSlerp.test_0_sphere_handlingÆ   sG   € ô �]‰]œ:Ð-?Ô@ñ 	8Ü eØ$'Ü"$§+¡+¨a°°AÓ"6ô8ˆA÷	8÷ 	8ñ 	8úr9   Útolr   Ú7)r   é   r   g      "@c           
      ó   — t        j                  t        d¬«      5  t        t	        j
                  ddg«      t	        j
                  ddg«      t	        j                  ddd«      |¬«      }d d d «       y # 1 sw Y   y xY w)Nzmust be a floatr0   r   r   r   ©r#   r$   r%   r[   )r4   r5   r6   r   r   rU   r&   ©r)   r[   rW   s      r   Útest_tol_typez TestGeometricSlerp.test_tol_typeÖ   sd   € ô �]‰]œ:Ð->Ô?ñ 	)Ü¤b§h¡h°°1¨vÓ&6Ü$&§H¡H¨a°¨VÓ$4Ü"$§+¡+¨a°°AÓ"6Ø$'ô)ˆA÷	)÷ 	)ñ 	)ús   œAA4Á4A=gñhãˆµøÔ¾gÆœÞC¾c           	      ó    — t        t        j                  ddg«      t        j                  ddg«      t        j                  ddd«      |¬«      }y )Nr   r   r   r_   )r   r   rU   r&   r`   s      r   Útest_tol_signz TestGeometricSlerp.test_tol_signç   s@   € ô ¤"§(¡(¨A¨q¨6Ó"2Ü "§¡¨!¨Q¨Ó 0Ü Ÿk™k¨!¨Q°Ó2Ø #ô%‰r   )çzo ð?r   r   )r   çé!çýÿï?r   )rd   r   r   r   )r   re   r   r   c           
      óª   — t        j                  t        d¬«      5  t        ||t	        j
                  ddd«      ¬«       d d d «       y # 1 sw Y   y xY w)Nzunit n-spherer0   r   r   r   r"   r3   r7   s      r   Útest_unit_sphere_enforcementz/TestGeometricSlerp.test_unit_sphere_enforcementó   sD   € ô  �]‰]œ:¨_Ô=ñ 	4Ü %Ø #Ü Ÿk™k¨!¨Q°Ó2õ4÷	4÷ 	4ñ 	4úr9   g       @Út_funcc                 óè  — d}t         j                  j                  d«        |dd|«      }||j                  «       z  }t        j                  |«      }t        j
                  |«      }t         j                  j                  |«       |j                  «       |   }t        |||¬«      }	t        |||¬«      }
t        |||¬«      }t        |	t        j                  |
«      «       t        |	|   |«       y )NrR   i  r   r2   r"   )
r   r   r   ÚmaxÚflipudÚarangeÚshuffleÚcopyr   r   )r)   r#   r$   rh   Ú
num_t_valsÚforward_t_valsÚreverse_t_valsÚshuffled_indicesÚscramble_t_valsÚforward_resultsÚreverse_resultsÚscrambled_resultss               r   Útest_order_handlingz&TestGeometricSlerp.test_order_handling  sá   € ð( ˆ
Ü
�	‰	�‰�sÔÙ  2 zÓ2ˆà˜.×,Ñ,Ó.Ñ.ˆÜŸ™ >Ó2ˆÜŸ9™9 ZÓ0ÐÜ
�	‰	×ÑÐ*Ô+Ø(×-Ñ-Ó/Ð0@ÑAˆä)°Ø.1Ø,:ô<ˆô *°Ø.1Ø,:ô<ˆô ,°%Ø03Ø.=ô?Ðô
 	˜¬¯©°?Ó)CÔDÜ˜Ð(8Ñ9Ø)õ	+r   z15, 5, 7c                 óÌ   — t        j                  t        «      5  t        t	        j
                  dg«      t	        j
                  dg«      |¬«      }d d d «       y # 1 sw Y   y xY w)Nr   r   r"   rT   rV   s      r   Útest_t_values_conversionz+TestGeometricSlerp.test_t_values_conversion5  sK   € ô �]‰]œ:Ó&ñ 	%Ü¤b§h¡h°¨s£mÜ$&§H¡H¨a¨S£MØ"#ô%ˆA÷	%÷ 	%ñ 	%ús   š7AÁA#c           	      ó^  — t        ddgddgg d¢«      }t        j                  ddgt        j                  d«      dz  dgt        j                  d«      dz  t        j                  d«      dz  gdt        j                  d«      dz  gddggt        j                  ¬«      }t        ||d¬	«       y )
Nr   r   )r   gUUUUUUÕ?rK   gUUUUUUå?r   r   r   rK   ©ÚdtyperN   rO   )r   r   rU   ÚsqrtÚfloat64r   ©r)   r*   rH   s      r   Útest_accept_arraylikez(TestGeometricSlerp.test_accept_arraylikeB  sŸ   € ô ! ! Q ¨!¨Q¨Ò1FÓGˆô
 —8‘8˜a ˜VÜ Ÿg™g a›j¨1™n¨cÐ2Ü Ÿg™g a›j¨1™nÜ Ÿg™g a›j¨1™nð.à!¤2§7¡7¨1£:°¡>Ð2Ø ˜Vð%ô
 -/¯J©Jô8ˆô 	˜ ¨uÖ5r   c                 ó  — t        ddgddgd«      }t        j                  t        j                  d«      dz  t        j                  d«      dz  gt        j                  ¬«      }|j
                  dk(  sJ ‚t        ||«       y )Nr   r   rK   r   r{   )r   )r   r   rU   r}   r~   r'   r   r   s      r   Útest_scalar_tz TestGeometricSlerp.test_scalar_tV  sn   € ô ! ! Q ¨!¨Q¨°Ó5ˆÜ—8‘8œRŸW™W Q›Z¨!™^ÜŸW™W Q›Z¨!™^ð-Ü46·J±Jô@ˆà�|‰|˜tÒ#Ð#Ð#Ü˜ Õ)r   r#   c                 ó´  — t        j                  |«      j                  dkD  r1t        j                  t
        «      5  t        |||¬«       d d d «       y |j                  f|j                  z   }t        j                  ||«      }t        |||¬«      }t        ||«       t        ||d d d…   |¬«      }|j                  |j                  k(  sJ ‚y # 1 sw Y   y xY w)Nr   r"   r-   )r   Úasarrayr   r4   r5   r6   r   r   r'   Úfullr   )r)   r#   r%   r'   rH   r*   Únon_degenerates          r   Útest_degenerate_inputz(TestGeometricSlerp.test_degenerate_input`  sº   € ô �:‰:�a‹=×Ñ Ò!Ü—‘œzÓ*ñ =Ü e°¸!Õ<÷=ð =ð —V‘V�I §¡Ñ+ˆEÜ—w‘w˜u eÓ,ˆHä$¨5°e¸qÔAˆFÜ˜F HÔ-ô -°5¸eÁDÀbÀD¹kÈQÔOˆNØ—;‘; .×"5Ñ"5Ò5Ð5Ñ5÷=ð =ús   ¼CÃCÚkiöÿÿÿr-   r2   c                 óX  — t         j                  |z
  }t        j                  ddd«      }t        j                  g d¢«      }t        j                  t        j                  |«      t        j
                  |«      ddg«      }t         j                  j                  «       5 }|j                  t        «       t        |||d«      }t         j                  j                  |d¬«      }t        j                  t        j                  |dz
  «      «      }	|	dk  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr   r   éd   )r   r   r   r   g¬CÒÑ]r2<r	   gVçž¯ò<)r   Úpir&   rU   ÚcosÚsinÚtestingÚsuppress_warningsÚfilterrG   r   r   r   rj   Úabs)
r)   rˆ   ÚangleÚtsÚPÚQÚsupÚresultÚnormsÚerrors
             r   Útest_numerical_stability_piz.TestGeometricSlerp.test_numerical_stability_pi}  sÚ   € ô
 —‘˜‘	ˆÜ�[‰[˜˜A˜sÓ#ˆÜ�H‰H’\Ó"ˆÜ�H‰H”b—f‘f˜U“m¤R§V¡V¨E£]°A°qÐ9Ó:ˆô �Z‰Z×)Ñ)Ó+ð 	!¨sØ�J‰J”{Ô#Ü$ Q¨¨2¨uÓ5ˆFÜ—I‘I—N‘N 6°�NÓ2ˆEÜ—F‘Fœ2Ÿ6™6 %¨!¡)Ó,Ó-ˆEØ˜5’=Ð ‘=÷	!÷ 	!ñ 	!ús   ÂA7D Ä D)c                 óP  — t        j                  ddg«      }t        j                  ddg«      }t        j                  t        «      5  t        |||¬«       d d d «       t        j                  t        «      5  t        |||¬«       d d d «       y # 1 sw Y   Œ:xY w# 1 sw Y   y xY w)Nr   r   r"   )r   rU   r4   r5   r6   r   )r)   r%   Úarr1Úarr2s       r   Útest_interpolation_param_ndimz0TestGeometricSlerp.test_interpolation_param_ndim�  s‘   € ô �x‰x˜˜A˜ÓˆÜ�x‰x˜˜A˜Óˆä�]‰]œ:Ó&ñ 	!Ü $Ø $Øõ!÷	!ô
 �]‰]œ:Ó&ñ 	!Ü $Ø $Øõ!÷	!ð 	!÷	!ð 	!ú÷
	!ð 	!ús   ÁBÁ8BÂBÂB%N)!Ú__name__Ú
__module__Ú__qualname__r4   ÚmarkÚparametrizer+   r.   r   ÚzerosÚonesr8   rU   r<   r?   Úthread_unsaferJ   r}   rQ   r&   rX   rZ   ra   rc   rg   Úlogspacerw   ry   r€   r‚   r‡   rš   rž   © r   r   r   r      s`  „ ð ‡[�[×Ñ˜X¢Ó7Ø‡[�[×Ñ˜W¢jÓ1ñ
/ó 2ó 8ð
/ð ‡[�[×Ñ˜X¢Ó7Ø‡[�[×Ñ˜W q¨" gÓ.ñ)ó /ó 8ð)ð& ‡[�[×Ñ˜\à	ˆ�‰�&Ó	˜7˜2Ÿ7™7 6›?Ð+à	ˆ�‰�&Ó	˜7˜2Ÿ7™7 1›:Ð&à	ˆ�‰�!‹�g�b—g‘g˜f“oÐ&ð,
ó ñ5óð5ð ‡[�[×Ñ˜\à	ˆ�‰�!‹�g�b—g‘g˜a“jÐ!à	ˆ�‰�!‹�g�b—g‘g˜a“jÐ!à	ˆ�‰�"‹�w�r—w‘w˜q“zÐ"ð,
ó ñ5óð5ð ‡[�[×Ñ˜\à	ˆ�‰�"‹�x�r—x‘x “|Ð$ð,
ó ñ5ó	ð5ð ‡[�[×ÑØ‡[�[×ÑÐ3ð 
ˆ�‰’+Ó	  §¡ªÓ 6¸	ÐBð 
ˆ�‰ò "ó 
#à$, B§H¡Hª\Ó$:¸Ið	Gð 
ˆ�‰ò "ó 
#à$, B§H¡Hª\Ó$:¸Ið	Gð%6
ó ñ,:ó-ó ð.:ð& ‡[�[×ÑÐ3ð 
ˆ�‰�1�a�&Ó	Ø	ˆ�‰�1�a�&Ó	Ø	ˆ�‰�A�q�6Ø�B—G‘G˜A“J ‘N CÐ(Ø˜˜Ÿ™ › a™Ð(Ø�q�6ðó 
ð	ð 
ˆ�‰’)Ó	Ø	ˆ�‰’)Ó	Ø	ˆ�‰’9Ø�B—G‘G˜A“J ‘N C¨Ð+Ø˜˜Ÿ™ › a™¨Ð+Úðó 
ð	 ð 
ˆ�‰’/Ó	"Ø	ˆ�‰’/Ó	"Ø	ˆ�‰’?Ø�B—G‘G˜A“J ‘N C¨¨A¨qÐ1Ø˜˜Ÿ™ › a™¨¨A¨qÐ1Ú"ð$ó 
%ð	&ð+6ó ñ:6ó;ð:6ð ‡[�[×Ñ˜Sàˆ�‰�C˜˜SÓ!àˆ�‰�G˜V RÓ(ð	#
ó ñ%óð%ð ‡[�[×Ñ˜\Ø	ˆ�‰�1�#‹Ø	ˆ�‰�1�#‹ð	à	ˆ�‰�1�#‹Ø	ˆ�‰�1�#‹ð	à	ˆ�‰�5�'Ó	Ø	ˆ�‰�5�'Ó	ð	ð,ó ñ8óð8ð ‡[�[×Ñ˜Uà	àâ�8�2—8‘8˜C“=ð%
ó ñ)óð)ð ‡[�[×Ñ˜UØØð%
ó ñ%ó	ð%ð ‡[�[×Ñ˜\ð 
ˆ�‰�1�a�&Ó	˜8˜2Ÿ8™8 Q¨ FÓ+Ð,ð 
ˆ�‰Ò"Ó	#Ø	ˆ�‰Ò"Ó	#ð	%ð 
ˆ�‰Ò%Ó	&Ø	ˆ�‰Ò%Ó	&ð	(ð,
ó ñ4óð4ð ‡[�[×Ñ˜\à	ˆ�‰�1�a�&Ó	Ø	ˆ�‰�7�2—7‘7˜1“: ‘?Ø�2—7‘7˜1“: ‘?ð$ó 
%ð	&ð 
ˆ�‰�1�a�&Ó	Ø	ˆ�‰�G�B—G‘G˜A“J�; Ñ#Ø�2—7‘7˜1“: ‘?ð$ó 
%ð	&ð	,
ó 	ð ‡[�[×Ñ˜XØ
�‰�R—[‘[ð("ó #ñ+ó#ó	ð+ðB ‡[�[×Ñ˜Sàð#
ó ñ%óð%ò6ò(*ð ‡[�[×Ñ˜WØˆ�‰’ÓØˆ�‰�!�Q�Óð'ó ð ‡[�[×Ñ˜SØˆ�‰�‹Øˆ�‰�!�‹Øˆ�‰�1�#�‹Øˆ�‰�A�3�%�ÓØˆ�‰�‹Øˆ�‰�A�q˜!Óð#ó ñ6óó	ð6ð" ‡[�[×Ñ˜S + "§+¡+¨c°2°rÓ":Ó;ñ!ó <ð!ð$ ‡[�[×Ñ˜SØˆ#€h€ZØ�ˆXˆJˆ<ˆ.Ð	ÐÐÐÐð#ó ñ!ó	ñ!r   r   )r   r   )	Únumpyr   Únumpy.testingr   r4   Úscipy.spatialr   r   r   r¨   r   r   ú<module>r¬      s"   ðÛ Ý )ã Ý )ó ÷N!ò N!r   