Ë
    0Ò^jÛ@  ã                   ó¼   — d Z ddlmZmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
mZ dd	lZdd	lZdd
lmZmZmZ ddlmZ ddlmZ dd	lZ G d„ d«      Zy	)z4
Unit tests for the dual annealing global optimizer
é    )Údual_annealingÚBounds)ÚEnergyState)ÚLocalSearchWrapper)ÚObjectiveFunWrapper)ÚStrategyChain)ÚVisitingDistribution)ÚrosenÚ	rosen_derN)Úassert_equalÚassert_allcloseÚassert_array_less)Úraises)Úcheck_random_statec                   óF  — e Zd Zd„ Zd„ Zd+d„Zd+d„Zej                  j                  dg d¢«      d„ «       Z
ej                  j                  dg d¢«      d	„ «       Zd
„ Zd„ Zej                  j                  d«      d„ «       Zd„ Zej                  j                  d«      d„ «       Zd„ Zd„ Zd„ Zej                  j                  d«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ej                  j                  dg d ¢«      d!„ «       Z!d"„ Z"d#„ Z#ej                  j                  d«      d$„ «       Z$ej                  j                  d%g d&¢«      d'„ «       Z%ej                  j                  d«      d(„ «       Z&ej                  j                  d«      d)„ «       Z'y*),ÚTestDualAnnealingc                 óü   — d„ | _         dgdz  | _        | j                  dz  | _        d| _        d| _        d| _        d| _        d	| _        t        j                  «       | _
        t        j                  «       | _        y )
Nc                 ó"   — t         j                  S ©N)ÚnpÚinf©Úxs    út/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/optimize/tests/test__dual_annealing.pyú<lambda>z0TestDualAnnealing.setup_method.<locals>.<lambda>   s
   € ¤2§6¡6€ ó    ©ç{®GázÀç{®Gáz@é   é   iˆ  in  gš™™™™™¹?çö(\�Âõ@éÒ  )Ú	weirdfuncÚ	ld_boundsÚ	hd_boundsÚnbtestvaluesÚhigh_temperatureÚlow_temperatureÚqvÚseedÚ	threadingÚlocalÚnb_fun_callÚngev©Úselfs    r   Úsetup_methodzTestDualAnnealing.setup_method   sj   € á)ˆŒà'˜¨1Ñ,ˆŒàŸ™¨!Ñ+ˆŒà ˆÔØ $ˆÔØ"ˆÔØˆŒØˆŒ	Ü$Ÿ?™?Ó,ˆÔÜ—O‘OÓ%ˆ�	r   c                 ó   — |dk  ryy )Nç      ð?T© )r1   r   ÚfÚcontexts       r   ÚcallbackzTestDualAnnealing.callback+   s   € ð �Š8Øð r   c           	      ón  — |r|}nd}t        j                  ||z
  dz  dt        j                  dt         j                  z  ||z
  z  «      z  z
  «      dt        j                  |«      z  z   |z   }t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        |S )Nr   r    é
   Úcé   )r   ÚsumÚcosÚpiÚsizeÚhasattrr.   r;   )r1   r   ÚargsÚshiftÚys        r   ÚfunczTestDualAnnealing.func1   s«   € áØ‰EàˆEÜ�F‰F�A˜‘I !Ñ# b¬2¯6©6°!´b·e±e±)Ø�‰Iñ3ó ,ñ 'ñ ó Ø¤§¡¨£
™?ñ+Ø-2ñ3ˆä�t×'Ñ'¨Ô-Ø!"ˆD×ÑÔØ×Ñ×Ò˜aÑÕØˆr   c                 ó¦   — t        | j                  d«      sd| j                  _        | j                  xj                  dz  c_        t        |g|¢­Ž S )Nr;   r   r<   )rA   r/   r;   r   )r1   r   rB   s      r   Úrosen_der_wrapperz#TestDualAnnealing.rosen_der_wrapper>   s=   € Ü�t—y‘y #Ô&ØˆD�I‰IŒKØ�	‰	�Š�qÑ�Ü˜Ð"˜TÒ"Ð"r   r*   )gš™™™™™ñ?g�Âõ(\�ö?r    r"   ç333333@c                 óZ  — t         j                  j                  d«      }t        t	        | j
                  Ž «      }t        j                  |d   «      }t        j                  |d   «      }|j                  }t        ||||«      }t        j                  |«      }|j                  |d| j                  «      }	t        t        j                  |	d«      d«       t        j                  |«      }|j                  ||| j                  «      }
