L im dZddlZddlmZmZddlmZmZmZm Z m Z ddl m Z ddl mZddlZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#ejHjJdZ&y)z Test functions for rbf module N)assert_array_almost_equalassert_almost_equal)linspacesincosexpallclose)Rbf)_run_concurrent_barrier multiquadriczinverse multiquadricgaussiancubicquinticz thin-platelinearctddd}t|}t|||}||}t||t |t |d|ddy)Nr functionF)check_0d)rrr rrfloat)rxyrbfyis f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_rbf.pycheck_rbf1d_interpolationrsW2aA AA aX &C QBa$E!A$K(!A$?cDtjjd}|jdddzdz }|jdddzdz }|t |dz d|dzzz z}t |||d|}|||}|j |_t||y)N2?epsilonrnprandom RandomStaterandrr shaper)rrngrrzrzis rcheck_rbf2d_interpolationr2s ))   %C AqA AqA #q!teBq!tGm A aAq8 4C QBwwBHa$rcrtjjd}|jdddzdz }|jdddzdz }|jdddzdz }|t |dz |dzz z}t ||||d|}||||}|j |_t||y)Nr!r"r#r$r%r'r))rr/rrr0drdis rcheck_rbf3d_interpolationr6)s ))   %C QAA QAA QAA #q!teadl A aAq!h 7C Q1BwwBHb!$rc\tD]#}t|t|t|%yN) FUNCTIONSrr2r6rs rtest_rbf_interpolationr:6s),!(+!(+!(+,rctddd}t|}t|}tj||gj }t |||d}||}t||t|t|d|dy)NrrrN-Drmode) rrrr*vstackTr rrr)rry0y1rrrs rcheck_2drbf1d_interpolationrC=sxBA QB QB 2r(A aXE 2C QBa$E!A$K(!A$/rctjjd}|jddzdz }|jddzdz }|t |dz d|dzzz z}|t |dz d|dzzz z}tj ||gj }t|||d|d}|||}|j|_t||y)Nr!r"r$r%r&r<r(rr> r*r+r,r-rr?r@r r.r) rr/rrz0z1r0rr1s rcheck_2drbf2d_interpolationrIIs ))   %C QA QA S!q&2Q;& ' 'B S!q&2Q;& ' 'B 2r(A aAq8% @C QBwwBHa$rc tjjd}|jddzdz }|jddzdz }|jddzdz }|t |dz |dzz z}|t |dz |dzz z}tj ||gj }t||||d|d}||||} |j| _t| |y)Nr!r"r$r%r<rErF) rr/rrr0d0d1r4rr5s rcheck_2drbf3d_interpolationrMWs ))   %C QA QA QA S!q&16! " "B S!q&16! " "B 2r(A aAq!hU CC Q1BwwBHb!$rc\tD]#}t|t|t|%yr8)r9rCrIrMrs rtest_2drbf_interpolationrOfs).#H-#H-#H-.rctddd}t|}t|||}tddd}||}dt|t|z j d}t |t||sJ|y) Nrrrrd abs-diff: fatol)rrr absmaxr )rrUrrrxirmsgs rcheck_rbf1d_regularityrZms BA AA aX &C !R B RB s2B<(,,.q1 2C BBd +0S0 +rcfdddddddd}tD]}t||j|d yNg?g333333?g?r g{Gz?)r9rZget tolerancesrs rtest_rbf_regularityr`ysF $JIx$)GHIrc tddd}t|}t|}tj||gj }t |||d}tddd}||}dt|tjt|t|gj z jd} t|tjt|t|gj | sJ| y) Nrrrr<r=rQrRrSrT) rrrr*r?r@r rVrWr ) rrUrrArBrrrXrrYs rcheck_2drbf1d_regularityrbs BA QB QB 2r(A aXE 2C !R B RB s2 3r7CG*< = ? ??@DDFqI JC B 3r7CG"4577d CHSH Crcfdddddddd}tD]}t||j|d yr\)r9rbr]r^s rtest_2drbf_regularityrdsF $JK :>>(D+IJKrctjjd}tjddd}|d|j t |zz}t |||}tjddd}||}tj||z jtj||z jz dksJy) Nr!rrr"g@rig?) r*r+r,rrandnlenr rVrW)rr/rr0rrXrs rcheck_rbf1d_stabilityrhs ))   %C Ar2A C#))CF# ##A aX &C QD !B RB 66"R%=   !!2 2S 88 8rc0tD] }t|yr8)r9rhrs rtest_rbf_stabilityrjs(h'(rcttddd}t|}t||}||}t||y)Nrrrrrr r)rrrrs rtest_default_constructionrms9 2aA AA a)C QBa$rc~tddd}t|}d}t|||}||}t||y)Nrrrc|Sr8)rs rlinfuncz*test_function_is_callable..linfuncsrrrl)rrrqrrs rtest_function_is_callablerrs?2aA AA aW %C QBa$rc~d}tddd}t|}t|||}||}t||y)Nc |j|zSr8r()selfrs r_funcz0test_two_arg_function_is_callable.._funcs||arrrrrrl)rxrrrrs r!test_two_arg_function_is_callablerysA  2aA AA aU #C QBa$rcPtddd}t|}t||dy)Nrrrru)rrr )rrs rtest_rbf_epsilon_noner{s%BA AA1drc\gd}gd}gd}t|||d}|jdkDsJy)N)r#r%)r$r$r$)rur)r r()rrr0rs rtest_rbf_epsilon_none_collinearrs3 AAA aAt $C ;;??rctddd}t|}t|}tj||gj }t ||d}d}td|||y)NrrrQr<)r>c||yr8rp)_interpxps r worker_fnz'test_rbf_concurrency..worker_fns r r)rrrr*r?r@r r )rrArBrrrs rtest_rbf_concurrencyrs]BA QB QB 2r(A a CB 32r)'__doc__numpyr*scipy._lib._array_apirrrrrrr scipy.interpolate._rbfr scipy._lib._testutilsr pytestr9rr2r6r:rCrIrMrOrZr`rbrdrhrjrmrrryr{rmark thread_unsaferrprrrs%P33&9  9 @ % %, 0 % %. 1 I I K9 ( %% %  3 3r