L i=pdZddlZddlZddlmZmZmZddlm Z m Z m Z m Z m Z GddZGddZy) z5 Unit tests for trust-region optimization routines. N)assert_ assert_equalassert_allclose)minimizerosen rosen_der rosen_hessrosen_hess_prodceZdZdZdZdZy) Accumulatorz This is for testing callbacks.c d|_d|_y)Nr)countaccumselfs k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_trustregion.py__init__zAccumulator.__init__s  c|xjdz c_|jtj||_y|xj|z c_y)N)rrnparray)rxs r__call__zAccumulator.__call__s5 a :: !DJ JJ!OJrN)__name__ __module__ __qualname____doc__rrrrr r s)rr cteZdZdZdZdZejjdZ dZ dZ dZ dZ d Zy ) TestTrustRegionSolversc:ddg|_ddg|_ddg|_y)Ng?g@g333333)x_opt easy_guess hard_guessrs r setup_methodz#TestTrustRegionSolvers.setup_methods#3Z *+rc |j}tt|ttddddi}t ||ddt |d|dd t |d|j y) N:0yE>dogleg return_allTjachesstolmethodoptionsallvecsrr)r%rrrr rr#rx0rs rtest_dogleg_accuracyz+TestTrustRegionSolvers.test_dogleg_accuracy!se __ UBIJD$|T.B EAiLO,#) R 01# +rc Ht}d}tt|jtt |dd|d}t |j|t t|d|dzt|d|dd tt|ddd|jy) Nr)T)r*maxiter)r,r-callbackr/r0r1rrr2) r rrr%rr rrlenrsumr)r accumulatorr9r5s rtest_dogleg_callbackz+TestTrustRegionSolvers.test_dogleg_callback*s!m  UDOO)(,0WE H [&&0S9& 2#) R 01AiL,-{/@/@Arc tjtd5tt|j t tdddddddy#1swYyxYw)NzMaximum number of iterations)matchr)Tr)dispr9)r,r-r/r0)pytestwarnsRuntimeWarningrrr%rr rs rtest_dogleg_user_warningz/TestTrustRegionSolvers.test_dogleg_user_warning6sH \\. ?A = UDOO$X&*q9 = = = =s +AAc tt}t}t}|j|jfD] }t ||||ddddi}t ||||ddddi}t ||||ddddi}t ||||ddddi}t ||||dd ddi} t |j|d t |j|d t |j|d t |j|d t |j| d tt|d t|d k y) Nr(r)r*Tr+ trust-ncg trust-krylovz newton-cg trust-exactrr1) rrr r$r%rrr#rr;) rfghr4r_dogleg r_trust_ncgr_trust_krylovr_ncg r_iteratives rtest_solver_concordancez.TestTrustRegionSolvers.test_solver_concordance>sS   ??DOO4 FB211$'/,9MOH"1baaT*5,8$+?AK&a*8,8$+?ANQt$/,9MOE"1baaT*7,8$+?AK DJJ 6 DJJ C(8 9 DJJs(; < DJJc 3 DJJ C(8 9 C+,s53C/DD E' Frc |j|j|jfD]8}tt|t t dd}t|j|d:y)Nr(rG)r,hesspr.r/r)r$r%r#rrrr rr3s rtest_trust_ncg_hesspz+TestTrustRegionSolvers.test_trust_ncg_hessp[sM??DOOTZZ@ 0B !+7A DJJ# / 0rctt|jttdd}t |j|dy)Nr(rGr4r,r-r.r/rrrr#rr rrr5s rtest_trust_ncg_start_in_optimumz6TestTrustRegionSolvers.test_trust_ncg_start_in_optimumas/ Utzzyzk 3 AcF+rctt|jttdd}t |j|dy)Nr(rHrWrrXrYs r"test_trust_krylov_start_in_optimumz9TestTrustRegionSolvers.test_trust_krylov_start_in_optimumfs/ Utzzyzn 6 AcF+rctt|jttdd}t |j|dy)Nr(rIrWrrXrYs r!test_trust_exact_start_in_optimumz8TestTrustRegionSolvers.test_trust_exact_start_in_optimumks/ Utzzyzm 5 AcF+rN)rrrr&r6r>rBmark thread_unsaferErRrUrZr\r^rrrr!r!sJ& , B [[==F:0 , , ,rr!)rrBnumpyr numpy.testingrrrscipy.optimizerrrr r r r!rrrrds8@@--  T,T,r