t        t        j                  |
d   d«      d«       y )Nr#   r   r<   T)r   ÚrandomÚdefault_rngÚlistÚzipr%   Úarrayr@   r	   ÚzerosÚvisitingr(   r   Ú	not_equal)r1   r*   ÚrngÚluÚlowerÚupperÚdimÚvdÚvaluesÚ
x_step_lowÚx_step_highs              r   Útest_visiting_steppingz(TestDualAnnealing.test_visiting_steppingF   sÜ   € ä�i‰i×#Ñ# DÓ)ˆÜ”#�t—~‘~Ð&Ó'ˆÜ—‘˜˜A™“ˆÜ—‘˜˜A™“ˆØ�j‰jˆÜ! %¨°°CÓ8ˆÜ—‘˜#“ˆØ—[‘[ ¨¨D×,AÑ,AÓBˆ
ä”R—\‘\ *¨aÓ0°$Ô7Ü—‘˜#“ˆØ—k‘k &¨#¨t×/DÑ/DÓEˆä”R—\‘\ +¨a¡.°!Ó4°dÕ;r   )g      @r"   rH   c                 ó¼  — t         j                  j                  d«      }t        t	        | j
                  Ž «      }t        j                  |d   «      }t        j                  |d   «      }t        ||||«      }|j                  | j                  | j                  «      }t        t        j                  |«      d«       t        dt        j                  |«      «       y )Nr#   r   r<   g»½×Ùß|Û=g    _ B)r   rJ   rK   rL   rM   r%   rN   r	   Úvisit_fnr(   r'   r   ÚminÚmax)r1   r*   rR   rS   rT   rU   rW   rX   s           r   Ú#test_visiting_dist_high_temperaturez5TestDualAnnealing.test_visiting_dist_high_temperatureW   sŸ   € ä�i‰i×#Ñ# DÓ)ˆÜ”#�t—~‘~Ð&Ó'ˆÜ—‘˜˜A™“ˆÜ—‘˜˜A™“ˆÜ! %¨°°CÓ8ˆð —‘˜T×2Ñ2°D×4EÑ4EÓFˆô 	œ"Ÿ&™& ›.¨%Ô0Ü˜%¤§¡¨£Õ0r   c                 ó&  — t        | j                  «      }t        t        | j                  Ž «      }t        j                  |d   «      }t        j                  |d   «      }t        ||«      }t        t        |j                  |t        d «      «       y )Nr   r<   )r   r$   rL   rM   r%   r   rN   r   Úassert_raisesÚ
