L i@ddlZddlmZddlmZmZmZmZmZm Z ddl Z ddl m Z m Z mZmZmZmZmZmZddlmZddlmZmZmZmZddlmZddlm Z m!Z"d e je#jHzZ%e e#jHZ&ejNejPejRejTejVgZ,ej2gZ-e,e-zZ.d Z/d Z0d Z1d Z2dZ3dZ4dZ5edZ6GddZ7Gdde7Z8Gdde7Z9dZ:dZ;dZ<GddZ=dZ>ej~jdZAej~jdZBd ZCd!ZDd"ZEej~jd#d$ejfd%ejfgd&ZIej~jd'ZJej~jd(gd)d*ZKej~jd+gd)d,ZLej~jd(gd)ej~jd-d.d/gd0ZMej~jd1ZNej~jd(gd)ej~jd-d.d/gd2ZOd3ZPd4ZQej~jd+e.d5ZRej~jd+ejNejPejRejTgd6ZSy)7N) lru_cache) assert_warnsassert_assert_allclose assert_equalassert_array_equalsuppress_warnings)finfopowernanisclosesqrtexpsincos)optimize) _zeros_pynewton root_scalarOptimizeResult)getfullargspec_no_self) get_tests functionsc|dzd|zz dz SNxs e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_zeros.pyf1r#!s 6AE>A cd|zdz SNrrr s r"f1_1r'%s q519r$cdd|zzSN@rrr s r"f1_2r+)s Q;r$cBt|t|t|fSN)r#r'r+r s r"f1_and_p_and_ppr.-s a5$q'47 ""r$c0t|t|z Sr-rrr s r"f2r12 q6CF?r$c0t|t|zSr-)rrr s r"f2_1r46r2r$c0t|t|zSr-r0r s r"f2_2r6:r2r$c|Sr-rr s r" f_lrucachedr8?s Hr$ceZdZdejej zZdejej zZ ddZ ddZ ddZ y)TestScalarRootFindersrNc g}|xsgD]0}||vrddddj||}|j||2td i|}|jddd|xsgD] }||||< |jd} |jd d } ||d | i|\} } | | |fS#t$r1| t j td d t j||fcYSwxYw) Nx0x1f)abfuncTF full_outputdisprootargsr) getappenddictupdate Exceptionzeros RootResultsr _EVALUEERR) selftcmethod sig_args_keyssig_kwargs_keyskwargs method_argsk method_kwargsrE func_argsrrrs r" _run_one_testz#TestScalarRootFinders._run_one_testJs $" &A{T37;;AqA   r!u %  & v T5AB &B %A!!uM!  %vvf~FF62&  VKIiI=IEArR<  V**3B8H8H&QSUU U VsB$$7CCc <t|}t|j t|j}t|j |z }|j d|} g} |dvr:|dvr&| j d|dvr| j d|j|d<n|j|d<|j|d <|D cgc]"} t|j| |f| | d |$} } |xsg}| D cgc]} | d jr| }} |D cgc]} | d d |vs| }} |D cgc] } | d d  }} tt||gdgg|j|jd}|jdi||d }|jd|d}| D cgc]} | d js| }} |D cgc]} | d j}} |D cgc]} | d }} t!|||D cgc]%\}}} t#||||s| d d |vr|g| z'}}}} |D cgc]+\}}}} | d|g| jdt%-}}}}} t!||D cgc]\}} |dk7s |g| z}}} t|t|ggdg| Dcgc]}|d j&}}| Dcgc]}|} }t|| ycc} wcc} wcc} wcc} wcc} wcc} wcc} wcc} }}wcc} }}}wcc} }wcc}wcc}w)zRun test-cases using the specified method and the supplied signature. Extract the arguments for the method call from the test case dictionary using the supplied keys for the method's signature.N)secantrhalley)rr_fprime)r_fprime2tolxtolrtol)rSrTrrGIDrrcrd)rdatolr>rFr)_getfullargspecr kwonlyargslendefaultsrFrIrcrdlistr\ convergedrrKrHrEzipr tuplerR)!rPtestsrRname known_failrUsig nDefaults nRequiredrSrTrQresultseltnotcvgd notcvged_IDStolsrdrgcvgdapproxcorrectr?cnotclosearootfulloutfvsfvresultmethod_from_result_expected_methods! r" run_testszTestScalarRootFinders.run_testsas]f%CNN"# % MI- ),  1 1++&&x0:%#**95 IIF5M!YYF6N!YYF6NCHI<>*** 7&3+7/578II  %2 ")B3Q1A1A3BB")M3SWT]*-L3MM189#B 9 9c,'6B@ 4995 fF|xxtF|,&;#a&*:*:;;)-.##a&++..%)*c3q6**/267D/I99)!Q14d;B Z7C#I99 -566(5!Wbr#wu7rvvfeg6766.1#x.@L72sB!GRD3JLLhH .Q8=DE6fQi..EE)01A411'9?I CM9<.*96LE1s`'K3K!K!K&"K&,K+K04K0>K5 K:9*K?.0L 2 LL(L Lc Lt||}|j|||fd|i|y)zuRun a collection of tests using the specified method. The name is used to determine some optional arguments. smoothnessrrN)rr)rP collectionrRrqrrrrUrps r"run_collectionz$TestScalarRootFinders.run_collections, *<ufdLzLVLr$)NNr-) __name__ __module__ __qualname__npr floatepsrcrdr\rrrr$r"r:r:DsZ xrxx"" "D xrxx"" "D6:&*V.9:vCG"&Mr$r:ceZdZejj deejj dedZejj deejj dedZ ejj deejj dedZ ejj dedZ ejj de je je jgdZejj dedZd Zy ) TestBracketMethodsrRfunctionc,dtd}}t||j||g||j|j}|j sJt |jd|j|j|j|jk(sJyN?)rRbracketr<rcrd?rgrd) rrrrcrdrmrrErRrPrRrr?r@rZs r"test_basic_root_scalarz)TestBracketMethods.test_basic_root_scalarst 471 1a&Q!YYTYY 8{{{$))$))Dxx6??***r$cdtd}}|||||j|jd\}}|jsJt |d|j|jy)NrrT)rcrdrCrr)rrcrdrmr)rPrRrr?r@rErZs r"test_basic_individualz(TestBracketMethods.test_basic_individualsX 4711adiidii%)+a{{{c  Br$cRdtd}}t||jtj||g||j |j }|jsJt|jd|j |j |j|jk(sJyr) rrrrarrayrcrdrmrrErRrs r"test_bracket_is_arrayz(TestBracketMethods.test_bracket_is_arrays471  "!Q 0QTYY!YY ({{{$))$))Dxx6??***r$cB|jd||jdy)Napsrr)rr)rPrRs r"test_aps_collectionz&TestBracketMethods.test_aps_collections E66??qIr$cr|tjk(rdhni}|jd||j|y)Nzfun7.4 chandrupatla)rr)rMridderrr)rPrRrrs r"test_chandrupatla_collectionz/TestBracketMethods.test_chandrupatla_collections8$*U\\#9hZr  NFFOO'1  3r$chd\}}|t||d\}}|jsJt|dy)N)rGrTrCr)r8rmr)rPrRr?r@rErZs r"test_lru_cached_individualz-TestBracketMethods.test_lru_cached_individuals71a=a{{{a r$ctjtd5tjdddddddy#1swYyxYw)Nzmaxiter must be >= 0matchc|dzdz Srrr s r"z2TestBracketMethods.test_gh_22934..s1a4!8r$rrGmaxiter)pytestraises ValueErrorrMbrentqrPs r" test_gh_22934z TestBracketMethods.test_gh_22934s= ]]:-C D @ LL+RB ? @ @ @s AA N)rrrrmark parametrizebracket_methodststutils_functionsrrrrrMbisectrtoms748rrrrr$r"rrsN [[X7 [[Z);< +=8 + [[X7 [[Z);< C=8 C [[X7 [[Z);< +=8 + [[X7J8J [[X ell(- (78383  [[X7!8!@r$rczeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z ejj d Zd ZdZejj dZdZdZejj/deddigdZejj/dddgdZdZy) TestNewtoncndg}|ddgz }dD]&}|j|tjdd|(y)N aps.13.00z aps.12.05 aps.12.17rcomplexrrrrrrrMrrPrrrs r"test_newton_collectionsz"TestNewton.test_newton_collectionssL!] {K00 , EJ    ELL(+,  E Er$cbgd}dD]&}|j|tjdd|(y)N)z aps.12.06z aps.12.07z aps.12.08z aps.12.09z aps.12.10z aps.12.11z aps.12.12z aps.12.13z aps.12.14z aps.12.15z aps.12.16rz aps.12.18rrr_rrrrs r"test_halley_collectionsz"TestNewton.test_halley_collectionss?0 - EJ    ELL(+,  E Er$ctttfttt ffD]\}}}t j|dd}t||ddt j|ddd}t||ddt j|d|d}t||ddt j|d||d }t||ddy) Nrư>rbrrg)r=rb)r`rb)r`rarb) r#r'r+r1r4r6rMrr)rPr>f_1f_2r!s r" test_newtonzTestNewton.test_newtonst,r4.>? 0KAsC Qt,A AaD!$ / QaT2A AaD!$ / Q#48A AaD!$ / Q#sEA AaD!$ / 0r$cftttfttt ffD]4\}}}t |dd|d}t||jdd6tttfttt ffD]3\}}}t |ddd}t||jdd5y) z#Invoke newton through root_scalar()rrr)rRr<r`rcrrrRr<rcN r#r'r+r1r4r6rrrErPr>rrrZs r"test_newton_by_namezTestNewton.test_newton_by_namest,r4.>? 5KAsCAh1StLA AaffIqt 4 5 t,r4.>? 5KAsCAh14@A AaffIqt 4 5r$ctttfttt ffD]b\}}}t |dddd}t||jddt |dddd}t||jdddtttfttt ffD]3\}}}t |ddd }t||jdd5y ) z#Invoke secant through root_scalar()r^rrrrRr<r=rcrrrrNrrs r"test_secant_by_namezTestNewton.test_secant_by_namest,r4.>? 5KAsCAh1FA AaffIqt 4Ah1FA AaffIqt 4  5  t,r4.>? 5KAsCAh14@A AaffIqt 4 5r$c tttfttt ffD]5\}}}t |dd||d}t||jdd7y)z#Invoke halley through root_scalar()r_rr)rRr<r`rarcrrNrrs r"test_halley_by_namezTestNewton.test_halley_by_namesVt,r4.>? 5KAsCAh1#&$@A AaffIqt 4 5r$c,d}tjt|5ttdt dddddd}tjt|5ttdt dddddy#1swYHxYw#1swYyxYw) Nz$fprime2 must be specified for halleyrr_rr)rRr`r<rcz#fprime must be specified for halley)rRrar<rc)rrrrr#r'r+)rPmessages r"test_root_scalar_failz TestNewton.test_root_scalar_fail s8 ]]:W 5 K 8DQT J K7 ]]:W 5 L 8Tad K L L K K L LsA>B >B Bcd}d}d}tjgd}tjtddzdz}||dd dd f}dgdz}t j ||||}d } t || t j ||||| }t || t j ||| }t || y)ztest newton with arrayc|d||dzz}|d|dtj||dz dz zz ||dz z |z S)Nrrrrrrrrrr!r?r@s r"r#z(TestNewton.test_array_newton..f1+sW!q1Q4xAQ4!A$"&&QqT"2S"899A!HDqH Hr$c|d|dz }|d tj|d|dz ||zzz|z|d|dz z dz S)Nrrrrrrrrs r"r'z*TestNewton.test_array_newton..f1_1/s]!qt AaD5266!A$1+A"566:QqTAaD[H1L Lr$cz|d|dz }|d tj|d|dz ||zzz|dzzS)Nrrrrrrs r"r+z*TestNewton.test_array_newton..f1_23sK!qt AaD5266!A$1+A"566A= =r$) g 4O@gNk@g]0J@g]Qݚt@g~EO5@g$J?g~ 5,@gXCڭ@gͮ9@@gӍ@ rg@& .>Mbp?n2d?) gԩ˰@g9~4b'@gaq(@g0p@gk"z?g4se?gU+F@gwQu%@gd6)@g)i!@)rarFN)rrrrangerMrr) rPr#r'r+a0a1rFr<r! x_expecteds r"test_array_newtonzTestNewton.test_array_newton(s I M >XX   ffU2Y#% ,Bub'2URZ LLRt , :& LLRtT ::& LLRd +:&r$c^d}d}tjdd}tj|||}t ||dtj d}tj|||}t ||dtj||}t ||dy)Nc|dzdzS)Nr?rr s r"r>z/TestNewton.test_array_newton_complex..fPsq58Or$cyNrrr s r"r`z4TestNewton.test_array_newton_complex..fprimeSsr$rr)r`)rfullrMrrones)rPr>r`tr!s r"test_array_newton_complexz$TestNewton.test_array_newton_complexOs   GGArN LLAf -!b! GGAJ LLAf -!b! LLA !b!r$c~tjdddgtjddgg}t |dy) z8test secant doesn't continue to iterate zero derivativesc||z|dz S)Nrrr!r?s r"rz>TestNewton.test_array_secant_active_zero_der..dsqsQqTzr$gˡE}@rr<rF)f~@g@N)rMrrrrrPr!s r"!test_array_secant_active_zero_derz,TestNewton.test_array_secant_active_zero_derbs7 LL1uaj!xxR12 434r$ctjddgdzddgf}t|dtjdd gdzd d gf}t|dy) Nc||dzz Sr&ryzs r"rz7TestNewton.test_array_newton_integers..ja!q&jr$@rg.@g1@r)gNO@rc||dzz Sr&rr s r"rz7TestNewton.test_array_newton_integers..nr r$rr)rMrrrs r"test_array_newton_integersz%TestNewton.test_array_newton_integershsY LL03%!) $d|o /AB LL01#'"b LABr$ctttjdddgdt j t5tjdddgdd}t |jd|jjsJ|jjrJ dddy#1swYyxYw) Nc|dzdz Sr&rr s r"rz@TestNewton.test_array_newton_zero_der_failures..usq!taxr$rc d|zSr&rrs r"rz@TestNewton.test_array_newton_zero_der_failures..us QUr$c|dzdz Sr&rrs r"rz@TestNewton.test_array_newton_zero_der_failures..xsQTAXr$c d|zSr&rrs r"rz@TestNewton.test_array_newton_zero_der_failures..ys QqSr$Trr) rRuntimeWarningrMrrwarnsrrEzero_derallrmany)rPrvs r"#test_array_newton_zero_der_failuresz.TestNewton.test_array_newton_zero_der_failuresqs ^U\\'"b? D\\. ) /ll#5Bx#0dDG GLL! ,##'') ))((,,. ...  / / /s A,B55B>cd}d}d}d}t|dd|}t|ddd}t|j|jd td |jz|jt|d d|| }t|d dd}t|j|jd td|jz|jy)Nc|dzd|zz dz Srrr s r"r#z+TestNewton.test_newton_combined..f1s6AE>A% %r$cd|zdz Sr&rr s r"r'z-TestNewton.test_newton_combined..f1_1sq519 r$cdd|zzSr)rr s r"r+z-TestNewton.test_newton_combined..f1_2sQ; r$c0|dzd|zz dz d|zdz dfS)Nrrr*rr s r"r.z8TestNewton.test_newton_combined..f1_and_p_and_pps'a4!A#:a<1Q+ +r$rr)rRr<r`T:0yE>rrr_)rRr<r`ra)rRr<ra)rrrErfunction_calls)rPr#r'r+r.sol0sols r"test_newton_combinedzTestNewton.test_newton_combined~s &   ,2h1TB/(qN 388$7Qs)))4+>+>?2h1T4P/(q$O 388$7Qs)))4+>+>?r$cd}gd}tdD]}ddd}dtgdtggd|D] \}}|||< tjt |fdd i|\}} t | jt|| jt| j| jf|||d k(r| j| jd zks(Jt| j|d z| jz| jd z } tjt |f| d d |\}} t | j t|| jt| j| |d k(s[d | d} tjt| 5tjt |f| dd |\}} dddy#1swYxYw)Nr)))rr)r rT)rbrCr`rarDFrr)rrDzFailed to converge after z iterations, value is .*r)rr'r+rMrr#rrmrrE iterationsr$rr RuntimeError) rPcapsysr<expected_countsderivsrUrWvr!rZitersmsgs r"test_newton_full_outputz"TestNewton.test_newton_full_outputs 3Ah TF!$9F"D)It+<=gvF 1q  <<B=U=f=DAq AKK AFF # !,,(8(89?6;R S{''1<.funcs6C< r$c d|zSr&rr s r"dfuncz1TestNewton.test_deriv_zero_warning..dfuncs q5Lr$rFrDzDerivative was zeror)rrrMrrrr-)rPrAr8s r"test_deriv_zero_warningz"TestNewton.test_deriv_zero_warningsV  ^U\\4e%P ]]z+TestNewton.test_gh17570_defaults..fs;;q> !>a5Lr$rrrrr^rrT)r<r=rbrCrrr)rrrrEshaperor,r$)rPr>res_newton_defaultres_secant_default res_secants r"test_gh17570_defaultsz TestNewton.test_gh17570_defaultss  )8M(8a.24A!tFqI  ,112ADA!&&,,777,112ADA!&&,,777*//*AD9$$///#''??1%001 21 21#--%44q87((7&007&44Q6 7 87 87r$rUrRrcd}tj|fddd|}|jsJt|jdy)Nc.|dk(sJ|dk(sJ||z|z S)Nrrrrs r"r>z'TestNewton.test_args_gh19090..fs&6M66M6FQJ r$r)rrrr)rrrmrrE)rPrUr>ress r"test_args_gh19090zTestNewton.test_args_gh19090s? ""1BB6B}}}!$r$r^c d}tj|d|}|jsJtt |j d|j j tj tjk(sJy)Nc|dzdz S)Nrrrr s r"r>z)TestNewton.test_int_x0_gh19280..fsb519 r$r)r<rRg;f?) rrrmrabsrEdtyperfloat64)rPrRr>rJs r"test_int_x0_gh19280zTestNewton.test_int_x0_gh19280s^  ""16:}}}CHH w/xx~~"**!5555r$ctjtd5tjt dddddtjtd5tjt ddd dddtjtd 5tjt dd dddy#1swYxYw#1swYVxYw#1swYyxYw) Nz tol too smallrrưrzmaxiter must be greater than 0ri)rbrzx1 and x0 must be different)r=)rrrrMrr#rs r"test_newton_special_parametersz)TestNewton.test_newton_special_parameterss]]:_ = + LLQE * +]]:-M N 7 LLQD# 6 7]]:-J L & LLQ1 % & &  + + 7 7 & &s#CCCC CC$N)rrrrrrrrrrrrrrrr thread_unsaferr'r4r:r?rGrrJrKrQrTrr$r"rrsEE 05 55L%'N"&5 C [[ / /@*"TH [[++( 8D [[X80D'EF%G% [[X(';< 6= 6 &r$rc dfd}tjtjg}tx}}|D],}||dd||}t |||d|j .y)Nr<c|z Sr-rr!rEs r"r>ztest_gh_5555..f 4xr$חcArfzmethod )rgrderr_msg)rMrrTOLrr)r>methodsrcrdrRrJrEs @r" test_gh_5555r_sk D||U\\*GD4=Qc48c4")&//): ; ==r$cd}d}dtz}tjtjg}|D]}||dd||}t d||| y) Nc|dkry|dz S)Nrg333333?rr s r"r>ztest_gh_5557..f(s s7s7Nr$gRQ?rrrrfrbr) _FLOAT_EPSrMrbrenthr)r>rgrdr^rRrJs r" test_gh_5557resX D z>D||U\\*G8Q14d3St$78r$cd}d}||fD]Y\}}}tj|tjtjfD]}|fd||}t ||[y)N)g |gugy)gu@g |@gy@c4tj|z Sr-r)r!r~s r"rz9test_brent_underflow_in_root_bracketing..As266!9Q;r$)rrrMrdrr)underflow_scenariooverflow_scenarior?r@rErRrJr~s @r"'test_brent_underflow_in_root_bracketingrj6sn 2-)+<=' 1d FF4L||U\\2 'F.15C D# & ''r$cFeZdZejdddddZdZdZy ) TestRootResultsr,.rr)rEr,r$flagrRcFd}tt|j|y)Nz converged: True flag: converged function_calls: 46 iterations: 44 root: 1.0 method: newton)rreprrZ)rP expected_reprs r" test_reprzTestRootResults.test_reprIsI  T$&&\=1r$c<t|jtsJyr-) isinstancerZrrs r" test_typezTestRootResults.test_typeOs$&&.111r$N)rrrrMrNrZrsrvrr$r"rlrlEs)sr"1!) +A2 2r$rlcd}d}d}tdd}d}tj|||||d}t||g|d d |gd z}d}tj|||||d}t||g|d d y ) z&Test Halley's works with complex rootsc6|d|dzz|d|zz|dzS)Nrrrrrs r"r>ztest_complex_halley..fUs*tad{QqTAX%!,,r$c$d|dz|z|dzS)Nrrrrrs r"rz test_complex_halley..f_1Xs1Q4x!|ad""r$cXd|dz} t|}|g|zS#t$r|cYSwxYw)Nrr)rj TypeError)r!r?retvalsizes r"rz test_complex_halley..f_2[sAQqT #q6D8d? " M s  ))rr*)r*g@rr)rFr`rarbrrrN)rrMrr)r>rrr coeffsr s r"test_complex_halleyrSs-## SA F QsCTJAAaM&M140 bA F QsCTJAAaM&M140r$ctjtjdz}d|z d|zz }t 5}|j t dtjd|gdz}dddtd gdzd }t 5}|j t d tjd |d }dddt|dtjtd 5tjd|d}dddd}t 5}|j t d tjd|d }dddt|dtjtd 5tjd|d}dddy#1swY5xYw#1swYxYw#1swYxYw#1swYxxYw#1swYyxYw)zBTest secant method with a non-zero dp, but an infinite newton stepgQ?gi@r*zRMS ofc|dz dzS)NgY@rrrs r"rz%test_zero_der_nz_dp..}sAI>r$rr<Ndg.ЗK.? Tolerance ofc|dz dzSNrrrrs r"rz%test_zero_der_nz_dp..AG>r$F)r<rDrrc|dz dzSrrrs r"rz%test_zero_der_nz_dp..rr$Tg.ЗK.c|dzdzSrrrs r"rz%test_zero_der_nz_dp..rr$rGc|dzdzSrrrs r"rz%test_zero_der_nz_dp..rr$) rr rrr filterrrMrrrrr-)r.dxp0supr!s r"test_zero_der_nz_dpros %   $B "*r "B  A >8, LL1rdRi @AAurz" $B  F >>2 LL1bu EFAq |> :E LL1bt DE %B  F >>2 LL1bu EFAr |> :E LL1bt DEE#AA FFEEFFEEs;3F"0F/2F; 0G?G"F,/F8;GGGcd}dd}d}d}||z|z|z }fd}tjt5tj|gdd||gd }|j j rJ d d d tjt5tj|d gdzd||gd }d d d y #1swYLxYw#1swYy xYw) z(Test that array newton fails as expectedr<ga2U0*#?g@g\mJA?gCl@c dtj|z dtjdz |z d|z tj|z zzzS)Nrrg @gGz@)rrlog10)darcy_frictionredia roughnesss r" colebrook_eqnz1test_array_newton_failures..colebrook_eqns[BGGN++BHHY_s2!BY)@@ABBB Cr$){Gz?g?g vÖ?g333333?rT)r<rrFrCNr) rrrrMrrmrrr-)diameterrhomuureynolds_numberrrrs @r"test_array_newton_failuresrs HI C B AAg(2-OC n %* 7!8,$ ##'')))) * | $  tfqj!!8,$   **  s;B<!C<CCcfd}tj|d}t|dtjtjtj|dgdz}t|dtjtjd}d}tj|d|}t|dtjtjtj|d|| }t|dtjtjtj|dgdz|}t|dtjtjtj|dgdz|| }t|dtjtjtj|d |}t|dtjtjtj|d gdz|}t|dtjtjy ) z@Test that Newton or Halley don't warn if zero derivative at rootc|dz|dzz SNrrrr s r"f_zeroder_rootz9test_gh8904_zeroder_at_root_fails..f_zeroder_roots!tad{r$rrrrcd|dzzd|zz Srrr s r"fderz/test_gh8904_zeroder_at_root_fails..fders1a4x!a%r$cd|zdz S)Nr)rrr s r"fder2z0test_gh8904_zeroder_at_root_fails..fder2sQwr$)r<r`)r<r`rarN)rMrr_xtol_rtol)rrZrrs r"!test_gh8904_zeroder_at_root_failsrsu  ^*AAqu{{= ^B/AAqu{{=   ^$7AAqu{{= ^$" $AAqu{{= ^BtAAqu{{=r$cdfd}fd}fd}d}t|||d\}}|jsJt||||d\}}|jsJy ) zzTest that Halley's method realizes that the 2nd order adjustment is too big and drops off to the 1st order adjustment.r+cBt|dz tdz z Srr r!ns r"r>ztest_gh_8881..fs"QAq#a%00r$c.t|dz z z Srrrs r"fpztest_gh_8881..fpsQQ "1$$r$cLt|ddzz z dz zdz zz Srrrs r"fppztest_gh_8881..fpps3QQqS! $A.#a%8::r$r<T)r`rCr`rarCN)rrm)r>rrr<rtrZrs @r" test_gh_8881rsf A1%; B 1b 6EB ;;; 1bSd CEB ;;;r$cd}d}d}tjdgtj}t||||d\}}|jsJtjddgtj}t j t5tj||||d}d d d d }tj||||d}|jjsJy #1swYCxYw) z_ Test that shape is preserved for array inputs even if fprime or fprime2 is scalar c |dzSr&rr s r"r>z,test_gh_9608_preserve_array_shape..fs !t r$c d|zSr&rr s r"rz-test_gh_9608_preserve_array_shape..fp 1u r$cyr&rr s r"rz.test_gh_9608_preserve_array_shape..fppsr$rrOTrNcttjtj|dtjS)Nrr)rrrCfloat32r s r" fpp_arrayz4test_gh_9608_preserve_array_shape..fpp_arrays!wwrxx{ARZZ88r$) rrrrrmrr IndexErrorrMr) r>rrr<rrZx0_arrayrrs r"!test_gh_9608_preserve_array_shapers  2$bjj )B 1bSd CEB ;;;xxR 3H z "  xCT  9\\ 8B tF      !! !  s C..C7z maximum_iterations,flag_expectedrrc  tjdddddd|dd }|d j|k(sJ|tjk(r|d j|k(sJy |tj k(r|d j|ksJy y ) z] Test that if the maximum iterations is exceeded that the flag is not converged. c*d|zdz |zdz|zdz S)Ng333333?gffffff@g333333 @g@rr s r"rz6test_gh9254_flag_if_maxiter_exceeded..(s!CECK?S(!+c1r$irrTFrBrN)rMrroCONVERRr, CONVERGED)maximum_iterations flag_expectedrs r"$test_gh9254_flag_if_maxiter_exceededrs\\1 RT4!3u&F !9>>] ** * %ay##'9999 %// )ay##&8888 *r$cRd}d}tttj|d|dt j t d5tj|d|dddtj|td d |}t|td dy#1swYAxYw) zBTest that if disp is true then zero derivative raises RuntimeErrorc||zdzSNrrr s r"r>z/test_gh9551_raise_error_if_disp_true..f8rr$c d|zSr&rr s r"f_pz1test_gh9551_raise_error_if_disp_true..f_p;s s r$rFr9zY^Derivative was zero\. Failed to converge after \d+ iterations, value is [+-]?\d*\.\d+\.$rNg$@r) rrrMrrrr-rr)r>rrEs r"$test_gh9551_raise_error_if_disp_truer4sq#sG  / 0"  QS! " <<74. 4DD'#s+, ""s BB& solver_name)rrdrrrcd}tt|}tjtd5||dddddy#1swYyxYw)Nc"tjSr-)rr r s r"r>ztest_gh3089_8394..fMs vv r$zThe function value at x...rrr)getattrrMrrr)rr>solvers r"test_gh3089_8394rHsD UK (F z)E Fq!Qs AA rRcfdd_td|}|jdusJ|jj dsJ|j jk(sJt |j|jvsJy)NcNxjdz c_tjSr)_countrr r!r>s r"r>ztest_gh18171..f[s A vv r$r)rr)rrRFzThe function value at x)rrrmro startswithr$strrE)rRrJr>s @r" test_gh18171rUs| AH a 7C ==E !! ! 88  8 99 9    )) ) sxx=CHH $$ $r$ rs_interfaceTFc|rdntt|}fdd_|ddd}|r|jjk(sJy|djjk(sJy)Nc t|||fSN)rrr>r?r@rUs r"rz%test_function_calls..mQA)Gr$c>xjdz c_|dzdz S)Nrr)callsrs r"r>ztest_function_calls..fps 1 !taxr$rrTrr)rrMrr$)rrrrJr>s @r"test_function_callsrgsrH#*5+#> AG Art ,C!!QWW,,,1v$$///r$cd}tjtd5t|ddd}dddjrJ|j d k(sJtjtd5t |ddd d d }ddd|jrJ|j d k(sJy#1swYxYw#1swY5xYw)zDTest that zero slope with secant method results in a converged=Falsec@|tj| |zzdz S)NgQ?rr s r"lhsz*test_gh_14486_converged_false..lhss 2661"Q$<$&&r$rrr^g333333ÿr)rRr<r=Nzconvergence errorFT)r<r=rDrCr)rrrrrmror)rrJs r"test_gh_14486_converged_falser}s' nN ;B#h5SAB}}  88* ** * nN ;MSUsDI!LM}}  88* ** *BB MMsB-1B9-B69Cc|rdntt|}d}tjtd5||dddddd||dd d}|r|n|d }|j sJt |jd d ||dtdd}|r|n|d }|j sJt |jd d y#1swYxYw)Nc t|||fSrrrs r"rztest_gh5584..rr$c d|zS)NgN~hrr s r"r>ztest_gh5584..fs axr$z...must have different signsrggٿTrg?rrr#rz-0.0) rrMrrrrmrrEr)rrrr>rJs r" test_gh5584rsH#*5+#>  z)G H0q$$/0 D#4 0C#3q6C ===CHHad+ D%-T :C#3q6C ===CHHad+00s C  Cc d}d}tjtj}t j |dd|d|z}||}t j |dd|d|z}||}||ksJd|d z d d |d d }t jt| 5t j |dd||d z dddy#1swYyxYw)Nc|dzd|zz dz S)Nrrrrr s r"r>ztest_gh13407..fs!taczA~r$gYng|=g _Brrfrzrtol too small \(rgz < z\)r) rr rrrMrrrr)r>rcrr=r#x4f4rs r" test_gh13407rs  D ((5/  C q%Dqu =B 2B q%Dqu =B 2B 7N7#3q5)3s1gR8G z 1= a4c!e<===s #C  Ccd}t|d}t|ddt|ddd}t|jddy) Nc |dz Srr)r s r"r>z&test_newton_complex_gh10103..frr$y??rg-q=ry@?r^)r<r=rR)rrrrE)r>rJs r"test_newton_complex_gh10103rs> D/CC' aDVH =CCHHae,r$cd}tjt|5|tddddddy#1swYyxYw)Nz2'float' object cannot be interpreted as an integerrrrgR@r)rrr{r#)rRrs r"test_maxiter_int_check_gh10236rs;CG y 0,r3U+,,,s 8Ac jdd}dtjtjzdz }fd}t j t d5||dd |d t dddt j t d 5||dd |d | dddy#1swYz(test_bisect_special_parameter..frYr$zxtol too smallrrZr[rS)rFrcrdzrtol too smallr)rr rrrrrr])rRrFrtolbadr>rEs @r"test_bisect_special_parameterrs D &D"((5/%%%)G z)9 := asE<= z)9 :@ asDw?@@==@@sBB)B&)B2)Tr functoolsr numpy.testingrrrrrr numpyrr r r r rrrrscipyrscipy.optimizerrMrrrscipy._lib._utilrrhscipy.optimize._tstutilsrrrrrr]rcrrrrdrrgradient_methods all_methodsr#r'r+r.r1r4r6r8r:rrr_rerjrlrrrUrrrrrrrrrrrrrrrrrrrrr$r"r sO .. AAA,,GP 5\   <<u||U\\=="LL> 00 #      ^M^MBA@.A@Hd&&d&N =80 ' 2 218EE@  D,>`4"D&%--3013939$--&LNNLN %N % LN$708N0& + + LN$7,8N,4=. -;/,0,ELL%,,$)LL%,,$@A @A @r$