+
    ,i+@                     L    ^ RI t^ RIHt ^ RIt^ RIHt RR lt ! R R4      tR# )    N)assert_allclose)geometric_slerpc                 $   \         P                  P                  ^{4       \         P                  P                  W3R7      pV\         P                  P                  V^R7      R\         P                  3,          ,          pV^ ,          V^,          3# ){   )sizeaxis:NNN)nprandomseednormallinalgnormnewaxis)ndimn_ptspointss   && @/usr/lib/python3/dist-packages/scipy/spatial/tests/test_slerp.py_generate_spherical_pointsr      sh    
 IINN3YYE=1F
biinnV!n,Q

];;F!9fQi    c                     a  ] tR t^t o ]P
                  P                  R. R)O4      ]P
                  P                  R. R*O4      R 4       4       t]P
                  P                  R. R)O4      ]P
                  P                  R^^.4      R 4       4       t]P
                  P                  R]	P                  ! R+4      ]	P                  ! R+4      3]	P                  ! R+4      ]	P                  ! ^4      3]	P                  ! ^4      ]	P                  ! R,4      3.4      R 4       t]P
                  P                  R]	P                  ! ^4      ]	P                  ! ^4      3]	P                  ! ^4      ]	P                  ! ^4      3]	P                  ! . 4      ]	P                  ! ^4      3.4      R 4       t]P
                  P                  R]	P                  ! . 4      ]	P                  ! . 4      3.4      R 4       t]P
                  P                   ]P
                  P                  R	]	P                  ! . R-O4      ]	P                  ! . R.O4      R
3]	P                  ! . R/O4      ]	P                  ! . R.O4      R
3]	P                  ! . R0O4      ]	P                  ! . R.O4      R3.4      R 4       4       t]P
                  P                  R	]	P                  ! ^^ .4      ]	P                  ! ^ ^.4      ]	P                  ! ^^ .]	P$                  ! ^4      ^,          R.R]	P$                  ! ^4      ^,          .^ ^..4      3]	P                  ! . R1O4      ]	P                  ! . R2O4      ]	P                  ! . R1O]	P$                  ! ^4      ^,          R^ .R]	P$                  ! ^4      ^,          ^ .. R2O.4      3]	P                  ! . R3O4      ]	P                  ! . R4O4      ]	P                  ! . R3O]	P$                  ! ^4      ^,          R^ ^ ^ .R]	P$                  ! ^4      ^,          ^ ^ ^ .. R4O.4      3.4      R 4       t]P
                  P                  R]	P(                  ! R5^R4      ]	P(                  ! R6R^4      .4      R 4       t]P
                  P                  R]	P                  ! ^.4      ]	P                  ! ^ .4      3]	P                  ! ^ .4      ]	P                  ! ^.4      3]	P                  ! R7.4      ]	P                  ! R.4      3.4      R 4       t]P
                  P                  R^R. R8O]	P                  ! R4      .4      R 4       t]P
                  P                  RR9R:.4      R 4       t]P
                  P                  R]	P                  ! ^^ .4      ]	P                  ! ^ ^ .4      3]	P                  ! . R;O4      ]	P                  ! . R<O4      3]	P                  ! . R=O4      ]	P                  ! . R>O4      3.4      R 4       t]P
                  P                  R]	P                  ! ^^ .4      ]	P                  ! ]	P$                  ! ^4      R,          ]	P$                  ! ^4      R,          .4      3]	P                  ! ^^ .4      ]	P                  ! ]	P$                  ! ^4      ) R,          ]	P$                  ! ^4      R,          .4      3.4      ]P
                  P                  R]	P(                  ]	P4                  .4      R 4       4       t]P
                  P                  RR.4      R 4       tR  tR! t]P
                  P                  R"]	P                  ! . R1O4      ]	P                  ! ^ ^.4      .4      ]P
                  P                  R]	P                  ! ^4      ]	P                  ! ^.4      ]	P                  ! ^..4      ]	P                  ! ^...4      ]	P                  ! . 4      ]	P(                  ! ^ ^^4      .4      R# 4       4       t]P
                  P                  R$]	P4                  ! R?R@^