ValueErrorÚresetr   )r1   ÚowfrS   rT   rU   Úess         r   Ú
test_resetzTestDualAnnealing.test_resetj   si   € Ü! $§.¡.Ó1ˆÜ”#�t—~‘~Ð&Ó'ˆÜ—‘˜˜A™“ˆÜ—‘˜˜A™“ˆÜ˜ Ó&ˆÜ”j "§(¡(¨CÔ1CÀDÓ1IÕJr   c                 ó¨   — t        | j                  | j                  | j                  ¬«      }t	        |j
                  dd¬«       |j                  sJ ‚y ©N©rR   ç        gê-�™—q=©Úatol)r   rE   r%   r+   r   ÚfunÚsuccess©r1   Úrets     r   Útest_low_dimzTestDualAnnealing.test_low_dimr   s;   € ÜØ�I‰I�t—~‘~¨4¯9©9ô6ˆä˜Ÿ™ ¨%Õ0Ø�{Š{Ð‰{r   r:   c                 ó¨   — t        | j                  | j                  | j                  ¬«      }t	        |j
                  dd¬«       |j                  sJ ‚y ri   )r   rE   r&   r+   r   rn   ro   rp   s     r   Útest_high_dimzTestDualAnnealing.test_high_dimx   s8   € ä˜TŸY™Y¨¯©¸D¿I¹IÔFˆÜ˜Ÿ™ ¨%Õ0Ø�{Š{Ð‰{r   c                 óŽ   — t        | j                  | j                  d| j                  ¬«      }t	        |j
                  dd¬«       y )NT)Úno_local_searchr+   rk   ç-Cëâ6?rl   ©r   rE   r%   r+   r   rn   rp   s     r   Útest_low_dim_no_lsz$TestDualAnnealing.test_low_dim_no_ls~   s2   € Ü˜TŸY™Y¨¯©Ø-1¸¿	¹	ôCˆä˜Ÿ™ ¨$Ö/r   c                 óŽ   — t        | j                  | j                  d| j                  ¬«      }t	        |j
                  dd¬«       y )NT©rv   rR   rk   giUMu?rl   )r   rE   r&   r+   r   rn   rp   s     r   Útest_high_dim_no_lsz%TestDualAnnealing.test_high_dim_no_lsƒ   s2   € ä˜TŸY™Y¨¯©Ø-1°t·y±yôBˆä˜Ÿ™ ¨&Ö1r   c                 óÒ   — d| j                   _        t        | j                  | j                  | j
                  ¬«      }t        | j                   j                  |j                  «       y )Nr   rj   ©r.   r;   r   rE   r%   r+   r   Únfevrp   s     r   Útest_nb_fun_callz"TestDualAnnealing.test_nb_fun_call‰   sD   € Øˆ×ÑÔÜ˜TŸY™Y¨¯©¸D¿I¹IÔFˆÜ�T×%Ñ%×'Ñ'¨¯©Õ2r   c                 óÔ   — d| j                   _        t        | j                  | j                  d| j
                  ¬«      }t        | j                   j                  |j                  «       y )Nr   Tr{   r~   rp   s     r   Útest_nb_fun_call_no_lsz(TestDualAnnealing.test_nb_fun_call_no_lsŽ   sJ   € Øˆ×ÑÔÜ˜TŸY™Y¨¯©Ø-1°t·y±yôBˆä�T×%Ñ%×'Ñ'¨¯©Õ2r   c                 óX   — t        t        t        | j                  | j                  «       y r   )rb   rc   r   r$   r%   r0   s    r   Útest_max_reinitz!TestDualAnnealing.test_max_reinit”   s   € Ü”j¤.°$·.±.Ø—n‘nõ	&r   c                 óŒ  — t        | j                  | j                  | j                  ¬«      }t        | j                  | j                  | j                  ¬«      }t        | j                  | j                  | j                  ¬«      }t	        |j
                  |j
                  «       t	        |j
                  |j
                  «       y )Nrj   )r   rE   r%   r+   r   r   )r1   Úres1Úres2Úres3s       r   Útest_reproducez TestDualAnnealing.test_reproduce˜   sv   € ä˜dŸi™i¨¯©¸T¿Y¹YÔGˆÜ˜dŸi™i¨¯©¸T¿Y¹YÔGˆÜ˜dŸi™i¨¯©¸T¿Y¹YÔGˆô 	�T—V‘V˜TŸV™VÔ$Ü�T—V‘V˜TŸV™VÕ$r   c                 óH  — t         j                  j                  d«      }t        | j                  | j
                  |¬«      }t         j                  j                  d«      }t        | j                  | j
                  |¬«      }t        |j                  |j                  «       y )Nr<   rj   )r   rJ   rK   r   rE   r%   r   r   )r1   rR   r†   r‡   s       r   Útest_rand_genzTestDualAnnealing.test_rand_gen¢   sl   € ô �i‰i×#Ñ# AÓ&ˆä˜dŸi™i¨¯©¸SÔAˆä�i‰i×#Ñ# AÓ&ˆÜ˜dŸi™i¨¯©¸SÔAˆô 	�T—V‘V˜TŸV™VÕ$r   c                 óL   — g d¢}t        t        t        | j                  |«       y )N)r   )r<   r   )r   r   )rb   rc   r   rE   )r1   Úwrong_boundss     r   Útest_bounds_integrityz'TestDualAnnealing.test_bounds_integrity¯   s   € Ú<ˆÜ”j¤.°$·)±)Ø"õ	$r   c                 óD  — dt         j                   dfdg}t        t        t        | j
                  |«       ddt         j                  fdg}t        t        t        | j
                  |«       ddt         j                  fdg}t        t        t        | j
                  |«       y )N)éûÿÿÿé   r   )r   r   rb   rc   r   rE   Únan)r1   Úinvalid_boundss     r   Útest_bound_validityz%TestDualAnnealing.test_bound_validity´   s   € Ø!¤R§V¡V G¨Q <°Ð9ˆÜ”j¤.°$·)±)Ø$ô	&à! A¤r§v¡v ;°Ð8ˆÜ”j¤.°$·)±)Ø$ô	&à! A¤r§v¡v ;°Ð8ˆÜ”j¤.°$·)±)Ø$õ	&r   c                 ó¾   — d„ }t        t        ddgddg«      «      }t        j                  t        d¬«      5  t        ||d|d	œ¬
