L i͜ddlZddlZddlZddlZddlmZddlmZm Z ddl Z ddl m Z m Z ddlmZmZmZmZmZmZmZmZddlmZddlmZGdd Zd ZGd d eZed d gddgZeddgddgZeddgddgZ GddeZ!e!dgdgdejDdgdgdgdgdgdgdgdgdgdgg ejDgd Z#e!d!gdgdgejDdggejDdg Z$Gd"d#eZ%e%d$d%gd&d'gd()Z&Gd*d+eZ'e'd,gd-zgd.d/)Z(Gd0d1eZ)e)d2d2gd3gd4d5g6Z*Gd7d8eZ+d9Z,e-e.d:gd9zd;gd9zZ/e+e/deZ1e1d?gd@zdAejdd@dBz 6Z3GdCdDeZ4e4d,d,gdEgdFdFg6Z5GdGdHeZ6e6d$dIgdd6Z7e jpjsdJ d[dKZ:GdLdMZ;GdNdOZ<GdPdQZ=GdRdSZ>GdTdUZ?dVZ@e jpjdWdXZBdYZCdZZDy)\N)Pool)assert_allcloseIS_PYPY)raiseswarns)shgoBoundsminimize_scalarminimizerosen rosen_der rosen_hessNonlinearConstraint)new_constraint_to_old)SHGOceZdZ ddZy)StructTestFunctionNcJ||_||_||_||_||_yNbounds expected_x expected_fun expected_xl expected_funl)selfrrrrrs e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/optimize/tests/test__shgo.py__init__zStructTestFunction.__init__s( $(&*)NNN)__name__ __module__ __qualname__rrrrrs 8<15+rrcg}|Dt|ttzs|f}n |D]}|jd|dt|}|Sd}|S)Nineqtypefun) isinstancetuplelistappend)gconss rwrap_constraintsr/sg D}!UT\*A  $A KK !# $ $T{ K Krc(eZdZdZdZeeZy) StructTest1c$|ddz|ddzzSNrr#rxs rfz StructTest1.f+tqy1Q419$$rc8tj|ddz S)Nraxisg@npsumr7s rr-z StructTest1.g.s"S())rNr r!r"r8r-r/r.r#rrr1r1*s%* A Drr1))rrrr5NNc,eZdZdZdZdZeeZy) StructTest2zN Scalar function with several minima to test all minimiser retrievals c8|dz tj|zS)N)r>sinr6s rr8z StructTest2.fAsB"&&)##rc6dtj|dz S)N:rr;r=r@s rr-z StructTest2.gDsBFF11%%%rNr r!r"__doc__r8r-r/r.r#rrrGrG<s$& A DrrG)r<g⡽4$?0_rE@gqŤCQ4@g8$B@go.n:@g^5 >@) rPgs8g^V&+6g+?-2g+!/gN|1(gc=C#g^\gN g自ݿr)rg@cVeZdZdZdZdZdZdZeede jZ e fZ y) StructTest3a Hock and Schittkowski 18 problem (HS18). Hoch and Schittkowski (1981) http://www.ai7.uni-bayreuth.de/test_problem_coll.pdf Minimize: f = 0.01 * (x_1)**2 + (x_2)**2 Subject to: x_1 * x_2 - 25.0 >= 0, (x_1)**2 + (x_2)**2 - 25.0 >= 0, 2 <= x_1 <= 50, 0 <= x_2 <= 50. Approx. Answer: f([(250)**0.5 , (2.5)**0.5]) = 5.0 c*d|ddzz|ddzzS)Ng{Gz?rr4r5r#r6s rr8z StructTest3.f{s"qtk!QqTaK//rc|d|dzdz S)Nrr59@r#r@s rg1zStructTest3.g1~stad{T!!rc*|ddz|ddzzdz S)Nrr4r5rUr#r@s rg2zStructTest3.g2s"tqy1Q419$t++rcF|d|dzdz |ddz|ddzzdz fS)Nrr5rUr4r#r@s rr-z StructTest3.gs8tad{T!1Q419qtqy#84#???rrN) r r!r"rNr8rVrXr-rr>inf_StructTest3__nlcr.r#rrrRrRis7"0", @ 1bff -E 8DrrR)r42)rr\g'In/@gS[:XL?@)rrrcJeZdZdZdZdZdZdZdZeeeefZ e e Z y) StructTest4z Hock and Schittkowski 11 problem (HS11). Hoch and Schittkowski (1981) NOTE: Did not find in original reference to HS collection, refer to Henderson (2015) problem 7 instead. 02.03.2016 c|ddz dzd|ddz dzzz|ddzzd|dd z dzzzd|dd zzzd |ddzzz|d dzzd|dz|d zz d|dzz d |d zz S) Nr r4r5  rCr#r6s rr8z StructTest4.fs1q 1!r a'7#77!A$!)CqtbyQ&&')+adai8:;adai-HJKKKad(QqT/"%'1I.12AaD9 rcnd|ddzzd|ddzzz|dzd|ddzzzd|dzzdz S)Nr4rrer5rdrbr#r@s rrVzStructTest4.g1s^QqTQYQqTQY.15AaDAI Eqt8!"# #rc\d|dzd|dzzd|ddzzz|dz|dz dz S) Nrgrrer5rar4rdgq@r#r@s rrXzStructTest4.g2sHQqTA!H$rAaDAI~5!rJsqrtabsr6s rr8z StructTest5.fs~dTkN266"''#ad3h!A$+.F*G"HI Id266"''#adadTk&:";<== > rNrAr#rrrtrts A A Drrt)iig g@gyCy@)rrrc*eZdZdZdZdZeeZy) StructTestLJzZ LennardJones objective function. Used to test symmetry constraints settings. ctd||d|_t|jdz }d}t|dz D]z}t|dz|D]f}d|z}d|z}||||z } ||dz||dzz } ||dz||dzz } | | z| | zz| | zz} | | z| z} | dkDsY|d| z dz | z z }h||S) Nzx = rrer5r4?rw)printNintrange)rr7argsksijabxdydzdeduds rr8zStructTestLJ.fs QCja  O q1u /A1q5!_ /EEqTAaD[q1uX!a%(q1uX!a%("WrBw&b0"Wr\8#(S.B..A / /rNrMr#rrr|r|s ( A A Drr|rCg@c&eZdZdZdZeeZy) StructTestSc`|ddz dz|ddz dzz|ddz dzz|ddz dzzS)Nr?r4r5rer#r6s rr8z StructTestS.fsS1!QqTCZA$55Q4#:!#$'(tcza&78 9rNrAr#rrrrs9 A A Drr)rrwrdr~rc&eZdZdZdZeeZy)StructTestTablec&|ddk(r |ddk(ryy)Nr@r5r\dr#r6s rr8zStructTestTable.f s Q43;1Q43;rNrAr#rrrr s A A Drrr\rcJeZdZdZdZdZdZdZdZeeeefZ e e Z y)StructTestInfeasiblez0 Test function with no feasible domain. c$|ddz|ddzzSr3r#)rr7rs rr8zStructTestInfeasible.fr9rc|d|dzdz SNrr5r#r@s rrVzStructTestInfeasible.g1!stad{Qrc |d|dzdz Srr#r@s rrXzStructTestInfeasible.g2$s1!q!!rc |d |dzdz Srr#r@s rrozStructTestInfeasible.g3's!uqt|arc"|d |dzdz Srr#r@s rrqzStructTestInfeasible.g4*sA$1!""rNrrr#rrrrs:%" # RRA A Drr)rBr5 Not a testc t|j|j||j|||||||  } t d| t j d| |j7tjj| j|j|||j6tjj| j|j||j6tjj| j|j||j 6tjj| j"|j |y)N) r constraintsniterscallbackminimizer_kwargsoptionssampling_methodworkerszres = rtolatolr)rr8rr.rlogginginforr>testingrr7rr(rxlrfunl) testr test_atolrrrrrrrress rrun_testr7s3 tvvt{{499%( 0'. AC  F3%. LL6#  " ""355$//(1(1 # 3  $ ""377#'#4#4(1 # 3 # ""366#'#3#3(1 # 3 % ""388#'#5#5(1 # 3 rcxeZdZdZdZdZdZdZdZdZ e jjdZ d Zd Zy ) TestShgoSobolTestFunctionsz8 Global optimisation tests with Sobol sampling: c"tty)VMultivariate test function 1: x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]Nrtest1_1rs rtest_f1_1_sobolz*TestShgoSobolTestFunctions.test_f1_1_sobol`  rc"tty)zUMultivariate test function 1: x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]Nrtest1_2rs rtest_f1_2_sobolz*TestShgoSobolTestFunctions.test_f1_2_sobolerrc.ddi}tt|y)z_Multivariate test function 1: x[0]**2 + x[1]**2 with bounds=[(None, None),(None, None)]dispT)rNrtest1_3rrs rtest_f1_3_sobolz*TestShgoSobolTestFunctions.test_f1_3_soboljs4.'*rc"tty)RUnivariate test function on f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]Nrtest2_1rs rtest_f2_1_sobolz*TestShgoSobolTestFunctions.test_f2_1_sobolprrc"tty)NUnivariate test function on f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]Nrtest2_2rs rtest_f2_2_sobolz*TestShgoSobolTestFunctions.test_f2_2_sobolurrc"tty)%NLP: Hock and Schittkowski problem 18Nrtest3_1rs r test_f3_sobolz(TestShgoSobolTestFunctions.test_f3_sobolzs rc0ddi}ttd|y)?NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)infty_constraintsFirrNrtest4_1rs r test_f4_sobolz(TestShgoSobolTestFunctions.test_f4_sobol~s'.GW5rc&ttdy)NLP: Eggholder, multimodalrO)rNrtest5_1rs rtest_f5_1_sobolz*TestShgoSobolTestFunctions.test_f5_1_sobols Brc(ttddy)rrOrb)rrNrrs rtest_f5_2_sobolz*TestShgoSobolTestFunctions.test_f5_2_sobols Ba(rN)r r!r"rNrrrrrrpytestmarkslowrrrr#rrrrZsM   +    [[66  )rrcDeZdZdZdZdZdZdZdZdZ e jjdZ d Zd Zd Ze jj#d d Ze jj'ddZe jj'ddZy)TestShgoSimplicialTestFunctionsz= Global optimisation tests with Simplicial sampling: c(ttddy)rr5 simplicialrrNrrs rtest_f1_1_simplicialz4TestShgoSimplicialTestFunctions.test_f1_1_simplicial A|mean)r7avgs rzFTestShgoSimplicialTestFunctions.test_f0_min_variance..srwwqzC/?rr&rCrDrrrV瞯varsuccessrr(r7)rr.rrs @rtest_f0_min_variancez4TestShgoSimplicialTestFunctions.test_f0_min_variancesY%?@266!vh,DA{{{/s#rcd}dg}t||}t||d}|jsJt|j|jt|j |j dy)zRReturn a minimum on a perfectly symmetric 1D problem, based on gh10538c||dz z|dz zS)Nrrr#r@s rr(zDTestShgoSimplicialTestFunctions.test_f0_min_variance_1D..funsC=AG, ,rrD)rrư>)rN)rr rrr(r7)rr(rrrefs rtest_f0_min_variance_1Dz7TestShgoSimplicialTestFunctions.test_f0_min_variance_1Ds^  -3v&c&)4{{{)suu40rN)r r!r"rNrrrrrrrrrrr rr fail_slowrskiprr$r#rrrrs= = = /= = [[==/// [[2// [[l# $$ $ [[l# 1$ 1rrcZeZdZdZdZdZdZdZdZdZ e jjdZ e jjd Zd Zd Zd Zd ZdZdZdZdZdZdZe jj3exrej8dk(ddZdZe jj?ddZ dZ!dZ"dZ#dZ$dZ%d Z&e jjOd!d"Z(d#Z)d$Z*e jjWd%gd&d'Z,d(Z-d)Z.y*)+TestShgoArgumentsc*ttdddy)z>Iterative simplicial sampling on TestFunction 1 (multivariate)Nr4rrrrrrs rtest_1_1_simpl_iterz%TestShgoArguments.test_1_1_simpl_itersD<Hrc4ddi}ttdd|dy)z3Iterative simplicial on TestFunction 2 (univariate)rFN rrrrs rtest_1_2_simpl_iterz%TestShgoArguments.test_1_2_simpl_iters(%0D7!- /rc*ttdddy)z9Iterative Sobol sampling on TestFunction 1 (multivariate)Nr5sobolr*rrs rtest_2_1_sobol_iterz%TestShgoArguments.test_2_1_sobol_iter sD7Crcdttjtjtjddd}t j j|jtjddt j j|jtjdy)z7Iterative Sobol sampling on TestFunction 2 (univariate)Nr5r0)rrrrh㈵>rr) rrr8rr.r>rrr7rr(rrrs rtest_2_2_sobol_iterz%TestShgoArguments.test_2_2_sobol_iterso799gnn',,G= ""355'*<*<4d"S ""377G,@,@t"Lrc d}ttfD]P}t|j|jdd|ddit|j|jdd|ddiRy) zKIterative sampling on TestFunction 1 and 2 (multi and univariate) ctdyNz Local minimization callback testrr@s r callback_funczATestShgoArguments.test_3_1_disp_simplicial..callback_func 4 5rr5rrTrrrrrrrrNrrrr8rrr:rs rtest_3_1_disp_simplicialz*TestShgoArguments.test_3_1_disp_simplicialsf 6g& AD A!-'&$ A <'&$ A  Arc d}ttfD]P}t|j|jdd|ddit|j|jdd|ddiRy ) zAIterative sampling on TestFunction 1 and 2 (multi and univariate)ctdyr8r9r@s rr:z.callback_func)r;rr5r0rTr<rr=Nr>r?s rtest_3_2_disp_sobolz%TestShgoArguments.test_3_2_disp_sobol&se 6g& AD Aw'&$ A <'&$ A  Arctddgd}tddg}t|j|jt|j|jy)zMUsing `args` used to cause `shgo` to fail; see #14589, #15986, #16506c||z|zSrr#)r7yzs rrz5TestShgoArguments.test_args_gh14589..6sA r)rre)r5r4)funcrrcd|zdzS)Nr4r5r#r@s rrz5TestShgoArguments.test_args_gh14589..8s!a%!)r)rHrN)rrr(r7)rrr#s rtest_args_gh14589z#TestShgoArguments.test_args_gh145893sJ16(+VH=)suu%rcTtjddd}ttdd|dy)z,Test known function minima stopping criteriar"T)f_minf_tolrNr3rrrrrrrrrs rtest_4_1_known_f_minz&TestShgoArguments.test_4_1_known_f_min<s/$00 *.0 DD'!- /rcVtjdddd}ttdd|dy) z+Test Global mode limiting local evaluationsr"Tr5)rLrMr local_iterNr3rrNrOrs rtest_4_2_known_f_minz&TestShgoArguments.test_4_2_known_f_minGs2))#'  DD'!- /rc tjddddd}ttjtjtj dd|d}t jj|jtjd d y) z8Test Global mode limiting local evaluations for 1D funcsr"Tr5FrLrMrrRrNr0rrrrrr3r) rrrr8rr.r>rrr7rrrrs rtest_4_4_known_f_minz&TestShgoArguments.test_4_4_known_f_minTso))#'!& (799gnn',,w#*, ""355'*<*<4d"Srcttjtjtj}t j j|jtjddy)z;Test Default simplicial sampling settings on TestFunction 1rr3rN rrr8rr.r>rrr7rr4s rtest_5_1_simplicial_arglessz-TestShgoArguments.test_5_1_simplicial_arglesscsA799gnn',,G ""355'*<*<4d"Srcttjtjtjd}t j j|jtjddy)z6Test Default sobol sampling settings on TestFunction 1r0rrr3rNr[r4s rtest_5_2_sobol_arglessz(TestShgoArguments.test_5_2_sobol_arglesshsF799gnn',,#*, ""355'*<*<4d"Srcjddi}ttjtjtj|d}t j j|jtjddt j j|jtjdy) :Test that maximum iteration option works on TestFunction 3max_iterr4rrrrr3rrN rrr8rr.r>rrr7rr(rrWs rtest_6_1_simplicial_max_iterz.TestShgoArguments.test_6_1_simplicial_max_iternuq/799gnn',,"LB ""355'*<*<4d"S ""377G,@,@t"Lrcjddi}ttjtjtj|d}t j j|jtjddt j j|jtjdy) ramin_iterr4rrcr3rrNrdrWs rtest_6_2_simplicial_min_iterz.TestShgoArguments.test_6_2_simplicial_min_itervrfrc`dD])}|tjd}ttdd|d+y)z@Test the minimizer_kwargs arguments for solvers with constraints)COBYLACOBYQASLSQP)methodrrMbP?r0rrrrN)rr.r)rsolverrs rtest_7_1_minkwargsz$TestShgoArguments.test_7_1_minkwargs~s;4 .F+1/6|| =  Wt&6%, .  .rcddi}ddi}ttjtjtjd||y)z'Test the minimizer_kwargs default initsftolr3rTr)rrrNrrr8rr.)rrrs rtest_7_2_minkwargsz$TestShgoArguments.test_7_2_minkwargss9"D>4. WYYGLLO. ArcdD]O}d}d}|||d}tjd|tjdttdd|d Qy ) z?Test minimizer_kwargs arguments for solvers without constraints) z Nelder-MeadPowellCGBFGS Newton-CGzL-BFGS-BTNCdoglegz trust-ncgz trust-exactz trust-krylovc\tjd|dzd|dzgjS)Nr4rr5)r>arrayTr@s rjacz1TestShgoArguments.test_7_3_minkwargs..jacs,xxQqT1qt8 45777rc8tjddgddggSNr4r)r>rr@s rhessz2TestShgoArguments.test_7_3_minkwargs..hesssxx!Q!Q 011r)rnrrz Solver = zd====================================================================================================rror0rpN)rrrr)rrqrrrs rtest_7_3_minkwargsz$TestShgoArguments.test_7_3_minkwargsse' .F 8 2+1'*(, .  LL9VH- . LL # Wt&6%, . .rc6ddd}ttdd|dy)Nr5T)minhgrdrrrrrs rtest_8_homology_group_diffz,TestShgoArguments.test_8_homology_group_diffs$*.0 Dg!- /rczttjtjtjdy)'Test single function constraint passingrrZNrurs r test_9_cons_gzTestShgoArguments.test_9_cons_gs WYYGLLODrwin32z2Failing and fix in PyPy not planned (see gh-18632))reasoncnddi}d}t|tjd|}|jdk(sJy)rmaxtimerc.tjdy)Ng+=r~)timesleepr@s rr8z0TestShgoArguments.test_10_finite_time..fs JJu rrb)rrr5N)rrrnit)rrr8rs rtest_10_finite_timez%TestShgoArguments.test_10_finite_times9e$ 1gnnAw?ww!||rcddd}ttjtjdd|d}tj j d|jdtj j d|jd y) *Test to cover the case where f_lowest == 0r~T)rLrraNr0rrr5)rrr8rr>r assert_equalr7rWs rtest_11_f_min_0z!TestShgoArguments.test_11_f_min_0sf!799gnn$"G= 3558, 3558,rz no way of currently testing thiscddd}ttjtjdd|d}tj j d|jy)rrr~)rrLr5Nr0r)rrr8rr>rrr(rWs rtest_12_sobol_inf_consz(TestShgoArguments.test_12_sobol_inf_conssH $!799gnn"G= SWW-rcVd}dgdz}t||d}|jddy) z-Test init of high-dimensional sobol sequencescyNrr#r@s rr8z/TestShgoArguments.test_13_high_sobol..frrE)r0rr4r\N)rsampling_function)rr8rSHGOcs rtest_13_high_sobolz$TestShgoArguments.test_13_high_sobols4 !B&Q8 2&rc0ddi}ttd|y)z6Test limited local iterations for a pseudo-global moderRrdrOrNrrs rtest_14_local_iterz$TestShgoArguments.test_14_local_iters#B0rc4ddi}ttdd|dy)z9Test minimize every iter options and cover function cacherTr5rgr0rNrrs rtest_15_min_every_iterz(TestShgoArguments.test_15_min_every_iters($/AQ!( *rc:ddi}ddi}ttd||y)z:Test disp=True with minimizers that do not support bounds rTrnz nelder-meadr)rrrNr)rcapsysrrs rtest_16_disp_bounds_minimizerz/TestShgoArguments.test_16_disp_bounds_minimizers)4.$m4, 3C Erc.d}ttd|y)=Test the functionality to add custom sampling methods to shgocFtjj||fS)N)size)r>randomuniform)rds rsamplez9TestShgoArguments.test_17_custom_sampling..samples99$$1a&$1 1rrIrNr)rrs rtest_17_custom_samplingz)TestShgoArguments.test_17_custom_samplings 2 B7rcd}gd}gd}tt||}t||}t||}t||}|j|jk(sJ|j |j k(sJ|j |j k(sJtjgd}tjj|j|tjj|j|jy)NcHtj|jSr)r>squarer?r@s rr8z1TestShgoArguments.test_18_bounds_class..fs99Q<##% %r)grg)rrr])rrr~) r+zipr rnfevmessagerr>rrrr7) rr8lbub bounds_old bounds_newres_old_boundsres_new_boundsx_opts rtest_18_bounds_classz&TestShgoArguments.test_18_bounds_classs & #b"+& B^ a,a,""n&9&9999%%)?)????%%)?)????' "">#3#3U; "">#3#3^5E5EFrracLtd5}ttd|jdddttdttd5}ttd|jdddttdty#1swYfxYw#1swY,xYw)rr4rI)rrN)rrrmapr)rps rtest_19_parallelizationz)TestShgoArguments.test_19_parallelization sx!W 3 WAEE 2 3B, !W 2 Vr155 1 22s+  3 3 2 2sBBBB#cd}d}dgdz}d}d}d}d|d d d|d d |d f}t||d d|t||d d|dy)z0Test that constraints can be passed to argumentsc |ddz tjtjt|ddz |ddzzz|dtjtjt|d|ddzz zz Srvrxr@s r eggholderz=TestShgoArguments.test_20_constrained_args..eggholdersA$+rvvbggc!A$*!t 2L.M&NOOA$rvvbggc!A$!A$+*>&?@AAB rcHd|dzd|dzzd|dzzd|dzzS) Nǧ8@rg:@r5'r4g@D@rer#r@s rr8z5TestShgoArguments.test_20_constrained_args..f!s71Q4<%!A$,.ad:UQqT\I IrrrrdcZ|dz|dz|dz|dzzd|dzzd|dzzd z S) Ngffffff@rgffffff@r5g333333&@r4g?rerbr#)r7rs r g1_modifiedz?TestShgoArguments.test_20_constrained_args..g1_modified&sTs7QqT>AGadN2TAaD[@3JD rcd|dzd|dzzd|dzzd|dzzd z d tjd |ddzzd |ddzzzd |ddzzzd|ddzzzzz S)Nrcrg'@r5gfffffD@r4g J@regRQ?gQ?gRQ?g4@gףp= ?)r>ryr@s rrXz6TestShgoArguments.test_20_constrained_args..g2*s1Q4$qt)#d1Q4i/$qt);b@1qL4!a</$qtQw,>adAgM rc6|d|dz|dz|dzdz SNrr5r4rer#r@s rh1z6TestShgoArguments.test_20_constrained_args..h12s+Q4!A$;1%!,q0 0rr%)r)r'r(rr&rrr5)rrrr0)rrrrN)r)rrr8rrrXrr.s rtest_20_constrained_argsz*TestShgoArguments.test_20_constrained_argsst   J!   1 TB+b)+ Q#QD9 Q#QD$ &rc d}t|ddgddggddddd d  d }ddgddgddgddgd dgg}t||ddd d }t|gd|d }|jsJt|j|jt|j |j dt||dddidd i}|jsJt|j|jt|j |j dy)z|Test that shgo can handle objective functions that return the gradient alongside the objective value. Fixes gh-13547c^tjtj|dd|zfSNr4)r>r?powerr@s rrHz2TestShgoArguments.test_21_1_jac_true..funcBs$66"((1a.)1q50 0rrBr5r4rrbr0rmT)rnr)rrrrrc<tj|dzd|zfSrr=r@s rrHz2TestShgoArguments.test_21_1_jac_true..funcNs66!q&>1q5( (rrre)rrr)r5r5r5r5r5)x0rrrrrnr)rrrrN)rr rrr(r7)rrHrrr#s rtest_21_1_jac_truez$TestShgoArguments.test_21_1_jac_true>s 1 GaV$#(/=   )q'Aq6B7QFQF;4/6t$DFt!{{{)suu514%-w$7!4=*{{{)suu51r derivativerrhesspcrd}d}d}d}|||d}|||i}ddi}dg} t|| || } t|fd g| d ||} | jsJtjj | j | j tjj | j| jy ) zzshgo used to raise an error when passing `options` with 'jac' # see gh-12963. check that this is resolved c6d|dz|dzd|dzzdzS)Nrerr4rbr#r@s r objectivezATestShgoArguments.test_21_2_derivative_options..objectiveis*qt8ad?Q1X-1 1rcd|dzdzS)NrCrr4r#r@s rgradientz@TestShgoArguments.test_21_2_derivative_options..gradientlsqt8a< rcyNrCr#r@s rrz.hessorrc d|zSrr#)r7rs rrz=TestShgoArguments.test_21_2_derivative_options..hessprs q5Lrrrn trust-constr)irrrr)rrN)rr rr>rrr(r7) rrrrrrderivative_funcsrrrrr#s rtest_21_2_derivative_optionsz.TestShgoArguments.test_21_2_derivative_optionscs  2   $,TEJ/ ;<$n59f7G"$y"aS";K" "{{{ ""377CGG4 ""355#%%0rc@gd}ttd}ddi}tt|||}t tt j dfddi|}|jsJt|j|jt|j|jdy ) zsEnsure the Hessian gets passed correctly to the local minimizer routine. Previous report gh-14533. )rg?rrgffffff?rr)rrrnr{rrbrrN) r rrr r r>zerosrrr(r7)rrrrrr#s rtest_21_3_hess_options_rosenz.TestShgoArguments.test_21_3_hess_options_rosensD#Z8$k25&3C"$ubhhqk"+" "{{{)suu51rcd}ddd}dg}t||d|d}t|tjd |d| }|jsJt |j |j t |j|jy ) zwshgo used to raise an error when passing `args` with Sobol sampling # see gh-12114. check that this is resolvedc|d|zSrr#)r7rs rr(z6TestShgoArguments.test_21_arg_tuple_sobol..funsQ419 rr%c|ddz Srr#r@s rrz;TestShgoArguments.test_21_arg_tuple_sobol..s1rr&rra)r5r0)rrrr5)rrrN)rr r>rrrr(r7)rr(rrrr#s rtest_21_arg_tuple_sobolz)TestShgoArguments.test_21_arg_tuple_sobols} !'/AB 3T{#*,sBHHQKT#.0{{{)suu%rN)/r r!r"r+r.r1r5r@rCrJrrrrPrSrXr\r_rerirrrvrrrxfailrsysplatformrrr&rrrrrrrr%rrr parametrizerrrr#rrr(r(sI/ DM A A& [[// [[ / / TT T MM .A.(/E [[w:3<<7#:GI I - [[?@ .A . '1 * E8G( [[2,,$&L#2J [[\+CD1E1> 2&rr(ceZdZdZdZdZdZdZdZdZ dZ d Z e jjd Zd Zy ) TestShgoFailurescddi}ttjtjdd|d}tj j d|jtj j d|jy)z'Test failure on insufficient iterationsmaxiterr4Nr0rFrd) rrr8rr>rrrtnevrWs rtest_1_maxiterzTestShgoFailures.test_1_maxiters\a.799gnn"G= s{{3 388,rclttttjtj dy)z$Rejection of unknown sampling method not_SobolrN) assert_raises ValueErrorrrr8rrs rtest_2_samplingz TestShgoFailures.test_2_samplingsj$ 7>>&1 3rcddd}ttjtjd|d}tj j d|jtj j d|jy ) zoCheck that the routine stops when no minimiser is found after maximum specified function evaluationsraT)maxfevrrer0rrrFrcN) r test_tabler8rr>rrrrrWs rtest_3_1_no_min_pool_sobolz+TestShgoFailures.test_3_1_no_min_pool_sobolsb !:<<!2!2a#*, s{{3 CHH-rcddd}ttjtjd|d}tj j d|jy) zoCheck that the routine stops when no minimiser is found after maximum specified sampling evaluationsraTmaxevrrerrFN)rrr8rr>rrrrWs rtest_3_2_no_min_pool_simplicialz0TestShgoFailures.test_3_2_no_min_pool_simplicialsH!:<<!2!2a#/1 s{{3rcTddg}ttttj|y)zSpecified bounds ub > lb)rCrererbNrrrrr8rrs rtest_4_1_bound_errz#TestShgoFailures.test_4_1_bound_errs&!j$ 6:rcTddg}ttttj|y)z)Specified bounds are of the form (lb, ub))rerbrbr Nrrs rtest_4_2_bound_errz#TestShgoFailures.test_4_2_bound_errsV$j$ 6:rcddd}ttjtjtjd|d}t j jd|jy)zxEnsures the algorithm terminates on infeasible problems after maxev is exceeded. Use infty constraints optionrTr r0rrrrFN rtest_infeasibler8rr.r>rrrrWs rtest_5_1_1_infeasible_sobolz,TestShgoFailures.test_5_1_1_infeasible_sobolsW !?$$o&<&<.33sG#*, s{{3rcdddd}ttjtjtjd|d}t j jd|jy)zEnsures the algorithm terminates on infeasible problems after maxev is exceeded. Do not use infty constraints optionrTF)r rrr0rNrrWs rtest_5_1_2_infeasible_sobolz,TestShgoFailures.test_5_1_2_infeasible_sobolsZ (-/?$$o&<&<.33sG#*, s{{3rcddd}ttjtjtjd|d}t j jd|jy)z[Ensures the algorithm terminates on infeasible problems after maxev is exceeded.iFr rrrNrrWs rtest_5_2_infeasible_simplicialz/TestShgoFailures.test_5_2_infeasible_simplicialsW! "?$$o&<&<.33sG#/1 s{{3rctjdzddddd}tjtjf}tjdd|dd }t t tg|i|y) z>*!($%,  k41$1&1rcddlmm}gd}fdd_||}t |j |j jy)Nr)r rrr4r"r"r"r"c>xjdz c_|SNr5)r)r7r(r s rr(z"TestShgoFailures.test..funs HHMH8Or)scipy.optimizer rrrr7r()rrrresultr(r s @@rrzTestShgoFailures.test s=.9 c6" fhh CHH-rN)r r!r"rrrr rrrrrrr thread_unsaferrr#rrrrsR-3 .4; ; 4 4 4 [[22$ .rrceZdZdZdZy)TestShgoReturnscgd}fdd_t|}tjj j|jy)Nr!cDxjdz c_t|Sr$rr r7r(s rr(z3TestShgoReturns.test_1_nfev_simplicial..fun  HHMH8Orrrrr>rrrrr&r(s @rtest_1_nfev_simplicialz&TestShgoReturns.test_1_nfev_simplicials>9 c6" &++6rcgd}fdd_t|d}tjj j|jy)Nr!cDxjdz c_t|Sr$r,r-s rr(z.TestShgoReturns.test_1_nfev_sobol..fun,r.rrr0rr/r0s @rtest_1_nfev_sobolz!TestShgoReturns.test_1_nfev_sobol)s@9 c67; &++6rN)r r!r"r1r4r#rrr)r)s  7 7rr)cd}t|dgdg}t|tjddg}t t ddg|d}tj tj|jdzdk\sJtj tj|jdzd ksJ|jsJy) Nc^tj|}tj|dzgSrr>asarrayr?r@s rquadz$test_vector_constraint..quad8$ JJqMqAvrg@rerrr0r^r4r) rrr>rrr allr?r7r)r9nlcoldcrs rtest_vector_constraintr>6s  dSEA3 /C bhhSz&: ;D uw(dG TC 66"&&#%%!$+ ,, , 66"&&#%%A&#- .. . ;;;rzignore:delta_gradc`d}t|dgdg}ddi}ttddg|d|}tjtj |j d zdk\sJtjtj |j d zd ksJ|jsJy) Nc^tj|}tj|dzgSrr7r@s rr9ztest_trust_constr..quadGr:rg@rernrrr0)rrrr4r)rrr r>r;r?r7r)r9r<rrs rtest_trust_constrrAEs  dSEA3 /C .1  ')  C 66"&&#%%!$+ ,, , 66"&&#%%A&#- .. . ;;;rcdgdz}d}t|dd}tt||}tt j |j dd}d|d}tt||}tt j |j dd gd z}d }d|d}td ||d }tt j |j dy)N)g?rr4c|d|dzSrr#r@s rfaultyz)test_equality_constraints..faulty`stad{r333333@rc|d|dzdz S)Nrr5rEr#r@s rrDz)test_equality_constraints..faultygstad{S  rrr&rrdc6|d|dz|dz|dzdz Srr#r@s rrDz)test_equality_constraints..faultyps+tad{QqT!AaD(1,,rc.tj| Sr)r>prodr@s rrz+test_equality_constraints..vsBGGAJ,rr0)rrrr)rrr rr>r?r7)rrDr<rrs rtest_equality_constraintsrJ\s\A F fc3 /C uV 5CBFF355M3'! /K uV =CBFF355M3'Z!^F- /K   C BFF355M3'rcd}|dd}dddddd }ttd gd z|| }|jd jdk(sJ|jdddk(sJy)Nc8tj|dzdz Srr=r@s rr.ztest_gh16971..cons~svvad|arr%)r(r'rkrbrg?)rhobegtolcatol)rnrrr4)rrrncobylarrO)rr rlower)r.crrs r test_gh16971rS}s f%At<  y{rmultiprocessingr numpy.testingrrrrrrr%rr r r r r rrscipy.optimize._constraintsrscipy.optimize._shgorrr/r1rrrrGrrrrRrr_rrtrr|rr+rboundsLJr ronesrrrrrrr&rrrr(rr)r>filterwarningsrArJrSr#rrr\sJ  2 1HHH=%++  $ gw/"#Q ) ff-"#Q ) lL9"#Q ) $  gY",#/#+"((ZL-8M-7L-8M-8M-7L-8M-8M-8M-8M ,; #<%-BHH.H%I! . hZ",$0>"*"((ZL>":$,BHHl^$<  #$#J gw/",j!9#&  $D i]Q."L#. $ k;7$7#8"& !5 7 %< TFQJ * + X$(6!% $ XL1,"% ' S 0  (Y $:+-$),c 4 -0'w.@4826) ,9=;?./   D3)3)tj1j1Za&a&J r.r.l774 /01,(B:r