4      4      R% 4       t ]P
                  P                  R^ R..^ R..........4      R& 4       t!R't"V t#R(# )ATestGeometricSlerpn_dimsr   c           	         \        V^4      w  r4\        VV\        P                  ! ^ ^V4      R7      pVP                  W!38X  g   Q hR# )   startendtN)r   r   r
   linspaceshapeselfr   r   r   r   actuals   &&&   r   test_shape_property&TestGeometricSlerp.test_shape_property   sG     0:
 u%(#%;;q!U#;= ||...r   c           	         \        V^4      w  r4\        VV\        P                  ! ^ ^V4      R7      p\	        V^ ,          V4       \	        VR,          V4       R# )r   r   N)r   r   r
   r    r   r"   s   &&&   r   test_include_ends$TestGeometricSlerp.test_include_ends$   sO     0:
 u%(#%;;q!U#;= 	q	5)r
C(r   z
start, endc                    \         P                  ! \        R R7      ;_uu_ 4        \        VV\        P
                  ! ^ ^^
4      R7       RRR4       R#   + '       g   i     R# ; i)zone-dimensionalmatchr   Npytestraises
ValueErrorr   r
   r    r#   r   r   s   &&&r   test_input_shape_flat(TestGeometricSlerp.test_input_shape_flat9   sC     ]]:->??% # kk!Q35 @???   %AA%	c                    \         P                  ! \        R R7      ;_uu_ 4        \        VV\        P
                  ! ^ ^^
4      R7       RRR4       R#   + '       g   i     R# ; i)
dimensionsr,   r   Nr.   r2   s   &&&r   test_input_dim_mismatch*TestGeometricSlerp.test_input_dim_mismatchI   sA     ]]:\::% # kk!Q35 ;:::r5   c                    \         P                  ! \        R R7      ;_uu_ 4        \        VV\        P
                  ! ^ ^^
4      R7       RRR4       R#   + '       g   i     R# ; izat least two-dimr,   r   Nr.   r2   s   &&&r   test_input_at_least1d(TestGeometricSlerp.test_input_at_least1dZ   sC     ]]:-?@@% # kk!Q35 A@@@r5   zstart, end, expectedwarningsuccessc                |   VR 8X  dS   \         P                  ! \        RR7      ;_uu_ 4        \        VV\        P
                  ! ^ ^^
4      R7      pRRR4       M$\        VV\        P
                  ! ^ ^^
4      R7      p\        \        P                  P                  X^R7      R4       R#   + '       g   i     L=; i)r>   	antipodesr,   r   Nr         ?)	r/   warnsUserWarningr   r
   r    r   r   r   )r#   r   r   expectedress   &&&& r   test_handle_antipodes(TestGeometricSlerp.test_handle_antipodesg   s    6 y k==%E*-(*Aq"(=? >=
 "&)$&KK1b$9;C 			s3S9 >=s   %B++B;	      ?c           	     h    \        VV\        P                  ! ^ ^^4      R7      p\        WCRR7       R# )r   r   缉ؗҜ<atolN)r   r
   r    r   )r#   r   r   rE   r$   s   &&&& r   test_straightforward_examples0TestGeometricSlerp.test_straightforward_examples   s0    D !u%(#%;;q!Q#79 	u5r   r   i,  g-C6?c           	         \         P                  ! \        R R7      ;_uu_ 4        \        \        P
                  ! ^^ .4      \        P
                  ! ^ ^.4      VR7      pRRR4       R#   + '       g   i     R# ; i)zinterpolation parameterr,   r   Nr/   r0   r1   r   r
   arrayr#   r   _s   && r   test_t_values_limits'TestGeometricSlerp.test_t_values_limits   sR     ]]:-FGGbhh1v&6$&HHaV$4"#%A HGGGs   ;A**A;	g̼d@c                    \         P                  ! \        R R7      ;_uu_ 4        \        VV\        P
                  ! ^ ^^4      R7      pRRR4       R#   + '       g   i     R# ; ir;   r.   )r#   r   r   rT   s   &&& r   test_0_sphere_handling)TestGeometricSlerp.test_0_sphere_handling   sE     ]]:-?@@e$'"$++aA"68A A@@@r5   tol7g      "@c                *   \         P                  ! \        R R7      ;_uu_ 4        \        \        P
                  ! ^^ .4      \        P
                  ! ^ ^.4      \        P                  ! ^ ^^4      VR7      pRRR4       R#   + '       g   i     R# ; i)zmust be a floatr,   r   r   r   rZ   N)r/   r0   r1   r   r
   rR   r    r#   rZ   rT   s   && r   test_tol_type TestGeometricSlerp.test_tol_type   sb     ]]:->??bhh1v&6$&HHaV$4"$++aA"6$')A @???s   ABB	c           	         \        \        P                  ! ^^ .4      \        P                  ! ^ ^.4      \        P                  ! ^ ^^4      VR7      pR# )   r]   N)r   r
   rR   r    r^   s   && r   test_tol_sign TestGeometricSlerp.test_tol_sign   s@     "((Aq6"2 "!Q 0 kk!Q2 #%r   c                    \         P                  ! \        R R7      ;_uu_ 4        \        VV\        P
                  ! ^ ^^4      R7       RRR4       R#   + '       g   i     R# ; i)zunit n-spherer,   r   Nr.   r2   s   &&&r   test_unit_sphere_enforcement/TestGeometricSlerp.test_unit_sphere_enforcement   sA      ]]:_==% # kk!Q24 >===r5   g       @t_funcc                   ^p\         P                  P                  R4       V! ^ ^