«       d d d «       y # 1 sw Y   y xY w)Nc                 ó>   — t        j                  | dz
  | dz
  z  «      S ©Nr‘   r<   ©r   r=   r   s    r   rE   zKTestDualAnnealing.test_deprecated_local_search_options_bounds.<locals>.funcÀ   ó   € Ü—6‘6˜1˜q™5 Q¨¡UÑ+Ó,Ð,r   éúÿÿÿr�   é   r‘   úMethod CG cannot handle ©ÚmatchÚCG©ÚmethodÚbounds©r¢   Úminimizer_kwargs)rL   rM   ÚpytestÚwarnsÚRuntimeWarningr   ©r1   rE   r¢   s      r   Ú+test_deprecated_local_search_options_boundsz=TestDualAnnealing.test_deprecated_local_search_options_bounds¿   sa   € ò	-ä”c˜2˜r˜( Q¨ FÓ+Ó,ˆô �\‰\œ.Ð0KÔLñ 	EÜØØØ,0¸FÑ!CõE÷	E÷ 	Eñ 	Eús   ¸AÁAc                 óà   — d„ }t        t        ddgddg«      «      }t        ||d|dœ¬«       t        j                  t
        d	¬
«      5  t        ||d|dœ¬«       d d d «       y # 1 sw Y   y xY w)Nc                 ó>   — t        j                  | dz
  | dz
  z  «      S r—   r˜   r   s    r   rE   z<TestDualAnnealing.test_minimizer_kwargs_bounds.<locals>.funcÌ   r™   r   rš   r�   r›   r‘   ÚSLSQPr    r£   rœ   r�   rŸ   )rL   rM   r   r¥   r¦   r§   r¨   s      r   Útest_minimizer_kwargs_boundsz.TestDualAnnealing.test_minimizer_kwargs_boundsË   sx   € ò	-ä”c˜2˜r˜( Q¨ FÓ+Ó,ˆäØØØ(/¸6ÑBõ	Dô
 �\‰\œ.Ð0KÔLñ 	EÜØØØ,0¸FÑ!CõE÷	E÷ 	Eñ 	Eús   Á	A$Á$A-c                 óN  — t        | j                  | j                  d| j                  ¬«      }t	        t        t        | j                  «      t        j                  z  t        j                  «      t        j                  «      }|j                  d|z   k  sJ ‚|j                  rJ ‚y )Néd   )ÚmaxfunrR   )r   rE   r%   r+   r^   r_   Úlenr   ÚLS_MAXITER_RATIOÚLS_MAXITER_MINÚLS_MAXITER_MAXr   ro   )r1   rq   Úls_max_iters      r   Útest_max_fun_lsz!TestDualAnnealing.test_max_fun_lsÛ   s‡   € Ü˜TŸY™Y¨¯©¸sØ!%§¡ô,ˆô œ#Ü�—‘ÓÔ"4×"EÑ"EÑEÜ×-Ñ-ó/ô ×-Ñ-ó/ˆð �x‰x˜3 Ñ,Ò,Ð,Ð,Ø—;’;Ðˆ�;r   c                 óž   — t        | j                  | j                  dd| j                  ¬«      }|j                  dk  sJ ‚|j
                  rJ ‚y )NTiô  )rv   r°   rR   )r   rE   r%   r+   r   ro   rp   s     r   Útest_max_fun_no_lsz$TestDualAnnealing.test_max_fun_no_lsæ   sB   € Ü˜TŸY™Y¨¯©Ø-1¸#À4Ç9Á9ôNˆà�x‰x˜3ŠÐˆØ—;’;Ðˆ�;r   c                 ó€   — t        | j                  | j                  d| j                  ¬«      }|j                  dk  sJ ‚y )Ni¼  )ÚmaxiterrR   )r   rE   r%   r+   Únitrp   s     r   Útest_maxiterzTestDualAnnealing.test_maxiterì   s1   € Ü˜TŸY™Y¨¯©ÀØ!%§¡ô,ˆà�w‰w˜#Š~Ð‰~r   c                 óŽ   — t        | j                  | j                  d| j                  ¬«      }t	        |j
                  dd¬«       y )N©çn†ðù!	@)rB   rR   r¿   ç�íµ ÷Æ°>rl   rx   rp   s     r   Útest_fun_args_lsz"TestDualAnnealing.test_fun_args_lsò   s1   € Ü˜TŸY™Y¨¯©Ø#-°D·I±Iô?ˆä˜Ÿ™ ¨tÖ4r   c                 ó�   — t        | j                  | j                  dd| j                  ¬«      }t	        |j
                  dd¬«       y )Nr¾   T)rB   rv   rR   r¿   rw   rl   rx   rp   s     r   Útest_fun_args_no_lsz%TestDualAnnealing.test_fun_args_no_lsø   s6   € Ü˜TŸY™Y¨¯©Ø#.ÀØ!%§¡ô,ˆô 	˜Ÿ™ ¨tÖ4r   c                 óÖ   — t        | j                  | j                  | j                  | j                  ¬«      }|j
                  dk  sJ ‚d|j                  d   v sJ ‚|j                  rJ ‚y )N)r8   rR   r4   z
