L iφddlZddlmZddlZddlmZmZmZddl Z ddl m Z ddl m Z mZddlmZmZmZddlmZmZmZmZmZmZddlmZd Zd ZGd d ZGd dZGddZ GddZ!dZ"dZ#y)N)product)assert_allclose assert_equalassert_)raises) MapWrapper_ScalarFunctionWrapper) csr_array csc_array lil_array)_adjust_scheme_to_boundsapprox_derivativecheck_derivative group_columns_eps_for_method_compute_absolute_step)rosencgdgdgdgdgdgdgdg}tjtttfD]}||}tj d}tj gd }t||}t||gd }tj gd }t||}t||t}t|}t||y) N)rrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrr)rrr)rrrrrr) npasarrayr r r arangearrayrr) structure transformAorder groups_truegroupsgroups_1groups_2s h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/optimize/tests/test__numdiff.pytest_group_columnsr(sIjj)Y B * i  ! hh12 q%(V[)"hh12 q%(V[) *QHQH8$c,tjtjj}|dz|dz|dzd}dD]n}t t tjtj|||t t tj tj |||ptjtjj}|dz|dz|dzd}dD]}t t tjtj|||t t tjtj|||t t tjtj|||y)N?UUUUUU?2-pointz3-pointcs)rfinfofloat64epsrr complex128float32)EPS relative_stepmethods r'test_correct_fp_epsr8.sH ((2::  " "C #S"Sz8%M/  BJJ F ; & ! #  BMM2==& A & !   ((2::  " "C #S"Sz8%M/   BJJ F ; & !   BJJ F ; & !   BJJ F ; & !   r)ceZdZdZdZdZy)TestAdjustSchemeToBoundsctjd}tjdd}tj|}tj|}|j tj |j tj t ||dd||\}}t||ttj|t ||dd||\}}t||ttj|t ||dd||\}}t||ttj|t ||dd||\}}t||ttj|y)Nr{Gz?r1-sidedr2-sided) rzerosfull empty_likefillinfr rrall)selfx0h inf_lower inf_upper h_adjusted one_sideds r'test_no_boundsz'TestAdjustSchemeToBounds.test_no_boundsSs= XXa[ GGAt MM"% MM"% wrvv 8 1iI!7 I A&y!" 8 1iI!7 I A&y!" 8 1iI!7 I A& z"# 8 1iI!7 I A& z"#r)ctjgd}tjd }tjd}tjgddz}t||dd||\}}t ||t||dd||\}}t |tjgddzt||dd ||\}}t |tj |t tj|t||dd ||\}}t |tjgddzt|tjgd y) N)g333333?g333333r)rr皙?rr=r)rrOrr>)FTT) rronesr rabsrrDr)rErFlbubrGrJ_rKs r'test_with_boundz(TestAdjustSchemeToBounds.test_with_boundos XX( )ggaj[ WWQZ HHZ 4 '0Q9b"M A A&0Q9b"M A BHHZ$84$?@ 8 1iR!) I BFF1I. z"# 8 1iR!) I BHHZ$84$?@Y)< =>r)ctjddg}tjddg}tjddg}tjddg}t||dd||\}}t|tjddgt||d d||\}}t|tjd dgt||dd ||\}}t|tjddgt |tjd d gt||d d ||\}}t|tjddgt |tjd d gy)NgQg?rNgQ?皙rr=gQrg?r>FTgQ?gQ)rrr rr)rErSrTrFrGrJrUrKs r'test_tight_boundsz*TestAdjustSchemeToBounds.test_tight_boundss< XXuen % XXtTl # XXsDk " HHdD\ "0Q9b"M A BHHdE]$;<0Q9b"M A BHHeU^$<= 8 1iR!) I BHHdE]$;<Y% 78 8 1iR!) I BHHeV_$=>Y% 78r)N)__name__ __module__ __qualname__rLrVrYr)r'r:r:Rs$8?,9r)r:c$eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d'd Zd(d ZdZdZdZdZdZdZdZdZej2j5ddZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)y&))TestApproxDerivativesDensec,tj|SNrsinhrExs r'fun_scalar_scalarz,TestApproxDerivativesDense.fun_scalar_scalarwwqzr)c,tj|Srarcoshrds r'jac_scalar_scalarz,TestApproxDerivativesDense.jac_scalar_scalarrgr)ctj|ddztj|dtj|dgSNrrrrtanexprds r'fun_scalar_vectorz,TestApproxDerivativesDense.fun_scalar_vector8xx1q"&&1,qt =>>r)ctjd|dztj|ddztj|dgj ddSNrrrOrrrcosrpreshaperds r'jac_scalar_vectorz,TestApproxDerivativesDense.jac_scalar_vectorNxx 1Xrvvad|r)266!A$< 8::A'"a. Ir)cptj|d|dztj|dzSNrrrsinlogrds r'fun_vector_scalarz,TestApproxDerivativesDense.fun_vector_scalar.vvadQqTk"RVVAaD\11r)ctj|dztj|tj|gSNrrnrds r'wrong_dimensions_funz/TestApproxDerivativesDense.wrong_dimensions_funs,xxArvvay"&&)455r)c ftj|dtj|d|dzztj|dztj|d|dz|dz z|dtj|d|dzztj|dzgSNrrrrrwrr~rds r'jac_vector_scalarz,TestApproxDerivativesDense.jac_vector_scalarxx aD266!A$1+& &! 5 FF1Q4!A$; !A$ & ' aD266!A$1+& &! 5   r)ctj|dtj|dz|dtj|dz|ddz|ddzzgSNrrr࿩rrr~rwrds r'fun_vector_vectorz,TestApproxDerivativesDense.fun_vector_vector`xx aD266!A$<  aD266!A$<  aDAI! $   r)c|dk(sJtj|dtj|dz|dtj|dz|ddz|ddzzgS)=Used to test passing custom arguments with check_derivative()*rrrrrrEreargs r'fun_vector_vector_with_argz5TestApproxDerivativesDense.fun_vector_vector_with_argslbyyxx aD266!A$<  aD266!A$<  aDAI! $   r)cPtjtj|d|dtj|dzg|d tj|dztj|dgd|ddzz|ddzzd|ddzz|ddzzggSNrrrrrrrds r'jac_vector_vectorz,TestApproxDerivativesDense.jac_vector_vectorxx VVAaD\1Q4"&&1,. /dURVVAaD\ !266!A$< 0 1]QqTT\ )4!A$!)+;addl+J K   r)c^|dk(sJtjtj|d|dtj|dzg|d tj|dztj|dgd|ddzz|ddzzd|ddzz|ddzzggS)rrrrrrrrrrs r'jac_vector_vector_with_argz5TestApproxDerivativesDense.jac_vector_vector_with_argsbyyxx VVAaD\1Q4"&&1,. /dURVVAaD\ !266!A$< 0 1]QqTT\ )4!A$!)+;addl+J K   r)ctjtj||dztj||dzgSr|rrrprErec0c1s r'fun_parametrizedz+TestApproxDerivativesDense.fun_parametrizeds8xxQqT *BFF2!9,=>??r)c tj|tj||dzzdgd|tj||dzzggSr|rrs r'jac_parametrizedz+TestApproxDerivativesDense.jac_parametrizedsTxx "&&ad# #Q ' RVVB1I&& '   r)cVtj|dkr|StjS)N:0yE>rrRnanrds r' fun_with_nanz'TestApproxDerivativesDense.fun_with_nans FF1I%q12661r)cVtj|dkrdStjS)Nr?rrds r' jac_with_nanz'TestApproxDerivativesDense.jac_with_nans ffQi4's3RVV3r)cztj|d|dztj|d|dzgSr|)rrrwrds r'fun_zero_jacobianz,TestApproxDerivativesDense.fun_zero_jacobians7xx1!bffQqTAaD[&9:;;r)c tj|d|dg|d tj|d|dzz|d tj|d|dzzggSr)rrr~rds r'jac_zero_jacobianz,TestApproxDerivativesDense.jac_zero_jacobiansoxx qT1Q4LdURVVAaD1Q4K( (1Q4%"&&1!2E*E F   r)crtj|j}tj|Sra)rritemmathrp)rErexps r' jac_non_numpyz(TestApproxDerivativesDense.jac_non_numpys(ZZ]   !xx|r)c d}t|j|d}t|j|}t|j|d}|j|}t||dt||dt||dy) Nrr.r7r/ư>rtol& .>-q=rrfrkrrErF jac_diff_2 jac_diff_3 jac_diff_4jac_trues r'test_scalar_scalarz-TestApproxDerivativesDense.test_scalar_scalars{ &t'='=r.79 &t'='=rB &t'='=r.24 ))"- H48 H48 H59r)cd}t|j|dd}t|j|d}t|j|dd}|j|}t||dt||d t||d y) Nrr."\O>r7abs_step)rr/rrrrrrs r'test_scalar_scalar_abs_stepz6TestApproxDerivativesDense.test_scalar_scalar_abs_steps &t'='=r.7'K &t'='=r079 &t'='=r.2WF ))"- H48 H48 H59r)cd}td5}t|j|d|}dddt|j|t}t|j|dd}|j t j |}t|dt||d t||d y#1swYxYw) Nr+rr.r7workers)rr/rrrr)rrrqmapryr atleast_1dr)rErFmapperrrrrs r'test_scalar_vectorz-TestApproxDerivativesDense.test_scalar_vectors  ] Mf*4+A+A22;VMJ M't'='=r3O &t'='=r.2DB ))"--*;< H48 H48 H59 M Ms B44B=g@cgd}td5}tt|d|d\}}tt||d\}}dddtt|ddd\}}tt} t| |dd\} } t | d | j d | _t| |d \} } t | d | j d | _t| |dd\}}t |d | j t d | d t d | d t |d |d t | t | t ||y#1swYxYw) N)r+g?@rr.T)r7r full_output)rrr/)r7rnfevr)r)rrrr rr)rErFrmd2mdct2md3mdct3md4mdct4sfrd2dct2d3dct3d4dct4s r'!test_workers_evaluations_and_nfevzr)rrrrrrrs r'test_vector_scalarz-TestApproxDerivativesDense.test_vector_scalar?s XXudm $&t'='=r.79 &t'='=rB &t'='=r.24 ))"- H48 H48 H59r)cZtjddg}t|j|dd}t|j|dtj}t|j|dd}|j |}t ||d t ||d t ||d y) Nrrr.rr)rrel_stepr/rrA:)>r)rrrrrCrrrs r'test_vector_scalar_abs_stepz6TestApproxDerivativesDense.test_vector_scalar_abs_stepKs XXudm $&t'='=r.7'K &t'='=r07"&&J &t'='=r.2WF ))"- H48 H48 H59r)cvtjddg}t|j|d}t|j|}t d5}t|j|d|}ddd|j |}t ||d t ||d t |d y#1swYExYw) NY皙?r.rrr/rh㈵>rrr)rrrrrrr)rErFrrrrrs r'test_vector_vectorz-TestApproxDerivativesDense.test_vector_vectorYs XXvsm $&t'='=r.79 &t'='=rB ] Hf*4+A+A226HJ H))"- H48 H48 H59  H Hs B//B8cd}ttt|j||jt j |}tt t|j||y)Nr)f0) assert_raises RuntimeErrorrrrr ValueError)rErFrs r'test_wrong_dimensionsz0TestApproxDerivativesDense.test_wrong_dimensionsfsR l$5// 5  & &r}}R'8 9j"3// r.rrrr7rrrrr)rrrrrr)rErFrSrTrrs r'rYz,TestApproxDerivativesDense.test_tight_boundss XXtTl # $Y $Y))"-$  " "By"bK(6$  " "By2r(, (6$  " "BBx9(6$  " "Br2hH(6r)cd}d}d}|j|}t|j|dd||f}t|j|d||f}t||dt||d d}|j|}t|j|dd||f}t|j|d||f}t||dt||d y) N:0yErrNr.rrrrr)rrrr)rErSrTrFrrrs r'test_bound_switchesz.TestApproxDerivativesDense.test_bound_switchess   $$R(&   r)d8 '   rD"bC  H48 H48 $$R(&   r)d8 '   rD"bC  H48 H48r)cd}|j|}t|j|d}t|j|}t||dt||dttt|j|fit dy)Nrr.rrrrr/)rrrr TypeErrorr)rErFrrrs r'test_non_numpyz)TestApproxDerivativesDense.test_non_numpys~ %%b)&t'9'92.79 &t'9'92>  H48 H48 i!2D4F4F +D) +r)cLtjjddfdtjdddtjtjjdj tjtj ddg}t|df }t|j tjdf }|jtjk(sJt||d fd }t||j tjd }t||d d}d}d}d}tjtjtjfD]} tj| j} tj dj | } td| || d} || | ||| } t|| d| || z t| krJy)Nrc|d|d|zzSr|r])pres r'funcz0TestApproxDerivativesDense.test_fp..funcsQ4!A$(? "r)c|||z Srar])rreyrs r'errz/TestApproxDerivativesDense.test_fp..errs1:> !r)rddtyperr.)r7rgMbP?)atolc|jtjk(sJ|jtjSra)rrr4astype)rrrers r'err_fp32z4TestApproxDerivativesDense.test_fp..err_fp32s677bjj( ((q!Q<&&rzz2 2r)rc,tj|Srarr~res r'fz-TestApproxDerivativesDense.test_fp..f66!9 r)c,tj|Sra)rrwrs r'gz-TestApproxDerivativesDense.test_fp..g r r)c.tj| Srarrs r'hessz0TestApproxDerivativesDense.test_fp..hess sFF1I: r)c (|dz ttj||tj|||zz}||z ttj||tj|||zz}||zSr)maxrrR)rGrFrr$r5t0t1s r' calc_atolz5TestApproxDerivativesDense.test_fp..calc_atolsrQRVVDH-rvvd26l/CDDBq3rvvae}bffQrAvY.?@@B7Nr)rr)rrandomseedlinspacer1rrrr4rrfloat16r0r2rrR)rEp0jac_fp64jac_fprrr"r$r)rr5rFrGrrrrers @@@@r'test_fpz"TestApproxDerivativesDense.test_fps q # " KK1c 4 II  S ! ( ( 4 XXtTl #$S"YaVL#3 "**(=*31a&B2q!}""bjj000t4 3#8RYYrzz-B*35t4    jj"**bjj9 #E((5/%%C#%%e,B&tR2 BAQAtS1D#Ar)-.023B%8Cs8d? "? #r)ctjddg}t|j|j|}t |dkt|j|j|}t |dktjddg}t|j |j|}t |dk(t|j |j|}t |dk(y)N$ rrrNr)rrrrrrrrrErFaccuracys r'test_check_derivativez0TestApproxDerivativesDense.test_check_derivative s XXubk "#D$:$:$($:$:B@4 #D$:$:$($:$:B@4 XXsCj !#D$:$:$($:$:B@A #D$:$:$($:$:B@A r)ctjddg}t|j|j|ddi}t |dky)Nr3r4rr)rr)rrrrrrr5s r'!test_check_derivative_with_kwargsz.jacsTXXa[) )r)rr)rrIrFrSrTr)rErCr6s` r'r7z0TestApproxDerivativeSparse.test_check_derivativesr *$DHHc477,0GGTWW+=?4 #DHHc477,0GGTWW+=?4 r)N)rZr[r\rErIrCrr:r;r<r`rbrfr7r]r)r'r>r>:sJ (=   [[1EE0= 4 !r)r>cZeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zy)"TestApproxDerivativeLinearOperatorc,tj|Srarbrds r'rfz4TestApproxDerivativeLinearOperator.fun_scalar_scalarrgr)c,tj|Srarirds r'rkz4TestApproxDerivativeLinearOperator.jac_scalar_scalarrgr)ctj|ddztj|dtj|dgSrmrnrds r'rqz4TestApproxDerivativeLinearOperator.fun_scalar_vectorrrr)ctjd|dztj|ddztj|dgj ddSrtrvrds r'ryz4TestApproxDerivativeLinearOperator.jac_scalar_vectorrzr)cptj|d|dztj|dzSr|r}rds r'rz4TestApproxDerivativeLinearOperator.fun_vector_scalarrr)c ftj|dtj|d|dzztj|dztj|d|dz|dz z|dtj|d|dzztj|dzgSrrrds r'rz4TestApproxDerivativeLinearOperator.jac_vector_scalarrr)ctj|dtj|dz|dtj|dz|ddz|ddzzgSrrrds r'rz4TestApproxDerivativeLinearOperator.fun_vector_vectorrr)cPtjtj|d|dtj|dzg|d tj|dztj|dgd|ddzz|ddzzd|ddzz|ddzzggSrrrds r'rz4TestApproxDerivativeLinearOperator.jac_vector_vectorrr)c d}t|j|dd}t|j|d}t|j|dd}|j|}tjj dt dD]}tjjd dd }t|j|||zd t|j|||zd t|j|||zd y)Nrr.Tr7as_linear_operatorrur/rr4rrQrrh㈵>) rrfrkrr*r+rRuniformrdotrErFrrrrrTrs r'rz5TestApproxDerivativeLinearOperator.test_scalar_scalars &t'='=r.7:>@ 't'='=r:>@ &t'='=r.2:>@ ))"- qr 'A !!#r!5A JNN1-xz!% ' JNN1-xz!% ' JNN1-xz!% '  'r)cd}t|j|dd}t|j|d}t|j|dd}|jtj|}tj j dtdD]}tj jd dd }t|j||j|d t|j||j|d t|j||j|d y)Nr+r.Trtrvr/rr4rwrxryrrrz) rrqryrrr*r+rRr{rr|r}s r'rz5TestApproxDerivativeLinearOperator.test_scalar_vectors &t'='=r.7:>@ 't'='=r:>@ &t'='=r.2:>@ ))"--*;< qr 'A !!#r!5A JNN1-x||A!% ' JNN1-x||A!% ' JNN1-x||A!% '  'r)c tjddg}t|j|dd}t|j|d}t|j|dd}|j |}tj j dtd D]}tj jd d |j }t|j|tj|j|d t|j|tj|j|d t|j|tj|j|d y)Nrrr.Trtrvr/rr4rwryrrrzr) rrrrrr*r+rRr{shaperr|rr}s r'rz5TestApproxDerivativeLinearOperator.test_vector_scalars3 XXudm $&t'='=r.7:>@ 't'='=r:>@ &t'='=r.2:>@ ))"- qr 'A !!#r!9A JNN1-r}}X\\!_/M!% ' JNN1-r}}X\\!_/M!% ' JNN1-r}}X\\!_/M!% '  'r)ctjddg}t|j|dd}t|j|d}t|j|dd}|j |}tj j dtd D]}tj jd d |j }t|j||j|d t|j||j|d t|j||j|d y)Nrrr.Trtrvr/rr4rwryrrrr) rrrrrr*r+rRr{rrr|r}s r'rz5TestApproxDerivativeLinearOperator.test_vector_vectors XXvsm $&t'='=r.7:>@ 't'='=r:>@ &t'='=r.2:>@ ))"- qr KA !!#r!9A JNN1-x||AT J JNN1-x||AT J JNN1-x||AT J  Kr)c tjddg}ttt|j |ddtj fy)Nrrr.rr)rrrrrrrC)rErFs r'test_exceptionz1TestApproxDerivativeLinearOperator.test_exceptions9 XXvsm $j"3,,b&266{ .f!s2qtax  266!A$(#333r)rOr.rrrrr )r7rr)rrrrC)rgrads r'test_absolute_step_signrs;4 QRT JDD4+& QRU KDD3+&  B8It  DD4+&  B8Iu  DD4,'  B8I  DD3*%  B8I} DD3+&  B8Ir266l DD4+&r)c |gd}tjgd}tjtjj}|dz|dz|dzd}tjd}|D]}||}tj||dz|dz|tj |dzg}t d|||}t||| dk\jtdzd z } t d| ||}t|| |ztjgd }tj|d|dz|d |ddz|dtj |dzg}t |||d }t||| dk\jtdzd z } t || |d }t|| |zy) Nr-)rrrgj@r+r,rrrrr)rPrr4rr.) rrr0r1r2rRrrrfloat) methodsrFr5r6rr7r correct_steprsign_x0s r'test__compute_absolute_steprMs*G # $B ((2::  " "C8:3hM #B : (xx!)B!)B!)BFF2a5M!9!;< *$B?,/3!8##E*Q.2)$R@'L"89 :xx)*H88Xa[2a50*95%a[2-%a[266"Q%=8:;L &hB BHHl+sax&*Q.G%hRCHHg 45r))$r itertoolsrnumpyr numpy.testingrrrr:rrscipy._lib._utilrr scipy.sparser r r scipy.optimize._numdiffr rrrrrscipy.optimizerr(r8r:r_r>rjrrr]r)r'rs| @@ *?88<<!%8! HG9G9T[![!| \!\!~|<|<~2'j(6r)