V4      pWUP                  4       ,          p\         P                  ! V4      p\         P
                  ! V4      p\         P                  P                  V4       VP                  4       V,          p\        VVVR7      p	\        VVVR7      p
\        VVVR7      p\        V	\         P                  ! V
4      4       \        W,          V4       R# )   i  r   N)
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_handling&TestGeometricSlerp.test_order_handling  s    ( 

		s2z2,,..>299Z0
		*+(--/0@A).1,:< *.1,:< ,%03.=?
 	?)CD9)	+r   z15, 5, 7c                    \         P                  ! \        4      ;_uu_ 4        \        \        P
                  ! ^.4      \        P
                  ! ^ .4      VR7      pRRR4       R#   + '       g   i     R# ; i)rb   r   NrQ   rS   s   && r   test_t_values_conversion+TestGeometricSlerp.test_t_values_conversion5  sH     ]]:&&bhhsm$&HHaSM"#%A '&&&s   9A&&A7	c           	        \        ^^ .^ ^.. RO4      p\        P                  ! ^^ .\        P                  ! ^4      ^,          R.\        P                  ! ^4      ^,          \        P                  ! ^4      ^,          .R\        P                  ! ^4      ^,          .^ ^..\        P                  R7      p\        WRR7       R# )rb   rI   dtyperK   rL   N)r   gUUUUUU?rI   gUUUUUU?rb   )r   r
   rR   sqrtfloat64r   r#   r$   rE   s   &  r   test_accept_arraylike(TestGeometricSlerp.test_accept_arraylikeB  s     !!Q!Q1FG
 88aV ggaj1nc2 ggaj1n ggaj1n.!2771:>2V%
 -/JJ8 	u5r   c                    \        ^^ .^ ^.R4      p\        P                  ! \        P                  ! ^4      ^,          \        P                  ! ^4      ^,          .\        P                  R7      pVP
                  R8X  g   Q h\        W4       R# )rb   rI   r~   N)r   )r   r
   rR   r   r   r!   r   r   s   &  r   test_scalar_t TestGeometricSlerp.test_scalar_tV  sl     !!Q!Q588RWWQZ!^WWQZ!^-46JJ@||t###)r   r   c                   \         P                  ! V4      P                  ^8  d;   \        P                  ! \
        4      ;_uu_ 4        \        WVR7       RRR4       R# VP                  3VP                  ,           p\         P                  ! W14      p\        WVR7      p\        WT4       \        WRRR1,          VR7      pVP                  VP                  8X  g   Q hR#   + '       g   i     R# ; i)rb   r   Nr(   )r
   asarrayr   r/   r0   r1   r   r   r!   fullr   )r#   r   r   r!   rE   r$   non_degenerates   &&&    r   test_degenerate_input(TestGeometricSlerp.test_degenerate_input`  s     ::a=!z**e!< +* VVI+Ewwu,H$5qAFF- -5DbDkQON;;."5"5555 +**s   C""C3	kc                   \         P                  V,
          p\         P                  ! ^ ^^d4      p\         P                  ! . RO4      p\         P                  ! \         P                  ! V4      \         P
                  ! V4      ^ ^ .4      p\         P                  P                  4       ;_uu_ 4       pVP                  \        4       \        WEVR4      p\         P                  P                  V^R7      p\         P                  ! \         P                  ! V^,
          4      4      p	V	R8  g   Q h RRR4       R#   + '       g   i     R# ; i)r   gC]r2<r   gV瞯<N)rb   r   r   r   )r
   pir    rR   cossintestingsuppress_warningsfilterrD   r   r   r   rk   abs)