stop earlyr   )r   rE   r%   r8   r+   rn   Úmessagero   rp   s     r   Útest_callback_stopz$TestDualAnnealing.test_callback_stopþ   s\   € ô ˜TŸY™Y¨¯©Ø&*§m¡m¸¿¹ôDˆà�w‰w˜#Š~Ðˆ~Ø˜sŸ{™{¨1™~Ñ-Ð-Ð-Ø—;’;Ðˆ�;r   zmethod, atol))zNelder-Meadgñhãˆµøô>)ÚCOBYLAgñhãˆµøä>)ÚCOBYQAç:Œ0âŽyE>)ÚPowellrÉ   )rŸ   rÉ   )ÚBFGSrÉ   )ÚTNCrÉ   )r¬   gH¯¼šò×Š>c                 ó¢   — t        | j                  | j                  t        |¬«      | j                  ¬«      }t        |j                  d|¬«       y )N©r¡   ©r¤   rR   rk   rl   )r   rE   r%   Údictr+   r   rn   )r1   r¡   rm   rq   s       r   Útest_multi_ls_minimizerz)TestDualAnnealing.test_multi_ls_minimizer  s;   € ô ˜TŸY™Y¨¯©Ü.2¸&Ô.AØ!%§¡ô,ˆô 	˜Ÿ™ ¨$Ö/r   c                 ó´   — t        t        t        | j                  | j                  d¬«       t        t        t        | j                  | j                  d¬«       y )Nr<   )Úrestart_temp_ratior   )rb   rc   r   rE   r%   r0   s    r   Útest_wrong_restart_tempz)TestDualAnnealing.test_wrong_restart_temp  s8   € Ü”j¤.°$·)±)Ø—n‘n¸õ	<ä”j¤.°$·)±)Ø—n‘n¸ö	<r   c                 ó¸   — d| j                   i}t        t        | j                  || j                  ¬«      }|j
                  | j                  j                  k(  sJ ‚y )NÚjacrÏ   )rG   r   r
   r%   r+   Únjevr/   r;   )r1   Úminimizer_optsrq   s      r   Útest_gradient_gnevz$TestDualAnnealing.test_gradient_gnev  sN   € à�4×)Ñ)ð
