Ë
    âQ(h A  ã                   ó¼   — 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                   óª  — 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ej                  j2                  d„ «       Zej                  j2                  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                 ó0  — d„ | _         dgdz  | _        | j                  dz  | _        d| _        d| _        d| _        d| _        d	| _        t        | j                  «      | _	        t        j                  «       | _        t        j                  «       | _        y )
Nc                 ó"   — t         j                  S ©N)ÚnpÚinf©Úxs    úg/var/www/skyplay_api_hub/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Úseedr   ÚrngÚ	threadingÚlocalÚnb_fun_callÚngev©Úselfs    r   Úsetup_methodzTestDualAnnealing.setup_method   sz   € á)ˆŒà'˜¨1Ñ,ˆŒàŸ™¨!Ñ+ˆŒà ˆÔØ $ˆÔØ"ˆÔØˆŒØˆŒ	Ü% d§i¡iÓ0ˆŒÜ$Ÿ?™?Ó,ˆÔÜ—O‘OÓ%ˆ�	r   c                 ó   — |dk  ryy )Nç      ð?T© )r2   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<   )r2   r   ÚargsÚshiftÚys        r   ÚfunczTestDualAnnealing.func2   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=   )rB   r0   r<   r   )r2   r   rC   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                 ó0  — t        t        | j                  Ž «      }t        j                  |d   «      }t        j                  |d   «      }|j
                  }t        |||| j                  «      }t        j                  |«      }|j                  |d| j                  «      }t        t        j                  |d«      d«       t        j                  |«      }|j                  ||| j                  «      }	t        t        j                  |	d   d«      d«       y )Nr   r=   T)ÚlistÚzipr%   r   ÚarrayrA   r	   r,   ÚzerosÚvisitingr(   r   Ú	not_equal)
r2   r*   ÚluÚlowerÚupperÚdimÚvdÚvaluesÚ
x_step_lowÚx_step_highs
             r   Útest_visiting_steppingz(TestDualAnnealing.test_visiting_steppingG   sÌ   € ä”#�t—~‘~Ð&Ó'ˆÜ—‘˜˜A™“ˆÜ—‘˜˜A™“ˆØ�j‰jˆÜ! %¨°°D·H±HÓ=ˆÜ—‘˜#“ˆØ—[‘[ ¨¨D×,AÑ,AÓBˆ
ä”R—\‘\ *¨aÓ0°$Ô7Ü—‘˜#“ˆØ—k‘k &¨#¨t×/DÑ/DÓEˆä”R—\‘\ +¨a¡.°!Ó4°dÕ;r   )g      @r"   rI   c                 ó’  — t        t        | j                  Ž «      }t        j                  |d   «      }t        j                  |d   «      }t        |||| j                  «      }|j                  | j                  | j                  «      }t        t        j                  |«      d«       t        dt        j                  |«      «       y )Nr   r=   g»½×Ùß|Û=g    _ B)rK   rL   r%   r   rM   r	   r,   Úvisit_fnr(   r'   r   ÚminÚmax)r2   r*   rQ   rR   rS   rU   rV   s          r   Ú#test_visiting_dist_high_temperaturez5TestDualAnnealing.test_visiting_dist_high_temperatureW   s�   € ä”#�t—~‘~Ð&Ó'ˆÜ—‘˜˜A™“ˆÜ—‘˜˜A™“ˆÜ! %¨°°D·H±HÓ=ˆð —‘˜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$   rK   rL   r%   r   rM   r   Úassert_raisesÚ
ValueErrorÚresetr   )r2   ÚowfrQ   rR   rS   Úess         r   Ú
test_resetzTestDualAnnealing.test_reseti   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©r,   ç        gê-�™—q=©Úatol)r   rF   r%   r+   r   ÚfunÚsuccess©r2   Úrets     r   Útest_low_dimzTestDualAnnealing.test_low_dimq   s;   € ÜØ�I‰I�t—~‘~¨4¯9©9ô6ˆä˜Ÿ™ ¨%Õ0Ø�{Š{Ð‰{r   r;   c                 ó¨   — t        | j                  | j                  | j                  ¬«      }t	        |j
                  dd¬«       |j                  sJ ‚y rg   )r   rF   r&   r+   r   rl   rm   rn   s     r   Útest_high_dimzTestDualAnnealing.test_high_dimw   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+   ri   ç-Cëâ6?rj   ©r   rF   r%   r+   r   rl   rn   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©rt   r,   ri   giUMu?rj   )r   rF   r&   r+   r   rl   rn   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   rh   ©r/   r<   r   rF   r%   r+   r   Únfevrn   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   Try   r|   rn   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   )r`   ra   r   r$   r%   r1   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 )Nrh   )r   rF   r%   r+   r   r   )r2   Ú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=   rh   )r   ÚrandomÚdefault_rngr   rF   r%   r   r   )r2   r,   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   )r`   ra   r   rF   )r2   Ú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   r`   ra   r   rF   Únan)r2   Ú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   rF   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)rK   rL   ÚpytestÚwarnsÚRuntimeWarningr   ©r2   rF   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   rF   z<TestDualAnnealing.test_minimizer_kwargs_bounds.<locals>.funcÍ   r™   r   rš   r�   r›   r‘   ÚSLSQPr    r£   rœ   r�   rŸ   )rK   rL   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   )Úmaxfunr,   )r   rF   r%   r+   r\   r]   Úlenr   ÚLS_MAXITER_RATIOÚLS_MAXITER_MINÚLS_MAXITER_MAXr}   rm   )r2   ro   Ú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ô  )rt   r°   r,   )r   rF   r%   r+   r}   rm   rn   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¼  )Úmaxiterr,   )r   rF   r%   r+   Únitrn   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†ðù!	@)rC   r,   r¿   ç�íµ ÷Æ°>rj   rv   rn   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)rC   rt   r,   r¿   ru   rj   rv   rn   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)r9   r,   r5   z
stop earlyr   )r   rF   r%   r9   r+   rl   Úmessagerm   rn   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¤   r,   ri   rj   )r   rF   r%   Údictr+   r   rl   )r2   r¡   rk   ro   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   )r`   ra   r   rF   r%   r1   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Ï   )rH   r   r
   r%   r+   Únjevr0   r<   )r2   Úminimizer_optsro   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@   rA   r   s    r   rF   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¢   r,   )
