L i+@HddlZddlmZddlZddlmZddZGddZy)N)assert_allclose)geometric_slerpc tjjdtjj||f}|tjj |dddtj fz}|d|dfS)N{)sizeaxisr)nprandomseednormallinalgnormnewaxis)ndimn_ptspointss d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/spatial/tests/test_slerp.py_generate_spherical_pointsrsj IINN3 YY  E4=  1F biinnV!n,Q ];;F !9fQi cNeZdZejj dgdejj dgddZejj dgdejj dddgdZejj d ejd ejd fejd ejdfejd ejd fgd Z ejj d ejdejdfejdejd fejgejdfgdZ ejj d ejgejgfgdZejjejj dejgdejgddfejgdejgddfejgdejgddfgdZejj dejd dgejdd gejd dgej"ddz dgdej"ddz gdd ggfejgdejgdejgdej"ddz ddgdej"ddz dggdgfejgdejgdejgdej"ddz ddddgdej"ddz dddggdgfgd Zejj d!ej&d"d#d$ej&d%d&dgd'Zejj d ejd gejdgfejdgejd gfejd(gejd)gfgd*Zejj d+d,d-gd.ejd/gd0Zejj d+d1d2gd3Zejj d ejd dgejddgfejgd4ejgd5fejgd6ejgd7fgd8Zejj d ejd dgejej"dd9z ej"dd9z gfejd dgejej"d d9z ej"dd9z gfgejj d:ej&ej2gd;Zejj d!dZd?Zejj d@ejgdejdd ggejj d!ejd ejd gejd ggejd gggejgej&dd d,gdAZejj dBej2dCdDdEdFZejj d!ddggddggggggggggdGZ yH)ITestGeometricSlerpn_dims) r)rrc t|d\}}t||tjdd|}|j||fk(sJy)Nrrrstartendt)rrr linspaceshapeselfrrr#r$actuals rtest_shape_propertyz&TestGeometricSlerp.test_shape_propertysK 0: s u%(#%;;q!U#;=||v...rrr c t|d\}}t||tjdd|}t |d|t |d|y)Nrrrr")rrr r&rr(s rtest_include_endsz$TestGeometricSlerp.test_include_ends$sQ0: s u%(#%;;q!U#;= q 5)r C(rz start, end)rrr)rrc tjtd5t||t j ddddddy#1swYyxYw)Nzone-dimensionalmatchrr r"pytestraises ValueErrorrr r&r)r#r$s rtest_input_shape_flatz(TestGeometricSlerp.test_input_shape_flat9sE]]:-> ? 5 % # kk!Q3 5 5 5 5 $A  Arrc tjtd5t||t j ddddddy#1swYyxYw)N dimensionsr0rrr2r"r3r7s rtest_input_dim_mismatchz*TestGeometricSlerp.test_input_dim_mismatchIsD]]:\ : 5 % # kk!Q3 5 5 5 5r9c tjtd5t||t j ddddddy#1swYyxYw)Nat least two-dimr0rrr2r"r3r7s rtest_input_at_least1dz(TestGeometricSlerp.test_input_at_least1dZsE]]:-? @ 5 % # kk!Q3 5 5 5 5r9zstart, end, expected)rr?)rrgwarning)gԬ3ODgkꚛ?)rBg{tOgx?successc R|dk(rHtjtd5t||t j ddd}dddn#t||t j ddd}t tjjdd y#1swY5xYw) NrA antipodesr0rrr2r"r r@) r4warns UserWarningrr r&rrr)r)r#r$expectedress rtest_handle_antipodesz(TestGeometricSlerp.test_handle_antipodesgs6 y k= ?%E*-(* Aq"(=? ? ? "&)$&KK1b$9;C  s3S9 ? ?s $BB&r?)rrr)rrr)rrrrr)rrrrrc ft||tjddd}t||dy)Nrrr"缉ؗҜ<atol)rr r&r)r)r#r$rHr*s rtest_straightforward_examplesz0TestGeometricSlerp.test_straightforward_exampless2D!u%(#%;;q!Q#79 u5rr%ii,g-C6g-C6?ctjtd5tt j ddgt j ddg|}dddy#1swYyxYw)Nzinterpolation parameterr0rrr"r4r5r6rr arrayr)r%_s rtest_t_values_limitsz'TestGeometricSlerp.test_t_values_limitssT]]:-F G %bhh1v&6$&HHaV$4"#%A % % %s 9AA'g333331g̼d@c tjtd5t||t j ddd}dddy#1swYyxYw)Nr>r0rrrMr"r3)r)r#r$rWs rtest_0_sphere_handlingz)TestGeometricSlerp.test_0_sphere_handlingsG]]:-? @ 8e$'"$++aA"68A 8 8 8r9tolr7)rrg"@c tjtd5tt j ddgt j ddgt j ddd|}dddy#1swYyxYw)Nzmust be a floatr0rrrr#r$r%r[)r4r5r6rr rUr&r)r[rWs r test_tol_typez TestGeometricSlerp.test_tol_typesd]]:-> ? )bhh1v&6$&HHaV$4"$++aA"6$')A ) ) )s AA44A=gh㈵ԾgƜC c ttjddgtjddgtjddd|}y)Nrrrr_)rr rUr&r`s r test_tol_signz TestGeometricSlerp.test_tol_signs@ "((Aq6"2 "!Q 0 kk!Q2 # %r) zo ?rr)r !?r)rdrrr)rrerrc tjtd5t||t j ddddddy#1swYyxYw)Nz unit n-spherer0rrrr"r3r7s rtest_unit_sphere_enforcementz/TestGeometricSlerp.test_unit_sphere_enforcementsD ]]:_ = 4 % # kk!Q2 4 4 4 4r9g@t_funccd}tjjd|dd|}||jz}tj|}tj |}tjj ||j|}t|||} t|||} t|||} t| tj| t| || y)NrRirr2r") r r r maxflipudarangeshufflecopyrr) r)r#r$rh num_t_valsforward_t_valsreverse_t_valsshuffled_indicesscramble_t_valsforward_resultsreverse_resultsscrambled_resultss rtest_order_handlingz&TestGeometricSlerp.test_order_handlings(  s2z2.,,..>299Z0 *+(--/0@A).1,:<*.1,:<,%03.=? ?)CD(89) +rz15, 5, 7ctjt5tt j dgt j dg|}dddy#1swYyxYw)Nrrr"rTrVs rtest_t_values_conversionz+TestGeometricSlerp.test_t_values_conversion5sK]]: & %bhhsm$&HHaSM"#%A % % %s 7AA#c ^tddgddggd}tjddgtjddz dgtjddz tjddz gdtjddz gddggtj}t ||d y) Nrr)rgUUUUUU?rKgUUUUUU?rrrrKdtyperNrO)rr rUsqrtfloat64rr)r*rHs rtest_accept_arraylikez(TestGeometricSlerp.test_accept_arraylikeBs!!Q!Q1FG 88aV ggaj1nc2 ggaj1n ggaj1n.!2771:>2V % -/JJ 8 u5rctddgddgd}tjtjddz tjddz gtj}|j dk(sJt ||y)NrrrKrr{)r)rr rUr}r~r'rrs r test_scalar_tz TestGeometricSlerp.test_scalar_tVsn!!Q!Q588RWWQZ!^WWQZ!^-46JJ@||t###)rr#ctj|jdkDr1tjt 5t |||dddy|jf|jz}tj||}t |||}t||t ||ddd|}|j|jk(sJy#1swYyxYw)Nrr"r-) r asarrayrr4r5r6rrr'fullr)r)r#r%r'rHr*non_degenerates rtest_degenerate_inputz(TestGeometricSlerp.test_degenerate_input`s ::a=   !z* =e!< = =VVI +Ewwue,H$5eqAF FH --5eDbDkQON;;."5"55 55 = =s CCkir-r2cXtj|z }tjddd}tjgd}tjtj|tj |ddg}tj j5}|jtt|||d}tjj|d}tjtj|dz } | dksJ dddy#1swYyxYw)Nrrd)rrrrgC]r2rs") ) N!N!r