ˆô œU D§N¡NØ.<Ø!%§¡ô,ˆð �x‰x˜4Ÿ9™9Ÿ;™;Ò&Ð&Ñ&r   c           	      óÈ   — d„ }dgdz  }dgdz  }t        |t        t        ||«      «      d¬«      }t        |j                  g d¢d¬	«       t        |j
                  d
d¬	«       y )Nc                 ó¾   — t        j                  | | z  dt        j                  dt         j                  z  | z  «      z  z
  «      dt        j                  | «      z  z   S ©Nr:   r    ©r   r=   r>   r?   r@   r   s    r   rE   z3TestDualAnnealing.test_from_docstring.<locals>.func(  sE   € Ü—6‘6˜!˜a™% "¤r§v¡v¨a´"·%±%©i¸!©mÓ'<Ñ"<Ñ<Ó=ÀÄRÇWÁWÈQÃZÁÑOÐOr   r   r:   r   r#   ©r¢   rR   )
g„[Çt»P2¾g“f¯ÇÒ0¾gË¯>ßíú¾gçç,â1¾gft˜;¾g¿š¤h<¾g#žÖÜç0¾gÆÁ¦(<¾g¿eÔ‘:¾gi¨Äé€5¾g:Œ0âŽye>rl   rk   gê-�™—a=)r   rL   rM   r   r   rn   )r1   rE   ÚlwÚuprq   s        r   Útest_from_docstringz%TestDualAnnealing.test_from_docstring&  sa   € ò	PàˆW�r‰\ˆØˆV�b‰[ˆÜ˜T¬$¬s°2°r«{Ó*;ÀÔFˆÜ˜Ÿ™ò*ð 15õ		6ô
 	˜Ÿ™ °Ö6r   z'new_e, temp_step, accepted, accept_rate))r   r¯   éè  g„‘]Öø'ð?)r   r    râ   g‹r�ù¢(ô?)r:   r¯   in  gíþD…ì?)r:   é<   i·  g‰t%Íå?)r    r¯   iÞ  gw’‘ô«ï?c           	      ó¾  — t        d«      }d}d}d}d}	t        |«      D ]c  }
t        d d ¬«      }|j                  |	dg«       t	        |d d d ||«      }||_        |j                  d|dg¬«       |j                  |k(  sŒ_|dz  }Œe ||k(  sJ ‚dd|z
  ||	z
  z  |z  z
  }|dk  rdn-t        j                  t        j                  |«      d|z
  z  «      }t        ||«       y )	Né{   r   râ   r�   r<   )rT   rU   r    )ÚjÚeÚx_visit)r   Úranger   Úupdate_currentr   Útemperature_stepÚaccept_rejectÚcurrent_energyr   ÚexpÚlogr   )r1   Únew_eÚ	temp_stepÚacceptedÚaccept_rateÚrsÚcount_acceptedÚ
