L i<ddlZddlZddlZddlmZddlmZddlZddl m Z m Z ddl m Z ddlmcmZddlmcmZddlZddlZej0dkZdZGdd ZGd d ZGd d Zy)N)suppress_warnings)raises)xp_assert_closeassert_almost_equal)check_free_memorylctjjtjjtjj t d|S)Ndata)ospathjoinabspathdirname__file__)basenames k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/interpolate/tests/test_interpnd.py data_filers8 77<<(AB **ceZdZdZdZdZdZdZdZdZ dZ d Z d Z e jje jj e jj#ed d Zy)TestLinearNDInterpolationctjgdtj}tj|jdtj}t j |||}t||y)Nrr)r)r?)rr)?333333?dtypernparrayfloat64arangeshapeinterpndLinearNDInterpolatorrselfxyyis rtest_smoketestz(TestLinearNDInterpolation.test_smoketestsY HHN:: ' IIaggaj 3 0X * *1a 0 3Ar"rcDtjgdtj}tj|jdtj}t j |dddf|dddff||dddf|dddf}t||y)Nrrrrr's rtest_smoketest_alternatez2TestLinearNDInterpolation.test_smoketest_alternate#s HHN:: ' IIaggaj 3 ?X * *AacFAacF+;Q ?!A#!A# OAr"rctjgdtj}tj|jdtj}|d|zz }t j |||}t||yNrrr@rr's rtest_complex_smoketestz0TestLinearNDInterpolation.test_complex_smoketest,sf HHN:: ' IIaggaj 3 1H 0X * *1a 0 3Ar"rcdtjgdtj}tj|jdtj}|d|zz }t j |}tj||}||}t|||j|usJyr1) r r!r"r#r$qhullDelaunayr%r&rtri)r(r)r*r7 interpolatorr+s rtest_tri_inputz(TestLinearNDInterpolation.test_tri_input6s HHN:: ' IIaggaj 3 1HnnQ44S!< !_Ar"3&&&rcJtjgdtj}tjgdtjfd}tjtjddddddftjddddddf\}}|j }|j }tj||gj j}tj||}t||||y)N)rrr.r.r.r.rrg?g@gg@c||zdk}|}||}||}||}||}d|z} dd|z |z z d|zz d|zz||< d||zdz z dd|z zz dd|z zz||<|S)Nr.r) r)r*t1t2x1y1x2y2zvaluess ripz1TestLinearNDInterpolation.test_square..ipQsa%1*BB2B2B2B2B!AAYB ,ay|$ay|$AbEAYR! ,ay!b&)*ay!b&)*AbEHrrr. r r!r"broadcast_arrayslinspaceravelTcopyr%r&r)r(pointsrKxxyyxizirJs @r test_squarez%TestLinearNDInterpolation.test_squareCs6bjjI+2::> *$$R[[Ar%:1T6%B%'[[Ar%:46%BDB XXZ XXZ XXr2h  ! ! & & ( :X * *66 :2 >B2r +rc tjgdtj}tj|jdtj}t j ||d|}t||y)Nr)r[)r[)r\r\)g@r@rrTrescalerr's rtest_smoketest_rescalez0TestLinearNDInterpolation.test_smoketest_rescaleps[ HHB:: ' IIaggaj 3 >X * *1a >q AAr"rcltjgdtj}tjgdtj}tjtjddddddftjddddddf\}}|j }|j }tj||gj j}tj|||}tj||d |}t||y) N)r)rd) ra)rbrrr>rrbrLraTr]rM)r(rSrJrTrUrVrW zi_rescaleds rtest_square_rescalez-TestLinearNDInterpolation.test_square_rescaleys$$R[[B%;AdF%C%'[[C%h33FF "  B ,rctjgdtj}tj|jdtj}|d|zz }t j |}tj|j||}tj|j|d|}t||yNrZrrr2Tr]) r r!r"r#r$r5r6r%r&rSrr(r)r*r7r+ yi_rescales rtest_tripoints_input_rescalez6TestLinearNDInterpolation.test_tripoints_input_rescales HH?:: ' IIaggaj 3 1HnnQ 9X * *3::q 9! <X223::q! B +rctjgdtj}tj|jdtj}|d|zz }t j |}d}tjt|5tj||d|dddy#1swYyxYw NrZrrr2zORescaling is not supported when passing a Delaunay triangulation as ``points``.)matchTr]) r r!r"r#r$r5r6pytestr ValueErrorr%r&r(r)r*r7rls rtest_tri_input_rescalez0TestLinearNDInterpolation.test_tri_input_rescales HH?:: ' IIaggaj 3 1HnnQ9 ]]:U 3 C ?H ) )#q$ ? B C C C B<<Cctjjdtjjdd}tjjddtjjdzz}t j ||}t jt j|}t|dd|ddyNrAy?r) r randomseedrandr%r&pickleloadsdumpsr)r(r)r*rKip2s r test_picklez%TestLinearNDInterpolation.test_pickles t IINN2q ! IINN2 BIINN2$6!6 6  * *1a 0ll6<<+,BsCL#c3-8rzit fails on 32-bit)reasonc tdtjddd}tjddd}tj||\}}d}tj|j |j fj }||zj }tj||}tj||tddtddf} tj||tddtddf} tj||tddtddf} tj||tddtddf} | j| j| j| j| j| j| j| jy)Ni'rihrbcJtj||f\}}|||f}|SN)r mgrid)r8 slice_rows slice_colsgrid_xgrid_yress r do_interpz;TestLinearNDInterpolation.test_threading..do_interps-XXj*&<=NFF/0CJri4)targetargs)rr r#meshgridvstackrPrQr%r& threadingThreadslicestartr ) r(r_ticks phi_ticksr_gridphi_gridrrSrJr8worker_thread_1worker_thread_2worker_thread_3worker_thread_4s rtest_threadingz(TestLinearNDInterpolation.test_threadings % ))AtR(IIar* ;;w :  FLLNHNN,<=>@@8#**,44VVD #**aa?A$**dD 15D>BD$**adD0ABD$**dD 15t3DEG rN)__name__ __module__ __qualname__r,r/r3r9rXr_rdrirpr}rmmarkslow thread_unsafeskipif _IS_32BITrrBrrrrs### '+,Z#-$ , C 9 [[ [[ [[ *>?'@'rrceZdZdZdZy)TestEstimateGradients2DGlobalc tjgdt}tj|}ddfddfddfd d fg}t |D]{\}\}}||ddd f|ddd f}t j||d }|jdk(sJt|tj|dddfd |zzddd|}y)N)r)rrAr=)r.rArg?g333333?g?rcd|zdzSNrr.rBr)r*s rz>TestEstimateGradients2DGlobal.test_smoketest..s!A#'rrc d|zSNrrBrs rrz>TestEstimateGradients2DGlobal.test_smoketest..s !a%rr=c d|zSNrBrs rrz>TestEstimateGradients2DGlobal.test_smoketest..s "q&rr;cdd|zzd|zzSNr@L,@rBrs rrz>TestEstimateGradients2DGlobal.test_smoketest..s!ac'E!G+r)r@rrr.ư>)tol)rAgh㈵>zitem )rtolatolerr_msg) r r!floatr5r6 enumerater%estimate_gradients_2d_globalr$r) r(r)r7funcsjfuncgradrIdzs rr,z,TestEstimateGradients2DGlobal.test_smoketests HH@GL NnnQ "6 *  ( & ) +Z 8   )/ OA|dQqsVQqsV$A66sA4HB88v% %% BHHTN47+ad2Ds    rcptjtd}tjj |j d}t j|}t5}|jtjdtj||ddddy#1swYyxYw)Nzestimate_gradients_hang.npyrz$Gradient estimation did not converger.)maxiter) r loadrrvrxr$r5r6rfilterr%GradientEstimationWarningr)r(rSrJr7sups rtest_regression_2359z2TestEstimateGradients2DGlobal.test_regression_2359s#@AB Q0nnV$  JC JJx99= ?  1 1#vq I J J Js *9B,,B5N)rrrr,rrBrrrrs 0 JrrceZdZ d dZdZdZdZdZdZe jjdd Z d Z d Zd Zy)TestCloughTocher2DInterpolatorNc tjjd}|tjgdt}|s/t j |||dddf|dddfd|}n>t j |dddf|dddff||dddf|dddfd|}|jdd } |s || } n|| dddf| dddf} || dddf| dddf} t| | fi|y#t$r0td t| | z td |jwxYw) Nrt)rr;r=r<rr)rg?rrr.r)rr^2rAz_check_accuracy: abs(a-b):zip.grad:) r rv RandomStater!rr%CloughTocher2DInterpolatorrxrAssertionErrorprintabsr) r(rr)r alternater^kwrngrKpabs r_check_accuracyz.TestCloughTocher2DInterpolator._check_accuracysNii##D) 9& %&A 44QQqsVQqsV8L9=wPB44a!fa!f5E59!AaC&!AaC&5I9=wPB HHRO1A1QqS61QqS6"A 1Q31Q3   Aq 'B '  .AE ; *bgg &  s : D9Ec ddddg}t|D]m\}}|j|dddd||j|dddd d | |j|dddd |d |j|dddd d d|oy)Ncd|zdzSrrBrs rrzFTestCloughTocher2DInterpolator.test_linear_smoketest..*s1qrc d|zSrrBrs rrzFTestCloughTocher2DInterpolator.test_linear_smoketest..+s Qrc d|zSrrBrs rrzFTestCloughTocher2DInterpolator.test_linear_smoketest..,s arcdd|zzd|zzSrrBrs rrzFTestCloughTocher2DInterpolator.test_linear_smoketest..-sQqS57*rgvIh%<=gHz> Function rrrrTzFunction (alternate) )rrrrrzFunction (rescaled) rrrrr^zFunction (alternate, rescaled) )rrrrr^rrrr(rrrs rtest_linear_smoketestz4TestCloughTocher2DInterpolator.test_linear_smoketest's !   *  !' GAt  %d1# !   %d/s3 !   %d.qc2D !   %dt9!= !  rc ddddg}t|D]8\}}|j|dddd| |j|dddd|d :y) Nc |dzSNrArBrs rrzITestCloughTocher2DInterpolator.test_quadratic_smoketest..E Arc |dzSrrBrs rrzITestCloughTocher2DInterpolator.test_quadratic_smoketest..Frrc|dz|dzz SrrBrs rrzITestCloughTocher2DInterpolator.test_quadratic_smoketest..GA1rc ||zSrrBrs rrzITestCloughTocher2DInterpolator.test_quadratic_smoketest..H 1r& .>g)\(?rrrTrrrs rtest_quadratic_smoketestz7TestCloughTocher2DInterpolator.test_quadratic_smoketestBs~   $   !' GAt  $TYqc? !   $TYqc?TX !   rc@tjgdtj}tj|jdtj}|d|zz }t j |}tj|||}t||yr1) r r!r"r#r$r5r6r%rr)r(r)r*r7r+s rr9z-TestCloughTocher2DInterpolator.test_tri_inputSst HHN:: ' IIaggaj 3 1HnnQ 8X 0 0a 8 ;Ar"rctjgdtj}tj|jdtj}|d|zz }t j |}d}tjt|5tj||d|dddy#1swYyxYwrk) r r!r"r#r$r5r6rmrrnr%rros rrpz5TestCloughTocher2DInterpolator.test_tri_input_rescale^s HH?:: ' IIaggaj 3 1HnnQ9 ]]:U 3 I EH / /Q Ea H I I Irqctjgdtj}tj|jdtj}|d|zz }t j |}tj|j||}tj|j|d|}t||yrf) r r!r"r#r$r5r6r%rrSrrgs rriz;TestCloughTocher2DInterpolator.test_tripoints_input_rescaleks HH?:: ' IIaggaj 3 1HnnQ ?X 0 0Q ? BUX88QPTUVWX B +rr\c jdddddg}tjjd}tjtjgdt |j d d f}t|D]:\}}|j||d d d d||j||d d d d|d<y)Nc |dzSrrBrs rrz;TestCloughTocher2DInterpolator.test_dense..{rrc |dzSrrBrs rrz;TestCloughTocher2DInterpolator.test_dense..|rrc|dz|dzz SrrBrs rrz;TestCloughTocher2DInterpolator.test_dense..}rrc ||zSrrBrs rrz;TestCloughTocher2DInterpolator.test_dense..~rrctjdtjz|ztjdtjz|zzSr)r cospisinrs rrz;TestCloughTocher2DInterpolator.test_dense..s5"%% *266!BEE'!)+<<ri)rr;r=r<rirArg{Gzt?g{Gz?r)r)rrrrT)r)rrrrr^) r rvrr_r!rrxrr)r(rrgridrrs r test_densez)TestCloughTocher2DInterpolator.test_densews   $  <  ii##D)uuRXX:%HXXeQ'()!' GAt  $T RSQTo !   $T#A3 !   rctjjdd}tjjd}ttt j ||y)Nrur@)r rvrandn assert_raisesrnr%r)r(r)r*s rtest_wrong_ndimz.TestCloughTocher2DInterpolator.test_wrong_ndims< IIOOB " IIOOB j("E"Eq!Lrcbtjjd}|jdd}|jdd|jdzz}t j ||}t jt j|}t|dd|ddyrs) r rvrrxr%rryrzr{r)r(rr)r*rKr|s rr}z*TestCloughTocher2DInterpolator.test_picklesii##D) HHRO HHRL2chhrl? *  0 0A 6ll6<<+,BsCL#c3-8rc@tjdddtjddz fg}tjgd}tj||}d|j d<d }tjdtj |zdtj|zg}tjdtj tjdz |z zdtjtjdz |z zg}||}||}t||tjjd } | jdd} | jd} | j|jj| dddfz}| j|| z}| j|| z}tj||}d|j d<||} ||} t| |t| |y) Nrr=rr@rA)r.rrr.rr.)r r!sqrtr%rrrrrrrvrrdotrQ)r(rSrJrKalphap1p2v1v2rArw1w2s rtest_boundary_tri_symmetryz9TestCloughTocher2DInterpolator.test_boundary_tri_symmetrys 66CA+>?@)$  0 0 @  XXsRVVE]*C"&&-,?@ A XXsRVVBEE!GeO44cBFF2557U?rsh +* F3..$$  [[5 * AAH$J$JN@ @ r