L ii|ddlZddlZddlZddlmZddlZddlmZddl m Z m Z m Z m Z ddlmZmZmZmZmZmZmZddlmZmZmZmZddlmZmZmZmZmZm Z m!Z!m"Z"m#Z#ddl$m%Z%dd l&m'Z'Gd d Z(Gd d Z)GddZ*GddZ+GddZ,GddZ-GddZ.ddZ/GddZ0y)N)suppress_warnings)raises)xp_assert_equalxp_assert_closeassert_almost_equalassert_array_almost_equal)arraydifflinspacemeshgridonespishape)bisplrepbisplevsplrepspalde) UnivariateSplineLSQUnivariateSplineInterpolatedUnivariateSplineLSQBivariateSplineSmoothBivariateSplineRectBivariateSplineLSQSphereBivariateSplineSmoothSphereBivariateSplineRectSphereBivariateSpline)_run_concurrent_barrier) make_splrepceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZej4j6dZdZy)TestUnivariateSplinecgd}gd}t||d}t|jddgt|jddgt |j dksJt|gdgdt ||dt|}t|jdd |jd t|j|jd y) N)r%r%r%r#kr%g|=r#?r$)r'sV瞯<atol) rr get_knots get_coeffsabs get_residualrlenrtc)selfxylutspls k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_fitpack2.pytest_linear_constantz)TestUnivariateSpline.test_linear_constants  qQ'!#--/Aq6:!#.."2QF;3##%&...!#k"2I>!Q!s1v.a S]]_5As~~/e<c<gd}gd}t||d}d}t|t||k(sJt|t||dk(sJgd}t|t||k(sJt|t||dk(sJy)Nr"rr$r#r&r$)nu)r)r$@)rr)r6r7r8r9args r;test_preserve_shapez(TestUnivariateSpline.test_preserve_shape&s  q!q)SzU3s8_,,,SzU3sq>2222SzU3s8_,,,SzU3sq>2222r=cgd}gd}t||d}t|jddgt|jddgt |j dksJt|gd gd y) Nr"r?r#r&r%rr@r,r()rr#r$)rrr/r0r1r2)r6r7r8r9s r;test_linear_1dz#TestUnivariateSpline.test_linear_1d1sm  qQ'!#--/1Q%8!#.."2Aa593##%&...!#i.9r=clGddt}|gdgdd}t|ddgd d gy) NceZdZdZy)9TestUnivariateSpline.test_subclassing..ZeroSplinecdt|zS)Nr)r )r6r7s r;__call__zBTestUnivariateSpline.test_subclassing..ZeroSpline.__call__>sqz!r=N)__name__ __module__ __qualname__rKr=r; ZeroSplinerI=s "r=rPr#r$r%r@)r%r$r%r$r%r$r&r)rB)rr)r6rPsps r;test_subclassingz%TestUnivariateSpline.test_subclassing:s5 ") " [A 6C:R1r=cfgd}gd}t||d}t|gtgy)Nr#r%rR rr@rY r%r&)rrr r6r7r8r:s r;test_empty_inputz%TestUnivariateSpline.test_empty_inputDs,  q!q)Br+r=cjgd}gd}t||d}t|jddy)NrWrZr%r&rg7ã?)rrrootsr]s r; test_rootszTestUnivariateSpline.test_rootsKs/  q!q)CIIKN,=>r=ctjddtjzd}tj|}t ||d}t |j dk(sJy)Nr2r*)npr rcosrr3r`r]s r;test_roots_lengthz&TestUnivariateSpline.test_roots_lengthQsP KK2:t , FF1Iq!q)399;2%%%r=cjgd}gd}t||d}t|jdgdy)NrWrZr%r& @)g;@gpZQ!qt< >AbEAbE *&6 >Q!qt< > *&B >Q!qt< > *&9 CQ!qADA C Cr=c tjdt}|dz}tjdt}|d|d<|dz}tj|}t ||d}|j dd}t |||dd t ||||d tttfit||dd tttfit||d y) Nrrr%rr#Trr@)r7r8rr*rr)r7r8r*rr) rfrqrrrr/rrrrrr6xxyyr7r8rr:r4s r;test_strictly_increasing_xz/TestUnivariateSpline.test_strictly_increasing_xs YYr ' U IIb &t! qD LLOr2D9 MMOAa 1Q!$?a1QTBj"2 :a148 :j"> 5ad3 5r=c tjdt}|dz}tjdt}|ddz |d<|dz}tj|}t ||d}|j dd }t ttfit||d t ttfit||d t ttfit||||d y) Nrrr%rrwr#Trr@rr) rfrqrrrr/rrrrrrs r;test_increasing_xz&TestUnivariateSpline.test_increasing_xs YYr ' U IIb &tcz! qD LLOr2D9 MMOAa j"2 5ad3 5j"> 5ad3 5j"5 ?a1= ?r=ctt5}gd}gd}t||ddddtjvsJtt5}gd}gd}gd}t|||ddddt|jvsJtt5}d}t| dddd t|jvsJtt5}td dddd t|jvsJtt5}tdddddt|jvsJy#1swY.xYw#1swYxYw#1swYxYw#1swYxYw#1swYTxYw)NrrrrrB!x and y should have a same lengthrrrrBgffffff@rvrwrwrwr%x, y, and w should have a same lengthr+rbbox shape should be (2,)rr&k should be 1 <= k <= 5rvres should be s >= 0.0)rrrstrvaluer6inforrw_valuesrs r;(test_invalid_input_for_univariate_splinez=TestUnivariateSpline.test_invalid_input_for_univariate_splinesi : & 1$(H+H Xx 0 13c$**oEEE : & =$(H0H,H Xx8 <  = 7#djj/III : & <$D Xxd ; <+c$**o=== : & 6$ Xx1 5 6(C O;;; : & 9$ Xx4 8 9%TZZ8881 1 1  = = < <  6 6 9 9s;EE E*!E6 FEE'*E36E?F ctt5}gd}gd}t||ddddtjvsJtt5}gd}gd}gd}t|||ddddt|jvsJtt5}d}t| dddd t|jvsJtt5}td dddd t|jvsJy#1swYxYw#1swYxYw#1swYzxYw#1swYGxYw)Nrrrrrrrr+rrrr&r)rrrrrrs r;5test_invalid_input_for_interpolated_univariate_splinezJTestUnivariateSpline.test_invalid_input_for_interpolated_univariate_spline-s4 : & =$(H+H (8 < =3c$**oEEE : & I$(H0H,H (8x H  I 7#djj/III : & H$D (8$ G H+c$**o=== : & B$ (8q A B(C O;;;) = =  I I H H  B Bs/DD D*!D6DD'*D36D?cRgd}gd}t||d}|jdd}tt5}gd}gd}t |||ddddt j vsJtt5}gd}gd}gd }t |||| dddd t |j vsJd }tt| 5}d}t ||||dddtt5}d}t ||||ddddt |j vsJtt5}t |||dddddt |j vsJy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYTxYw)NrrTrr%r@rr)rwrwrwrwrrz;Interior knots t must satisfy Schoenberg-Whitney conditions)match)rrr+rrr&r)rr/rrrrr) r6rrr:t_valuesrrmessagers r;,test_invalid_input_for_lsq_univariate_splinezATestUnivariateSpline.test_invalid_input_for_lsq_univariate_splineEs$,xE==?1Q' : & >$(H+H (H = >3c$**oEEE : & J$(H0H+H (H I  J 7#djj/IIIO :W 5 ID (H4 H I: & I$D (H4 H I+c$**o=== : & C$ (H B C(C O;;;3 > >  J J I I I I  C Cs;E,?E9F8F:F,E69FFFF&ctjgd}tjgd}tjgd}tjddg}t||||}t|j|j|j|j}t |gd|gdy)Nrr)rwrwrwrwrwrr)r7r8rrr)rfr rtolistr)r6rrrrspl1rs r;test_array_like_inputz*TestUnivariateSpline.test_array_like_inputgs88-.88568856xxs $(h(%)+ (//"3x7H"*//"3$++-I 2323 5r=ctd}gd}t5}|jtd}t ||dt |dk(sJ dddy#1swYyxYw)Nm)mrSrSrSrSrS%@rS&@rSrSrSrrSrSrSrSrSrSrrSrSrSrrSrSrSrrSrSrS%@rSrSrSffffff%@rSrSrSrrSrSrSrSrSrSrrSrSrrSrSrS333333%@rSrSrSrrSrSrrSrSrrSrSg'@rSrSrSrrSrSrrSrSrrSrS皙%@rSrSrSrrSrSrrSrSrS$@rSrSrrSrSrrSrSrSrrSrSrSrrSrSrSrrSa# The maximal number of iterations maxit \(set to 20 by the program\) allowed for finding a smoothing spline with fp=s has been reached: s too small. There is an approximation returned but the corresponding weighted sum of squared residuals does not satisfy the condition abs\(fp-s\)/s < tol.r#r&)rrrecord UserWarningrr3)r6r7r8suprs r;test_fpknot_oob_crashz*TestUnivariateSpline.test_fpknot_oob_crashvsi #J ; C LMA QQ 'q6Q; ;   s 5AA"ctjdt}|dz}tjdt}|d|d<t||d}d}t d |||y) Nrrr%rr#Trc||y)NrO)_interpr7s r; worker_fnz8TestUnivariateSpline.test_concurrency..worker_fns 1Ir=r)rfrqrrr)r6rrr7r:rs r;test_concurrencyz%TestUnivariateSpline.test_concurrencys]YYs% ( U IIc 't!r2D9  IsA6r=N)rLrMrNr<rDrFrUr^rarhrlrtrrrrrrrrrrrrrpytestmark thread_unsaferrrOr=r;r r s = 3:2,? & H$ H '/R! 0I5C45*?$98<0 >Cc d}d|zd|z g}d|zd|z g}tt5}tjdd}tjdd}tjddd}t |||||ddddt j vsJtt5}tjdd}tjdd}tjdd}tjddd }t |||||| dddd t |j vsJtt5}tjd d}t ||| dddd t |j vsJtt5}d} t ||| ddddt |j vsJtt5}t ||ddddddt |j vsJtt5} t ||dddddt  j vsJtt5} t ||dddddt | j vsJy#1swY#xYw#1swYxYw#1swYIxYw#1swYxYw#1swYxYw#1swYxYw#1swYoxYw)Nrr#r%rw$@rnum%x, y, and z should have a same lengthr(x, y, z, and w should have a same lengthrvw should be positiverrrrbbox shape should be (4,)r;The length of x, y and z should be at least (kx+1) * (ky+1)rSepseps should be between (0, 1))rrrfr rrr) r6r*rrrr7r8rrrexc_infos r;test_invalid_inputz)TestLSQBivariateSpline.test_invalid_inputs !eQU^!eQU^ : & 0$ C&A C&A C2.A q!QB /  0 7#djj/III : & 5$ C&A C&A C&A C2.A q!QB! 4  5 :S_LLL : & 5$ D$'A q!QB! 4 5&TZZ888 : & ;$$D q!QBT : ;+c$**o=== : & >$ q!QB2" = >L4:: : & 9( q!QBC 8 9-X^^1DDDD : & 9( q!QBC 8 9-X^^1DDDDI 0 0 5 5 5 5  ; ;  > >  9 9 9 9sUAJ*A,J((J5K"K%K'K'J%(J25J?K KK$'K0c  d}tjd|zd|z g}tjd|zd|z g}tjdd}tjdd}tjdd}tjdd}tjgd}t5} | j t d} t |||||||} t |j|j|j|j|j|j|} t| d d | d d t| d k(sJ dddy#1swYyxYw) Nrr#r%rwr1)rwr1rwr1r)rrror$) rfr r rrrrrrr3) r6r*rrr7r8rrrrrrrs r;rz,TestLSQBivariateSpline.test_array_like_inputs4  XXq1ua!en % XXq1ua!en % KKT " KKT " KKT " KKT "xx./  C ;(JKA%aAr2FD%ahhj!((*ahhj&(iik299;!((*+/1D DcNDcN ;q6Q; ;   s 6B9E99Fctjddddf\}}|j}|j}dtj|z}tjddd}tjddd}t 5}|j td}t|||||}t|d k(sJ d d d t||d |y #1swYxYw) zkTest for the case when the input knot-location arrays in x and y are of different lengths. rrrrgX@!rr#NFr-) rfmgridravelrr rrrrr3r) r6r7r8rrrrrr9s r;test_unequal_length_of_knotsz3TestLSQBivariateSpline.test_unequal_length_of_knots2s xx#qu %1 GGI GGI ",,q/ ! [[dB ' [[dB '   C ;(JKA$Qq2b1Cq6Q; ;  C15115   s 6C""C+N) rLrMrNrr r r<r%r+r^r?rrFrOr=r;r r s [[ 7 7<2 [[..( [[AA )EV [[* [[66r=r cbeZdZdZdZej jdZdZ dZ dZ y)TestSmoothBivariateSplinec6gd}gd}gd}t|||dd}|jD]}t|gdt|jgdt |j dksJt|gd dd gd d gd d gd d ggy) Nrrrr#r)r#r#r%r%)r%r%r%r%r,r(r)r%)rr/rr0r1r2r6r7r8rr9r4s r;r<z.TestSmoothBivariateSpline.test_linear_constantFs   #AaQ!4 7A %a 6 7 "#.."2LA3##%&...!#kAs8"<1v1vPQSTv>VWr=c\gd}gd}gd}t|||dd}|jD]#}t|tjgd%t |j gdt|jdksJt |gd dd gd d gddgd d ggy) Nrr) rrrr$r$r$r@r@r@r#r)rwr#r%r%)rrr@r@r,r(r)rr$) rr/rrfrrr0r1r2rJs r;rFz(TestSmoothBivariateSpline.test_linear_1dRs   #AaQ!4 ;A Arzz.9 : ;!#.."2LA3##%&...!#i3"81Q%1qe9LMr=c gd}gd}tgd}t5}|jtdt |||ddd}dddgd}gd }||}d t |dddft |dddfz|dd dd f|dddd fz|dd ddfz|ddddfzzj z} ttj|j|d|d |d|d tj| t |||d d d} ttj| j|d|d |d|d tj| d ||dd |dd }d t |dd dddft |dd dddfz|dd dd f|dddd fz|dd ddfz|ddddfzzj z} ttj|j|d|d|d|dtj| y#1swYxYw)N) r#r#r#r$r$r$r@r@r@rrz The required storage spacer#r)rrr*)r#r$r@r"r'r+r$)decimalr) r rrrrr r(rrfrr) r6r7r8rrr9rrr)r*lut2s r;r+z'TestSmoothBivariateSpline.test_integral]sq   % &   BC JJ{$B C'1aA!qAC B   R[DHQtV$T"Xd1f%55#2#crc'{2ab"f:-b"QRj8ABqrEBDEHSUKBJJs||BqE2b62a5"R&'QRJJt, .%Q1qA>BJJt}}RUBrFBqE2b6'RSJJt,$% 'CR"Sb' "DCRM!D&)$r#2w-Q*??#2#crc'{2ab"f:-b"QRj8ABqrEBDEHSUKBJJs||BqE2b62a5"R&'QRJJt, .- B Bs (IIc>tjddd}tjddd}||z}tjddd}tjddd}t|||}t|||}t |||}|||} t || y)Nrr$Pr+r#r)rfr rrrr) r6r7r8rxiyirrres1interp_res2s r;test_rerun_lwrk2_too_smallz4TestSmoothBivariateSpline.test_rerun_lwrk2_too_small|s KKAr " KKAr " E [[Q $ [[Q $q!Qr2s#'1a0r2D$'r=c8tt5}tjdd}tjdd}tjddd}t |||ddddt j vsJtt5}tjdd}tjdd}tjdd}tjddd}t ||||ddddt |j vsJtt5}tjd d}t |dddd t |j vsJtt5}d }t | dddd t |j vsJtt5}t ddddddt |j vsJtt5}t d ddddt |j vsJtt5}t dddddt j vsJtt5}t dddddt |j vsJy#1swYWxYw#1swYxYw#1swYxYw#1swYLxYw#1swYxYw#1swYxYw#1swYxYw#1swY|xYw)Nrwr1rr2r4r5rr6rvr7r8rr9rr:rerrSr;r=)rrrfr rrr)r6rr7r8rrrr>s r;r?z,TestSmoothBivariateSpline.test_invalid_inputs : & +$ C&A C&A C2.A !!Q *  + 7#djj/III : & 0$ C&A C&A C&A C2.A !!QQ /  0 :S_LLL : & 0$ D$'A !!QQ / 0&TZZ888 : & 6$$D !!Q 5 6+c$**o=== : & 9$ !!QbR 8 9L4:: : & 3$ !!QT 2 3%TZZ888 : & 4( !!Qs 3 4-X^^1DDDD : & 4( !!Qs 3 4-X^^1DDDDQ + + 0 0 0 0  6 6  9 9  3 3 4 4 4 4saAJ7A*K,&KKK+K8LL7KKKK(+K58LL Lc tjgd}tjgd}tjgd}tjgd}tjgd}t|||||dd}t|j|j|j|j|jdd}t |d d |d d y) Nrrr) r#r#r#r#r#r#r#r#r#)rwrrwrr#)rrrr)rrrrrr)rfr rrr)r6r7r8rrrrrs r;rz/TestSmoothBivariateSpline.test_array_like_inputs HH0 1 HH0 1 HH0 1 HH0 1xx,-$Q1qI$QXXZQXXZ*.++-188:()a1 S#S#7r=N) rLrMrNr<rFrr r r+rVr?rrOr=r;rHrHEs= X N [[..< (*EX 8r=rHc*eZdZdZdZdZdZdZy)TestLSQSphereBivariateSplinecd\}}td|dz z dd|dz z z |tz}td|dz z dd|dz z z |dztz}t|jd|jdf}|ddd}|ddd}|ddddddf}t ||\} } t | j | j |jj ||} | |_||_ ||c|_ |_ y)NrZrr#rorrR) r rr rr rrETlut_lsqdatanew_lonsnew_lats) r6nthetanphithetaphir`knotstknotspknotdatalatslonsr_s r; setup_methodz)TestLSQSphereBivariateSpline.setup_methods  fqj)1sFQJ/?+?H2MsD1H~q3q>'94@2EJU[[^SYYq\23ssSqS!SqS>eS) d*4::<+/66<<>66K  '-v$ t}r=ct|jjdksJt|j|j|j |j y)Nr,)r1r_r2rrbrar`r6s r;r<z1TestLSQSphereBivariateSpline.test_linear_constantsF4<<,,./%777!$,,t}}dmm"L"&)) -r=ct|jggtjdt|jggdtjdyNrFr-r/)rr_rfrrns r;r^z-TestLSQSphereBivariateSpline.test_empty_inputs@!$,,r2"6H!$,,r2E,"BBHHTNSr=c xd\}}td|dz z dd|dz z z |tz}td|dz z dd|dz z z |dztz}t|jd|jdf}|ddd}|ddd}t t 5}tdd| tz} t | |\} } t| j| j|jj||dddd tjvsJt t 5}td d | tz} t | |\} } t| j| j|jj||dddd t|jvsJt t 5}tdd| dztz} t || \} }t| j|j|jj||dddd t|jvsJt t 5}tdd | dztz} t || \} }t| j|j|jj||dddd t|jvsJt ||\} } t t 5}tj|}d|d<t| j| j|jj||ddddt|jvsJt t 5}tj|}t|d<t| j| j|jj||ddddt|jvsJt t 5}tj|}d|d<t| j| j|jj||ddddt|jvsJt t 5}tj|}dtz|d<t| j| j|jj||ddddt|jvsJt t 5}tgd}t| j| j|jj|||ddddt|jvsJt t 5}t| j| j|jj||dddddt|jvsJt t 5}t| j| j|jj||dddddt|jvsJy#1swYxYw#1swY(xYw#1swYxYw#1swY xYw#1swY|xYw#1swYxYw#1swYvxYw#1swYxYw#1swYxxYw#1swYxYw#1swYxYw)Nr\rr#rorrR皙rwr2theta should be between [0, pi]r皙?phi should be between [0, 2pi]rSztt should be between (0, pi)ztp should be between (0, 2pi)r$ rvrwr)rrwr)rrwrwrr7r;r=)r rr rrrr rrEr^rrrfrr )r6rcrdrerfr`rgrhr> invalid_theta invalid_latsrk invalid_phirj invalid_lonsinvalid_knotstinvalid_knotsp invalid_ws r;r?z/TestLSQSphereBivariateSpline.test_invalid_inputs#  +Q 1C-C!#%&sdQh'SD1H-=)=tDrIBNU[[^SYYq\23ssSqS : & E($T3F;b@M!)-!= L$ $\%7%7%94::<%)VV\\^VV E E 1C4GGGG : & E($S#6:R?M!)-!= L$ $\%7%7%94::<%)VV\\^VV E E 1C4GGGG : & E("4&9C?"DK!)%!= D, $TZZ\<3E3E3G%)VV\\^VV E E 03x~~3FFFF : & E("383>CK!)%!= D, $TZZ\<3E3E3G%)VV\\^VV E E 03x~~3FFFFeS) d : & M(WWV_N $N1  $TZZ\4::<%)VV\\^^V M M .X^^1DDDD : & M(WWV_N "N1  $TZZ\4::<%)VV\\^^V M M .X^^1DDDD : & M(WWV_N $N1  $TZZ\4::<%)VV\\^V^ M M /#hnn2EEEE : & M(WWV_N !BN1  $TZZ\4::<%)VV\\^V^ M M /#hnn2EEEE : & B(LMI $TZZ\4::<%+Vy B B&X^^)<<<< : & >( $TZZ\4::<%+V > >.X^^1DDDD : & >( $TZZ\4::<%+V > >.X^^1DDDDQ E E E E E E E E M M M M M M M M B B  > >  > >sA(Z.-A(Z;A+[ A+[ A["A"[/*A[<8A%\  A\A\#A\0.Z8;[[["[,/[9<\ \\ #\-0\9c hd\}}td|dz z dd|dz z z |tz}td|dz z dd|dz z z |dztz}t||\}}t|jd|jdf}|ddd}|ddd} t|j jd} t |j |j |jj || | } t |j j|j j|jj j|j| j| j} t| dd| ddy) Nr\rr#rorrRrrw) r rr r rrErr^rr) r6rcrdrerfrjrkr`rgrhrrrs r;rz2TestLSQSphereBivariateSpline.test_array_like_input6s  +Q 1C-C!#%&sdQh'SD1H-=)=!"$&'eS) dU[[^SYYq\23ssSqS ##A& '( djjl(, !M( (;(;(=(, (;(;(=(, (=(=(?(. (. 188: G "$sC.$sC.Ar=NrLrMrNrlr<r^r?rrOr=r;rZrZs 6$- TREhBr=rZc*eZdZdZdZdZdZdZy)TestSmoothSphereBivariateSplinec tdtzdtzdtzdtzdtzdtzdtzdtzdtzg }tdtztdtzdtztdtzdtztdtzg }tgd}t|||d|_y)Nr'r?r)r _Bre)r rrr9)r6rerfrs r;rlz,TestSmoothSphereBivariateSpline.setup_methodPss2vs2vs2vr"ubeRUCF2vs2v'(R"Wb#(BGRr27B2X  - ..uc1Er=ct|jjdksJt|jgdddgddgddgddggy)Nr,r(r#r)r%)r1r9r2rrns r;r<z4TestSmoothSphereBivariateSpline.test_linear_constantXsQ488((*+e333!$((;3x"@$%q6Aq6Aq6": Or=c tdtzdtzdtzdtzdtzdtzdtzdtzdtzg }tdtztdtzdtztdtzdtztdtzg }tgd}tt5}tdtzdtzdtzdtzdtzdtzdtzdtzdtzg }t |||ddddd t j vsJtt5}tdtzdtzdtzdtzdtzdtzdtzdtzd tzg }t |||ddddd t |j vsJtt5}tdtztdtzdtztdtzdtztdtzg }t |||ddddd t |j vsJtt5}td tztdtzdtztdtzdtztd tzg }t |||ddddd t |j vsJtt5}tgd}t ||||dddddt |j vsJtt5}t |||dddddt |j vsJtt5}t |||dddddt |j vsJtt5}t |||d ddddt |j vsJy#1swYxYw#1swYSxYw#1swYxYw#1swYYxYw#1swYxYw#1swYxYw#1swYxYw#1swY|xYw)Nr'rrr)rrrrrersrtrurwg@rvrr*r7rvs should be positiver;r=)r rrrrrr)r6rerfrr>rwryr}s r;r?z2TestSmoothSphereBivariateSpline.test_invalid_inputassRxr38R"Wb2grBwRxr3856R"Wb#(BGRr27B2X  - . : & G(!4"9cBhb"r'#%7BGS2XsRx#&8#-.M ( sA F  G 1C4GGGG : & G(!38S2XsRxb#%7BGS2XsRx#&8#-.M ( sA F  G 1C4GGGG : & G(r2sRxb"cBh!#b"cBh!89K '{A F G03x~~3FFFF : & G(r2sRxb"cBh!#b"cBh!89K '{A F G03x~~3FFFF : & L(LMI 'sAd K L&X^^)<<<< : & ?( 'sA > ?%X^^)<<<< : & A( 'sA4 @ A-X^^1DDDD : & @( 'sA3 ? @-X^^1DDDDS G G G G G G  G G  L L  ? ? A A @ @sd:A#O4 A#P AP*AP4P(P5QQ 4O>P PP%(P25P>Q  Qc tjdtzdtzdtzdtzdtzdtzdtzdtzdtzg }tjdtztdtzdtztdtzdtztdtzg }tjgd}tjgd}t||||d}t|j |j |j |j d}t |d d |d d y) Nr'rrr)r) rwrwrwrwrwrwrwrwrwrrrw)rfr rrrr)r6rerfrrrrs r;rz5TestSmoothSphereBivariateSpline.test_array_like_inputs#(C"HcBhRbr'38S2XsRxABhhRS2XrBwC"Hb2gC"H&' HH0 1 HHB C+5#qAF+5<<>3::<+,88:tM!$sC.$sC.Ar=NrrOr=r;rrOs F< P0EdBr=rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zej j#ej j%d ddgej j%dgddZej j#ej j)ej,dkddZy)TestRectBivariateSplinectgd}tgd}tgdgdgdgdgdg}t|||}t||||y)NrQr#r$r#r$r#r#r$r%r$r#r#r$r$r$r#r rrr6r7r8rr9s r; test_defaultsz%TestRectBivariateSpline.test_defaultssI +  +  ;{;{;O P!!Aa(!#a(1-r=c Btgd}tgd}tgdgdgdgdgdg}t|||}gd}gd}|j||}tt||D cgc]\}} ||| dc} }} t || ycc} }w)NrQrrr)r#ffffff@g333333@rffffff @333333?r%)r#rrrg@rwr%r)r revrr) r6r7r8rr9rQrRzirr#zi2s r; test_evaluatez%TestRectBivariateSpline.test_evaluates +  +  ;{;{;O P!!Aa( , , VVB^CBK@&"bSR[%@AB$As0B ctgd}tgd}tgdgdgdgdgdg}tgdgdgdgdgdgd z }tgd gd gd gd gd g}tgd gdgdgdgdgd z }t|||}t|||d|t|||d|t|||dd|y)NrQrrrrrirrrrrrrrrr@rrrrirrrpr@r+rr#rr)rgrr$r'rпr(iriig@0@rg@0rrRrrng+rg+@ir#dxdy)rrrr6r7r8rrrdxdyr9s r;test_derivatives_gridz-TestRectBivariateSpline.test_derivatives_grids +  +  ;{;{;O P M,{ +'((*+ M-0@ m-.'(? 1-ABBDE!!Aa(!#aQ-3!#aQ-3!#aQ!"4T:r=c `tgd}tgd}tgdgdgdgdgdg}tgd}tgd}tgddz }t|||}t|||d d |t|||d d |t|||d d d |y)NrQrrrrrgUUUUUU?rrr@r+rrrAr7 8@r#F)rr.)rr.rrr.rrs r;rlz(TestRectBivariateSpline.test_derivativess +  +  ;{;{;O P > " # $%&s*!!Aa(!#aQE":2>!#aQE":2>!#aQ!"?Er=ctgd}tgd}tgdgdgdgdgdg}tgdgdgdgdgdgd z }tgd gd gd gd gd g}tgd gdgdgdgdgd z }t|||}t|jdd|||t|jdd|||t|jdd|||y)NrQrrrrrrrrprrrrrrrr#rr rrpartial_derivativers r;#test_partial_derivative_method_gridz;TestRectBivariateSpline.test_partial_derivative_method_grids / " / " ?"""" $ % %$#%# %&)+ + %%()% '( +1'1' )*-/ / "!Q*!">#"8"8A">q!"DbI!">#"8"8A">q!"DbI!">#"8"8A">q!"DdKr=ctgd}tgd}tgdgdgdgdgdg}tgd}tgd}tgddz }t|||}t|jd d ||d |t|jd d ||d |t|jd d ||d |y) NrQrrrrrrrr#rFr-rrs r;test_partial_derivative_methodz6TestRectBivariateSpline.test_partial_derivative_methods / " / " ?"""" $ % % & ' ()*S0!!Q*!">#"8"8A">q!DI#K"$ & "">#"8"8A">q!DI#K"$ & "">#"8"8A">q!DI#K"& (r=ctgdt}|j}t|j|jf}t |||}t t5|jdddddy#1swYyxYw)N)rr#r$r%r@rr@r#) r rrr sizerrrrrs r;'test_partial_derivative_order_too_largez?TestRectBivariateSpline.test_partial_derivative_order_too_largesk / / FFH !&&!&&! "!!Q* : & )  " "1a ( ) ) )s !A==Bc tgd}tgd}tgdgdgdgdgdg}t|||}t|||||dddf|dddfdy)NrQrrrFr-)r rrrs r;test_broadcastz&TestRectBivariateSpline.test_broadcastsb +  +  ;{;{;O P!!Aa(Aq 3q4y!DF)%#HIr=c tt5}tgd}tgd}tgdgdgdgdgdg}t|||ddddt j vsJtt5}tgd}tgd}tgdgdgdgdgdg}t|||ddddt |j vsJtt5}tgd}tgd}tgdgdgdgdg}t|||dddd t |j vsJtt5}tgd}tgd}tgd gd gd gd gd g}t|||dddd t |j vsJtt5}tgd}tgd}tgdgdgdgdgdg}d}t||||ddddt |j vsJtt5}tdddddt |j vsJy#1swY-xYw#1swYxYw#1swYfxYw#1swYxYw#1swYxYw#1swYcxYw)N)rr$r%r@rRrQrrrx must be strictly increasing)r$r$r%r@rRy must be strictly increasingz7x dimension of z must have same number of elements as x)r#r$r#r$)r#r$r%r$)r#r$r$r$z7y dimension of z must have same number of elements as yr8rr9rvrer)rrr rrr)r6rr7r8rrs r;r?z*TestRectBivariateSpline.test_invalid_inputs : & )$o&Ao&A&9:A 1a (  ) /#djj/AAA : & )$o&Ao&A&9:A 1a (  ) /#djj/AAA : & )$o&Ao&A&()A 1a (  ) Idjj/" "": & )$o&Ao&A|\<#\34A 1a (  ) Idjj/" "": & 4$o&Ao&A&9:A$D 1ad 3  4+c$**o=== : & 1$ 1a4 0 1%TZZ888[ ) ) ) ) ) ) ) ) 4 4 1 1sKAI=AJ 4?J#AJ$AJ1 J==J JJ!$J.1J:=Kcftgd}tgd}tgdgdgdgdgdg}tgd}t||||}t|j|j|j|j}t|dd|ddy)NrQrrr)r#rRr#rRrrw)r rrr)r6r7r8rrrrs r;rz-TestRectBivariateSpline.test_array_like_inputFs / " / " ?O_"O5 6\""1a6"188:qxxz188:(, 7!$sC.$sC.Ar=cBd}tjjdtj|}tjjddtjz|}tj|}t |||d}d}d}tj ||z tjz}tj ||z dztjz} ||| |j} d| d<tt5} || | dddd t jvsJ| j} d| d<tt5} ||| dddd t| jvsJy#1swYrxYw#1swY/xYw) Nr5rr$rjrerr%MbP?rr) rfrandomuniformrr rrqrrrrr) r6NSampThetaPhiData InterpolatorNLonNLat GridPosLats GridPosLonsnonGridPosLatsr>nonGridPosLonss r;test_not_increasing_inputz1TestRectBivariateSpline.test_not_increasing_inputRsa !!!RUUE2ii1ruu9e4wwu~25#tsK iio,ruu4 iio,q02558  [+.$))+!q : & 6(  5 6.#hnn2EEEE$))+!q : & 6( n 5 6.#hnn2EEEE 6 6  6 6s F  F FFctjjd}tj|}tj|}|j dd||f}|||j tj fS)Nr#rr)rfr default_rngrqintegersastypefloat64)r6nxnyrngr7r8rs r;_sample_large_2d_dataz-TestRectBivariateSpline._sample_large_2d_dataos`ii##A& IIbM IIbM LLC"b *!QXXbjj)))r=r)^iR)is_tols))r-q=gHz>)r#gy&1|?-C6?)r%{Gz?rc|\}}|\}}}|j||\}} } t|| | |} | || } tj| j rJt | | ||y)Nrer.rtolrrrfisnananyr) r6rrrrr*r.rr7r8rr:z_spls r;test_spline_large_2dz,TestRectBivariateSpline.test_spline_large_2dwssB 4,,R41a!!QQ/Aq 88E?&&()(qt$7r=lz2Segfaults on 32-bit system due to large input data)reasoncd\}}d\}}}|j||\}}}t||||d} | ||} tj| j rJt | |||y)N)rdi)r$rrr)r*maxitrr) r6rrr*r.rr7r8rr:rs r;test_spline_large_2d_maxitz2TestRectBivariateSpline.test_spline_large_2d_maxitsu B& 4,,R41a!!QQb9Aq 88E?&&()(qt$7r=N)rLrMrNrrrrlrrrrr?rrrrr slow parametrizerskipifsysmaxsizerrOr=r;rrs. % ; FL8(,)J/9b BF:* [[ [[Wz;&?@ [[X(9: 8:A 8 [[ [[ u,6OP 8P 8r=rcBeZdZdZdZdZdZdZdZdZ dZ d Z y ) TestRectSphereBivariateSplinec tddtzdz d}tdtdz d}tgdgdgdgdgdgdgdg}t|||}t ||||yN{Gz?r$rXr#r$r#r$r#r$r#r#r$r%r$r#r$r#r#r$r$r$r#r$r#)r rr rrr6r8r7rr9s r;rz+TestRectSphereBivariateSpline.test_defaultssi T1R49a ( T2d7A & ???"??"$ %(!A.!#a(1-r=c ptddtzdz d}tdtdz d}tgdgdgdgdgdgdgdg}t|||}gd}gd}|j ||}tt ||D cgc]\}} ||| d c} }} t || ycc} }w) Nrr$rXrrr)rr#rg@rgQ@g@)r)rrtg?gjt?rwrr)r rr rrrr) r6r8r7rr9rRrQrrr#rs r;rz+TestRectSphereBivariateSpline.test_evaluates T1R49a ( T2d7A & ???"??"$ %(!A. 1 6 VVB^CBK@&"bSR[%@AB$AsB2 c ttjtjdtjdddz jtjdtj tjdddz j}t t5}tjd d dtjzdz }tjd d dtjzdz }t|||dddd tjvsJt t5}tjdddtjzdz }tjd d dtjzdz }t|||dddd t|jvsJt t5}tjdd dtjzdz }tjdddtjzdz }t|||ddddt|jvsJt t5}tjdd dtjzdz }tjdddtjzdz }t|||ddddt|jvsJt t5}tjdd dtjzdz }tjdd dtjzdz }t|||d ddddt|jvsJy#1swYvxYw#1swYxYw#1swYhxYw#1swYxYw#1swYVxYw)NV@TT@f@rSu@rYr+rrru should be between (0, pi)rK v[0] should be between [-pi, pi)h"v[-1] should be v[0] + 2pi or lessrer rfdot atleast_2dr r^r1rrrrrrr6r`r>rjrks r;r?z0TestRectSphereBivariateSpline.test_invalid_inputsvvbmmC"++dC*D$DEGGmmD266"++b$2J+K$KLNNOa : & 8(;;r3*RUU2T9D;;q#r*RUU2T9D %dD$ 7 8-HNN0CCCC : & 8(;;r3*RUU2T9D;;q#r*RUU2T9D %dD$ 7 8-HNN0CCCC : & 8(;;r3*RUU2T9D;;tR,ruu4t;D %dD$ 7 82S5HHHH : & 8(;;r3*RUU2T9D;;sC,ruu4t;D %dD$ 7 84s8>>7JJJJ : & >(;;r3*RUU2T9D;;r3+bee3d:D %dD$" = >&X^^)<<<<9 8 8  8 8  8 8  8 8  > >A#A$M;7A$N A$NA$N"3A&N.;NNN"N+.N7c tddtzdz d}tdtdz d}tgdgdgdgdgdgdgdg}t|||}tddtzdz d}tdtdz d}t |||d t |||d d d t |||d t |||dd d t |||ddt |||ddddd t |||d |jdd||t |||d |jdd||t |||dd|jdd||t |||dd|jdd||dt |||dd|jdd||dt |||ddd|jdd||dy)Nrr$rXrrrrr#)dthetarrrr.)dphir)rrư>rrr<rrFrr.r-rr.rrr.)r rr rr _numdiff_2drrrs r;rz3TestRectSphereBivariateSpline.test_derivatives_grids T1R49a ( T2d7A & ???"??"$ %(!A. T1R49a ( T2d7A &Aq+[aq-I! .Aqq);sAqQ+G! .Aq3#CA!tD! . Aq+7311!Q71= ?Aqq)7311!Q71= ?Aq37311!Q71= ? Aq77311!Q715I KAqqu57311!Q715I KAq?7311!Q715I Kr=c Rtddtzdz d}tdtdz d}tgdgdgdgdgdgdgdg}t|||tddtzdz d}tdtdz d}||dd j|jk(sJt ||dd t fd ||d d d t ||dd t fd||dd d t ||ddd t fd||dddddy)Nrr$rXrrrrr#Fr"c||dSNFr-rOr7r8r9s r;z@TestRectSphereBivariateSpline.test_derivatives..AaU0Cr=rrrr#c||dSr(rOr)s r;r*z@TestRectSphereBivariateSpline.test_derivatives..r+r=rr$c||dSr(rOr)s r;r*z@TestRectSphereBivariateSpline.test_derivatives..r+r=r r!r)r rr rrrr%rs @r;rlz.TestRectSphereBivariateSpline.test_derivativess. T1R49a ( T2d7A & ???"??"$ %(!A. T1R49a ( T2d7A &1a.44???Aq7#$CQaP! . Aqqu5#$CQaP! . Aq?#$C$%qQ1$@! .r=c ttjtjdtjdddz jtjdtj tjdddz j}t t5}tjd d dtjzdz }tjd d dtjzdz }t|||dddd tjvsJt t5}tjd ddtjzdz }tjd d dtjzdz }t|||dddd t|jvsJt t5}tjd d dtjzdz }tjdd dtjzdz }t|||ddddt|jvsJt t5}tjd d dtjzdz }tjdddtjzdz }t|||ddddt|jvsJt t5}tjd d dtjzdz }tjd d dtjzdz }t|||dddddt|jvsJy#1swYvxYw#1swYxYw#1swYhxYw#1swYxYw#1swYVxYw)Nr r r r rrSrrYrrrrrrrrrrr+rerrrs r;test_invalid_input_2z2TestRectSphereBivariateSpline.test_invalid_input_2 svvbmmC"++dC*D$DEGGmmD266"++b$2J+K$KLNNOa : & 8(;;q#q)BEE1D8D;;q#r*RUU2T9D %dD$ 7 8-HNN0CCCC : & 8(;;r3*RUU2T9D;;q#r*RUU2T9D %dD$ 7 8-HNN0CCCC : & 8(;;r3*RUU2T9D;;tR,ruu4t;D %dD$ 7 82S5HHHH : & 8(;;r3*RUU2T9D;;sC,ruu4t;D %dD$ 7 84s8>>7JJJJ : & >(;;r3*RUU2T9D;;r3+bee3d:D %dD$" = >&X^^)<<<<9 8 8  8 8  8 8  8 8  > >rc Vtddtzdz d}tdtdz d}tgdgdgdgdgdgdgdg}t|||}t|j |j |j }t ||||||yr)r rr rrr)r6r8r7rrrs r;rz3TestRectSphereBivariateSpline.test_array_like_input+s T1r6D=! , T29a ( (*?((*?(( * + )Aq1(QXXZL!$q!*d1aj9r=ctjgd}tjgd}tj||}|d|dz}tj|}tj|}t |||}tjtjddg}tjtjddg} ||| } tjd d gd d gg} t | | y) N)r#r-)iiirrr#r4gB@r6g`SgFg=EgHgDioEG)rfr r radiansrr) r6rjrkmeshr`lat_rlon_r interpolator query_lat query_lon data_interpanss r;test_negative_evaluationz6TestRectSphereBivariateSpline.test_negative_evaluation9sxx,-xx01{{4&Awa  4  4 0tD JJrxxT 34 JJrxxe 56 "9i8 hh +!9-/0!+s3r=ctjddtjzdz }tjddtjzdz }tjd}dD]}t |||d|y)Nr#r)rYrY))TT)TF)FFr)r*pole_continuity)rfrqrrr)r6uvrps r;test_pole_continuity_gh_14591z;TestRectSphereBivariateSpline.test_pole_continuity_gh_14591Hso IIa ruu $r ) IIa ruu $r ) HHV > GA %aAA F Gr=N) rLrMrNrrr?rrlr0rr@rFrOr=r;rrs4. % =D KD.0 =D : 4 Gr=rc|dk(r|dk(r |||S|dk(r$|dk(r|||z||||z |z d|zz S|dk(r$|dk(r||||z||||z z d|zz S|dk(rM|dk(rH|||z||z|||z ||zz |||z||z z |||z ||z zd|zdzz Std)Nrr#r$zinvalid derivative order)r)funcr7r8rrr<s r;r%r%Ws Qw27Aqz qR1WQWa 4C#33#>> qR1WQC 41s7#33#>> qR1WQWa#g&a#gq3w)??q3wC()+/CS+ABFGeaZP P344r=c4eZdZdZdZdZdZdZdZdZ y) Test_DerivedBivariateSplinezgTest the creation, usage, and attribute access of the (private) _DerivedBivariateSpline class. c tjttt dt d}tjttt dt dd}tjtj dddtj dddf}t 5}|jtdt|||t dddt d d dd |_ dddt||||_ t d dd}|dz}tt |jDcgc]}tj||c}}t!||||_tt%j&t dt d|_y#1swYxYwcc}w)Nrr# r%rrg3@r@r)g4@rr;rr5rw)rf concatenatelistrrr rrrrr_r lut_smoothr rrollrlut_rect itertoolsproductorders) r6r7r8rrrrizzs r;rlz(Test_DerivedBivariateSpline.setup_methodisS NN4E"IuRy 9: ; NN4E"IuQ| <= > NNBKK1b12;;q!R3HI J   8C JJ{$F G-aA.6sD!.D.6sD!.D268DL 8 01a8 aB  #X 5=9aBGGAqM9 :+BB7 9,,U1XuQx@A  8 8:sAF9 G9Gc|jD]I\}}|jj||}|ddd}|jdd||d}||k(rIJy)NrjFr-r)rTr_rr6nuxnuylut_derrrs r;test_creation_from_LSQz2Test_DerivedBivariateSpline.test_creation_from_LSQzs`  HCll55c3?GSu-A S###E BA6M6  r=c|jD]I\}}|jj||}|ddd}|jdd||d}||k(rIJy)Ng@Fr-r)rTrOrrXs r;test_creation_from_Smoothz5Test_DerivedBivariateSpline.test_creation_from_Smooths`  HCoo88cBGSu-ASSSuEA6M6  r=c|jD]I\}}|jj||}|ddd}|jdd||d}||k(rIJy)Nrr)Fr-r)rTrQrrXs r;test_creation_from_Rectz3Test_DerivedBivariateSpline.test_creation_from_Rects`  HCmm66sC@GSu-A c333U CA6M6  r=c|jjdd}tt5|jdddy#1swYyxYwNr#)rQrrAttributeErrorfpr6ders r;test_invalid_attribute_fpz5Test_DerivedBivariateSpline.test_invalid_attribute_fps<mm..q!4 > *  FF   s AA c|jjdd}tt5|j dddy#1swYyxYwrb)rOrrrcr2res r;#test_invalid_attribute_get_residualz?Test_DerivedBivariateSpline.test_invalid_attribute_get_residualsAoo00A6 > *        s AAN) rLrMrN__doc__rlr\r^r`rgrirOr=r;rJrJes&B" r=rJ)rrg:0yE>)1rRrnumpyrf numpy.testingrrrrscipy._lib._array_apirrrrr r r r r rrscipy.interpolate._fitpack_pyrrrrscipy.interpolate._fitpack2rrrrrrrrrscipy._lib._testutilsrscipy.interpolaterr r rHrZrrrr%rJrOr=r;rrs + *CBBKK### :)F7F7R a6a6H~8~8BFBFBRRBRBjo8o8d~G~GB 522r=