iterationsÚaccept_paramrí   Ú_Úenergy_stateÚchainÚpqvÚrates                  r   Ú test_accept_reject_probabilisticz2TestDualAnnealing.test_accept_reject_probabilistic4  s	  € ô   Ó$ˆàˆØˆ
àˆØˆÜ�zÓ"ò 	$ˆAÜ&¨T¸Ô>ˆLà×'Ñ'¨¸¸Ô<ä!Ø˜d D¨$°°LóBˆEð &/ˆEÔ"ð ×Ñ ! u°q°cÐÔ:Ø×*Ñ*¨eÓ3Ø !Ñ#‘ð	$ð  Ò)Ð)Ð)ð �1�|Ñ#¨°Ñ(>Ñ?À)ÑKÑKˆØ˜1’H‰q¤"§&¡&¬¯©°«¸¸LÑ8HÑ)IÓ"Jˆä˜˜kÕ*r   c                 óÚ  — d„ }dgdz  }dgdz  }d|d<   d|d<   d	|d
<   d|d<   t        ||«      }t        ||d¬«      }t        t        ||«      «      }t        ||d¬«      }t	        |j
                  |j
                  d¬«       t	        |j
                  t        j                  dd
«      d¬«       t	        |j                  |j                  d¬«       |j                  |j                  k(  sJ ‚y )Nc                 óÂ   — t        j                  | | z  dt        j                  dt         j                  z  | z  «      z  z
  «      dt        j                  | «      z  z   }|S rÜ   rÝ   )r   r6   s     r   rE   z1TestDualAnnealing.test_bounds_class.<locals>.funca  sI   € Ü—‘�q˜1‘u˜r¤B§F¡F¨1¬r¯u©u©9°q©=Ó$9Ñ9Ñ9Ó:¸RÄ"Ç'Á'È!Ã*¹_ÑLˆAØˆHr   r   r‘   r   g       Àr   g      ð¿r<   r4   é   g       @r!   r#   rÞ   rÉ   rl   éþÿÿÿgH¯¼šò×z>g•Ö&è.>)
