L iJ>ddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z mZmZmZmZddlmZddlmZd Zd Zd Zd Zej4j7d ee dZGddZGddeZGddeZ GddeZ!y)N) LinAlgError)xp_assert_close)Halton)cKDTree) _AVAILABLE_SCALE_INVARIANT_NAME_TO_MIN_DEGREE_monomial_powersRBFInterpolator)_rbfinterp_pythran)_run_concurrent_barrierc`t|jd|}tj||S)N)r shaper _polynomial_matrix)xdegreepowerss l/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_rbfinterp.py _vandermonders+aggaj& 1F  0 0F ;;c|dddf}dtj| dtjd|zzz dtjd|zzzz}|S)Nrg ףp= @npexp)rys r_1d_test_functionr!sT !Q$A bffaRj1RVVBqD\>)AbffRTlN:;A Hrc|dddf|dddf}}dtjd|zdz dz dz d|zdz dzdz z z}dtjd|zdzdz dz d|zdzdz z z}d tjd|zd z dz dz d|zd z dzdz z z}d tjd|zdz dz d|zd z dzz z}||z|z|z}|S) Nrrg? r1 g?rgɿr)rx1x2term1term2term3term4r s r_2d_test_functionr.sq!tWa1gB 266AbDFQ;,q.AbDFQ;q=89 9E 266AbDFQ;,r/QrT!VRK78 8E "&&1R46A+a1R46A+a-78 8E 266AbDFQ;,!B$q&145 5E  %A Hrc^d}d}dD]}t|dtjj}t |D]}d|j|zdz }t j ||}t||dz } tjj| d \} } | dd| jddf} | jj|j| } tjj| y #tjj$rYywxYw) Nr&d)rr$rrFscrambleseedr$rcomplete)modeT)rrrandom RandomStateranger _kernel_matrixrlinalgqrrTdotcholeskyr)kernelmnxntestsndimseq_rAPQRQ2Bs r#_is_conditionally_positive_definiterM+s B FTE 0E0E0GHv A#**R. 1$A"11!V"B #A  ""1%  ( 99((  s%D  D,+D,r@cRtj|ddz}t||sJy)Nr)r getrM)r@rAs r$test_conditionally_positive_definiterQJs+ +a/A .vq 99 9rceZdZejj deedZejj deedZ ejj dee dZ dZ ejjdZdZdZejj dee d Zejj dee d Zejj dee d Zd Zd ZdZdZdZdZdZdZdZejj:dZdZdZ dZ!dZ"y)_TestRBFInterpolatorr@cFtddtjj}d|jdz}t |}d|jdz}|j ||d||}|j ||d||}t ||d y) NrFr2r2?epsilonr@@:0yE>atol)rrr7r8r!buildrselfr@rErr xitpyitp1yitp2s rtest_scale_invariance_1dz-_TestRBFInterpolator.test_scale_invariance_1dTsQRYY-B-B-DE cjjn  a B< 1aV r]r) r_rngrErrr`rHPitp poly_coeffsr rarbs rtest_polynomial_reproductionz1_TestRBFInterpolator.test_polynomial_reproductionsii##A&QS1 JJrNzz"~ F #D&)jjc1771:6 EE+ %/ 1a /5u40rctjjd}tdd|}d}d}|jd}|j|}t ||}t ||} |j dd |j d } |j| } | j| } |j|| | } | jfd }|j| d || |}t| |dy)Nrr$Fr2ri rUrmrVrrnc8|jd|i|S)Nr0) memory_budget)update)argskwargsce_reals r_chunk_evaluatorz<_TestRBFInterpolator.test_chunking.._chunk_evaluators! MMM ,D+F+ +rr{rZr[) rr7r8rrrorr>r]r{setattrr)r_ monkeypatchrprErlargeNrr`rHrqrrr rainterpr{rbrzs @r test_chunkingz"_TestRBFInterpolator.test_chunkings ii##A&QS1 JJrNzz&! F #D&)jjc1771:6 EE+ %Aq0)) , F$68HIt u40rc tddtjj}|jd}|jd}tjt |t |dddddfgj }|j|||}|j||dddf|}|j||dddf|}t|dddf|t|dddf|y)Nr$Fr2r0rOrr) rrr7r8arrayr.r=r]rr_rErr`r rarbyitp3s rtest_vector_dataz%_TestRBFInterpolator.test_vector_datasQRYY-B-B-DE JJsOzz# HH'*'!TrT' 35 667a ! 1a && 1a1g&t,& 1a1g&t,ad U+ad U+rc tddtjj}|jd}|jd}t |dt |dddddfzz}|j |||}|j ||j |}|j ||j|}t|j |t|j|y)Nr$Fr2r0y?rO) rrr7r8r.r]realimagrrs rtest_complex_dataz&_TestRBFInterpolator.test_complex_datasQRYY-B-B-DE JJsOzz# a 2&7!TrT' &C#C C  1a &% 1aff%d+% 1aff%d+ E* E*rcNtddtjj}d|jdz}d|jdz}t |}t |}|j ||d||}tj ||z dz}|d ksJy) NrFr2rrUrhrWr$-C6?)rrr7r8r!r]mean r_r@rErr`r ytrueyitpmses rtest_interpolation_misfit_1dz1_TestRBFInterpolator.test_interpolation_misfit_1dsQRYY-B-B-DE cjjn B a !$';tzz!QFz;DAggte|a'(V||rcBtddtjj}|jd}|jd}t |}t |}|j ||d||}tj ||z dz}|dksJy)Nr$Fr2r0rhrWg-C6*?)rrr7r8r.r]rrs rtest_interpolation_misfit_2dz1_TestRBFInterpolator.test_interpolation_misfit_2dsQRYY-B-B-DE JJsOzz# a !$';tzz!QFz;DAggte|a'(V||rc tjjd}tdd|}d}d}dtjddd z}d |jd z}t ||j d |d z}t |} d} |D]U} |j||d| ||} tjtj| | z dz} | |ksSd} n| sJy)NrrFr2g?g?r&rr0rm)r0rV)rX smoothingr@r$T) rr7r8rlinspacer!ror]sqrtr)r_r@rprEnoisermse_tolsmoothing_rangerr rrmse_within_tolrysmoothrmses rtest_smoothing_misfitz*_TestRBFInterpolator.test_smoothing_misfitsii##A&QS1bkk"a44 cjjo  a 3::c5&#A A!!$( Idjj1# ! ! "G 77277GeOa#789Dh"& rctjjd}tdd|}d}|jd}t ||}|j dd|j d}|j|}tj|}|d xxdz cc<tjd } d | d <|j||| |} t| |d y)NrrFr2r$rUrmrVr&)rUg@@rrr[) rr7r8rrrorr>copyzerosr]r) r_rprErrrHrrr y_with_outlierrrs rtest_array_smoothingz)_TestRBFInterpolator.test_array_smoothingsii##A&QS1 JJrN F #jjc1771:6 EE+ rc!HHUO  " Atzz!^yzA!Dad+rctddtjjjd}t |}tddtjjjd}d}t j t|5|j|||dddy#1swYyxYw)Nr$Fr2r&rzExpected the second axis of `x`match) rrr7r8r.pytestraises ValueErrorr])r_r drrs r$test_inconsistent_x_dimensions_errorz9_TestRBFInterpolator.test_inconsistent_x_dimensions_error0s 1u299+@+@+B C J J2 N a  1u299+@+@+B C J J2 N1 ]]:U 3 DJJq! Q    s B==Cctjddddddf}tjd}d}tjt |5|j ||dddy#1swYyxYw)Nrrr1zExpected the first axis of `d`rrrrrrrr]r_r rrs r test_inconsistent_d_length_errorz5_TestRBFInterpolator.test_inconsistent_d_length_error:s` KK1a D ) HHQK0 ]]:U 3  JJq!    s A--A6ctjddd}tjd}d}tjt |5|j ||dddy#1swYyxYw)Nrrr1z"`y` must be a 2-dimensional array.rrrs rtest_y_not_2d_errorz(_TestRBFInterpolator.test_y_not_2d_errorAsW KK1a  HHQK4 ]]:U 3  JJq!    s A&&A/c tjddddddf}tjd}tjd}d}t j t |5|j|||dddy#1swYyxYw)Nrrr1zExpected `smoothing` to berr)rrronesrrrr])r_r rrrs r(test_inconsistent_smoothing_length_errorz=_TestRBFInterpolator.test_inconsistent_smoothing_length_errorHsq KK1a D ) HHQKGGAJ , ]]:U 3 2 JJq!yJ 1 2 2 2s &BB ctjddddddf}tjd}d}tjt |5|j ||ddddy#1swYyxYw)Nrrr1z`kernel` must be one ofrtestrgrrs rtest_invalid_kernel_name_errorz3_TestRBFInterpolator.test_invalid_kernel_name_errorPsd KK1a D ) HHQK) ]]:U 3 , JJq!FJ + , , , A//A8ctjddddddf}tjd}tD]E}|tvr d}t j t|5|j|||dddGy#1swYRxYw)Nrrr1z`epsilon` must be specifiedrrg) rrrrrrrrr])r_r rr@rs r test_epsilon_not_specified_errorz5_TestRBFInterpolator.test_epsilon_not_specified_errorWs KK1a D ) HHQK  0F))1Ez7 0 1a / 0 0  0  0 0s #BB c,tjddddddf}tjddd}tjd}d}tjt |5|j |||dddy#1swYyxYw)Nrrr1z"`x` must be a 2-dimensional array.rr)r_r rrrs rtest_x_not_2d_errorz(_TestRBFInterpolator.test_x_not_2d_errorbsy KK1a D ) KK1a  HHQK4 ]]:U 3 DJJq! Q    s (B  Bctjddddddf}tjd}d}tjt |5|j ||ddddy#1swYyxYw)Nrrz#At least 2 data points are requiredrthin_plate_splinergrrs r"test_not_enough_observations_errorz7_TestRBFInterpolator.test_not_enough_observations_errorjse KK1a D ) HHQK5 ]]:U 3 9 JJq!$7J 8 9 9 9rc Jtjddddddf}tjd}tjD]M\}}|dk\s d|}t j t|5|j||d||dz dddOy#1swYZxYw)Nrrr1z`degree` should not be below rrVrXr@r) rrrr itemsrwarnsWarningr])r_r rr@degrs rtest_degree_warningz(_TestRBFInterpolator.test_degree_warningqs KK1a D ) HHQK.446 OKFCax7u=\\'7OJJq!SAJNOO  OOOs 4BB" ctjddddddf}tjd}tjD]\}}|j ||d|dy)Nrrr1rVrOr)rrrr rr])r_r rr@rFs rtest_minus_one_degreez*_TestRBFInterpolator.test_minus_one_degree|s^ KK1a D ) HHQK,224 DIFA JJq!SJ C Drctjddgddgddgg}tjgd}d}tjt|5|j ||d|dddy#1swYyxYw) NrYrmrV)rmrmrmzdoes not have full column rankrrrg)rrrrrr]rs rtest_rank_errorz$_TestRBFInterpolator.test_rank_errorsu HHsCj3*sCj9 : HH_ %0 ]];e 4 < 8DJJq!$7J 8 ; < < '?@ 1A 1 [[Xv.>'?@ 1A 1 [[Xvj'9:1;161, [[11>,$+" [[Xvj'9: ;  [[Xvj'9: ;  [[Xvj'9:;6,& 2, 0 9 [[OOD<"2rrSceZdZdZdZdZy) TestRBFInterpolatorNeighborsNonect|i|SNr r_rxrys rr]z&TestRBFInterpolatorNeighborsNone.builds///rctddtjj}d}d}d|jdz}d|jdz}t |}|j |||||}t ||}t ||} | jtjj||dd } t|| d y) NrFr2rחArUrrrcondrrZr[) rrr7r8r!r]rr>r;lstsqr r_rErrrr`r rarHrqrbs rtest_smoothing_limit_1dz8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_1dsQRYY-B-B-DE cjjn B a  q  F #D&)AT:1=>u40rctddtjj}d}d}|jd}|jd}t |}|j |||||}t ||}t ||} | jtjj||dd } t|| d y) Nr$Fr2rrr0rrrrZr[) rrr7r8r.r]rr>r;rrrs rtest_smoothing_limit_2dz8TestRBFInterpolatorNeighborsNone.test_smoothing_limit_2dsQRYY-B-B-DE JJsOzz# a  q  F #D&)AT:1=>u40rN)rrrr]rrrrrrrs0121rrceZdZdZdZdZy)TestRBFInterpolatorNeighbors20c t|i|ddiS)N neighborsrrrs rr]z$TestRBFInterpolatorNeighbors20.builds=="==rc tddtjj}|jd}|jd}t |}|j |||}g}t |}|D]D}|j|d\} } |jt|| || |ddFt||dy) Nr$Fr2r0rrrZr[) rrr7r8r.r]rqueryappendr r) r_rErr`r rarbtreexirFnbrs r#test_equivalent_to_rbf_interpolatorzBTestRBFInterpolatorNeighbors20.test_equivalent_to_rbf_interpolatorsQRYY-B-B-DE JJsOzz# a   1a &qz GBZZB'FAs LL8338DB1E F G u40rctddtjjd}|jd}|jd}t |}|j ||}d}t d|||y)Nr$Frr2r0c||yrr)rFrxps r worker_fnzBTestRBFInterpolatorNeighbors20.test_concurrency..worker_fns 2Jrr&)rrr7r8r.r]r )r_rErr`r rrs rtest_concurrencyz/TestRBFInterpolatorNeighbors20.test_concurrencysjQRYY-B-B1-EF JJsOzz# a Aq!  Ivt1$=rrceZdZdZdZy)TestRBFInterpolatorNeighborsInfc<t|i|dtjiS)Nr)r rinfrs rr]z%TestRBFInterpolatorNeighborsInf.build sAA"&&AArc.tddtjj}d|jdz}d|jdz}t |}|j |||}t |||}t||dy)NrFr2rrUrZr[)rrr7r8r!r]r r)r_rErr`r rarbs rrzCTestRBFInterpolatorNeighborsInf.test_equivalent_to_rbf_interpolator sQRYY-B-B-DE cjjn B a   1a &%1%d+u40rN)rrrr]rrrrrrs B 1rr)"rrnumpyr numpy.linalgrscipy._lib._array_apirscipy.stats.qmcr scipy.spatialrscipy.interpolate._rbfinterprrr r r scipy.interpolater scipy._lib._testutilsr rr!r.rMrrrrQrSrrrrrrrs $1"!19<   >6*#56:7:Q2Q2h 41';41n%=%9%=P1&F1r