r#   r   angletsPQsupresultnormserrors
   &&        r   test_numerical_stability_pi.TestGeometricSlerp.test_numerical_stability_pi}  s    
 	[[As#HH\"HHbffUmRVVE]Aq9: ZZ))++sJJ{#$Q2u5FIINN6N2EFF266%!),-E5= = ,+++s   0A>D99E
	c                   \         P                  ! ^ ^.4      p\         P                  ! ^^ .4      p\        P                  ! \        4      ;_uu_ 4        \        VVVR7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        VVVR7       RRR4       R#   + '       g   i     LK; i  + '       g   i     R# ; i)r   r   N)r
   rR   r/   r0   r1   r   )r#   r   arr1arr2s   &&  r   test_interpolation_param_ndim0TestGeometricSlerp.test_interpolation_param_ndim  s     xxAxxA]]:&&$ $! '
 ]]:&&$ $! '& '&
 '&&s   B%B8%B5	8C		 N)r            	   )r   r      )rb   r   )r   rb   )r   r   rB   )r   r   g      )        gԬ3ODgkꚛ?)r   g{tOgx?)rb   r   r   )r   rb   r   )rb   r   r   r   r   )r   rb   r   r   r   ig-C6g333331)r      r   gh㈵ԾgƜC)zo ?r   r   )r   !?r   )r   r   r   r   )r   r   r   r   ir(   )$__name__
__module____qualname____firstlineno__r/   markparametrizer%   r)   r
   zerosonesr3   rR   r8   r<   thread_unsaferG   r   rN   r    rU   rX   r_   rc   rf   logspacerx   r{   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     [[X7[[Wj1
/ 2 8
/ [[X7[[Wq"g.) / 8)& [[\	&	2776?+	&	2771:&	!bggfo&,
 55 [[\	!bggaj!	!bggaj!	"rwwqz",
 55 [[\	"rxx|$,
 5	5 [[[[3 
+	 6	B 
 " 
#$&HH\$:I	G 
 " 
#$&HH\$:I	G%6
 ,:- .:& [[3 
1a&		1a&		Aq6GGAJNC(a(q6 
	 
)		)		9GGAJNC+a+ 
	  
/	"	/	"	?GGAJNCAq1aAq1"$ 
%	&+6 :6;:6 [[S
CS!
GVR(	#
 %% [[\	1#	1#		1#	1#		5'		5'		, 88 [[U	288C=%
 )) [[U%
 %	% [[\ 
1a&	288QF+, 
"	#	"	#	% 
%	&	%	&	(,
 44 [[\	1a&		2771:?771:?$ 
%	& 
1a&		BGGAJ;#771:?$ 
%	&	,
 	 [[X
R[[(" #+#	+B [[S#
 %%6(* [[W

!Q'  [[S

!
1#
A3%

Aq!# 6	6" [[S"++c2r":;! <!$ [[S#hZXJ<.	# !	!r   r   )r   r   )	numpyr
   numpy.testingr   r/   scipy.spatialr   r   r   r   r   r   <module>r      s"     )  ) N! N!r   