L iBddlZddlZddlZddlmZmZmZmZddl m Z ddl Z ddl m Z mZmZmZmZmZmZmZmZmZmZmZddlmZ ddZgdZdZd Zd Zd Z Gd d Z!GddZ"GddZ#GddZ$GddZ%dZ&dZ'dZ(GddZ)y)N)xp_assert_equalxp_assert_closeassert_array_almost_equalassert_almost_equal)raises) KroghInterpolatorkrogh_interpolateBarycentricInterpolatorbarycentric_interpolateapproximate_taylor_polynomialCubicHermiteSplinepchipPchipInterpolatorpchip_interpolateAkima1DInterpolator CubicSplinemake_interp_spline)_run_concurrent_barrierc|i}tjjd}gd}tt dt |dz}|j |t |dzzd|jd|zj|} tj|} |tur5|jd|zj|} ||| | fd|i|| } n||| fd|i|| } |xsd| jd|z|z| j|dddz} | j| k(sJ|r|| jdkDrm|tur8|t|t| t fd|i|t| n-|t|t| fd|i|t| | jdkDr|| jd|dt |zz| j|dddz}| tdf|| jzzdz}|j|}tj | |\} } t#| | yyy) N)rrraxisr)nprandom RandomStatelistrangeleninsertrand transposezerosr shapesizeslicendimreshapebroadcast_arraysr)interpolator_clsx_shapey_shape deriv_shaper extra_argsrngxsyxidydxyi target_shapebs_shapeyvs j/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_polyint.py check_shaperAs[ ))   %CA U1c'l1n %&AHHTS\!^ $a(4'>#--a0A ' B--sxx$.*44Q7 B aD Bt Bz B2 F < a < < DW$55qr8JJ t/47 8 ZZ !##B+AA +{)rrr )rrc 2d}tttttt |fD]p}t D]e}t D]Z}tt| t|D]6}|t k7rt|||d|dD]}d|i}t|||d||8\gry)Nct|||SNr)rr7r9rs r@ spl_interpztest_shapes..spl_interpBs!!QT22rB)naturalclampedbc_type) rr r rrrSHAPESr%r&rA)rJips1s2rbcextras r@ test_shapesrT@s3!"9;M); D G GB G!3r7(CG4GD[(#BBd;"8GB%.OE'BD$FG G G G GrBc ttfD]Qdfd }tD]@}tD]5}tt | t |D]}t |||d|7BSy)Nc,|||jSN) derivatives)r7r9rrOs r@interpolator_derivsz/test_derivs_shapes..interpolator_derivsSsaD>-- -rBrrC)rr rNr%r&rA)rYrPrQrrOs @r@test_derivs_shapesrZQsv "9:I . IB I!3r7(CG4ID 3RT4HI I I IrBc &dd}dd}dd}dd}dd}dd}dd}dd}dd }dd } dd } dd } dd } |||||||||| | | | f D]K} tD]@}tD]5}tt| t|D]}t| ||d|7BMy)Nc0t|||jSrW)r derivativerIs r@ krogh_derivz&test_deriv_shapes..krogh_deriv]s At,777rBc0t|||jSrW)r r]rIs r@ bary_derivz%test_deriv_shapes..bary_deriv`s&q!T2===rBc8t|||jSrWrr]rIs r@ pchip_derivz&test_deriv_shapes..pchip_derivcsQ4 ++--rBc:t|||jdSNrrbrIs r@ pchip_deriv2z'test_deriv_shapes..pchip_deriv2fsQ4 ++A..rBc8t|||jSrWrantiderivativerIs r@pchip_antiderivz*test_deriv_shapes..pchip_antiderivisQ4 //11rBc:t|||jdSrerhrIs r@pchip_antideriv2z+test_deriv_shapes..pchip_antideriv2lsQ4 //22rBc4Gddt}||||S)NceZdZdZy)9test_deriv_shapes..pchip_deriv_inplace..Pc0tj||dS)Nr)r__call__)selfr7s r@rqzBtest_deriv_shapes..pchip_deriv_inplace..P.__call__qs(11$1==rBN)__name__ __module__ __qualname__rqrrBr@Props  > rBrv)r)r7r9rrvs r@pchip_deriv_inplacez.test_deriv_shapes..pchip_deriv_inplaceos ! At}rBc8t|||jSrW)rr]rIs r@ akima_derivz&test_deriv_shapes..akima_derivvs"1a.99;;rBc8t|||jSrW)rrirIs r@akima_antiderivz*test_deriv_shapes..akima_antiderivys"1a.==??rBc8t|||jSrW)rr]rIs r@ cspline_derivz(test_deriv_shapes..cspline_deriv|s1a&1133rBc8t|||jSrW)rrirIs r@cspline_antiderivz,test_deriv_shapes..cspline_antiderivs1a&5577rBc:t|||jSrG)rr]rIs r@ bspl_derivz%test_deriv_shapes..bspl_derivs!!QT2==??rBc:t|||jSrG)rrirIs r@bspl_antiderivz)test_deriv_shapes..bspl_antiderivs!!QT2AACCrBrrC)rNr%r&rA)r^r`rcrfrjrlrwryr{r}rrrrOrPrQrs r@test_deriv_shapesr\s8>./23<@48@DJ \CV 0+/^M6 6B 6!3r7(CG46DBB56 6 66rBcTgd}gd}tttfD]0}|||}t||t j |2gd}t |||}t||t j |t||dt j |y)Nrrrr)rr?r)ryry@r)rr rrr!asarrayr )r7r9rOpr;s r@ test_complexrsAA "9;G- q!H!bjjm,- D1a&AAaD"**Q-(AaGRZZ-.rBceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZej0j2dZej0j2dZy) TestKroghctjjgd|_tjddd|_tjddd|_|j|j |_yN)rDrrrrdrDr! polynomial Polynomial true_polylinspacetest_xsxsysrrs r@ setup_methodzTestKrogh.setup_methodsU112CD{{2a, ++b1%..)rBct|j|j}t|j |j ||j yrWrrrrrrrrrvs r@ test_lagrangezTestKrogh.test_lagrange5 dggdgg .DNN4<<84<<IrBct|j|j}t|j d|ddt|j t j d|t j ddy)NFcheck_0d)rrrrrr!arrayrs r@ test_scalarzTestKrogh.test_scalarsY dggdgg .DNN1-qteDDNN288A;7288A;RWXrBc$t|j|j}|j|j}t |j dD]:}t|jj||j||<yNr) rrrrXrr%r+rrderivrrrvDis r@test_derivativeszTestKrogh.test_derivativessp dggdgg . MM$,, 'qwwqz" &A  7 4 4Q 7 E !! & &rBcRt|j|j}|j|jt |jdz}t |jdD]:}t|jj||j||<y)Nrr) rrrrXrr&r%r+rrrrs r@test_low_derivativeszTestKrogh.test_low_derivativess~ dggdgg . MM$,,s477|A~ 6qwwqz" &A  7 4 4Q 7 E !! & &rBct|j|j}d}|j|j|}t |D]+}t |j|j|||-yN )rrrrXrr%rr]rrrvmrrs r@test_derivativezTestKrogh.test_derivativesa dggdgg .  MM$,,q )q CA  T\\! .worker_fnF 477OrBr)rrrrrrrvr s` r@test_concurrencyzTestKrogh.test_concurrencyBs* dggtww /  Iq1rBN)rsrtrurrrrrrrrrrrrrrrrrrrrrmark thread_unsaferrrrBr@rrs* JY &&C= / /J /*9- , ;L ?3 [[:: [[22rBrceZdZdZy) TestTaylorcd}ttjd|dd}t|dzD]$}t |dd|j }&t |ddy)NrDrr)r r!expr%rr)rrdegreerrs r@test_exponentialzTestTaylor.test_exponentialMs] )"&&!VQ Cvax A !Q ' A  AaD#rBN)rsrtrurrrBr@rrLs$rBrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZej2j4dZej2j4dZy)TestBarycentricctjjgd|_tjddd|_tjddd|_|j|j |_yrrrs r@rzTestBarycentric.setup_methodWsU112CD{{2q#. ++b!Q'..)rBct|j|jd}t||j|j |jy)Nr) random_state)r rrrrrrs r@rzTestBarycentric.test_lagrange]s7 #DGGTWW1 E$,, )EFrBc t|j|jd}t|d|j ddt|t j d|j t j ddy)Nrr6rFr)r rrrrr!rrs r@rzTestBarycentric.test_scalarbsZ #DGGTWW! <!dnnQ/%@"((1+rxx{(CeTrBc$t|j|j}|j|j}t |j dD]:}t|jj||j||<yr) r rrrXrr%r+rrrrs r@rz TestBarycentric.test_derivativesgso #DGGTWW 5 MM$,, 'qwwqz" IA 3DNN003DLLA1Q4 H IrBcVt|j|j}|j|jt |jdz}t |jdD]<}t|jj||j||d>y)Nrr-q=r) r rrrXrr&r%r+rrrrs r@rz$TestBarycentric.test_low_derivativesms #DGGTWW 5 MM$,,DGG Q 7qwwqz" (A 3DNN003DLLAaD!& ( (rBct|j|j}d}|j|j|}t |D]+}t |j|j|||-yr)r rrrXrr%rr]rs r@rzTestBarycentric.test_derivativeusa #DGGTWW 5  MM$,, *q AA ALLq91Q4 @ ArBc Pt|j|j}tt |jdt |jzD]N}t |j |j|tjt |jPy)NrD) r rrr%r&rr]rr!r*rs r@rz$TestBarycentric.test_high_derivative|sn #DGGTWW 5s477|Qs477|^4 9A ALLq9HHS%67 9 9rBc |j}tjjgd}tjjgd}tj||j ||j ||j fd}t |j |d}|j|j}t|jdD]}t||tj|j||j|j||j|j||jfddyNrrrrHrr!r) rr!rrrrr rXrr%r+rrrs r@rz%TestBarycentric.test_ndim_derivativess ((8 (();< XXuTWW~uTWW~uTWW~FR P #DGGRa 8 MM$,, 'qwwqz" (A AaDHHnekk!nT\\&B&4ekk!nT\\&B&4ekk!nT\\&B&D+-."'  ( (rBc |j}tjjgd}tjjgd}tj||j ||j ||j fd}t |j |d}t|jD]}t|j|j|tj|j||j|j||j|j||jfddyr%) rr!rrrrr r%rrr]rrrs r@rz$TestBarycentric.test_ndim_derivatives ((8 (();< XXuTWW~uTWW~uTWW~FR P #DGGRa 8qss (A ALLq9HHnekk!nT\\&B&4ekk!nT\\&B&4ekk!nT\\&B&D+-."'  ( (rBct|j}|j|jt |j |j ||j yrW)r rset_yirrrrrs r@ test_delayedzTestBarycentric.test_delayeds? #DGG , DNN4<<8!DLL/JrBct|jdd|jdd}|j|jdd|jddt |j |j ||j y)Nr)r rradd_xirrrrs r@ test_appendzTestBarycentric.test_appendsc #DGGBQK! = dggabk*DNN4<<8!DLL/JrBc gd}tjddgddgddgg}t}|||}t|jdDcgc]}|||dd|f}}tj ddd}t ||tj|Dcgc] }|| c}jycc}wcc}w)Nrrrrrrr) r!rr r%r+rrrr) rrrrBIrvrrrrs r@rzTestBarycentric.test_vectors  XX1v1v1v. / $ r2J(-bhhqk(: ;1bR1X ; ;++b!S)AgJJJB'?q' '?@BB D<(@s CCcpt|j|j}tj|ddk(sJtj|tj ddk(sJtj|dgdk(sJtj|ddgdk(sJyr)r rrr!r+rrs r@rz'TestBarycentric.test_shapes_scalarvalues #DGGTWW 5xx!~###xx"((1+'2---xx1#4'''xx1a& "d***rBct|j|j}|j}t j |j d|fk(sJt j |j t jd|fk(sJt j |j dg|dfk(sJt j |j ddg|dfk(sJyr)r rrrr!r+rXrrs r@rz2TestBarycentric.test_shapes_scalarvalue_derivatives #DGGDGG 4 CCxx a()aT111xx bhhqk23t;;;xx qc*+!u444xx qe,-!A666rBc Xt|jtj|jtj d}tj |ddk(sJtj |dgdk(sJtj |ddgdk(sJyr)r rr!rrrr+rs r@rz'TestBarycentric.test_shapes_vectorvalues #DGGRXXdggryy|-L Mxx!~%%%xx1#6)))xx1a& "f,,,rBc4t|jtj|jdg}tj |ddk(sJtj |dgdk(sJtj |ddgdk(sJyr)r rr!rrr+rs r@rz*TestBarycentric.test_shapes_1d_vectorvaluesy #DGGRXXdggs-C Dxx!~%%%xx1#6)))xx1a& "f,,,rBc t|jtj|jtj d}|j }tj|jd|dfk(sJtj|jdg|ddfk(sJtj|jddg|ddfk(sJyr) r rr!rrrrr+rXrs r@rz2TestBarycentric.test_shapes_vectorvalue_derivatives #DGGBHHTWWRYYq\,J K CCxx a()aV333xx qc*+1ay888xx q!f-.1a);;;rBc t|j|jd}t}t ||j ||j|j|j dt |j |j d||j|j|j ddt |j|j d||j|j|j ddgdy)Nrrr)rr6r)r rrr rrr]rX)rrrvbis r@rzTestBarycentric.test_wrappers #DGGTWW! < $$,,DGGTWWdllPQ)RS T\\15477DGGT\\qaH J dllA6477DGGT\\1v1M OrBcdtjddz}tjdd}t||d}t|tjdy)Nir g@g#@)r!rr rr)rrr7r9values r@test_int_inputzTestBarycentric.test_int_inputsG 299Q# # IIa '1j9E2::c?3rBcnd}tj|dzjtj}tj|tj z|z }d|z}|dxxdzcc<|dxxdzcc<t |}|jd}t|jd|zz |y)NiLrrr?r) r!rastypefloat64cospir wir)rrrjr7wrvfactors r@test_large_chebyshevz$TestBarycentric.test_large_chebyshevs  IIa!e  # #BJJ / FF1ruu9q= !AI !  "  #A &aADDAJ/3rBctddgddg}tjd5||j}dddt |j j y#1swY.xYw)Nrrrraise)divide)r r!errstater:rr<ravel)rrrvr<s r@ test_warningzTestBarycentric.test_warnings\ $QFQF 3 [[ ( 144B  B -   s A''A0ctjgd}tjgd}tjtd5t ||dddy#1swYyxYw)N)皙?r;?r;rz)Interpolation points xi must be distinct.r)r!rrr ValueErrorr )rrxisrs r@test_repeated_nodez"TestBarycentric.test_repeated_node sRhh+, XXl # ]]:!LN - #C , - - -s A  A)cjtjj}fd}td||y)Nc*|jyrWrrs r@r z3TestBarycentric.test_concurrency..worker_fnr rBr)r rrrr s` r@rz TestBarycentric.test_concurrencys* #DGGTWW 5  Iq1rBN)rsrtrurrrrrrrrrr)r,rrrrrrrr9rDrJrrrrPrrrBr@rrVs* G U I (A9 ( (K K D+7- - <O4 42 . [[-- [[22rBrc|eZdZd dZdZdZdZdZdZe jjdZ dZ d Zd Zy ) TestPCHIPctjjd}tj|j|}|j|}t ||||fS)Nr)r!r"r#sortr)rrnptsr6r:r<s r@ _make_randomzTestPCHIP._make_randomsNii##D) WWSZZ% & ZZ R}b"$$rBc*|j\}}}tt|dz D]e}||||dz}}||||dz}}||kDr||}}tj||d} || } || dzk| |dzkzj reJy)NrrrrXr%r&r!rall rrrr:r<rx1x2y1y2xpyps r@test_overshootzTestPCHIP.test_overshoot%s%%' 2rs2wqy! CAUBqsGBUBqsGBBwRBRR(B2B2:%"U *:;@@B BB CrBc|j\}}}tt|dz D]_}||||dz}}||||dz}}tj||d} || } ||z | dd| ddz zdkDj r_Jy)NrrrrZr\s r@ test_monotonezTestPCHIP.test_monotone1s%%' 2rs2wqy! ;AUBqsGBUBqsGBRR(B2BUr!"v2A/!388: ::  ;rBctjgdgdg}tjd}t|d|d|}|dz}t|d|d|}t ||ddy) N) rrr/<OWcr) rmirr&-57rrr?+=)rrtol)r!rrrr)rrdataxxcurvedata1curve1s r@ test_castzTestPCHIP.test_cast;swxx@DFG YYs^'d1gtAw'+s *uQxq*2.vE>rBc&d}tjtj|}t |dddf|dddf}d}tjtj|}t |dddf||dddfddy)Na 7.99 0.00000E+0 8.09 0.27643E-4 8.19 0.43750E-1 8.70 0.16918E+0 9.20 0.46943E+0 10.00 0.94374E+0 12.00 0.99864E+0 15.00 0.99992E+0 20.00 0.99999E+0 rra^ 7.9900 0.0000 9.1910 0.4640 10.3920 0.9645 11.5930 0.9965 12.7940 0.9992 13.9950 0.9998 15.1960 0.9999 16.3970 1.0000 17.5980 1.0000 18.7990 1.0000 20.0000 1.0000 g-C6 ?rur)r!loadtxtioStringIOrr)rrdataStrrvpch resultStrresults r@test_nagzTestPCHIP.test_nagGs  zz"++g./D1ItAaCy)  BKK 23qs S!%5BTJrBctjgd}tjgd}tjgd}t||t||fD]}|d|dfD]}||ddk7rJ!y)N)r}rLg?gffffff?)皙uq@g@@@@@)rrgp@rrrr)r!rr)rrr7r_r`ppts r@test_endslopeszTestPCHIP.test_endslopesjs~ HH+ , XX3 4 XX4 5B<q". %BdAbE] %!Qx1}$} % %rBcFtjd}tj|}tj5tj dt ||}dddtjddd}t|dk(sJy#1swY7xYw)Nrerrorr er}) r!rrwarningscatch_warningsfilterwarningsrrr[)rrr7r9rrws r@test_all_zeroszTestPCHIP.test_all_zerosts IIbM MM!  $ $ &   # #G ,1+C [[As #3r7b=!!!   s "BB ctjddd}tddgddg}t||d|zdy)Nrrr7rrr)r!rrr)rrr7rs r@test_two_pointszTestPCHIP.test_two_pointss> KK1b ! 1a&1a& !!ac.rBc `ttgdgddgdtjdgttgdgddgdtjdgttjtgdgddgddgtjdgdggy) Nrrr)rrDrr;rrrsrg @)rrr!rrs r@test_pchip_interpolatez TestPCHIP.test_pchip_interpolates! iSEq A JJt   " iSEq A JJu   " JJ(Iu1a&Q R JJs| $ &rBctddgddg}|j}t|tjdgy)Nrrrr;)rrootsrr!r)rrrrs r@ test_rootszTestPCHIP.test_rootss6 1a&2q' " GGI2::se,-rBN))rsrtrurXrcrer{rrrrrrrrrrrBr@rTrTsP% C; ?!KF% [[ " "/ &.rBrTc^eZdZe d dZdZdZdZdZdZ dZ dZ d Z d Z d Zy )TestCubicSplinec &|j}|j}tj|}|j |j dgdg|j dz zz}|dd}t|dddf|dddf|dzz|dddf|dzzz|dddf|zz|dddfz||t|dddfd|dddfz|dzzd|dddfz|zz|dddfz||t|dddfd|dddfz|z|dddfz|||jdk(r3|dk(r.|dk(r)t|dtj|d||y|d k(rjt||dd||dd||t||dd||dd||t||dd||dd||y|dk(rq|jdk(rL||d||dz |dz }tj|}t||dd|||nt|d |d ||n|d k(r7t||ddtj||dd||nm|d k(r7t||ddtj||dd||n1|\} } t||d| tj| |||dk(rq|jdk(rL||d||dz |dz }tj|}t||dd|||yt|d|d||y|d k(r7t||ddtj||dd||y|d k(r=t||ddtj||ddd|zd|zy|\} } t||d| tj| ||y)zVCheck that spline coefficients satisfy the continuity and boundary conditions.rrrNrrr~ not-a-knotperiodic)rr)rrrLrK)rr)rr) r7cr!diffr/r+r.rr,rr) Sbc_startbc_endtolr7rdxdxislopeorderr8s r@check_correctnessz!TestCubicSpline.check_correctnesssJ CC CC WWQZ ZZ! qvvz(:: ;"g !QR%!AssF)c1f"4qCRCy367I"I!SbS& C#(*+AssF)#4:=C I!QR%!a3B3i-#q&"8Aa"fI +#,./3B3i#8>A M!QR%!a3B3i-#"5!SbS& "A s , 66Q;8|3,8N AaD"--!"5Cc J  z ! AadAJ!B% #C H AadAJ!B% #C H AadAJ!B% #C H  | #vv{1Q41QqT7*be3 5)!A$ E#F$4sE  " !A$ BMM!AaD!*5Cc K  " !A$ BMM!AaD!*5Cc K$LE5 AadENBJJu,=Cc R \ !vv{1Q41QqT7*be3 5)!A$ E#F%!E(3G y AaeQKq2{)C!$3 0 y AaeQKq2{)C!"3QsU 4"LE5 AaeUORZZ->Ss SrBc t|j}||=tj|}|j dtj|}|j ddddd|fd|fg}|ddD]$}t ||||} |j | ||&|D]/} |D](} t |||| | f} |j | | | d *1y) NrrrrKrLrrrrMg+=r)r$r+r!emptyfillrr) rrr7r9rr4 first_deriv second_derivbc_allrRrrrs r@ check_all_bczTestCubicSpline.check_all_bcs177m  hh{+ xx , "         !* .BAqtR8A  " "1b" - . GH  G14(F9KL&&q(F&F G GrBctjgd}tjgd}dd|jfD]}|j|d||d|dtjd|df}|d||ddddf<|d|dz |ddddf<|d|dz|ddddf<|d|dz|ddddf<|j|d||dy)N)rrr;rrg@g@r)rgrrg@rrr;rrrr)r!rr,rr)rrr7r9rYs r@ test_generalzTestCubicSpline.test_generals HH4 5 HH4 5Q +A   aeQrUA .!Q#A2AAaAgJ2AAaAgJ2AAaAgJ2AAaAgJ   aeQ * +rBcdD]}tjddtjz|}tj|}t ||d}|j |ddtj d|df}||ddddf<|dz|ddddf<|dz |ddddf<|dz|ddddf<t ||dd}|j |ddy) N)rrrDrrrrMrrDr)r!rr?r>rrr)rrrr7r9rrs r@ test_periodiczTestCubicSpline.test_periodics >A Aq255y!,Aq AAq*5A  " "1j* =!Q#AAaAgJQAaAgJQAaAgJQAaAgJAqq*=A  " "1j* = >rBctjddtjzd}tj|}t ||d}t |d|ddtjzzdy) Nrrrrrrr)decimal)r!rr?r>rrrrr7r9rs r@test_periodic_evalz"TestCubicSpline.test_periodic_evalsX KK1ruu9b ) FF1I 1j 1AaD!ABEE M"2B?rBctjgd}tjgd}t||dd}|j|ddy)N)rM?gffffff?@@@g333333@g@g@g@g@g@g @gffffff"@g%@g&@g333333'@g(@g333333)@g*@g*@)rg?g?rrg@g333333@g333333@gffffff@r@gffffff@rg333333?gffffff?rMgffffff?g333333?r;g?rr)rM extrapolate)r!rrrrs r@*test_second_derivative_continuity_gh_11758z:TestCubicSpline.test_second_derivative_continuity_gh_11758sN HHO P HHP Q 1jj I q*j9rBctjgd}tjgd}t||d}|j|ddt |j d|tjgdy)N)rsg@r)rsg.@rsrrr)Hrr)r!rrrrr]rs r@test_three_pointsz!TestCubicSpline.test_three_points#se HH% & HH% & 1j 1 q*j9 Q*BHH5J,KLrBctjgd}tjddgddgddgg}t||d}|j|ddt||dddfd}t||dddfd}tjddd }t ||dddf||t ||dddf||y) N)r}rsrr}rsrrrrrrD)r!rrrrr)rrr7r9rS0S1qs r@#test_periodic_three_points_multidimz3TestCubicSpline.test_periodic_three_points_multidim/s HH_ % HHsCj3*sCj9 : 1j 1 q*j9 AadGZ 8 AadGZ 8 KK1a !QT BqE*!QT BqE*rBctjgdt}tjgdt}t||}|j |tjgd}t||}|j |t||dzd}|j |dd tjgd}t||d d g}|j |d d y) N)rrrr)dtype)rrrr)y?r}y?y?r)rKry@rrKr)ry@?)ry?)r!rintrrrs r@ test_dtypeszTestCubicSpline.test_dtypes<s HH\ - HH]# . 1  q! HH1 2 1  q! 16+? @ q)W5 HH] # 1}m&D E q-?rBctjjd}tj|j d}d|j dz}t ||}|j |dy)Nrr)r,g@gvIh%<=r)r!r"r#rVuniformrr)rrr6r7r9rs r@ test_small_dxzTestCubicSpline.test_small_dxMscii##A& GGCKKSK) * #++3+' ' 1  qe,rBc *tjgd}tjgd}tjgd}tjtjdddg}tjgd}tjtjdddg}gd}dg}dg} ttt ||ttt ||ttt ||ttt ||ttt ||ttt |ddtj f|ttt || gd } | D]} ttt ||d | d tj||f} d } d dgdff}d dd d ggff}ttt || d | d ttt || d |d ttt || d |d ttt ||d dd y)Nr)y??rrrrrr)rrrrrr))rrL))rr)rr)rr)r}r}z not-a-typorT)rLrrL)rrrr)r!rnan assert_raisesrNrnewaxisc_)rrr7r9xcxnxoyny3r]r_wrong_bcrMrbc1bc2bc3s r@test_incorrect_inputsz%TestCubicSpline.test_incorrect_inputsTs HH\ " HH\ " XX' ( XXrvvq!Q' ( XXl # XXrvvq!Q' ( SSj+r15j+r15j+q"5j+r15j+q"5j+qBJJ/?Cj+r26"   KG *k1aGT J K EE!Q$K!1i.)11vh-(j+q!QTBj+q!QTBj+q!QTB j+q!Q DIrBN)rrrt)rsrtru staticmethodrrrrrrrrrrrrrBr@rrsT;G#?T?TBG. + >@ : M +@"-&JrBrcgd}gd}gd}t|||}t|||dddt||d|dddy)N)rrr)rrr)rrrFr)rA check_dtyperur)r r)r7r9r;r8s r@#test_CubicHermiteSpline_correctnessr}sIAA D1a&AAaD!ENAaGTu%eTrBcgd}gd}gd}ttt|||ddtjg}ttt|||y)Nr)rrrD)rrrrrr)rrNr r!r)r7r9r; dydx_with_nans r@&test_CubicHermiteSpline_error_handlingrsBAA D*0!Q=266NM*0!Q FrBc*tjddg}tjddg}tjddg}t|||}|jd}|jj d d k(sJ|j d k(sJy) NgMbP?gMb`?gBܻ>gdJ>g/"g%"T)rrr)r!rr rrr+r,)r7r9dyrrs r@test_roots_extrapolate_gh_11185rs % A ..12A ; * +B1a$A D!A 3399Q<1   66Q;;rBcfeZdZejj dejdejdgejj dgdejj dgdejj dee gd Z ejj dejdejdgejj dgdejj de e gd Z y ) TestZeroSizeArraysr9)rrrD)rrDrrM)rrrKrLrrclsctjd}tjd}||||}||jdk(sJ||j|j|jddzk(sJtj|d|}|||||}|jd||jfz|j|dzdz} ||jdk(sJ||j| k(sJy)Nrrrrr)rMrr!rr,r+moveaxis) rrrr9rMrr7xvalobjytshs r@test_zero_sizez!TestZeroSizeArrays.test_zero_sizes IIbMyy|!Q(4y~~"""4y$**qwwqr{"::::[[At $!Rt4 XXet_ } ,rxxQ/@ @4y~~"""4y"$$$rBctjd}tjd}|||}||jdk(sJ||j|j|jddzk(sJtj|d|}||||}|jd||jfz|j|dzdz}||jdk(sJ||j|k(sJy)NrrrrrHr) rrrr9rr7rrrrs r@test_zero_size_2z#TestZeroSizeArrays.test_zero_size_2s IIbMyy|!Qi4y~~"""4y$**qwwqr{"::::[[At $!Rd# XXet_ } ,rxxQ/@ @4y~~"""4y"$$$rBN)rsrtrurr parametrizer!r*rrrrrrrrBr@rrs [[S8288J#7#+288J#7#9: [[YMO [[VY/ [[U%7$EF%G0O: %  [[S8288J#7#+288J#7#9: [[VY/ [[U%68K$LM%N0:%rBr)NrN)*rrnumpyr!scipy._lib._array_apirrrrrrrscipy.interpolaterr r r r r rrrrrrscipy._lib._testutilsrrArNrTrZrrrrrrTrrrrrrrBr@rs +  :LM&R %G"I26j /j2j2Z$$E2E2P}.}.@\J\J~UG /%/%rB