L iZddlmZmZmZmZddlmZddlZddlm Z m Z m Z m Z ddlZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZddlm Z ddl!m"Z"m#Z#dd l$m%Z%dd l&m'Z'dd lm(Z(Gd d Z)GddZ*GddZ+GddZ,ejZj]deegdZ/GddZ0GddZ1GddZ2GddZ3GddZ4Gd d!Z5Gd"d#Z6Gd$d%Z7d&Z8e jrfd'Z:d(Z;d,d)Zy)-)xp_assert_equalxp_assert_closeassert_almost_equalassert_array_almost_equal)raisesN)mgridpisinpoly1d)interp1dinterp2dlagrangePPolyBPolysplrepsplev splantidersplintsprootAkima1DInterpolatorNdPPolyBSplinePchipInterpolator)pochgamma)_ppoly)assert_deallocatedIS_PYPY)_run_concurrent_barrier)nquad)binomceZdZdZy) TestInterp2Dctddddtdf\}}t|d|zz}tt5t |||dddy#1swYyxYw)Nry4@y5@?)rr r assert_raisesNotImplementedErrorr )selfyxzs n/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_interpolate.py test_interp2dzTestInterp2D.test_interp2ds\QqWa3h&'1 #a%L . /  Q1    s AAN)__name__ __module__ __qualname__r.r-r#r#sr3r#creZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZd(dZd(dZdZdZdZdZd(dZd(dZdZej8dfdZdZej@jCe"ddZ#dZ$d Z%d!Z&d"Z'd#Z(ej@jSd$d%d&Z*y')) TestInterp1Dctjd|_tjd|_tjd|_|jj d|_tjd|_tjd|_tjdg|_ tjdg|_ tjdj d|_ tjdj d|_ tjdj d |_tjdj d|_tjd j d |_tjd j d |_tjdj d|_d |j$dddf<d|j$dddf<tjdj d|_d |j&dddf<d|j&dddf<d|_y)N@$@)r%@g4@r% )r=r%)r%r%r9g>@)r%r9)r>r%r9rY)nparangex5x10y10reshapex25x2y2arrayx1y1y210y102y225y25y235y325y210_edge_updatedy102_edge_updated fill_valuer)s r- setup_methodzTestInterp1D.setup_method$s))B-99S>99S>88##E*))B-))B-((B4.((B4.IIcN**73 IIcN**73 IIcN**95 99S>))&1IIcN**95 IIcN**95 "$3!7!7!@')q!t$(+q"u%"$3!7!7!@')q!t$(+r1u% r3c f dD]G}t|j|j|t|j|j|dIt|j|jddt|j|jdtjdgt|j|jddt|j|jddt|j|jdd t|j|jd t|j|jd t|j|jd t|j|jd t|j|j ddd t|j |j dd tjdt|j |j dd tjdtjdft|j |j dd tjddfttt|j|jttt|jtjd ttt|j|jttt|j |jttt|j|jt|j|j t|j|jd ttt|j|jttt|j|jttt|j|jddttt|j|jdgdttt|j|jdtjdttt|j|jddggttt|j|jdddgttt|j|jdtjgttt|j|jddttt|j |j dd ddgttt|j |j dd dddgfy)N) nearest nearest-upzerolinearslinear quadraticcubicpreviousnextkind extrapolatererWr^)rArA)rA)rArArrhr%r>reaxisrWr=rj)rArArAr2r;)r rFrGrCrLrOrJonesr' ValueErrorrIrKrPrMrNr)res r-test_validationzTestInterp1D.test_validationMs ? ND TXXtxxd 3 TXXtxxd} M N 488(wG488(HHbTN ,488(! #488( 488($ &488!,488!,488!,488!,4998"$ &$))(GGBK )$))(WWR["''"+6 8$))(WWR["- / j(DHHdhh? j(DHHbhhqkB j(DHHdgg>j(DGGTXX>j(DHHdii@499%4991- j(DGGTXX>j(DHHdgg> j(DHHdhhX!- /j(DHHdhhX!- /j(DHHdhhX!#,!7 9j(DHHdhhX#%$ )j(DHHdhhX"$b +j(DHHdhhX!#" /j(DHHdhhX!# %j(DGGTYYX"b 3j(DGGTYYX"r2h 9r3c@t|j|jjsJt|j|jdjrJt|j|jjsJt|j|jdjrJt j t|j|jjsJt|j|jdjdk(sJt|j|jdjdk(sJt|j|jjdk(sJt|j|jjdk(sJt|j|jd jdk(sJtt|j|jj|jtt|j|jj|jtt|j|jj|jy) NF)copy) bounds_error@rW)?r:rrhrk)r rFrGrqrrrCisnanrWrjrOrPrr+r*rXs r- test_initzTestInterp1D.test_inits$((+0000DHHdhhU;@@@@$((+8888DHHdhhUCPPPPxx4884??@@@$((s;FF#MMM488 CNN $((+00A555$)),11Q666$))!499Q>>>488466A488466A499577Cr3ct|j|j}t|jddd|jddd}t||j|jt|dt j dt|gd|gdt|jddd|jdddd}t||j|jt|jddd|jdddd}t t||jt|j|j}t|jddd|jdddddf}t||j||jy)NrA333333?g333333@gffffff@@F) assume_sortedT) r rFrGrrCrLr'rmrO)r)interp10interp10_unsortedinterp10_assume_kwinterp10_assume_kw2 interp10_y_2dinterp10_y_2d_unsorteds r-test_assume_sortedzTestInterp1D.test_assume_sortedsdDHHdhh/$TXXdd^TXXdd^D!"3DHH"=txxH!"3C"8"((3-H!"3O"D"*?"; =&dhhttndhhttn49;!"4TXX">I&txx"~txx"~59; j"5txx@!4995 !)$((4R4.$))AttG:L!M!-"9"8"B Dr3c4dD]}|j|y)N)r^r_) _check_linearrns r- test_linearzTestInterp1D.test_linears) %D   t $ %r3c>t|j|j|}t||j|jt|dt j dt|gdt j gdt|j|j|d}t |gdt jgddt|dd }ttt|j|jfi|y) Nrdryrzrfrgr +=rtolTrerWrr) r rFrGrrCrLrasarraydictr'rm)r)rer} extrapolatoroptss r-rzTestInterp1D._check_linearsDHHdhhT:!(488"4dhh?!(3-#?!(?";"$((?"; = $((+8:  _5 #345 B,!%' j(DHHdhhG$Gr3ctjtjtjtjfD]N}tj d|}|}t ||d|}|j|k(sJt||dPgd}tjdd g}t |||}t||dy) Ndtyper^rdV瞯<atolrrhr%rrh) rCfloat16float32float64 longdoublerDr rrnan)r)dtypr+r*yps r-test_linear_dtypeszTestInterp1D.test_linear_dtypessZZZZZZ]]$ /D !4(AA.!QX.q1B88t# ## B . /  VVQN Xa^A AE*r3ctjtjtjg}|tjtj gz}gd}|D]}tj dd|}|D]v}tj| dz j|}|D]G}|j|} |D]/} t||| d} t| | |dd|d |d | 1Ixy) N)r_r]r`rarr=rrsFrerrHz>z,  )r check_dtypeerr_msg) rCrrr complex64 complex128rDexpastyper r) r)dt_rdt_rc spline_kindsdtxr+dtyr*dtnxnewrefs r-test_slinear_dtypesz TestInterp1D.test_slinear_dtypess BJJ 3 bmm44@  GC !Rs+A GFFA2c6N))#.GC88C=D ,G$Q5I'$4936%r#au0EGGG G Gr3czt|j|jd}t||j|jt|dt j dt|dt j dt|gdt j gdy)Nrardry?rzr rFrGrrCrLr)r}s r- test_cubiczTestInterp1D.test_cubicsvDHHdhhW=!(488"4dhh?!(3-#?!(3-#?!(?";"$((?"; >r3cbt|j|jd}t||j|jt|dt j dt|dt j dt|gdt j gdt|j|jdd }t |gd gd d tddd}ttt|j|jfi|y)Nr[rdryrurrzr:r{r{rfrgrr;rrrrrTr r rFrGrrCrLrrr'rmr)r}rrs r- test_nearestzTestInterp1D.test_nearestsDHHdhhY?!(488"4dhh?!(3-">!(3-">!(?";"$((<"8 ; $((+8:  _5&U 4,!%' j(DHHdhhG$Gr3cbt|j|jd}t||j|jt|dt j dt|dt j dt|gdt j gdt|j|jdd }t |gd gd d tdd d}ttt|j|jfi|y)Nr\rdryrurr:rzrrfrgrrrrTrrrs r-test_nearest_upzTestInterp1D.test_nearest_upsDHHdhh\B!(488"4dhh?!(3-">!(3-">!(?";"$((<"8 ; $((+8:  _5&U 4,!%' j(DHHdhhG$Gr3c t|j|jd}t||j|jt|dt j dt|dt j dt|gdt j gdt|j|jdd }t |gd tjd d d gd t|j|jdd }t |gdtjtjddd d gt|j|jdd }t |gdtjtjddd d gtjtjddddggt|j|jdd d}t |gdtjtjgddgddggtddd}ttt|j|jfi|tgdgdddd}t |gdtjtjd dd d d gtgd!gd"ddd#}t |gdtjtjd dd d d gt|j|jdd }t |gdtjtjddd$d$gtjtjddd$d$ggt|j|jdd d}t |gdtjtjgddgd$d$ggy)%Nrbrdryrurrzr:r7r{rfrgrrrrrrAr9r r9rrirr9rr=rTrrrrhrArerWr|rrArrhr%r>r9rhrAr%rrhrArrhFr@r rFrGrrCrLrrrOrPrr'rmrUrVr)r}rinterpolator1Dinterpolator2Dinterpolator2DAxis0rs r- test_previouszTestInterp1D.test_previous/s*DHHdhhZ@!(488"4dhh?!(3-">!(3-">!(?";"$((<"8 ; $((+8:  _5Aq) 7"$((DHH:-:<'=>Aq!4 6"$((DIIJ-:<'=>&&"&&!Q15&&"&&"b"b9; <'txx,--I+K8&&"&&)bb# $ ,!%' j(DHHdhhG$G")",:-:046 '>?Ar2r: <")",:-:057 '>?Ar2r: <"$((D,B,B'1-:< '=>&&"&&!QS9&&"&&"b#s;= >'txx1G1G,6,--I +K8&&"&&)bs% &r3c t|j|jd}t||j|jt|dt j dt|dt j dt|gdt j gdt|j|jdd }t |gd d d d tjgd t|j|jdd }t |gdd d ddtjtjgt|j|jdd }t |gdd d ddtjtjgddddtjtjggt|j|jdd d}t |gdd dgddgtjtjggtddd}ttt|j|jfi|tgdgdddd}t |gdd d d ddtjtjgtgd gd!ddd"}t |gdd d d ddtjtjgt|j|jdd }t |gdd#d#ddtjtjgd#d#ddtjtjggt|j|jdd d}t |gdd#d#gddgtjtjggy)$Nrcrdryr:rrz)rsr{r{rfrgrrrrrrr9rr=rrrirrhrTrrrrrrArrFr?rrs r- test_nextzTestInterp1D.test_nextts*DHHdhhV<!(488"4dhh?!(3-">!(3-">!(?";"$((<"8 ; $((+8:  _5Aq"&&) 7"$((DHH6-:<'=>Aq!RVVRVV4 6"$((DIIF-:<'=>Q1bffbff5b"b"&&"&&9; <'txx,--I+K8Qb&&"&&)+ , ,!%' j(DHHdhhG$G")",6-:046 '>?Aq!R8 :")",6-:057 '>?Aq!R8 :"$((D,B,B'--:< '=>b!Q7b"b"&&"&&9; <'txx1G1G,2,--I +K8bb&&"&&)+ ,r3czt|j|jd}t||j|jt|dt j dt|dt j dt|gdt j gdy)Nr]rdryrurrzrrrs r- test_zerozTestInterp1D.test_zerosvDHHdhhV<!(488"4dhh?!(3-">!(3-">!(?";"$((<"8 :r3ctt|| ||y#t$r}|t|vsJYd}~yd}~wwxYwN)r'rmstr)r) interpolant test_array fail_valueerrs r-bounds_check_helperz TestInterp1D.bounds_check_helpersA j+z: 1  # 1!ls3x/ 0/ 1s ?:?r^ct|j|j|jd|}t |dt j |jt |dt j |jt |dgdgdgdgggt j |jdt |jt j gdt j gd gd gt|j|jd | }|j|d d |j|dd|j|gdd |j|gdd|gdy)NF)rWrrregffffff&@g333333 g333333)@gL3@) check_shape)rr;r7"@&@)TFFFF)FFFFTT)rrrerr)r;rr;)r;ru5@r)r;r7r) r rFrGrWrrCrL _check_boundsr)r)reextrap10raises_bounds_errors r- _bounds_checkzTestInterp1D._bounds_checksDDHHdhh4??).T; (AB(ABD6D6D6D6"B!CD88DOO4% I..!xx(CDF88%G%G%IJ K 'txx,02   !4dDA   !4dDA   !46FM   !46FMO,r3ctjdjt}tjdjt}t |||tj d}||dz }tj |dsJt|tjtj |ddfy)Nr=FrrhrrA) rCrDrintr rrvrr_)r)rer+r*cyis r-_bounds_check_int_nan_fillz'TestInterp1D._bounds_check_int_nan_fills IIbM  % IIbM  % Qe L q1uXxx1!"beeBFFAcrFN&;rhr)r,r%rr)r8rrc3FK|]}tj|ywr)rCrL).0rs r- z1TestInterp1D._check_fill_value..Rs"C1288A;"Cs!iiii0)r rFrGrrCrrSrTrQrRrEndimshaper'rmrLrangetuple)r)reinterpr*resultrWiis r-_check_fill_valuezTestInterp1D._check_fill_values $((DHH4%0uF!&*bjj.>?!&+rzz%/@A!&#r"3dC[A))TYY 488< AAdggqt"),5BF %fRj"**T2B C %fSk2::d3C D %fc2Y&7D9I Jdggqt")45JF %fRj"**T2B C %fSk2::e3D Evv{ #;-!''!*45 B+3 %fc2Y&7 @! A&% ))TYY' NA *h!ju N N$''4994b%/eE!&*.?!.CD!&+/@1/DE!&#r"3Sz8;Sz8;Sz7C6DFG6H I 3Z j(DGGTYYT*5 J))TYY1 AAdggqt")3%IF3ZFvv{ AGGAJ. %fRj& 9 %fSk6 :Cj3*-Fvv{ AGGAJ. %fc2Y&7 @ Ahh12C8 ))TYY' NA *h!ju N N$''4994b%/eE!&*bjj.>?!&+0B/Ca/GH!&#r"3c{8"?"$((RHsCj+A"B DTXXtyyqtD !)B-3*1EF!)BHHb"X,>"?"$((RHr2h+?"@ B2r(RH-.!)E"2"$((b"XBx,@.13Z#s,D,F#G H ")E"2"$((b"XSz,B.0"XSz,B,D#E Fr3cgd}tjtj|j|}t |D]\}}tj|}t ||||}t ||||tjdjddz }t|} gd| ||dz||jt| k(rJ|y)N)r9rrr)r%r>rhrrh) rCrDprodrH enumerater rlistrr) r)rear*nsr+r,rJbs r-_nd_check_shapezTestInterp1D._nd_check_shapes  )BIIbggaj ! ) )1 -aL 1DAq ! AAAD1A %adAt <5!))'2S8BQA Aa!HR5;;%(* 0D 0* 1r3cVdD]$}|j||j|&y)N)r^rar_r`r[r]rbrc)rr%rns r-test_ndzTestInterp1D.test_nds/1 'D  ! !$ '   & 'r3ctjgd}||dzz}|j|}t|||}t |dd||ddtj ddd}t||j |}t||j|}t ||j ||t ||j||y)N) rh@r>g@rg@g@g @g#@r=?@rdrArhr=)rCrLrr rlinspacerealimag) r)rrer+r*rxicrcis r-_check_complexzTestInterp1D._check_complexs HH@ A f  HHUO Q %!!CR&!A$s)4[[B # ad + ad +!!B%**bf5!!B%**bf5r3cdD]B}|jtj||jtj|Dyr )r2rCrrrns r- test_complexzTestInterp1D.test_complexs;1 5D    d 3    t 4 5r3zTest not meaningful on PyPy)reasonctjdd}tjdd}tt||5}|ddg~dddy#1swYyxYw)Nrrh皙?皙?)rCr,rr )r)r+r*rs r-test_circular_refszTestInterp1D.test_circular_refssV KK1  KK1  !Q / 6 C:    s AAcdD]I}tjgdtj}t|||}t |||Ky)N)r[rbrc)r2rrd)rCrLint8r r)r)rer+rs r-test_overflow_nearestz"TestInterp1D.test_overflow_nearestsA3 0DRWW5A!QT*B %beQ / 0r3c"tjdjt}|j }tj |d<dD]?}t |||}|ddg}tj|jr?Jy)Nr=r)r]r_rdg@r) rCrDrfloatrqrr isfiniteall)r)r+r*reirvalss r-test_local_nanszTestInterp1D.test_local_nanssy IIbM  ' FFHvv!' +D!QT*BsCj>D;;t$((* ** +r3ctjdjt}|j }|j }tj |d<dD]}t |||}t |||}dddgddgddggfD]g}tj|}||||} }tj| jsJ|j| jk(rgJy)Nrr>)r`rardrrhr9) rCrDrr@rqrr rrvrBr) r)r+r*ynrerCirnroutoutns r-test_spline_nanszTestInterp1D.test_spline_nanss IIaL   & FFH VVX1* /D!QT*B1bt,CQFaVaV$45 /zz$'qE3q6Txx~))+++yyDJJ...  / /r3ctjdtjz}tjd}t t 5t ||ddddy#1swYyxYw)Nr=rard)rCrlrrDr'rmr )r)r+r*s r- test_all_nanszTestInterp1D.test_all_nanssN GGBK"&&  IIbM : & ) Q ( ) ) ) A##A,cftjdd}tj| dz }tjddd}dD]f}||j_d|j_dD]=}t ||| }||}tj |jr=Jhy) Nrr=rsrr7TFF)r^r[r]r_r`rard)rCrDrflags writeabler rArB)r)r+r*rxnew_writeablererrDs r-test_read_onlyzTestInterp1D.test_read_onlys IIa  FFA28 yyAs#+ /N#1DJJ %AGG " /Q-w{{4(,,...  / /r3re)r^r[r\rbrcctdgdg|dd}t|gdtjgdtdgdg|d }t t d 5|d dddy#1swYyxYw) NrrFr<)rerrrW)rhrr%)r:rr=Trzx_new is abovematchr:)r rrCrr'rm)r)rers r-test_single_valuezTestInterp1D.test_single_value,so cUQCd ' )+ <(@A cUQCd > :-= >  cF   s  A00A9N)r^)+r/r0r1rYrorwrrrrrrrrrrrrrrrrr r rr%r'rCrr2r4pytestmarkskipifrr9r>rErKrMrT parametrizerXr2r3r-r5r5"s '!RB9HD&D4%H&+*G$>H*H*C&JC,J:1-0=2 _LB) *F@ 1' $&==x6 5  [[(EFG0 +/$) / [[Gr3r5ceZdZdZy) TestLagrangectgd}tjt|j}||}t ||}t |j|jy)N)r9r%rhrr>)r rCrDlencoeffsrr)r)pxsyspls r- test_lagrangezTestLagrange.test_lagrange<sH ;  YYs188} % rU b_!!((2995r3N)r/r0r1rfr2r3r-r^r^:s6r3r^cNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestAkima1DInterpolatorctjdd}tjgd}t||}tjgd}tjgd}t |||y)Nr;r r;r:rursr:r{@rkg@ffffff@rs r;r&rurr) @g@rlg@g@g333333!@g#@r8 r;g?r:rg@?g@g.袋@g^@gn@gGNB@grcߖ@g I @rsrCrDrLrrr)r+r*akr/rs r- test_evalz!TestAkima1DInterpolator.test_evalEsc IIb#  HHE F A & XX XX 2#r3ctjdd}tjgd}t||d}tjgd}tjgd}t |||y)Nr;rrjmakimamethodrm) r;gF??r:g?g?gg{'@g>J(j@g?@gq@g@g9~@go @rsrprqs r- test_eval_modz%TestAkima1DInterpolator.test_eval_modRsg IIb#  HHE F Ah 7 XX&' XX56 2#r3c^tjdd}tjgd}tj|d|zf}t ||}tjgd}tjgd}tj|d|zf}t |||y)Nr;rrjr:rmro)rCrDrL column_stackrrrqs r- test_eval_2dz$TestAkima1DInterpolator.test_eval_2dcs IIb#  HHE F OOQQK ( A & XX&' XX89__b"r'] +2#r3ctjdd}tjgd}tjd}||ddddf<d|z|ddddf<d|z|ddddf<d |z|ddddf<t ||}tjgd }tjd }tjgd }||ddddf<d|z|ddddf<d|z|ddddf<d |z|ddddf<t |||y) Nr;rrj)rr%r%rr:rhrsrrm) r%r%ro)rCrDrLemptyrr)r)r+y_r*rrr/ryi_s r- test_eval_3dz$TestAkima1DInterpolator.test_eval_3dts IIb#  XXF G HHZ !Q' "W!Q' "W!Q' "W!Q' A & XX&' XXj !hh9:1a7 3h1a7 3h1a7 3h1a7 2#r3ctjddgt}tjddg}t||dd}t |dtjdy) Nr;rurr&r)rjrfg?g333333?)rCrLr@rr)r)r+r*akimas r-$test_linear_interpolant_edge_case_1dz @ @Ar3ctjdd}tjgd}t||}d}t j t |5|jdddddy#1swYyxYw)Nr;rrjz9Extending a 1-D Akima interpolator is not yet implementedrV)rCrDrLrrYrr(extend)r)r+r*rrrWs r- test_extendz#TestAkima1DInterpolator.test_extendsd IIb#  HHE F A &K ]].e < " IIdD ! " " "s A33A<ctjdd}tjgd}d}tjt |5t ||ddddy#1swYyxYw)Nr;rrjz `method`=invalid is unsupported.rVinvalidrv)rCrDrLrYrr(r)r)r+r*rWs r-test_mod_invalid_methodz/TestAkima1DInterpolator.test_mod_invalid_methodsV IIb#  HHE F2 ]].e < 8 1Y 7 8 8 8rNc8tjddd}|dz}tjddd}|dz}t||d }t||d }t||d }t||||d t ||d dtj dtj t ||ddtj dtj t||d ||d t|||d y)Nr9rr%rr=TrfFrrrrrAr>)rCr,rrrfullr)r)r+r*x_exty_extak_trueak_falseak_nones r-test_extrapolate_attrz-TestAkima1DInterpolator.test_extrapolate_attrs KKAr " qD CR(q%a=&q!?%a=eD!,bgga.@A2.2660BCD975>PUVwu~E:r3N)r/r0r1rsrxr{rrrrrrrrr2r3r-rhrhDs: $$"$"$26 &72B"8;r3rhrwctjdd}tjgd}|d|zz }d}tjt |5|||dddd}y#1swYd}yxYw)Nr;rrjy@z real valuesrVctjddd}|dz}tjddd}t||d }d }td|||y) Nrr9rr%rr=rTrc||yrr2)_rrrs r- worker_fnz9test_complex..test_concurrency..worker_fns uIr3)rCr,rr)r)r+r*rrrrs r-test_concurrencyz&test_complex..test_concurrencysR KKAr " qD CR( A4 8  Ir59r3)rCrDrLrYrrm)rwr+r*msgrs r-r4r4sf "cA ABA BqDA C z -q!  : :s  A))A5cBeZdZdZdZdZdZdZdZdZ dZ d Z y ) TestPPolyCommonctjddgddgddgg}tjgd}ttt||ttt ||y)Nrhrr%r9r>r)rrhr&)rCrLr'rmrr)r)rr+s r-test_sort_checkzTestPPolyCommon.test_sort_checksM HHq!fq!fq!f- . HH[ !j%A.j%A.r3cltt5tddgddgdddy#1swYyxYw)Nrhr%r)r'rmrrXs r- test_ctor_czTestPPolyCommon.test_ctor_cs1 : & " 1a&1a& ! " " "s*3cFtjjdd}tjtjddtjj dzdf}dtjj |dzt |dz ddzdz }ttfD]}||ddddf|dd}|j|ddddf|dd||ddddf|dd}|j|ddddf|dd|||}t|j|jt|j|jt|j|jt|j|jy) Nr>rr=r?r%rhr) rCrandomseeduniquerrandr`rrrrrr+)r)orderr+rclspppp2pp3s r-rzTestPPolyCommon.test_extend sS t IIbeeArBIINN2$66:; < biinnU1Wc!fQh15 5 95> *CQq!tWaf%B IIa!"gqv &a23i23(C JJqCRCy!CR& )a)C BDD#%% ( BDD#%% ( CEE355 ) CEE355 ) *r3c`tjjdtjddd}tjj dd}tjddd}tjj dd}t t fD]}|||}|||}|||}|j||ddtjdddd } tjddd} t|| || t|| || y) Nrrrhrr%r9rrF)endpoint) rCrrr,rrrrr) r)r+rrJc2rpp1rpp_combxi1xi2s r-test_extend_diff_ordersz'TestPPolyCommon.test_extend_diff_orderss t KK1a  IINN1a  [[Aq ! YY^^Aq !5> 4Ca)Cb"+C!QiG NN2r!"v &++aC%8C++aC(C CHgcl 3 CHgcl 3 4r3ctjjdd}tjtjj ddd}tjj |dz|j ddz dd}ttfD]}|||}||ddddf|dd}|j|ddddf|dd||ddddf|dd}|j|ddddf|ddt|j|jt|j|jt|j|jt|j|jy)Nrr>r=rhr%r) rCrrsortuniformrrrrrrrr+)r)rr+rrrbp1p2s r-test_extend_descendingz&TestPPolyCommon.test_extend_descending8s> q GGBII%%aR0 1 IINN519aggaj1na ;5> 'CAq AQq"1"uXq"v&B IIa12h"# 'Qq"#vY"#'B IIa3B3i3B ( BDD!## & BDD!## & BDD!## & BDD!## & 'r3c tjjdtjjddddd}tjtjjd}tjjdd }t t fD]"}|||}||jd k(r"Jt t fD]}||d |}tj|d d k(sJtj|tjd d k(sJtt|tjddgdggty)Nrrrr9rrr}r>r)r>rr9rr).rrrr&r2r7r8皙?r) rCrrrrrrrrLr'rmobject)r)rr+xprrbs r- test_shapezTestPPolyCommon.test_shapeMs t IINN1b!Q * GGBIINN2& ' YY^^Aq !5> 2CAq AR5;;/1 11 2 5> VCAlOQ'A88AcF#r) ))88Abhhsm,-3 33 *aC:u2EV)T U  Vr3cDtjjddddd}tjtjjd}tjjdd}tt fD]}|||}d }t d |||y) Nrrr9rrr}r>rc||yrr2)rrrs r-rz3TestPPolyCommon.test_concurrency..worker_fnhs r r3r=)rCrrrrrr)r)rr+rrrrs r-rz TestPPolyCommon.test_concurrency_s~ IINN1b!Q * GGBIINN2& ' YY^^Aq !5> ?CAYF  $B 62 >  ?r3c Ntjjdtjtjjd}tjjddz}|j|j }}tjjd}t tfD]l}|||||||||} }}dD]J} t||| j||| t||| j | || Lny)N90r})rry?333333?r9r) rCrrrr-r.rrr) r)r+rc_rec_imrrrbp_rep_imnus r-test_complex_coefz!TestPPolyCommon.test_complex_coefns u GGBII$$R( ) II  W % 3VVQVVd YY  a 5> >C1Is4|Sq\TtA >"b R ="b R = > >r3c tjjdtjjdddddd}|j}tjjd}d D]N}|j|d z}tj tjj|d z}t tfD]}|||| }|jj|||d z|d|z||d zdzk(sJ||} |d||jz|d |zdz} | j| k(sJ|||| j|||| jd |||| j|||| jd fD]} | j|jk(rJQd D]0}tt fD]}tt|fit||!2y)Nrr>rr9rrr)rhr%rrhr%r>rhrkr%)rArr9r)rr+rj)rCrrrrrrrr derivativeantiderivativerjr'rmr) r)rc_srrjmr+rrbres targ_shapers r- test_axiszTestPPolyCommon.test_axiszs u IINN1aAq! ,gg YY  f %  -DQA qs+,Au~ -14(ssyyCT!V$4s5Dz$ACQL$PPPPe $Z"((2S4\A yyJ...q!$/::<q!$/::1=q!$/>>@q!$/>>qAC-B77aff,,, - - -&" LDu~ Lj#KQT1JK L Lr3N) r/r0r1rrrrrrrrrr2r3r-rrs1/ " *,42'*V$ ? >Lr3rcVeZdZGddeZGddeZdZdZdZ dZ d Z y ) TestPolySubclassingc eZdZy)TestPolySubclassing.PNr/r0r1r2r3r-Pr r3rc eZdZy)TestPolySubclassing.BNrr2r3r-Brrr3rc*tjjdtjtjjd}tjjd}|j |||j ||fS)Nrr>)rr%)rCrrrrr)r)r+rs r-_make_polynomialsz%TestPolySubclassing._make_polynomialssb t GGBII$$Q' ( II  V $vva|TVVAq\))r3c|j\}}||fD]-}|j}|j|jk(r-J|j}|j|jk(sJyr)rr __class__r)r)rbprbpdppas r-test_derivativez#TestPolySubclassing.test_derivativesn'')Bb /AB;;",,. .. /!||s}},,,r3ctjjdtjtjdtjj ddf}tjj t |}t||d}|jj|}|j|jk(sJy)Nrrrrhr#) rCrrrrrr`rr from_spliner)r)r+r*splrs r-test_from_splinez$TestPolySubclassing.test_from_splines t GGBEE!RYY^^B/23 4 IINN3q6 "QQ VV   $||tvv%%%r3c|j\}}|jj|}|j|jk(sJ|jj |}|j|jk(sJyr)rrfrom_bernstein_basisrrfrom_power_basis)r)rrrbp1s r-test_conversionsz$TestPolySubclassing.test_conversionssh'')Bff))"-}}&&&ff%%b)}}&&&r3cgd}dgdgdgg}|jj||}|j|jk(sJy)Nrrhr%r>)rfrom_derivativesr)r)r+r*rs r-test_from_derivativesz)TestPolySubclassing.test_from_derivativessD S1#sO VV $ $Q *||tvv%%%r3N) r/r0r1rrrrrrrrrr2r3r-rrs3 E  E * -&'&r3rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy) TestPPolyctjddgddgddgg}tjgd}t||}t|dtjd t|d tjd y) Nrhrr%r9r>rrr&rh333333?Q @ffffff?p= ף@rCrLrrrr)rr+rbs r- test_simplezTestPPoly.test_simplesl HHq!fq!fq!f- . HH[ ! !QK# +? @A# +K LMr3ctjddgddgddgg}tjgd}t||d }t|d tjd t|d tjd t|d dtjdt|d dtjdy)Nrhrr%r9r>rrperiodicrg?r333333ӿrg@gffffff@rr s r- test_periodiczTestPPoly.test_periodics HHq!fq!fq!f- . HH[ ! !QJ /# #=> @$ #MN P #q 2::k#:;$ BJJ/B$CDr3c|tjddgddgddgg}tjgd}tjgd}t||d d D]]}||j_||j_t||}||}tj |j r]Jy) Nrhrr%r9r>rr)rr7r8r rrP)rCrLrrQrRrArB)r)rr+rrRrrDs r-rTzTestPPoly.test_read_onlys HHq!fq!fq!f- . HH[ !xx & a +& +I )AGG  )AGG a AT7D;;t$((* **  +r3c d}tjjd}d}dD]?}tj|j dd|dz}|j dd|dz|f }tj |}|dddftj |dzddd dfz}||} ||z} tj| j| } | |z } t||d } t| ddddd f|ddd d }|j d dd}t| |||dt| |d||dd| j}|j}t||||d| j}|j}|j d ddD]c\}}| j||}|j||}t||dt||||z ||||z de|j}| j}t|tj|dBy)Nctj|dzjdd}tj|dz}t||}|ddddddfS)NrhrA)rCrDrHr!)powerr"krs r- binom_matrixz/TestPPoly.test_descending..binom_matrixsT %!)$,,R3A %!)$Aa ATrT4R4Z= r3rr>r=rr?r=rhrr%sizerATrrrrvIh%<=rr9r%-q=)rCr RandomStaterrdiffrDdotrrrrr integrateroots)r)rrngrrr+cahh_powersrcapcdpcdparx_testpa_dpd_dpa_ipd_ir!r$int_aint_droots_droots_as r-test_descendingzTestPPoly.test_descendings0 ! ii##A&% CA Ar1q512AR%!)Q8B AqzRYYuqy%9$B$*%EEHU#Ax-C&&c"CxBr1$/Br!TrT'{AddG>B[[b#.F BvJ6  ? BvqM2fa=u E==?D==?D DL$v,U C $$&D$$&D CV4 ,1 Q* Q*u59Q$q' 147T!W3D%*,  ,hhjGhhjG GRWWW%5E BK% Cr3ctjjddddd}tjgd}t ||}|j j |j k(sJ|jj |j k(sJ|dj |j ddk(sJ|tjjddj d|j ddzk(sJ|j}|jj d k(sJ|j}|jj d k(sJy) Nrr%rhr>rrr9r9rr9r%rhr%r>)rr%rhr%r>) rCrrrLrr+rrrr)r)rr+rbdpips r-test_multi_shapezTestPPoly.test_multi_shapes IINN1aAq ) HH[ ! !QKssyyAGG###ssyyAGG###v||qwwqr{***1%&,,0DDDD \\^ttzz_,,,    ttzz_,,,r3cxtjjdtjddgddgddggt}tjgd }t j ||}t|d tjd t|d tjd y)Nrrhrr%r9r>rrrrrrr) rCrrrLr@rconstruct_fastrrr s r-test_construct_fastzTestPPoly.test_construct_fast(s t HHq!fq!fq!f-U ; HH[ !  A &# +? @A# +K LMr3ctjjd}|jddd}tjtj d|jddf}t ||}tj d}t|||}t|||t|dddddf||}t||dddf|y) Nrr>rrrrh)rr&gQ?333333?) rCrrrrrr _ppoly_eval_1r _ppoly_eval_2)r)r rr+rbrexpecteds r-#test_vs_alternative_implementationsz-TestPPoly.test_vs_alternative_implementations0sii##D) HHQB  GGBEE!SXXb\1,- . !QK UU& ' Ar*"x( 1Qq51b1"ad X.r3ctjjd}tjtjd|j ddf}|j t |}t||d}tj|}tjddd}t||t||t|}tj|}t|||||\} } } dD]A} t| | | | }tj|} | j|jk(rAJy) Nrrrrhrr)NTFr)rCrrrrrr`rrrr,rrrrf)r)r r+r*rrr/r$ppptrrextraprbs r-rzTestPPoly.test_from_spline>sii##D) GGBEE!SXXb\1,- . HHSV QQ   s # [[As #2b#/ SM"B2'1a) 2F1aV4A!!!$A==AMM1 11 2r3c>tjjdtjgdgj}tjgdgj}tjddggj}tjddg}t ||}t ||}t ||}t |jj|jt |jdj|jy) Nr)rr>r%rh)rrr%rrrhr%) rCrrrLrrrrr)r)rdcddcr+rdppddpps r-test_derivative_simplez TestPPoly.test_derivative_simpleUs t HHl^ $ & & XX}o & ( (hh'(** HHaV  1a[BlS!} ))3551 a(**DFF3r3c tjjd}tjtjd|j ddf}|j t |}t||d}tj|}tjddd}tddD] }t|||t|||"y)Nrrrrhrrr>)rCrrrrrr`rrrr,rrrr)r r+r*rrr/dxs r-test_derivative_evalzTestPPoly.test_derivative_evalcsii##D) GGBEE!SXXb\1,- . HHSV QQ   s # [[As #1+ r%rh)rr?)rhrhrhr)rrrZ?)?gUUUUUU?r&rr)rrg?r[g*?)rr\rhr%) rCrrrLrrrrr+r) r)riciicr+rippiippiipp2s r-test_antiderivative_simplez$TestPPoly.test_antiderivative_simples t HHi0 1 3 3XX|%=> ? A Ahh-HJKKL1 HH\ " 1a[!  #""$q!&#%%( 355)r3c tjjd}tjddddz}|j t |}t ||dd}tj|}tddD]}|j|}|j|}t|j|jt|D]k} |j| }d } | |jdd zd| z |jddzz} t||jdd|| d d |d | my)Nrrrhr?r%r9rRr=rrArrSz k=)rr)rCrrr,rr`rrrrrrrrr+) r)r r+r*rrrOr_rrrrs r-!test_antiderivative_vs_derivativez+TestPPoly.test_antiderivative_vs_derivatives+ii##D) KK1b !1 $ HHSV QQ!$   s #2, B##B'C..$C BDD#%% (2Y nnQ'SUU3BZ<1q5#%%)*;;ab NCMB4sSTRUFV   r3ctjjd}tjtjd|j ddf}|j t |}t||dd}tj|}tddD]T}|j|}t||}tjddd} t|| t| |d Vy) Nrrrrhr9rRr=rrr)rCrrrrrr`rrrrrrr,rr) r)r r+r*rrrOrspl2r/s r-test_antiderivative_vs_splinez'TestPPoly.test_antiderivative_vs_splinesii##D) GGBEE!SXXb\1,- . HHSV QQ!$   s #2, 'B##B'Cc2&DQ3'B CGU2t_!% '  'r3cHtjgdgdgj}tjgd}t||}|j }t |d|dd|j }t |j|jy)N)r%rhr%r%)r%rhr>r>rgA?g_p?g:0yE>r)rCrLrrrrrr)r)rr+rbr6rs r-test_antiderivative_continuityz(TestPPoly.test_antiderivative_continuitysw HHlL1 2 4 4 HH[ ! !QK     ::TB]]_acc"r3ctjjd}tjtjd|j ddf}|j t |}t||dd}tj|}d\}}|j||}|j} t|| || |z d t|t|||d d \}}|j||d }t|| || |z d tj|j||d jsJy) Nrrrrhr9rR)r?Fcheck_0d)r rlTr)rCrrrrrr`rrrrrrrrvrB) r)r r+r*rrr!r$igr_s r-test_integratezTestPPoly.test_integrates!ii##D) GGBEE!SXXb\1,- . HHSV QQ!$   s #1 \\!Q !CFSVOe<F1a->1 \\!QD\ 1CFSVOe<xx Qu =>BBDDDr3c*tjgd}tjddgddgddgddgg}dD]V}||j_t ||}|j dd }tj |jrVJy) Nrhr%rr;rr:rurPrhr)rCrLrQrRrrrArB)r)r+rrRrrDs r-test_integrate_readonlyz!TestPPoly.test_integrate_readonlys HHY  HHr2hc RIBx@ A& +I )AGG a A;;q!$D;;t$((* **  +r3c tjgd}tjddgddgddgddgg}t||d}|j}tj|d |d z }t |j d d |t |j d d |t |j d d tjd|zt |j ddtj|d|dz t |j ddtj|d|d z |d z|dz t |j ddtj|d|d z |d z|dz t |j ddtj|d|d z |d z|dz d |zzt |j ddtj|d|dz t |j dd tj|d|dz t |j dd tj|d|dz d|zz yNrrr;rr:rsrur rrrhrirr%rr)rnr9g/@rrrAr>i)rCrLrrrrrr)r+rrI period_ints r-test_integrate_periodicz!TestPPoly.test_integrate_periodics@ HHY  HHr2hc RIBx@ A !QJ /   ZZ!qt ,  Aq):6 C,j9 C,bjjZ.HI C- 1S6AcF?3 5 C+ 1Q4!A$;1#5##>? A Hf5 1Q4!A$;1#5##>? A C0 1Q4!A$;1#5##>Z#OP R Ar* 1Q4!A$;/ 1 B, 1Q4!A$;/ 1 As+ 1Q4!A$;Z#?@ Br3ctjddddz}tjd|z}t||dd}t j |}|j }||dk\|d kz}t|t|d y) Nrrhr+r%r?r>rRgV瞯Ҽg?rr) rCr,r rrrrrr)r)r+r*rrrds r- test_rootszTestPPoly.test_rootss| KK1b !1 $ FF2a4LQQ!$   s # HHJ qI~!y.1 26#;U3r3ctjddgddgddggj}tjgd}t||}t |j ddtj dgd}|j}|dddfxx|z cc<t||}t |j|ddtj dgy) NrAr\r)rrr=rurg333333?r:rh) rCrLrrrrrrqsolve)r)rr+rconstc1rs r-test_roots_idzerozTestPPoly.test_roots_idzero"s HHr4j1a&2t*5 6 8 8 HH' ( 1a[ sBFFJ7 9 VVX 1a4EBl %(sBFFJ7 9r3c`dgdgg}ddg}t||}t|jdtjgt|j ddtjgt|j dgddgddgg}gd}t||}t|jdtjdtjgt|j ddtjdtjgt|j dgy)Nrrhr)rrrrCrr~r s r-test_roots_all_zerozTestPPoly.test_roots_all_zero5sS1#J F !QK Arvv;/ QK0 B'VaV   !QK Arvvq"& : Q266$:; B'r3cRtjgdgdgj}tjgd}t||}t |j tj ddgt |j dtj dgy)N)rhrrA)rArrrgr;Fr)rCrLrrrrrr)rr+rs r-test_roots_repeatedzTestPPoly.test_roots_repeatedEss HHj*- . 0 0 HHZ  1a[ BJJc{$;<U3RZZ5FGr3ctjdgdggj}tjgd}t||}t |j tj dgt |j dtj gt |jdtj dgt |jddtj gt |jdtj gt |jddtj gy)NrhrArr&F) discontinuityr)rCrLrrrrrr~rs r-test_roots_discontzTestPPoly.test_roots_discontQs HHqcB4[ ! # # HH[ ! 1a[ BJJu$56u5rzz"~F  rzz3%'89E:BJJrNK rzz"~6E:BJJrNKr3c (tjjd}d}dD]V}tddD]C}tjtj dd|j dzdf}d|j |dzt|dz dd zdz }t||}d|jfD]}|j|d | } tdD]} td D]} | | | f} | jdkDs|| jz }|| | dd| | f} || d| dd| | f}d|dt| }t| |z |z tjdd|d FY|dkDsJt|y)NrrrPrr=r?r%rhr>F)rrfr)rrf(z) r = r;r)rrrr)rCrrrrrrr`rr~rreprrr)r)r numrfrr+rrr*rdijrrvalcmpvalrs r-test_roots_randomzTestPPoly.test_roots_random`sii##D)( PKq" PIIbeeArCHHRL'8"$<=>chhuQwAq!Q77!;1a[SZZ\*PA%[QA"1X P!&q PA!"1Q3B!ww{ #rww&(&Ea!e&L)+B18C*EEFqU*L()+tBxj&I /Q&0@"**S/598;!P P PP  P P0Sy#$s)#yr3c 4tjjd}tddD]]}|j |dd}|dk(r d|ddddf<d|jfD]"}tj |j t}tj||||dk(r&tj|jsJk| }d}t|D]7}|||df||dz |z zzz }|t||df||dz |z zzz }9tjd 5||z}ddd|j}|tj|}t|tj |d %`y#1swYZxYw) Nrrhrr>)rhr%rhrrignore)rg|=r)rCrrrrr~rcomplexr _croots_poly1rvrBabserrstateravelr zeros_like) r)r rrr*wrcresrs r-test_roots_crootszTestPPoly.test_roots_crootssii##D)q" EAAs#AAv"!Aa%& EHHQWWG4$$Q1-688A;??,,,bq8A1QtV9q1Q3q5z11CC!D& A!AJ 677D8[[2 4KC iik288C=.)R]]3%7eD# E E(  s /FF cftjgdgj}tjddg}dD]r}t|||}|j }|j }|durtj |ddgjsJtj |ddgjsJtj |ddgjsJ|jdgk(rJt|ddgd d gtj |ddgjrJtj |ddgjrJt|jtjd d guy) NrrrhTFNrF皙皙?gGz?gzGʿrur) rCrLrrrrrvrBrranyr)r)rr+rfrpp_dpp_is r-rzTestPPoly.test_extrapolate_attrsg HHj\ " $ $ HHaV . EKq!5B==?D$$&De#xxD#;044666xxdC[ 1266888xxdC[ 1266888xxzaS(((D#;(H1EF88D$$56::<<<88D$$56::<<< BJJT{,CD Er3N)r/r0r1r rrTr1r7r:rArrLrPrrUrXrbrerhrjrprtrzr|rrrrrrrr2r3r-rrsN E +/Cb -N /2. 4 < SK )*02' #E* +B8 49&( H L$@E<Er3rcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestBPolycvddg}dgg}t||}t|dtjdy)Nrrhr>r7rsrrrCrr)r+rrs r-r zTestBPoly.test_simples5 FSE 1a[3B0r3czddg}dgdgg}t||}t|dtjdy)Nrrhr>r7ggfffff@rrs r- test_simple2zTestBPoly.test_simple2s: FS1#J 1a[3N!;rr8g433333@rrs r- test_simple3zTestBPoly.test_simple3sC FS1#sO 1a[3 DE Gr3cddg}dgdgdgdgg}t||}t|dtjdy)Nrrhr%rg:On?rrs r- test_simple4zTestBPoly.test_simple4sK FS1#sQC  1a[3 (./ r3cddg}dgdgdgdgdgg}t||}t|dtjdy)Nrrhrr%rg h"l@rrs r- test_simple5zTestBPoly.test_simple5sO FS1#sQC! % 1a[3 &() r3cjgd}ddgddgddgg}t||d}t|dtjdt|d tjd t|dd tjd t|d d tjd y)Nrrhr>r>rr%r rg333333 @gHzG?g[(\?rh rrrs r-rzTestBPoly.test_periodics VaVaV $ 1aZ 03J!784"**^"<=3 BJJx$894 RZZ %<=r3c tjjd}d}dD]}tj|j dd|dz}|j dd|dz|f}|ddd j }t ||d }t |ddddd f|ddd d }|j d d d} t|| || dt|| d|| dd|j} |j} t| | | | d|j} |j} |j d d dD]c\}}|j||}|j||}t||dt| || |z | || |z dey)Nrr>rr=rhrr7rrATrrrrrrrr) rCrrrrrqrrrrr)r)r rrr+r!r&r'rr(r)r*r+r,r!r$r-r.s r-r1zTestBPoly.test_descendingsii##A& ,A Ar1q512AT3eai^B[[b#.F BvJ6  ? BvqM2fa=u E==?D==?D DL$v,U C $$&D$$&D CV4 ,1 Q* Q*u59Q$q' 147T!W3D%*,  ,/ ,r3cRtjjd}|jddddd}tjgd}t ||}|j j|jk(sJ|jj|jk(sJ|dj|jddk(sJ||jddjd |jddzk(sJ|j}|jjd k(sJy) Nrrr%rhr>rrr9r3r4) rCrrrrLrr+rrr)r)r rr+rbr5s r-r7zTestBPoly.test_multi_shape sii##D) HHQ1a # HH[ ! !QKssyyAGG###ssyyAGG###v||qwwqr{***!Q &&&17712;*>>>> \\^ttzz_,,,r3c ddg}dgdgdgg}t||}d}|dz }t||tjdd|z zd|z zd|zd|z zzd|z|zzy)Nrr%r>rhrr7r)r)r+rrxvalr#s r-test_interval_lengthzTestBPoly.test_interval_lengths} FS1#sO 1a[ 1H4 1!9ac?U1Wac]#BQU1W#LM r3cgd}ddgddgddgg}t||}t|dtjdt|dtjdy) Nrr>rr%rgGzG?333333?rrrs r-test_two_intervalszTestBPoly.test_two_intervals$sX VaVaV $ 1a[3K!893N!;rhrrrFrg@)rrrCrvrBr)r)r+rrrfbp_ds r-rzTestBPoly.test_extrapolate_attr,s FS1#sO 1a[. =Kq!5B==?De#xxD#;044666xxdC[ 126688888Bc{O488:::88D$$56::<<< =r3N)r/r0r1r rrrrrr1r7rrrr2r3r-rrs;1 = G     > ,D - = =r3rcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestBPolyCalculusc &gd}ddgddgddgg}t||}|j}t|dtjdt|dtjdttjd Dcgc] }|d| c}tjgd ttjd Dcgc] }|d| c}tjgd ycc}wcc}w) Nrr>rr%rrrrrhr%r>)rr{r;)rrur)rrrrCr)r)r+rrbp_derrs r-rz!TestBPolyCalculus.test_derivative=s VaVaV $ 1a[s RZZ%9:s RZZ_5  )#DBBsBK#DE #78   )#DBBsBK#DE <0 $E$Es D D ctjjd}d\}}tj|j|}|j||dz f}t ||}t j |}t|D]W}|j}|j}tj|d|dd} t|| || YyNrr9rrhrrA) rCrrrrrrrrr,r) r)r rrr+rrrdrs r-test_derivative_ppolyz'TestBPolyCalculus.test_derivative_ppolyMsii##D)1 GGCJJqM " JJ1Q3x  1a[  ' ' +q ,ABBQqT1R5"-B BrFBrF +  ,r3c tjjd}d\}}tj|j|}|j||dz f}|j |dzfD]c}t ||}tj |d|dd}t|D]*} t||| |j| |,ey)Nrrrhr*rrAr) rCrrrrqrr,rrr) r)r rrr+rccrrrs r-test_deriv_inplacez$TestBPolyCalculus.test_deriv_inplace\sii##D)1 GGCJJqM " JJ1Q3x 668Q\* ABr1BQqT1R5"-B1X A2q +;2==+;B+?@ A Ar3c gd}ddgddgg}t||}|j}tjddd}t ||tj |dk|dzdz d|z|dz dz zd zd d y) Nrrrhr>rr%r:r&g?rrr)rrrCr,rwhere)r)r+rrbixxs r-rbz,TestBPolyCalculus.test_antiderivative_simpleis VaV  1a[     [[Ar "2aQ),rRUQY)?$)FH" 0r3cltjjd}tj|jd}|jd}t ||}tj |d|dd}t |jj|||ddy) Nrrrr=r%r>rrArrr) rCrrrrr,rrrr)r r+rrrs r-test_der_antiderz"TestBPolyCalculus.test_der_antider}sii##D) GGCJJrN # JJ} % 1a[ [[1quc *8))+668<2U 8r3ctjjd}tj|jd}|jd}t ||}t j |}tj|d|dd}t|jd||jd|dd y) NrrrrrAr=r%rr) rCrrrrrrr,rr)r)r r+rrrrs r-test_antider_ppolyz$TestBPolyCalculus.test_antider_ppolysii##D) GGCJJrN # JJ} % 1a[  ' ' + [[1qub ),))!,R0,))!,R0u5 Jr3c@tjjd}tj|jd}|jd}t ||j }|j dd}t||dz ||dzddy) Nrrrr=rhrArrr)rCrrrrrr+rrs r-test_antider_continuousz)TestBPolyCalculus.test_antider_continuoussii##D) GGCJJrN # JJw  1a[ ' ' ) TT!BZ2:2:U @r3cNtjjd}tj|jd}|jd}t ||}t j |}t|jdd|jdddddy) NrrrrrhrF)rrrn) rCrrrrrrrr)r)r r+rrrs r-rpz TestBPolyCalculus.test_integratesii##D) GGCJJrN # JJw  1a[  ' ' + Q* Q*UU Tr3cbdgg}ddg}t||}t|jddtjdddt||d}tj |jddsJt|jddd tjdddy) Nrhrr%r:rF)rrnrT)rrrrCrrv)r)rr+r$b1s r-test_integrate_extrapz'TestBPolyCalculus.test_integrate_extrapsSE F !QK  Aq)2::b>"U 41aU +xx Q*+++ Qt < 2UU Dr3ctjgd}tjddgddgddgddgg}tjt ||d}|j }|d |d z }t |jd d |t |jd d |t |jd d d|zt |jdd|d|dz t |jdd|d|d z |d z|dz t |jdd|d|d z |d z|dz t |jdd|d|d z |d z|dz d |zzt |jdd|d|dz t |jdd |d|dz t |jdd |d|dz d|zz yrv)rCrLrrrrrrrws r-rzz)TestBPolyCalculus.test_integrate_periodics HHY  HHr2hc RIBx@ A  " "5A;J G   qTAaD[  Aq):6 C,j9 C,a*n= C-qv#? C+QqTAaD[1Q4-?!C&-HI Hf5!qt ad*QsV3 5 C0!qt ad*QsV3a*nD F  Ar*AaD1Q4K8 B,adQqTk: As+QqTAaD[1z>-IJr3c<dgg}ddg}t||}tjddd}t|j d||j |ddt|j d||j d|ddy)NrhrrrArr)rrCr,rrr)r)rr+r$rs r-test_antider_negz"TestBPolyCalculus.test_antider_negsSE F !QK [[Ar "( R(,.@a.>.>.@.D" 0 Q+-AQ-=-=b-A"-E" 0r3N)r/r0r1rrrrbrrrrprrzrr2r3r-rr<s? , A0(8 J@T DK0 0r3rc$eZdZdZdZdZdZy)TestPolyConversionscgd}ddgddgddgg}t||}tj|}tj|}ddg}t ||||t ||||y) Nrr>r%rhrrr7ffffff?)rrrrr)r)r+rrrrrs r-test_bp_from_ppz#TestPolyConversions.test_bp_from_ppsw VaVaV $ 1a[  # #B '((,3Z22'2B(r3ctjjd}d\}}tj|j|}|j||dz f}t ||}t j |}t j|}tj|d|dd} t|| || t|| || yr) rCrrrrrrrr,r) r)r rrr+rrrrrs r-test_bp_from_pp_randomz*TestPolyConversions.test_bp_from_pp_randomsii##D)1 GGCJJqM " JJ1Q3x  1a[  # #B '((, [[1qub )22'2B(r3cgd}ddgddgddgg}t||}tj|}tj|}ddg}t ||||t ||||y)Nrr>rhrr%r7r)rrrrr)r)r+rrrrrs r-test_pp_from_bpz#TestPolyConversions.test_pp_from_bpsw VaVaV $ 1a[  ' ' +$$R(3Z22'2B(r3c6gd}ddgddgddgg}t||}tt5tj|dddt ||}tt5t j |dddy#1swYCxYw#1swYyxYw)Nrr>rhrr%)rr' TypeErrorrrr)r)r+rrrs r-test_broken_conversionsz+TestPolyConversions.test_broken_conversionss VaVaV $ 1a[ 9 % +  & &r * +1a[ 9 % '  " "2 & ' '  + + ' 'sB$BB BN)r/r0r1rrrrr2r3r-rrs ) ) ) 'r3rcleZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZy)TestBPolyFromDerivativescTtjdddgdg}t|ddgy)Nrrhr%r>r:rsr_construct_from_derivativesr)r)rs r-test_make_poly_1z)TestBPolyFromDerivatives.test_make_poly_1 s*  . .q!aS1# >RH%r3ctjddddgdg}t|gdtjddddgdg}t|gdtjdddgddg}t|gdy)Nrrh)rururur%r>)r:rnru)r:grurr)rrc3s r-test_make_poly_2z)TestBPolyFromDerivatives.test_make_poly_2sx  . .q!aVaS AL) . .q!aVaS AN+ . .q!aS1a& AN+r3ctjddgddg}t|gdtjdddggd}t|gdtjddddgdd g}t|gd y) Nrrhrr)ru竪?g@r)rr%r>)rugUUUUUU @g @rr%r>)rurrsrrrs r-test_make_poly_3z)TestBPolyFromDerivatives.test_make_poly_3su  . .q!Y D12 . .q!aS) D23 . .q!aVaV D./r3ctjjd}tjd|jdf}tjd|jdf}t j dd||}t |dddfddg}t dD]@}t|d||dt|d ||d|j}By) Nrrr9rhrr;Frmru) rCrrrrrrrr)r)r yaybrrrs r-test_make_poly_12z*TestBPolyFromDerivatives.test_make_poly_12*sii##E* UU1cjjm# $ UU1cjjm# $  - -aB ; 1QW:1v &q !A BrFBqEE : BrFBqEE :B !r3c:tjjd}ddg}d\}}|j|ddddf}t||}tj||}t||}tj ddd} t || || y) Nrrrh)rr9r%r>rr)rCrrr _raise_degreer,r) r)r r+rrrrrrrs r-test_raise_degreez*TestBPolyFromDerivatives.test_raise_degree6sii##E* F1 JJ1aA ' 1a[  A &Bl [[Ar "2B(r3cJtttjddgdgy)Nrrhr'rmrrrXs r- test_xi_yiz#TestBPolyFromDerivatives.test_xi_yiCsj%"8"81a&1#Fr3c\gd}dgdgdgg}tttj||y)Nrrrhrr)r)r/rs r-test_coords_orderz*TestBPolyFromDerivatives.test_coords_orderFs, cA3_j%"8"8"bAr3cJgd}ddgdgddgddgg}tj||}|jjdk(sJ|j }dD]L}t ||t jdt ||t jdNy)Nrr)rr>)r;r7rurgffffff?r:r)r;)rrrrrrrCr)r)r/rrppdrs r- test_zerosz#TestBPolyFromDerivatives.test_zerosKs !fqcAq6Aq6 *  # #B +ttzzV###mmo2 6B BrFBJJsO 4 CGRZZ_ 5 6r3ctjjd}tjt |dzDcgc] }d|dzz c}}t |dzDcgc]}|j|}}||fScc}wcc}w)Nrrhrur%)rCrrrr)r)rrr rr/rs r-_make_random_mkz(TestBPolyFromDerivatives._make_random_mkWssii##D) ZZE!A#J7qad7 8%*1Q3Z 0cjjm 0 02v 8 0s B%Bc d\}}|j||\}}tj||}t|dzD]5}t |||Dcgc]}|| c}|j }7ycc}w)Nr9rr%)rrrrrr)r)rrr/rrryys r-test_random_12z'TestBPolyFromDerivatives.test_random_12^su1%%a+B  # #B +1a4[ !E BrF$<2RY$< =B !$B6!9>A-. %1u9 r!e)}=]]_ %{{2a%i="QY-@ @@  A+s Cc>tjjd}d\}}tj|j|dz}|j|dz|dddf}t j ||}|j jd|z|dddfk(sJy)Nr)rr9rhrrrr%)rCrrrrrrr)r)r rrr/rrs r-test_yi_trailing_dimsz.TestBPolyFromDerivatives.test_yi_trailing_dimssii##D)1 WWSZZ!_ % ZZ1aAq) *  # #B +ttzzac1aA....r3ctjd}tjddgdgdgg|}t |dtj dtj d}tjddgdgdgg|}t |dtj dd}tjddgdgdgg|}t |dtj dd}y)Nrhrr)rCint32rrrrint64)r)rrbs r- test_gh_5430z%TestBPolyFromDerivatives.test_gh_5430s !  " "Aq6QC!:f EAaD"**Q-0!  " "Aq6QC!:f EAaD"**Q-0  " "Aq6QC!:f EAaD"**Q-0r3N)r/r0r1rrrrrrr r rrrrrr!r#r'r2r3r-rr sV& , 0 ! )GB 6!0 2K0 A/r3rczeZdZdZdZdZdZdZdZdZ dZ d Z e jjd Zy ) TestNdPPolycDtjjd}|jdd}tjddd}|jd}t ||f}||f}t |dddddf||j}t||y)Nrrr9rrhrr) rCrrrr,rr>rr)r)r rr+r/rbv1v2s r-test_simple_1dzTestNdPPoly.test_simple_1dsii##D) HHQN KK1c " XXc] At  uX 1QqX;2 . 4 4 6Br3c tjjd}|jdddd}tjddd}tjdddd z}|jd }|jd }tj t |dg|j }|jtjtj|jd d d||ftjddgtj tj||ftjddgtj d||j!}t#|||f||}t%||t'|||f} dD]H} | tj||f| }t#|||f||| }t%||t)| Jy)Nrrr9rrrrhrr%rrr*)Nrrrrh)rhr)r%r>)rr%rr)rCrrrr,r~r`rfillrr evaluate_ndrHrLintcc_r _ppoly2d_evalrrr) r)r rr+r*r/rr+r,rbrs r-test_simple_2dzTestNdPPoly.test_simple_2dsii##D) HHQ1a  KK1c " KK1c "A % XXc] XXc] XXs2wl!'' 2 199S#q1q688QF"'':55R=88QF"'':  XXZ 1q!fb" -B A1v @ 6B255R=R(Bq1a&"bR8B BDH 5 6r3c tjjd}|jdddddd}tjdd d}tjdd dd z}tjdd d d z}|jd }|jd }|jd }t ||||f} dD]:} | |||f| } t ||||f|||| } t| | t| <y)Nrrr9rrrrrrhr%r=r>()Nrrrrrhrrhrr)r%r>r)rrr%r2r) rCrrrr,r _ppoly3d_evalrr) r)r rr+r*r,r/rzirbrr+r,s r-test_simple_3dzTestNdPPoly.test_simple_3dsii##D) HHQ1aA & KK1c " KK1c "A % KK1c "A % XXb\ XXb\ XXb\ A1ay ! 6BBBrr)rCrrrr,r _ppoly4d_evalr)r)r rr+r*r,ur/rr?uirbr+r,s r-test_simple_4dzTestNdPPoly.test_simple_4ds ii##D) HHQ1aAr2 . KK1c " KK1c "A % KK1d #Q & KK1d #Q & XXb\ XXb\ XXb\ XXb\ A1a| $ BB  1q!QlBB ;Br3ctjjd}|jdd}tjddd}t ||f}|j dg}t||}|j }t|j|j|jdg}t||}|jd}t|j|jy) Nrrr9rrhrr2r%) rCrrrr,rrrrrr)r)r rr+rbr5rdp1s r- test_deriv_1dzTestNdPPoly.test_deriv_1d sii##D) HHQN KK1c " At \\aS\ ! 1a[mmocee$  !  % 1a["cee$r3c tjjd}|jdddddd}tjdd d}tjdd dd z}tjdd d d z}t ||||f}t |jdd d d dd|}|jd g }|jd } t|j| jjdd d d ddt |jd ddd d d|}|jgd }|jd } t|j| jjd dd dd dt |jd ddd d d|}|jgd }|jd } t|j| jjd d dddd y)Nrrr9rrrrrrhr%r=r>r2r<)rrr>) rCrrrr,rrrrrrr) r)r rr+r*r,rbrr5rGs r- test_deriv_3dzTestNdPPoly.test_deriv_3d sii##D) HHQ1aA & KK1c " KK1c "A % KK1c "A % A1ay !1;;q!Q1a0! 4 \\aS\ !mmA1aAq9 ;1;;q!Q1a0! 4     +"1aAq9 ;1;;q!Q1a0! 4 \\Y\ 'mmA1aAq9 ;r3cBtjjd}tjd}tjddddz}tjddddz}tjdddd z}t ||||f}|j d }|j d }|jd }|jd } |jd } t||| | f|| dzz| dzztd tdzz y) Nr)rhrhrhr>rr9rrhrr9r%rr>)rhrr)rr%rr) rCrrrlr,rrrrr) r)r rr+r*r,rbr6r/rr?s r-test_deriv_3d_simplez TestNdPPoly.test_deriv_3d_simple: sii##D) GG& ' KK1c "A % KK1c "A % KK1c "A % A1ay !   i (   y ) XXb\ XXb\ XXb\BB<(RU RU*eAhuQx.?@ Br3c " tjjd}|jdddd}tjddddz}tjdddd z}|j dd dd }|j |jd|jdd j}tj||d |j |j}|j dd dd }|j dd dd }|j |jd|jdd j}tj||d |j |j}|j d dd dj}t|||f d d gd d gd d gddgfD]P} j|}t fd|tddgd z\}} t||dddt!|Ry)Nrrr9rrrhrr%r>rAr1)rr&)rr)r=r8c||fSrr2)r+r*rbs r-z/TestNdPPoly.test_integrate_2d..j s1aV9r3gh㈵>)epsrelepsabs)rF)rrrnr)rCrrrr,rrHrrqrfix_continuityrrr rrr) r)r rr+r*cxrangesroig2err2rbs @r-test_integrate_2dzTestNdPPoly.test_integrate_2dN sii##D) HHQ2r " KK1d #Q & KK1d #Q & KK1a # YYqwwqz1771:r 2 7 7 9b!Q' JJqww  KK1a # KK1a # YYqwwqz1771:r 2 7 7 9b!Q' JJqww  KK1a # ( ( * A1v ' &))"J/1 2F V$B4f$(T$B#CA#EGIC B$TE$(L 2 2r3c Jtjjd}|jdddddd}tjdd dd z}tjdd dd z}tjdd d d z}t ||||f}|jd }|jd }d\} } |j | | d} |jd} t| ||f| | ||f| | ||fz |j | | d } |jd}t| ||f||| |f||| |fz |j | | d }|jd}t|||f|||| f|||| fz y)Nrrr9rrNrrrrhr%rr>r)r8rrkr=r<r ) rCrrrr,r integrate_1drr)r)r rr+r*r,rbrCvr!r$pxpaxpypaypzpazs r-test_integrate_1dzTestNdPPoly.test_integrate_1do sii##D) HHQ1b"b ) KK1d #Q & KK1d #Q & KK1d #Q & A1ay ! HHSM HHSM1 ^^Aqq^ )y)Aq6 CAq NS!Q^$CD ^^Aqq^ )y)Aq6 CAq NS!Q^$CD ^^Aqq^ )y)Aq6 CAq NS!Q^$CDr3c@tjjdjd}tjddd}tjddddz}tjddd d z}t ||||f}fd }t d ||y) Nr)rr9rrrrrrrhrrr%r=r>cjd}jd}jd}||||fy)Nr:r)r)rrr/rr?r s r-rz/TestNdPPoly.test_concurrency..worker_fn sA"%B"%B"%B R r3)rCr default_rngrr,rr)r)rr+r*r,rbrr s @r-rzTestNdPPoly.test_concurrency sii##E* KK/K 0 KK1c " KK1c "A % KK1c "A % A1ay !  Iq1r3N)r/r0r1r-r8r@rErHrJrLrXrbrYrZ thread_unsaferr2r3r-r)r)sP  6:6( (%(;>B(2BE4 [[22r3r)ctjt|jdf}t |D]\}}|dks|dkDrtj ||ddf<(tj ||dz ||z ||cxkr |dzksJJtfdtjdD}|||ddf<|S)z&Evaluate piecewise polynomial manuallyr%rrhNc3^K|]$}|fjd|z dz zz&yw)rrhN)r)rrrrrs r-rz _ppoly_eval_1.. s;,!A#QWWQZ\!^,,,s*-) rCzerosr`rrr searchsortedsumr) rr+xpsrIrrrdrrs ` @@r-r>r> s ((CHaggaj) *C3 2 6R!VvvC!H  OOAr "Q & 1Itr"AacF""""" ,qwwqz*, ,AaC  Jr3c |d}|d}|jd}tj|}tj|}tj|}||k\||kz} ||| <|j | } tj || dz } | j dt|} |} | |j| z } tj| |}tjtt| Dcgc])}tj||ddf| dd| |f+c}}||| <||_|Scc}w)z4Evaluate piecewise polynomial manually (another way)rrArh)NN) rrCr empty_likecompressrjclipr`takevanderrLrr)rabreaksrr3r!r$K saveshapermaskrindxsrrVrvaluess r-r?r? s q Ar A QAI 88D>D -- C AI$!) $DCJ t B OOFB ' )E JJq#f+ &E B  E" "D $!A XXs2wPArvva1gr!U1X+7P QFCICI JQs.Ecd|dkr td||kDryt||z dz||||z zzS)z d^n (x**y) / dx^n rzinvalid derivative orderrh)rmr)r+r*r"s r-_dpowr| sC 1u344 QAEAIq!AAJ..r3c |d}tjt|f|j}|jdd\}}t t ||D]\}\} } |dd| cxkr |ddkrnn|dd| cxkr |ddksntj||<Qtj|d| dz } tj|d| dz } | |d| z } | |d| z }d}t|jdD]Y}t|jdD]<}||||z dz ||z dz | | ft| ||dzt|||dzz }>[|||<|S)z@ Straightforward evaluation of 2-D piecewise polynomial Nr0rr%rrArh rCr~r`rrrziprrjrr|)rrcrynewrrInxnyjoutr+r*j1j2s1s2rk1k2s r-r7r7 s z  ((CIrrArhr%r~)rrcrrznewrrIrrnzrr+r*r,rrj3rrs3rrrk3s r-r>r> s+ z  ((CI?#BBqE23#BBqE23$BBqE234C4 4 4D 14 Jr3c|d}tjt|f|j}|jdd\}} } } t t ||||D] \} \} }}}|dd| cxkr |ddkrPnnM|dd|cxkr |ddkr6nn3|dd|cxkr |ddkrnn|d d|cxkr |d dksntj|| <tj|d| dz }tj|d|dz }tj|d|dz }tj|d |dz }| |d|z }||d|z }||d|z }||d |z }d}t|jdD]}t|jdD]}t|jdD]}t|jd D]n}||||z dz | |z dz | |z dz | |z dz ||||ft|||dzt|||dzt|||dzt|||d zz }p||| < |S) z@ Straightforward evaluation of 4-D piecewise polynomial N)rrrrrrrrArhr%r>r~)rrcrrrunewrrImxmymzmurr+r*r,rCrrrj4rrrs4rrrrk4s r-rBrB s z  ((CI Jr3r)?scipy._lib._array_apirrrrrYrr'numpyrr r r rCscipy.interpolater r rrrrrrrrrrrr scipy.specialrrrscipy._lib._gcutilsrrscipy._lib._testutilsrscipy.integrater r!r#r5r^rhrZr\r4rrrrrrrr)r>rr?r|r7r>rBr2r3r-rs4+ ((----&$;9!U U p66^;^;B$79J#KL:M:,XLXLv,&,&^kEkE\E=E=P\0\0~.'.'bddNg2g2T  .0VV. /!H%P*r3