g„[Çt»P2¾g“f¯ÇÒ0¾gË¯>ßíú¾gçç,â1¾gft˜;¾g¿š¤h<¾g#žÖÜç0¾gÆÁ¦(<¾g¿eÔ‘:¾gi¨Äé€5¾g:Œ0âŽye>rj   ri   gê-�™—a=)r   rK   rL   r   r   rl   )r2   rF   ÚlwÚupro   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=   )rR   rS   r    )ÚjÚeÚx_visit)r   Úranger   Úupdate_currentr   Útemperature_stepÚaccept_rejectÚcurrent_energyr   ÚexpÚlogr   )r2   Ú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_probabilistic5  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   r7   s     r   rF   z1TestDualAnnealing.test_bounds_class.<locals>.funcb  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=   r5   é   g       @r!   r#   rÞ   rÉ   rj   éþÿÿÿgH¯¼šò×z>g•Ö&è.>)
r   r   rK   rL   r   r   r   Úarangerl   r}   )r2   rF   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   r7   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   r6   )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Î   )rC   r¢   r,   r¤   )r¡   rÖ   z	newton-cg)r¡   rÖ   r  )r¡   rÖ   r  rÀ   )Úrtol)r   r‰   rŠ   r   rÐ   r   rl   )
r2   r,   r7   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)r6   ))Ú__name__Ú
__module__Ú__qualname__r3   r9   rF   rH   r¥   ÚmarkÚparametrizerY   r^   re   rp   Ú	fail_slowrr   rw   rz   r~   r€   r‚   r‡   r‹   rŽ   r”   Úthread_unsafer©   r­   r¶   r¸   r¼   rÁ   rÃ   rÆ   rÑ   rÔ   rÙ   rá   rý   r  r  r6   r   r   r   r      s!  „ ò&ò"óó#ð ‡[�[×Ñ˜TÒ#<Ó=ñ<ó >ð<ð ‡[�[×Ñ˜TÒ#4Ó5ñ1ó 6ð1ò"Kòð ‡[�[×Ñ˜2Óñó ðò
0ð
 ‡[�[×Ñ˜2Óñ2ó ð2ò
3ò
3ò&ð ‡[�[×Ñ˜2Óñ%ó ð%ò%ò$ò
	&ð ‡[�[×Ññ
Eó ð
Eð ‡[�[×Ññ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   r`   Úscipy._lib._utilr   r-   r   r6   r   r   ú<module>r"     sB   ðñ
÷ 2å 6Ý =Ý >Ý 8Ý ?ß +Û Û ß JÑ JÝ *Ý /ã ÷G7ò G7r   