r   r   rL   rM   r   r   r   Úarangern   r   )r1   rE   rß   rà   r¢   Úret_bounds_classÚ
bounds_oldÚret_bounds_lists           r   Útest_bounds_classz#TestDualAnnealing.test_bounds_class^  sì   € ò	ð ˆW�q‰[ˆØˆV�a‰Zˆð ˆˆ1‰Øˆˆ1‰Øˆˆ1‰Øˆˆ1‰ô ˜˜B“ˆÜ)¨$°vÀ4ÔHÐäœ#˜b "›+Ó&ˆ
Ü(¨°jÀdÔKˆô 	Ð(×*Ñ*¨O×,=Ñ,=ÀDÕIÜÐ(×*Ñ*¬B¯I©I°b¸!Ó,<À4ÕHÜ˜×+Ñ+Ð-=×-AÑ-AÈÕMØ×#Ñ#Ð'7×'<Ñ'<Ò<Ð<Ñ<r   c                 ó6  ‡	— t         j                  j                  d«      }d„ }d„ }d„ Š	ˆ	fd„}t        |dddgddgg|t	        d	¬
«      ¬«      }t        |dddgddgg|t	        d	|¬«      ¬«      }t        |dddgddgg|t	        d|‰	¬«      ¬«      }t        |dddgddgg|t	        d||¬«      ¬«      }t        |j                  |j                  d¬«       t        |j                  |j                  d¬«       t        |j                  |j                  d¬«       y )Nl   ¦°]k@A`Q c                 óX   — t        j                  t        j                  | |z  «      «      S r   )r   r=   rî   ©r   Úpowers     r   r6   zETestDualAnnealing.test_callable_jac_hess_with_args_gh11052.<locals>.f‚  s   € Ü—6‘6œ"Ÿ&™&  e¡Ó,Ó-Ð-r   c                 óJ   — t        j                  | |z  «      |z  | |dz
  z  z  S )Nr<   )r   rî   r	  s     r   rÖ   zGTestDualAnnealing.test_callable_jac_hess_with_args_gh11052.<locals>.jac…  s(   € Ü—6‘6˜!˜u™*Ó%¨Ñ-°°e¸a±iÑ0@Ñ@Ð@r   c                 óŽ   — t        j                  |t        j                  | |z  «      z  | |dz
  z  z  || |z  z  |z   dz
  z  «      S )Nr    r<   )r   Údiagrî   r	  s     r   ÚhesszHTestDualAnnealing.test_callable_jac_hess_with_args_gh11052.<locals>.hessˆ  sQ   € ä—7‘7ØœŸ™˜q E™zÓ*Ñ*¨Q°5¸1±9Ñ-=Ñ=Ø˜˜e™Ñ# eÑ+¨aÑ/ñ1óð r   c                 ó   •—  ‰| |«      |z  S r   r5   )r   Úpr
  r  s      €r   ÚhesspzITestDualAnnealing.test_callable_jac_hess_with_args_gh11052.<locals>.hessp�  s   ø€ Ù˜˜5“> AÑ%Ð%r   )r    r   r<   zL-BFGS-BrÎ   )rB   r¢   rR   r¤   )r¡   rÖ   z	newton-cg)r¡   rÖ   r  )r¡   rÖ   r  rÀ   )Úrtol)r   rJ   rK   r   rÐ   r   rn   )
r1   rR   r6   rÖ   r  r†   r‡   rˆ   Úres4r  s
            @r   Ú(test_callable_jac_hess_with_args_gh11052z:TestDualAnnealing.test_callable_jac_hess_with_args_gh11052{  s'  ø€ ô �i‰i×#Ñ#Ð$8Ó9ˆò	.ò	Aò	ô	&ô ˜a e°a¸°V¸aÀ¸VÐ4DÈ#Ü/3¸:Ô/FôHˆä˜a e°a¸°V¸aÀ¸VÐ4DÈ#Ü/3¸:Ø8;ô0=ô>ˆô ˜a e°a¸°V¸aÀ¸VÐ4DÈ#Ü/3¸;Ø8;À$ô0HôIˆô ˜a e°a¸°V¸aÀ¸VÐ4DÈ#Ü/3¸;Ø8;À5ô0JôKˆô 	˜Ÿ™ $§(¡(°Õ6Ü˜Ÿ™ $§(¡(°Õ6Ü˜Ÿ™ $§(¡(°Ö6r   N)r5   )(Ú__name__Ú
__module__Ú__qualname__r2   r8   rE   rG   r¥   ÚmarkÚparametrizer[   r`   rg   rr   Ú	fail_slowrt   ry   r|   r€   r‚   r„   r‰   r‹   rŽ   r”   r©   r­   r¶   r¸   r¼   rÁ   rÃ   rÆ   rÑ   rÔ   rÙ   rá   rý   r  r  r5   r   r   r   r      sí  „ ò&ò óó#ð ‡[�[×Ñ˜TÒ#<Ó=ñ<ó >ð<ð  ‡[�[×Ñ˜TÒ#4Ó5ñ1ó 6ð1ò$Kòð ‡[�[×Ñ˜2Óñó ðò
0ð
 ‡[�[×Ñ˜2Óñ2ó ð2ò
3ò
3ò&ð ‡[�[×Ñ˜2Óñ%ó ð%ò%ò$ò
	&ò
EòEò 	òòò5ò5òð ‡[�[×Ñ˜^ò 	.ó 	ñ0ó	ð0ò<ò'ð ‡[�[×Ñ˜2Óñ7ó ð7ð ‡[�[×ÑÐFò Ió ñ!+óð!+ðF ‡[�[×Ñ˜2Óñ=ó ð=ð8 ‡[�[×Ñ˜2Óñ#7ó ñ#7r   r   )Ú__doc__Úscipy.optimizer   r   Úscipy.optimize._dual_annealingr   r   r   r   r	   r
   r   r¥   Únumpyr   Únumpy.testingr   r   r   r   rb   Úscipy._lib._utilr   r,   r   r5   r   r   ú<module>r!     sB   ðñ
÷ 2å 6Ý =Ý >Ý 8Ý ?ß +Û Û ß JÑ JÝ *Ý /ã ÷F7ò F7r   