Ë
    âQ(h|›  ã                   óæ  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
Z
d dl
mZmZ d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ  G d„ d	«      Zd
„ Z G d„ de«      Z eddgd d g¬«      Z eddgd d g¬«      Z eddgd d g¬«      Z  G d„ de«      Z! e!dgdgd ejD                  dgdgdgdgdgdgdgdgdgdgg
«       ejD                  g d¢«      ¬ «      Z# e!d!gdgdg ejD                  dgg«       ejD                  dg«      ¬ «      Z$ G d"„ d#e«      Z% e%d$d%gd&d'gd(¬)«      Z& G d*„ d+e«      Z' e'd,gd-z  g d.¢d/¬)«      Z( G d0„ d1e«      Z) e)d2d2gd3gd4d5g¬6«      Z* G d7„ d8e«      Z+d9Z, e- e.d:gd9z  d;gd9z  «      «      Z/ e+e/d<gd¬6«      Z0 G d=„ d>e«      Z1 e1d?gd@z  dA ejd                  d@«      dBz
  ¬6«      Z3 G dC„ dDe«      Z4 e4d,d,gdEgdFdFg¬6«      Z5 G dG„ dHe«      Z6 e6d$dIgdd¬6«      Z7e
jp                  js                  dJ«      	 	 	 d[dK„«       Z: G dL„ dM«      Z; G dN„ dO«      Z< G dP„ dQ«      Z= G dR„ dS«      Z> G dT„ dU«      Z?dV„ Z@e
jp                  jƒ                  dW«      dX„ «       ZBdY„ ZCdZ„ ZDy)\é    N)ÚPool)Úassert_allcloseÚIS_PYPY)ÚraisesÚwarns)ÚshgoÚBoundsÚminimize_scalarÚminimizeÚrosenÚ	rosen_derÚ
rosen_hessÚNonlinearConstraint)Únew_constraint_to_old)ÚSHGOc                   ó   — e Zd Z	 	 dd„Zy)ÚStructTestFunctionNc                 óJ   — || _         || _        || _        || _        || _        y ©N©ÚboundsÚ
expected_xÚexpected_funÚexpected_xlÚexpected_funl)Úselfr   r   r   r   r   s         ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test__shgo.pyÚ__init__zStructTestFunction.__init__   s(   € àˆŒØ$ˆŒØ(ˆÔØ&ˆÔØ*ˆÕó    )NNN)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s   „ Ø8<Ø15ô+r   r   c                 ó˜   — g }| �Ct        | t        t        f«      s| f} n	 | D ]  } |j                  d| dœ«       Œ t        |«      }|S d }|S )NÚineq©ÚtypeÚfun)Ú
isinstanceÚtupleÚlistÚappend)ÚgÚconss     r   Úwrap_constraintsr/      sg   € Ø€DØ€}Ü˜!œe¤T˜]Ô+Ø�‰AàØò 	$ˆAØ�K‰K Ø !ñ#õ $ð	$ô �T‹{ˆð €Kð ˆØ€Kr   c                   ó(   — e Zd Zd„ Zd„ Z ee«      Zy)ÚStructTest1c                 ó$   — |d   dz  |d   dz  z   S ©Nr   é   é   r#   ©r   Úxs     r   ÚfzStructTest1.f+   ó   € Ø�‰t�q‰y˜1˜Q™4 1™9Ñ$Ð$r   c                 ó8   — t        j                  | d¬«      dz
   S )Nr   ©Úaxisg      @©ÚnpÚsum©r7   s    r   r-   zStructTest1.g.   s   € Ü—‘˜ Ô" SÑ(Ð)Ð)r   N©r    r!   r"   r8   r-   r/   r.   r#   r   r   r1   r1   *   s   „ ò%ò*ñ ˜AÓ�Dr   r1   )éÿÿÿÿé   )r   r   ©r   r5   ©NNc                   ó,   — e Zd ZdZd„ Zd„ Z ee«      Zy)ÚStructTest2zN
    Scalar function with several minima to test all minimiser retrievals
    c                 ó8   — |dz
  t        j                  |«      z  S )Né   )r>   Úsinr6   s     r   r8   zStructTest2.fA   s   € Ø�B‘œ"Ÿ&™& ›)Ñ#Ð#r   c                 ó6   — dt        j                  | d¬«      z
  S )Né:   r   r;   r=   r@   s    r   r-   zStructTest2.gD   s   € Ø”B—F‘F˜1 1Ô%Ñ%Ð%r   N©r    r!   r"   Ú__doc__r8   r-   r/   r.   r#   r   r   rG   rG   <   s   „ ñò$ò&ñ ˜AÓ�Dr   rG   )r   é<   gâ¡½4$’ø?çÕ0ðš_r<Àg±ç ûG‚K@gô½
]<@gøI{¤½_H@gÌi<&,@g–±»å>E@gºqÅ¤CQ4@g‹8øž$B@gÜo.n:@g^5	½‚Ã>@)
rP   g³Ê¾sÿ8Àg^ÑÖV&+6Àg+Ô?-«¸2Àg+ä!¾ÙÉ/ÀgÛN|1ç(Àgc’ä=C#Àg¾^Ì\ÕÀg´ÄN¡ˆÀgêíè‡ªÝ¿r   )r   g      @c                   óV   — e Zd ZdZd„ Zd„ Zd„ Zd„ Z eede	j                  «      ZefZ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|d   dz  z  |d   dz  z   S )Ng{®Gáz„?r   r4   r5   r#   r6   s     r   r8   zStructTest3.f{   s"   € Ø�q˜‘t ‘kÑ! Q q¡T¨a¡KÑ/Ð/r   c                 ó   — | d   | d   z  dz
  S )Nr   r5   ç      9@r#   r@   s    r   Úg1zStructTest3.g1~   s   € Ø�‰t�a˜‘d‰{˜TÑ!Ð!r   c                 ó*   — | d   dz  | d   dz  z   dz
  S )Nr   r4   r5   rU   r#   r@   s    r   Úg2zStructTest3.g2�   s"   € Ø�‰t�q‰y˜1˜Q™4 1™9Ñ$ tÑ+Ð+r   c                 óF   — | d   | d   z  dz
  | d   dz  | d   dz  z   dz
  fS )Nr   r5   rU   r4   r#   r@   s    r   r-   zStructTest3.g‡   s8   € Ø�‰t�a˜‘d‰{˜TÑ! 1 Q¡4¨1¡9¨q°©t°q©yÑ#8¸4Ñ#?Ð?Ð?r   r   N)r    r!   r"   rN   r8   rV   rX   r-   r   r>   ÚinfÚ_StructTest3__nlcr.   r#   r   r   rR   rR   i   s7   „ ñò"0ò"ò,ò@ñ    1 b§f¡fÓ-€EØˆ8�Dr   rR   )r4   é2   )r   r\   g'ò�InŸ/@gS[Ú:XLù?ç      @)r   r   r   c                   óJ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZeeeefZ	 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                 óê   — |d   dz
  dz  d|d   dz
  dz  z  z   |d   dz  z   d|d   d	z
  dz  z  z   d|d   d
z  z  z   d|d   dz  z  z   |d
   dz  z   d|d   z  |d
   z  z
  d|d   z  z
  d|d
   z  z
  S )Nr   é
   r4   é   r5   é   é   é   é   rC   é   é   r#   r6   s     r   r8   zStructTest4.fœ   sÖ   € Ø�1‘˜‘˜qÑ  1¨¨!©¨r©	°aÑ'7Ñ#7Ñ7¸!¸A¹$À!¹)ÑCØ�q˜‘t˜b‘y QÑ&Ñ&ñ'Ø)+¨a°©d°a©i©ñ8Ø:;¸aÀ¹dÀa¹i¹-ñHØJKØñKØñKñð �a˜‘d‘(˜Q˜q™T‘/ñ"ð %'¨¨1©¡Iñ.ð 12°A°a±D±ñ9ð 	r   c                 ón   — d| d   dz  z  d| d   dz  z  z   | d   z   d| d   dz  z  z   d| d   z  z   dz
   S )Nr4   r   re   r5   rd   rb   é   r#   r@   s    r   rV   zStructTest4.g1£   s^   € Ø�Q�q‘T˜Q‘Y‘  Q q¡T¨Q¡Y¡Ñ.°°1±Ñ5¸¸A¸a¹DÀA¹I¹ÑEØ�q˜‘t‘8ñØ!ñ"ð #ð 	#r   c                 ó\   — d| d   z  d| d   z  z   d| d   dz  z  z   | d   z   | d   z
  dz
   S )	Nrg   r   re   r5   ra   r4   rd   g      q@r#   r@   s    r   rX   zStructTest4.g2§   sH   € Ø�Q�q‘T‘˜A  !¡™HÑ$ r¨A¨a©D°A©I¡~Ñ5¸¸!¹Ñ<¸qÀ¹tÑCÀeÑKÐLÐLr   c                 óV   — d| d   z  | d   dz  z   d| d   dz  z  z   d| d   z  z
  dz
   S )	Né   r   r5   r4   rC   rb   rh   éÄ   r#   r@   s    r   Úg3zStructTest4.g3ª   sC   € Ø�a˜‘d‘˜Q˜q™T Q™YÑ&¨¨Q¨q©T°Q©Y©Ñ6¸¸Q¸q¹T¹ÑAÀCÑGÐHÐHr   c                 ó†   — d| d   dz  z  | d   dz  z   d| d   z  | d   z  z
  d| d   dz  z  z   d| d   z  z   d| d   z  z
   S )	Nrd   r   r4   r5   re   rb   rf   rC   r#   r@   s    r   Úg4zStructTest4.g4­   sn   € Ø�Q�q‘T˜Q‘Y‘  1¡¨¡Ñ*¨Q°°1±©X¸¸!¹©_Ñ<¸qÀ1ÀQÁ4È1Á9¹}ÑLØ�q˜‘t‘8ñØ  1 Q¡4™iñ(ð )ð 	)r   N©r    r!   r"   rN   r8   rV   rX   ro   rq   r-   r/   r.   r#   r   r   r_   r_   ”   s<   „ ñòò#òMòIò)ð 
ˆR��RÐ€Aá˜AÓ�Dr   r_   )iöÿÿÿra   rg   )g¹ââ¨Ü¤@g$H¥ØÑ8ÿ?g„ßÍ	�Þ¿g0eà€v@gnÞ8)Ìûã¿g k_@/œð?g0g¶+ô�ù?gÙP{[
E…@c                   ó&   — e Zd Zd„ ZdZ ee«      Zy)ÚStructTest5c                 ó  — |d   dz    t        j                  t        j                  t        |d   dz  |d   dz   z   «      «      «      z  |d   t        j                  t        j                  t        |d   |d   dz   z
  «      «      «      z  z
  S ©Nr5   g     €G@r   ç       @©r>   rJ   ÚsqrtÚabsr6   s     r   r8   zStructTest5.f¾   s~   € à�‰d�T‰kˆNœ2Ÿ6™6¤"§'¡'¬#¨a°©d°3©h¸!¸A¹$À¹+Ñ.FÓ*GÓ"HÓIÑIØ�‰d”2—6‘6œ"Ÿ'™'¤# a¨¡d¨a°©d°T©kÑ&:Ó";Ó<Ó=Ñ=ñ>ð	
r   NrA   r#   r   r   rt   rt   ½   s   „ ò
ð 	€AÙ˜AÓ�Dr   rt   )i þÿÿi   gŽÎÆ ý�Àg      €@gøž™yµCy@)r   r   r   c                   ó*   — e Zd ZdZd„ ZdZ ee«      Zy)ÚStructTestLJzZ
    LennardJones objective function. Used to test symmetry constraints
    settings.
    c                 ó€  — t        d|› �«       |d   | _        t        | j                  dz  «      }d}t        |dz
  «      D ]z  }t        |dz   |«      D ]f  }d|z  }d|z  }||   ||   z
  }	||dz      ||dz      z
  }
||dz      ||dz      z
  }|	|	z  |
|
z  z   ||z  z   }||z  |z  }|dkD  sŒY|d|z  dz
  |z  z  }Œh Œ| |S )	Nzx = r   re   ç        r5   r4   ç      ð?rw   )ÚprintÚNÚintÚrange)r   r7   ÚargsÚkÚsÚiÚjÚaÚbÚxdÚydÚzdÚedÚuds                 r   r8   zStructTestLJ.fÓ   s  € Ü��Q�CˆjÔØ�a‘ˆŒÜ�—‘˜‘
‹OˆØˆä�q˜1‘u“ò 
	/ˆAÜ˜1˜q™5 !“_ò 	/�Ø˜‘E�Ø˜‘E�Ø�q‘T˜A˜a™D‘[�Ø�q˜1‘u‘X  ! a¡%¡Ñ(�Ø�q˜1‘u‘X  ! a¡%¡Ñ(�Ø˜"‘W˜r B™wÑ&¨¨b©Ñ0�Ø˜"‘W˜r‘\�Ø˜“8Ø˜# ™( S™.¨BÑ.Ñ.‘Añ	/ð
	/ð ˆr   NrM   r#   r   r   r|   r|   Í   s   „ ñò
ð( 	€AÙ˜AÓ�Dr   r|   rC   g      Àç      @ç      ð¿c                   ó&   — e Zd Zd„ ZdZ ee«      Zy)ÚStructTestSc                 ó`   — |d   dz
  dz  |d   dz
  dz  z   |d   dz
  dz  z   |d   dz
  dz  z   S )Nr   ç      à?r4   r5   re   r#   r6   s     r   r8   zStructTestS.fû   sS   € Ø�1‘˜‘ Ñ! Q q¡T¨C¡Z°AÑ$5Ñ5Ø�Q‘4˜#‘: !Ñ#ñ$Ø'(¨¡t¨c¡z°aÑ&7ñ8ð 	9r   NrA   r#   r   r   r“   r“   ú   s   „ ò9ð 	€AÙ˜AÓ�Dr   r“   )r   rw   rd   r~   r•   c                   ó&   — e Zd Zd„ ZdZ ee«      Zy)ÚStructTestTablec                 ó&   — |d   dk(  r	|d   dk(  ryy)Nr   ç      @r5   r\   éd   r#   r6   s     r   r8   zStructTestTable.f
  s   € ØˆQ‰4�3Š;˜1˜Q™4 3š;Øàr   NrA   r#   r   r   r—   r—   	  s   „ òð 	€AÙ˜AÓ�Dr   r—   r\   r™   c                   óJ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZeeeefZ	 e
e	«      Zy)ÚStructTestInfeasiblez0
    Test function with no feasible domain.
    c                 ó$   — |d   dz  |d   dz  z   S r3   r#   )r   r7   r„   s      r   r8   zStructTestInfeasible.f  r9   r   c                 ó   — | d   | d   z   dz
  S ©Nr   r5   r#   r@   s    r   rV   zStructTestInfeasible.g1!  s   € Ø�‰t�a˜‘d‰{˜Q‰Ðr   c                 ó    — | d   | d   z   dz
   S rŸ   r#   r@   s    r   rX   zStructTestInfeasible.g2$  s   € Ø�1‘˜˜!™‘˜q‘Ð!Ð!r   c                 ó    — | d    | d   z   dz
  S rŸ   r#   r@   s    r   ro   zStructTestInfeasible.g3'  s   € Ø�!‘ˆu�q˜‘t‰|˜aÑÐr   c                 ó"   — | d    | d   z   dz
   S rŸ   r#   r@   s    r   rq   zStructTestInfeasible.g4*  s   € Ø�A‘$�˜˜1™‘ Ñ!Ð"Ð"r   Nrr   r#   r   r   rœ   rœ     s:   „ ñò%òò"ò ò#ð 
ˆR��RÐ€AÙ˜AÓ�Dr   rœ   )rB   r5   ú
Not a testc
                 óÊ  — t        | j                  | j                  || j                  |||||||	¬«      }
t	        d|
› �«       t        j                  d|
› �«       | j                  �7t        j                  j                  |
j                  | j                  ||¬«       | j                  �6t        j                  j                  |
j                  | j                  |¬«       | j                  �6t        j                  j                  |
j                  | j                  |¬«       | j                   �6t        j                  j                  |
j"                  | j                   |¬«       y )N)	r„   ÚconstraintsÚnÚitersÚcallbackÚminimizer_kwargsÚoptionsÚsampling_methodÚworkerszres = ©ÚrtolÚatol©r¯   )r   r8   r   r.   r€   ÚloggingÚinfor   r>   Útestingr   r7   r   r(   r   Úxlr   Úfunl)Útestr„   Ú	test_atolr¦   r§   r¨   r©   rª   r«   r¬   Úress              r   Úrun_testr¹   7  s3  € ô ˆt�v‰v�t—{‘{¨¸4¿9¹9Ø˜%¨(Ø 0¸'Ø.¸ôA€Cô
 
ˆF�3�%ˆ.ÔÜ‡L�L�6˜#˜�Ô Ø‡�Ð"Ü
�
‰
×"Ñ" 3§5¡5¨$¯/©/Ø(1Ø(1ð 	#ô 	3ð
 ×ÑÐ$Ü
�
‰
×"Ñ" 3§7¡7Ø#'×#4Ñ#4Ø(1ð 	#ô 	3ð ×ÑÐ#Ü
�
‰
×"Ñ" 3§6¡6Ø#'×#3Ñ#3Ø(1ð 	#ô 	3ð ×ÑÐ%Ü
�
‰
×"Ñ" 3§8¡8Ø#'×#5Ñ#5Ø(1ð 	#ô 	3ð r   c                   óx   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d„ «       Zd	„ Zd
„ Zy)ÚTestShgoSobolTestFunctionsz8
    Global optimisation tests with Sobol sampling:
    c                 ó"   — t        t        «       y)úVMultivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]N©r¹   Útest1_1©r   s    r   Útest_f1_1_sobolz*TestShgoSobolTestFunctions.test_f1_1_sobol`  ó   € ô 	”Õr   c                 ó"   — t        t        «       y)zUMultivariate test function 1:
         x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]N©r¹   Útest1_2rÀ   s    r   Útest_f1_2_sobolz*TestShgoSobolTestFunctions.test_f1_2_sobole  rÂ   r   c                 ó.   — ddi}t        t        |¬«       y)z_Multivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(None, None),(None, None)]ÚdispT)rª   N©r¹   Útest1_3©r   rª   s     r   Útest_f1_3_sobolz*TestShgoSobolTestFunctions.test_f1_3_sobolj  s   € ð ˜4�.ˆÜ” 'Ö*r   c                 ó"   — t        t        «       y)úRUnivariate test function on
        f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]N©r¹   Útest2_1rÀ   s    r   Útest_f2_1_sobolz*TestShgoSobolTestFunctions.test_f2_1_sobolp  rÂ   r   c                 ó"   — t        t        «       y)úNUnivariate test function on
        f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]N©r¹   Útest2_2rÀ   s    r   Útest_f2_2_sobolz*TestShgoSobolTestFunctions.test_f2_2_sobolu  rÂ   r   c                 ó"   — t        t        «       y)ú%NLP: Hock and Schittkowski problem 18N©r¹   Útest3_1rÀ   s    r   Útest_f3_sobolz(TestShgoSobolTestFunctions.test_f3_sobolz  s
   € ä”Õr   c                 ó0   — ddi}t        t        d|¬«       y)ú?NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)Úinfty_constraintsFi¼  ©r¦   rª   N©r¹   Útest4_1rË   s     r   Útest_f4_sobolz(TestShgoSobolTestFunctions.test_f4_sobol~  s   € ð '¨Ð.ˆä”˜G¨WÖ5r   c                 ó&   — t        t        d¬«       y)úNLP: Eggholder, multimodalrO   )r¦   N©r¹   Útest5_1rÀ   s    r   Útest_f5_1_sobolz*TestShgoSobolTestFunctions.test_f5_1_sobol…  s   € ô 	”˜BÖr   c                 ó(   — t        t        dd¬«       y)rä   rO   rb   )r¦   r§   Nrå   rÀ   s    r   Útest_f5_2_sobolz*TestShgoSobolTestFunctions.test_f5_2_sobolŠ  s   € ô 	”˜B aÖ(r   N)r    r!   r"   rN   rÁ   rÆ   rÌ   rÑ   rÖ   rÛ   ÚpytestÚmarkÚslowrâ   rç   ré   r#   r   r   r»   r»   Z  sM   „ ñò
ò
ò
+òò
ò
ð ‡[�[×Ññ6ó ð6ò ó
)r   r»   c                   óD  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d„ «       Zd	„ Zd
„ Zd„ Ze
j                  j#                  d«      d„ «       Ze
j                  j'                  d«      d„ «       Ze
j                  j'                  d«      d„ «       Zy)ÚTestShgoSimplicialTestFunctionsz=
    Global optimisation tests with Simplicial sampling:
    c                 ó(   — t        t        dd¬«       y)r½   r5   Ú
simplicial©r¦   r«   Nr¾   rÀ   s    r   Útest_f1_1_simplicialz4TestShgoSimplicialTestFunctions.test_f1_1_simplicial™  ó   € ô 	”˜A¨|Ö<r   c                 ó(   — t        t        dd¬«       y)zTMultivariate test function 1:
        x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]r5   rð   rñ   NrÄ   rÀ   s    r   Útest_f1_2_simplicialz4TestShgoSimplicialTestFunctions.test_f1_2_simplicialž  ró   r   c                 ó(   — t        t        dd¬«       y)z_Multivariate test function 1: x[0]**2 + x[1]**2
        with bounds=[(None, None),(None, None)]rb   rð   rñ   NrÉ   rÀ   s    r   Útest_f1_3_simplicialz4TestShgoSimplicialTestFunctions.test_f1_3_simplicial£  ró   r   c                 ó4   — ddi}t        t        dd|d¬«       y)rÎ   Úminimize_every_iterFéÈ   rg   rð   ©r¦   r§   rª   r«   NrÏ   rË   s     r   Útest_f2_1_simplicialz4TestShgoSimplicialTestFunctions.test_f2_1_simplicial¨  s!   € ð )¨%Ð0ˆÜ”˜C q°'Ø!-ö	/r   c                 ó(   — t        t        dd¬«       y)rÓ   r5   rð   rñ   NrÔ   rÀ   s    r   Útest_f2_2_simplicialz4TestShgoSimplicialTestFunctions.test_f2_2_simplicial¯  ró   r   c                 ó(   — t        t        dd¬«       y)rØ   r5   rð   rñ   NrÙ   rÀ   s    r   Útest_f3_simplicialz2TestShgoSimplicialTestFunctions.test_f3_simplicial´  s   € ä”˜A¨|Ö<r   c                 ó(   — t        t        dd¬«       y)rÝ   r5   rð   rñ   Nrà   rÀ   s    r   Útest_f4_simplicialz2TestShgoSimplicialTestFunctions.test_f4_simplicial¸  ró   r   c                 ó<   — dddœ}d}t        t        |d|dd¬«       y)	z&LJ: Symmetry-constrained test functionT©ÚsymmetryrÈ   ©rC   é,  r5   rð   ©r„   r¦   rª   r§   r«   N©r¹   ÚtestLJ©r   rª   r„   s      r   Útest_lj_symmetry_oldz4TestShgoSimplicialTestFunctions.test_lj_symmetry_old½  s*   € à#Øñ!ˆàˆÜ”˜d cØ ¨Ø!-ö	/r   c                 óD   — dgdz  ddœ}d}t        t        |d|dd¬	«       y
)z&LJ: Symmetry constrained test functionr   rC   Tr  r  r  r5   rð   r  Nr	  r  s      r   Útest_f5_1_lj_symmetryz5TestShgoSimplicialTestFunctions.test_f5_1_lj_symmetryÆ  s0   € à !˜u q™yØñ!ˆàˆä”˜d cØ ¨Ø!-ö	/r   c                 ó:   — ddgddœ}t        t        d|dd¬«       y)	z"Symmetry constrained test functionr   Tr  rú   r5   rð   ©r¦   rª   r§   r«   Nr¾   rË   s     r   Útest_f5_2_cons_symmetryz7TestShgoSimplicialTestFunctions.test_f5_2_cons_symmetryÐ  s)   € à ! 1˜vØñ!ˆô 	”˜CØ ¨Ø!-ö	/r   ra   c                 ó:   — g d¢ddœ}t        t        d|dd¬«       y)	z(Asymmetrically constrained test function)r   r   r   re   Tr  i'  r5   rð   r  N)r¹   Útest_srË   s     r   Útest_f5_3_cons_symmetryz7TestShgoSimplicialTestFunctions.test_f5_3_cons_symmetryÙ  s(   € ò  ,Øñ!ˆô 	”˜5Ø ØØ!-ö	/r   r£   c                 óÒ   ‡— dŠdˆfd„dœ}t        t        j                  ddgz  |¬«      }|j                  sJ ‚t	        |j
                  dd	¬
«       t	        |j                  d«       y)zOReturn a minimum on a perfectly symmetric problem, based on
            gh10429r•   Úeqc                 ó4   •— t        j                  | «      ‰z
  S r   )r>   Úmean)r7   Úavgs    €r   ú<lambda>zFTestShgoSimplicialTestFunctions.test_f0_min_variance.<locals>.<lambda>é  s   ø€ ¬r¯w©w°q«z¸CÑ/?€ r   r&   rC   rD   ©r   r¥   r   çVçž¯Ò<r°   N)r   r>   ÚvarÚsuccessr   r(   r7   )r   r.   r¸   r  s      @r   Útest_f0_min_variancez4TestShgoSimplicialTestFunctions.test_f0_min_varianceä  sY   ø€ ð ˆØÓ%?Ñ@ˆô ”2—6‘6 ! v h¡,¸DÔAˆØ�{Š{Ðˆ{Ü˜Ÿ™ ¨Õ/Ü˜Ÿ™˜sÕ#r   c                 óê   — d„ }dg}t        ||¬«      }t        ||d   ¬«      }|j                  sJ ‚t        |j                  |j                  «       t        |j
                  |j
                  d¬«       y)zRReturn a minimum on a perfectly symmetric 1D problem, based on
            gh10538c                 ó   — | | dz
  z  | dz
  z  S )Nr   r•   r#   r@   s    r   r(   zDTestShgoSimplicialTestFunctions.test_f0_min_variance_1D.<locals>.funö  s   € Ø˜˜C™‘= A¨¡GÑ,Ð,r   rD   )r   r   ç�íµ ÷Æ°>)r®   N)r   r
   r  r   r(   r7   )r   r(   r   r¸   Úrefs        r   Útest_f0_min_variance_1Dz7TestShgoSimplicialTestFunctions.test_f0_min_variance_1Dñ  s^   € ò
	-ð �ˆÜ�3˜vÔ&ˆÜ˜c¨&°©)Ô4ˆØ�{Š{Ðˆ{Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™u¨4Ö0r   N)r    r!   r"   rN   rò   rõ   r÷   rü   rþ   r   rê   rë   rì   r  r  r  r  Ú	fail_slowr  Úskipr  r$  r#   r   r   rî   rî   ”  s»   „ ñò=ò
=ò
=ò
/ò=ò
=ð ‡[�[×Ññ=ó ð=ò/ò/ò/ð ‡[�[×Ñ˜2Óñ/ó ð/ð ‡[�[×Ñ�lÓ#ñ
$ó $ð
$ð ‡[�[×Ñ�lÓ#ñ1ó $ñ1r   rî   c                   óZ  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d„ «       Ze
j                  j                  d	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze
j                  j3                  exr ej8                  dk(  d¬«      d„ «       Zd„ Ze
j                  j?                  d¬«      d„ «       Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d „ Z&e
j                  jO                  d!«      d"„ «       Z(d#„ Z)d$„ Z*e
j                  jW                  d%g d&¢«      d'„ «       Z,d(„ Z-d)„ Z.y*)+ÚTestShgoArgumentsc                 ó*   — t        t        ddd¬«       y)z>Iterative simplicial sampling on TestFunction 1 (multivariate)Nr4   rð   ©r¦   r§   r«   rÄ   rÀ   s    r   Útest_1_1_simpl_iterz%TestShgoArguments.test_1_1_simpl_iter  s   € ä”˜D¨¸<ÖHr   c                 ó4   — ddi}t        t        dd|d¬«       y)z3Iterative simplicial on TestFunction 2 (univariate)rù   FNé	   rð   rû   rÏ   rË   s     r   Útest_1_2_simpl_iterz%TestShgoArguments.test_1_2_simpl_iter  s   € à(¨%Ð0ˆÜ”˜D¨°7Ø!-ö	/r   c                 ó*   — t        t        ddd¬«       y)z9Iterative Sobol sampling on TestFunction 1 (multivariate)Nr5   Úsobolr*  rÄ   rÀ   s    r   Útest_2_1_sobol_iterz%TestShgoArguments.test_2_1_sobol_iter  s   € ä”˜D¨¸7ÖCr   c                 ód  — t        t        j                  t        j                  t        j                  ddd¬«      }t
        j                  j                  |j                  t        j                  dd¬«       t
        j                  j                  |j                  t        j                  d¬«       y)z7Iterative Sobol sampling on TestFunction 2 (univariate)Nr5   r0  )r¥   r¦   r§   r«   çñhãˆµøä>r­   r°   )r   rÐ   r8   r   r.   r>   r³   r   r7   r   r(   r   ©r   r¸   s     r   Útest_2_2_sobol_iterz%TestShgoArguments.test_2_2_sobol_iter  so   € ä”7—9‘9œgŸn™n¼'¿,¹,Ø °Gô=ˆô 	�
‰
×"Ñ" 3§5¡5¬'×*<Ñ*<À4ÈdÐ"ÔSÜ
�
‰
×"Ñ" 3§7¡7¬G×,@Ñ,@ÀtÐ"ÕLr   c           
      óÈ   — d„ }t         t        fD ]P  }t        |j                  |j                  dd|ddi¬«       t        |j                  |j                  dd|ddi¬«       ŒR y)	zKIterative sampling on TestFunction 1 and 2  (multi and univariate)
        c                 ó   — t        d«       y ©Nz Local minimization callback test©r€   r@   s    r   Úcallback_funczATestShgoArguments.test_3_1_disp_simplicial.<locals>.callback_func  ó   € ÜÐ4Õ5r   r5   rð   rÈ   T©r§   r«   r¨   rª   ©r¦   r«   r¨   rª   N©r¿   rÐ   r   r8   r   ©r   r:  r¶   s      r   Útest_3_1_disp_simplicialz*TestShgoArguments.test_3_1_disp_simplicial  sf   € ò	6ô œgÐ&ò 	AˆDÜ�—‘˜Ÿ™¨AØ!-Ø'°&¸$°õAô �—‘˜Ÿ™¨¸<Ø'°&¸$°öAñ		Ar   c           
      óÈ   — d„ }t         t        fD ]P  }t        |j                  |j                  dd|ddi¬«       t        |j                  |j                  dd|ddi¬«       ŒR y	)
zAIterative sampling on TestFunction 1 and 2 (multi and univariate)c                 ó   — t        d«       y r8  r9  r@   s    r   r:  z<TestShgoArguments.test_3_2_disp_sobol.<locals>.callback_func)  r;  r   r5   r0  rÈ   Tr<  rð   r=  Nr>  r?  s      r   Útest_3_2_disp_sobolz%TestShgoArguments.test_3_2_disp_sobol&  se   € ò	6ô œgÐ&ò 	AˆDÜ�—‘˜Ÿ™¨A¸wØ'°&¸$°õAô �—‘˜Ÿ™¨¸<Ø'°&¸$°öAñ		Ar   c                 óÂ   — t        d„ dgd¬«      }t        d„ dg¬«      }t        |j                  |j                  «       t        |j                  |j                  «       y)zMUsing `args` used to cause `shgo` to fail; see #14589, #15986,
        #16506c                 ó   — | |z  |z   S r   r#   )r7   ÚyÚzs      r   r  z5TestShgoArguments.test_args_gh14589.<locals>.<lambda>6  s   € ¨¨A©°©	€ r   )r   re   )r5   r4   )Úfuncr   r„   c                 ó   — d| z  dz   S )Nr4   r5   r#   r@   s    r   r  z5TestShgoArguments.test_args_gh14589.<locals>.<lambda>8  s   €  ! a¡%¨!¡)€ r   )rH  r   N)r   r   r(   r7   )r   r¸   r#  s      r   Útest_args_gh14589z#TestShgoArguments.test_args_gh145893  sJ   € ô Ñ1¸6¸(Èô ˆäÑ+°V°HÔ=ˆÜ˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™uÕ%r   c                 óT   — t         j                  dddœ}t        t         dd|d¬«       y)z,Test known function minima stopping criteriar"  T)Úf_minÚf_tolrù   Nr3  rð   ©r¦   r·   rª   r«   ©rá   r   r¹   rË   s     r   Útest_4_1_known_f_minz&TestShgoArguments.test_4_1_known_f_min<  s/   € ô $×0Ñ0Ø Ø*.ñ0ˆô 	”˜D¨D¸'Ø!-ö	/r   c                 óV   — t         j                  ddddœ}t        t         dd|d¬«       y)	z+Test Global mode limiting local evaluationsr"  Tr5   )rL  rM  rù   Ú
local_iterNr3  rð   rN  rO  rË   s     r   Útest_4_2_known_f_minz&TestShgoArguments.test_4_2_known_f_minG  s2   € ô ×)Ñ)Øà#'Øñˆô 	”˜D¨D¸'Ø!-ö	/r   c           	      ó  — t         j                  dddddœ}t        t         j                  t         j                  t         j
                  dd|d¬«      }t        j                  j                  |j                  t         j                  d	d	¬
«       y)z8Test Global mode limiting local evaluations for 1D funcsr"  Tr5   F©rL  rM  rù   rR  rÞ   Nr0  ©r¥   r¦   r§   rª   r«   r3  r­   )rÐ   r   r   r8   r   r.   r>   r³   r   r7   r   ©r   rª   r¸   s      r   Útest_4_4_known_f_minz&TestShgoArguments.test_4_4_known_f_minT  so   € ô ×)Ñ)Øà#'ØØ!&ñ(ˆô ”7—9‘9œgŸn™n¼'¿,¹,Ø ¨wØ#*ô,ˆô 	�
‰
×"Ñ" 3§5¡5¬'×*<Ñ*<À4ÈdÐ"ÕSr   c                 óê   — t        t        j                  t        j                  t        j                  ¬«      }t
        j                  j                  |j                  t        j                  dd¬«       y)z;Test Default simplicial sampling settings on TestFunction 1©r¥   r3  r­   N©
r   r¿   r8   r   r.   r>   r³   r   r7   r   r4  s     r   Útest_5_1_simplicial_arglessz-TestShgoArguments.test_5_1_simplicial_arglessc  sA   € ä”7—9‘9œgŸn™n¼'¿,¹,ÔGˆÜ
�
‰
×"Ñ" 3§5¡5¬'×*<Ñ*<À4ÈdÐ"ÕSr   c                 óì   — t        t        j                  t        j                  t        j                  d¬«      }t
        j                  j                  |j                  t        j                  dd¬«       y)z6Test Default sobol sampling settings on TestFunction 1r0  ©r¥   r«   r3  r­   Nr[  r4  s     r   Útest_5_2_sobol_arglessz(TestShgoArguments.test_5_2_sobol_arglessh  sF   € ä”7—9‘9œgŸn™n¼'¿,¹,Ø#*ô,ˆä
�
‰
×"Ñ" 3§5¡5¬'×*<Ñ*<À4ÈdÐ"ÕSr   c                 ój  — ddi}t        t        j                  t        j                  t        j                  |d¬«      }t
        j                  j                  |j                  t        j                  dd¬«       t
        j                  j                  |j                  t        j                  d¬«       y)	ú:Test that maximum iteration option works on TestFunction 3Úmax_iterr4   rð   ©r¥   rª   r«   r3  r­   r°   N©r   rÚ   r8   r   r.   r>   r³   r   r7   r   r(   r   rW  s      r   Útest_6_1_simplicial_max_iterz.TestShgoArguments.test_6_1_simplicial_max_itern  óu   € à˜q�/ˆÜ”7—9‘9œgŸn™n¼'¿,¹,Ø"°LôBˆä
�
‰
×"Ñ" 3§5¡5¬'×*<Ñ*<À4ÈdÐ"ÔSÜ
�
‰
×"Ñ" 3§7¡7¬G×,@Ñ,@ÀtÐ"ÕLr   c                 ój  — ddi}t        t        j                  t        j                  t        j                  |d¬«      }t
        j                  j                  |j                  t        j                  dd¬«       t
        j                  j                  |j                  t        j                  d¬«       y)	ra  Úmin_iterr4   rð   rc  r3  r­   r°   Nrd  rW  s      r   Útest_6_2_simplicial_min_iterz.TestShgoArguments.test_6_2_simplicial_min_iterv  rf  r   c                 ó`   — dD ])  }|t         j                  dœ}t        t         dd|d¬«       Œ+ y)z@Test the minimizer_kwargs arguments for solvers with constraints)ÚCOBYLAÚCOBYQAÚSLSQP)Úmethodr¥   rš   çü©ñÒMbP?r0  ©r¦   r·   r©   r«   N)rÚ   r.   r¹   )r   Úsolverr©   s      r   Útest_7_1_minkwargsz$TestShgoArguments.test_7_1_minkwargs~  s;   € ð 4ò 	.ˆFð +1Ü/6¯|©|ñ =Ðä”W ¨tØ&6Ø%,ö.ñ	.r   c                 óŽ   — ddi}ddi}t        t        j                  t        j                  t        j                  d   ||¬«       y)z'Test the minimizer_kwargs default initsÚftolr3  rÈ   Tr   )r¥   r©   rª   N©r   rÚ   r8   r   r.   )r   r©   rª   s      r   Útest_7_2_minkwargsz$TestShgoArguments.test_7_2_minkwargsŠ  s9   € à" D˜>ÐØ˜4�.ˆÜŒW�Y‰YœŸ™´G·L±LÀ±OØ.¸ö	Ar   c                 ó¬   — dD ]O  }d„ }d„ }|||dœ}t        j                  d|› �«       t        j                  d«       t        t        dd|d	¬
«       ŒQ y)z?Test minimizer_kwargs arguments for solvers without constraints)zNelder-MeadÚPowellÚCGÚBFGSú	Newton-CGzL-BFGS-BÚTNCÚdoglegz	trust-ncgztrust-exactztrust-krylovc                 ó\   — t        j                  d| d   z  d| d   z  g«      j                  S )Nr4   r   r5   )r>   ÚarrayÚTr@   s    r   Újacz1TestShgoArguments.test_7_3_minkwargs.<locals>.jac–  s,   € Ü—x‘x  Q q¡T¡¨1¨q°©t©8Ð 4Ó5×7Ñ7Ð7r   c                 ó8   — t        j                  ddgddgg«      S ©Nr4   r   )r>   r  r@   s    r   Úhessz2TestShgoArguments.test_7_3_minkwargs.<locals>.hess™  s   € Ü—x‘x ! Q ¨!¨Q¨Ð 0Ó1Ð1r   )rn  r�  r„  z	Solver = zd====================================================================================================rš   ro  r0  rp  N)r±   r²   r¹   r¿   )r   rq  r�  r„  r©   s        r   Útest_7_3_minkwargsz$TestShgoArguments.test_7_3_minkwargs‘  se   € ð'ò 	.ˆFò8ò2ð +1Ø'*Ø(,ñ .Ðô �L‰L˜9 V HÐ-Ô.Ü�L‰L˜Ô#Ü”W ¨tØ&6Ø%,ö.ñ	.r   c                 ó6   — dddœ}t        t        d d |d¬«       y )Nr5   T)Úminhgrdrù   rð   rû   r¾   rË   s     r   Útest_8_homology_group_diffz,TestShgoArguments.test_8_homology_group_diff¥  s$   € ØØ*.ñ0ˆô 	”˜D¨°gØ!-ö	/r   c                 óz   — t        t        j                  t        j                  t        j                  d   ¬«       y)ú'Test single function constraint passingr   rZ  Nru  rÀ   s    r   Útest_9_cons_gzTestShgoArguments.test_9_cons_g¬  s   € äŒW�Y‰YœŸ™´G·L±LÀ±OÖDr   Úwin32z2Failing and fix in PyPy not planned (see gh-18632))Úreasonc                 ón   — ddi}d„ }t        |t        j                  d|¬«      }|j                  dk(  sJ ‚y)rŠ  Úmaxtimer  c                 ó.   — t        j                  d«       y)Ng›+¡†›„=r~   )ÚtimeÚsleepr@   s    r   r8   z0TestShgoArguments.test_10_finite_time.<locals>.f¶  s   € Ü�J‰J�uÔØr   rb   )r§   rª   r5   N)r   r¿   r   Únit)r   rª   r8   r¸   s       r   Útest_10_finite_timez%TestShgoArguments.test_10_finite_time°  s9   € ð ˜eÐ$ˆò	ô �1”g—n‘n¨A°wÔ?ˆà�w‰w˜!Š|Ð‰|r   c                 ó  — dddœ}t        t        j                  t        j                  dd|d¬«      }t        j
                  j                  d|j                  d   «       t        j
                  j                  d|j                  d	   «       y)
ú*Test to cover the case where f_lowest == 0r~   T)rL  rÈ   ra   Nr0  rû   r   r5   )r   rÅ   r8   r   r>   r³   Úassert_equalr7   rW  s      r   Útest_11_f_min_0z!TestShgoArguments.test_11_f_min_0¾  sf   € àØñ!ˆä”7—9‘9œgŸn™n°¸$Ø"°Gô=ˆä
�
‰
×Ñ  3§5¡5¨¡8Ô,Ü
�
‰
×Ñ  3§5¡5¨¡8Õ,r   z no way of currently testing thisc                 ó¼   — dddœ}t        t        j                  t        j                  dd|d¬«      }t        j
                  j                  d|j                  «       y)r–  r  r~   )r�  rL  r5   Nr0  rû   )r   rÅ   r8   r   r>   r³   r—  r(   rW  s      r   Útest_12_sobol_inf_consz(TestShgoArguments.test_12_sobol_inf_consÈ  sH   € ð $Øñ!ˆä”7—9‘9œgŸn™n°¸Ø"°Gô=ˆä
�
‰
×Ñ  S§W¡WÕ-r   c                 óV   — d„ }dgdz  }t        ||d¬«      }|j                  dd«       y)	z-Test init of high-dimensional sobol sequencesc                  ó   — y©Nr   r#   r@   s    r   r8   z/TestShgoArguments.test_13_high_sobol.<locals>.f×  ó   € Ør   rE   é)   r0  ©r«   r4   r\   N)r   Úsampling_function)r   r8   r   ÚSHGOcs       r   Útest_13_high_sobolz$TestShgoArguments.test_13_high_sobolÔ  s4   € ò	ð Ð! BÑ&ˆÜ�Q˜°Ô8ˆà×Ñ  2Õ&r   c                 ó0   — ddi}t        t        d|¬«       y)z6Test limited local iterations for a pseudo-global moderR  rd   rO   rß   Nrå   rË   s     r   Útest_14_local_iterz$TestShgoArguments.test_14_local_iterß  s   € à Ð#ˆÜ”˜B¨Ö0r   c                 ó4   — ddi}t        t        dd|d¬«       y)z9Test minimize every iter options and cover function cacherù   Tr5   rg   r0  rû   Nr¾   rË   s     r   Útest_15_min_every_iterz(TestShgoArguments.test_15_min_every_iterä  s   € à(¨$Ð/ˆÜ”˜A Q°Ø!(ö	*r   c                 ó:   — ddi}ddi}t        t        d||¬«       y)z:Test disp=True with minimizers that do not support bounds rÈ   Trn  znelder-meadrð   )r«   rª   r©   NrÄ   )r   Úcapsysrª   r©   s       r   Útest_16_disp_bounds_minimizerz/TestShgoArguments.test_16_disp_bounds_minimizerê  s)   € à˜4�.ˆØ$ mÐ4ÐÜ”¨,Ø Ð3Cö	Er   c                 ó.   — d„ }t        t        d|¬«       y)ú=Test the functionality to add custom sampling methods to shgoc                 óF   — t         j                  j                  | |f¬«      S )N)Úsize)r>   ÚrandomÚuniform)r¦   Úds     r   Úsamplez9TestShgoArguments.test_17_custom_sampling.<locals>.sampleô  s   € Ü—9‘9×$Ñ$¨1¨a¨&Ð$Ó1Ð1r   rI   rñ   Nr¾   )r   r²  s     r   Útest_17_custom_samplingz)TestShgoArguments.test_17_custom_samplingñ  s   € ò	2ô 	”˜B°Ö7r   c                 ó  — d„ }g d¢}g d¢}t        t        ||«      «      }t        ||«      }t        ||«      }t        ||«      }|j                  |j                  k(  sJ ‚|j
                  |j
                  k(  sJ ‚|j                  |j                  k(  sJ ‚t        j                  g d¢«      }t        j                  j                  |j                  |«       t        j                  j                  |j                  |j                  «       y )Nc                 óH   — t        j                  | «      j                  «       S r   )r>   Úsquarer?   r@   s    r   r8   z1TestShgoArguments.test_18_bounds_class.<locals>.fû  s   € Ü—9‘9˜Q“<×#Ñ#Ó%Ð%r   )g      Àr   g      À)r‘   r™   r]   )r‘   r   r~   )r+   Úzipr	   r   ÚnfevÚmessager  r>   r  r³   r   r7   )	r   r8   ÚlbÚubÚ
bounds_oldÚ
bounds_newÚres_old_boundsÚres_new_boundsÚx_opts	            r   Útest_18_bounds_classz&TestShgoArguments.test_18_bounds_classù  sÜ   € ò	&ò ˆÚˆÜœ#˜b "›+Ó&ˆ
Ü˜B “^ˆ
ä˜a Ó,ˆÜ˜a Ó,ˆà×"Ñ" n×&9Ñ&9Ò9Ð9Ð9Ø×%Ñ%¨×)?Ñ)?Ò?Ð?Ð?Ø×%Ñ%¨×)?Ñ)?Ò?Ð?Ð?Ü—‘šÓ'ˆÜ
�
‰
×"Ñ" >×#3Ñ#3°UÔ;Ü
�
‰
×"Ñ" >×#3Ñ#3°^×5EÑ5EÕFr   ra   c                 óL  — t        d«      5 }t        t        d|j                  ¬«       ddd«       t        t        dt        ¬«       t        d«      5 }t        t        d|j                  ¬«       ddd«       t        t        dt        ¬«       y# 1 sw Y   ŒfxY w# 1 sw Y   Œ,xY w)r¬  r4   rI   )r¦   r¬   N)r   r¹   r¿   Úmapr  )r   Úps     r   Útest_19_parallelizationz)TestShgoArguments.test_19_parallelization  sx   € ô �!‹Wð 	3˜Ü”W ¨A¯E©EÕ2÷	3ä”˜B¬Õ,Ü�!‹Wð 	2˜Ü”V˜r¨1¯5©5Õ1÷	2ä”˜2¤sÖ+÷	3ð 	3ú÷	2ð 	2ús   ŒBÁBÂBÂB#c                 óŽ   — d„ }d„ }dgdz  }d„ }d„ }d„ }d|d	d
œd|dœd|dœf}t        ||dd|¬«       t        ||dd|d¬«       y)z0Test that constraints can be passed to argumentsc                 ó  — | d   dz    t        j                  t        j                  t        | d   dz  | d   dz   z   «      «      «      z  | d   t        j                  t        j                  t        | d   | d   dz   z
  «      «      «      z  z
  S rv   rx   r@   s    r   Ú	eggholderz=TestShgoArguments.test_20_constrained_args.<locals>.eggholder  s   € à�A‘$˜‘+�œrŸv™v¤b§g¡g¬c°!°A±$¸±*ÀÀ!ÁÀtÁÑ2LÓ.MÓ&NÓOÑOØ�A‘$”r—v‘vœbŸg™g¤c¨!¨A©$°!°A±$¸±+Ñ*>Ó&?Ó@ÓAÑAñBðr   c                 óH   — d| d   z  d| d   z  z   d| d   z  z   d| d   z  z   S )	NgÍÌÌÌÌŒ8@r   g     À:@r5   é'   r4   g     @D@re   r#   r@   s    r   r8   z5TestShgoArguments.test_20_constrained_args.<locals>.f!  s7   € Ø˜1˜Q™4‘< %¨!¨A©$¡,Ñ.°°a¸±d±Ñ:¸UÀQÀqÁT¹\ÑIÐIr   ©r   r   rd   c                 óZ   — |dz  | d   z  |dz  | d   z  z   d| d   z  z   d| d   z  z   d	z
  S )
Ngffffff@r   gffffff@r5   g333333&@r4   gÍÌÌÌÌÌô?re   rb   r#   )r7   r‡   s     r   Úg1_modifiedz?TestShgoArguments.test_20_constrained_args.<locals>.g1_modified&  sT   € Ø�s‘7˜Q˜q™T‘> A¨¡G¨a°©d¡NÑ2°T¸A¸a¹D±[Ñ@À3ÈØñJñ Dñ Øñð r   c                 óÚ   — d| d   z  d| d   z  z   d| d   z  z   d| d   z  z   d	z
  d
t        j                  d| d   dz  z  d| d   dz  z  z   d| d   dz  z  z   d| d   dz  z  z   «      z  z
  S )Nrc   r   gÍÌÌÌÌÌ'@r5   gfffffæD@r4   gÍÌÌÌÌJ@re   é   gR¸…ëQú?gìQ¸…ëÑ?gR¸…ëQÈ?g     €4@g×£p=
×ã?)r>   ry   r@   s    r   rX   z6TestShgoArguments.test_20_constrained_args.<locals>.g2*  s˜   € à�1�Q‘4‘˜$˜q ™t™)Ñ# d¨1¨Q©4¡iÑ/°$°q¸±t±)Ñ;¸bÑ@ØœŸ™Ø˜˜1™˜q™‘L 4¨¨!©¨a©¡<Ñ/°$°q¸±t¸Q±w±,Ñ>ÀÀaÈÁdÈAÁgÁÑMóñ ñðr   c                 ó6   — | d   | d   z   | d   z   | d   z   dz
  S ©Nr   r5   r4   re   r#   r@   s    r   Úh1z6TestShgoArguments.test_20_constrained_args.<locals>.h12  s+   € Ø�Q‘4˜!˜A™$‘;  1¡Ñ%¨¨!©Ñ,¨qÑ0Ð0r   r%   )r   )r'   r(   r„   r&   r  r  r5   )r¦   r§   r¥   r0  )r¦   r§   r¥   r«   N)r   )r   rÈ  r8   r   rÍ  rX   rÒ  r.   s           r   Útest_20_constrained_argsz*TestShgoArguments.test_20_constrained_args  st   € ò	ò	Jð � Ñ!ˆò	ò	ò	1ð  ¨¸TÑBØ¨Ñ+Ø bÑ)ð+ˆô 	ˆQ�˜# Q°DÕ9äˆQ�˜# Q°DØ$ö	&r   c           
      óL  — d„ }t        |ddgddggddddd	d
œ¬«       d„ }ddgddgddgddgddgg}t        ||ddd	d
œ¬«      }t        |g d¢|d	¬«      }|j                  sJ ‚t        |j                  |j                  «       t        |j
                  |j
                  d¬«       y)z|Test that shgo can handle objective functions that return the
        gradient alongside the objective value. Fixes gh-13547c                 ó^   — t        j                  t        j                  | d«      «      d| z  fS ©Nr4   )r>   r?   Úpowerr@   s    r   rH  z2TestShgoArguments.test_21_1_jac_true.<locals>.funcB  s$   € Ü—6‘6œ"Ÿ(™( 1 a›.Ó)¨1¨q©5Ð0Ð0r   rB   r5   r4   rš   rb   r0  rm  T)rn  r�  )r   r¦   r§   r«   r©   c                 ó<   — t        j                  | dz  «      d| z  fS rÖ  r=   r@   s    r   rH  z2TestShgoArguments.test_21_1_jac_true.<locals>.funcN  s   € Ü—6‘6˜!˜q™&“> 1 q¡5Ð(Ð(r   r   re   )r   r«   r©   )r5   r5   r5   r5   r5   )Úx0r   r�  r  r°   N)r   r   r  r   r(   r7   )r   rH  r   r¸   r#  s        r   Útest_21_1_jac_truez$TestShgoArguments.test_21_1_jac_true>  s½   € ò	1ô 	ØØ˜�G˜a ˜VÐ$Ø˜Ø#Ø(/¸Ñ=õ	
ò	)ð �q�'˜A˜q˜6 B¨ 7¨Q°¨F°Q¸°FÐ;ˆä�4 ¸Ø/6¸tÑ$DôFˆä�t¢¸Øô!ˆà�{Š{Ðˆ{Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™u¨5Ö1r   Ú
derivative©r�  r„  Úhesspc                 ór  — d„ }d„ }d„ }d„ }|||dœ}|||   i}ddi}dg}	t        ||	||¬	«      }
t        |fd
g|	dœ|¤|¤Ž}|
j                  sJ ‚t        j                  j                  |
j                  |j                  «       t        j                  j                  |
j                  |j                  «       y)zzshgo used to raise an error when passing `options` with 'jac'
        # see gh-12963. check that this is resolved
        c                 ó6   — d| d   z  | d   z  d| d   z  z   dz   S )Nre   r   r4   rb   r#   r@   s    r   Ú	objectivezATestShgoArguments.test_21_2_derivative_options.<locals>.objectivea  s*   € Ø�q˜‘t‘8˜a ™d‘? Q¨¨1©¡XÑ-°Ñ1Ð1r   c                 ó   — d| d   z  dz   S )NrC   r   r4   r#   r@   s    r   Úgradientz@TestShgoArguments.test_21_2_derivative_options.<locals>.gradientd  s   € Ø�q˜‘t‘8˜a‘<Ðr   c                  ó   — y©NrC   r#   r@   s    r   r„  z<TestShgoArguments.test_21_2_derivative_options.<locals>.hessg  rž  r   c                 ó   — d|z  S rä  r#   )r7   rÄ  s     r   rÝ  z=TestShgoArguments.test_21_2_derivative_options.<locals>.hesspj  s   € Ø�q‘5ˆLr   rÜ  rn  útrust-constr)iœÿÿÿrš   ©r©   rª   r   )rÙ  r   N)r   r   r  r>   r³   r   r(   r7   )r   rÛ  rà  râ  r„  rÝ  Úderivative_funcsrª   r©   r   r¸   r#  s               r   Útest_21_2_derivative_optionsz.TestShgoArguments.test_21_2_derivative_options[  sÈ   € ò	2ò	 ò	ò	ð $,°TÀEÑJÐØÐ/°
Ñ;Ð<ˆØ$ nÐ5Ðà�ˆÜ�9˜fÐ7GØ"ô$ˆä�yð " a S°ñ "Ð;Kð "Ø ñ"ˆð �{Š{Ðˆ{Ü
�
‰
×"Ñ" 3§7¡7¨C¯G©GÔ4Ü
�
‰
×"Ñ" 3§5¡5¨#¯%©%Õ0r   c                 ó@  — g d¢}t         t        dœ}ddi}t        t        |||¬«      }t	        t        t        j                  d«      fddi|¤Ž}|j                  sJ ‚t        |j                  |j                  «       t        |j                  |j                  d¬«       y	)
zsEnsure the Hessian gets passed correctly to the local minimizer
        routine. Previous report gh-14533.
        )©r   gš™™™™™ù?rë  ©r   gffffffö?rì  rì  )r�  r„  rn  r{  rç  rb   r  r°   N)r   r   r   r   r   r>   Úzerosr  r   r(   r7   )r   r   rª   r©   r¸   r#  s         r   Útest_21_3_hess_options_rosenz.TestShgoArguments.test_21_3_hess_options_rosen{  sŠ   € ò DˆÜ#¬ZÑ8ˆØ$ kÐ2ÐÜ”5˜&Ð3CØ"ô$ˆä”uœbŸh™h q›kñ "°+ð "Ø ñ"ˆà�{Š{Ðˆ{Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™u¨5Ö1r   c                 ó  — d„ }dd„ dœ}dg}t        ||d|d¬«      }t        |t        j                  d	«      |d|¬
«      }|j                  sJ ‚t        |j                  |j                  «       t        |j                  |j                  «       y)zwshgo used to raise an error when passing `args` with Sobol sampling
        # see gh-12114. check that this is resolvedc                 ó   — | d   |z  S r�  r#   )r7   r…   s     r   r(   z6TestShgoArguments.test_21_arg_tuple_sobol.<locals>.funŽ  s   € Ø�Q‘4˜1‘9Ðr   r%   c                 ó   — | d   dz
  S rŸ   r#   r@   s    r   r  z;TestShgoArguments.test_21_arg_tuple_sobol.<locals>.<lambda>‘  s   € ¸¸1¹À¹€ r   r&   ©r   ra   )r5   r0  )r„   r¥   r«   r5   )r   r„   r¥   N)r   r   r>   rí  r  r   r(   r7   )r   r(   r¥   r   r¸   r#  s         r   Útest_21_arg_tuple_sobolz)TestShgoArguments.test_21_arg_tuple_sobolŠ  s}   € ò	ð !'Ñ/AÑBˆà�ˆÜ�3˜ T°{Ø#*ô,ˆä�sœBŸH™H Q›K°¸TØ#.ô0ˆà�{Š{Ðˆ{Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™uÕ%r   N)/r    r!   r"   r+  r.  r1  r5  r@  rC  rJ  rê   rë   rì   rP  rS  rX  r\  r_  re  ri  rr  rv  r…  rˆ  r‹  Úxfailr   ÚsysÚplatformr”  r˜  r&  rš  r£  r¥  r§  rª  r³  rÁ  r%  rÅ  rÓ  rÚ  Úparametrizeré  rî  ró  r#   r   r   r(  r(    sˆ  „ òIò/òDòMòAòAò&ð ‡[�[×Ññ/ó ð/ð ‡[�[×Ññ
/ó ð
/òTòTò
TòMòMò
.òAò.ò(/òEð ‡[�[×Ñ�wÒ: 3§<¡<°7Ñ#:ØGð ó Iñ
óIð
ò-ð ‡[�[×ÑÐ?ÐÓ@ñ	.ó Að	.ò	'ò1ò
*òEò8òGð( ‡[�[×Ñ˜2Óñ,ó ð,ò$&òL2ð: ‡[�[×Ñ˜\Ò+CÓDñ1ó Eð1ò>2ó&r   r(  c                   ó€   — e 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
„ «       Zd„ Zy)ÚTestShgoFailuresc                 ó  — ddi}t        t        j                  t        j                  dd|d¬«      }t        j
                  j                  d|j                  «       t        j
                  j                  d|j                  «       y)z'Test failure on insufficient iterationsÚmaxiterr4   Nr0  rû   Frd   )	r   rá   r8   r   r>   r³   r—  r  ÚtnevrW  s      r   Útest_1_maxiterzTestShgoFailures.test_1_maxiterŸ  s\   € à˜a�.ˆÜ”7—9‘9œgŸn™n°¸Ø"°Gô=ˆô 	�
‰
×Ñ  s§{¡{Ô3ä
�
‰
×Ñ  3§8¡8Õ,r   c                 ól   — t        t        t        t        j                  t        j
                  d¬«       y)z$Rejection of unknown sampling methodÚ	not_Sobolr   N)Úassert_raisesÚ
ValueErrorr   r¿   r8   r   rÀ   s    r   Útest_2_samplingz TestShgoFailures.test_2_sampling©  s   € ä”j¤$¬¯	©	´7·>±>Ø&1ö	3r   c                 ó  — dddœ}t        t        j                  t        j                  d|d¬«      }t        j
                  j                  d|j                  «       t        j
                  j                  d|j                  «       y	)
zoCheck that the routine stops when no minimiser is found
           after maximum specified function evaluationsra   T)ÚmaxfevrÈ   re   r0  ©r¦   rª   r«   Frc   N)	r   Ú
test_tabler8   r   r>   r³   r—  r  r¸  rW  s      r   Útest_3_1_no_min_pool_sobolz+TestShgoFailures.test_3_1_no_min_pool_sobol®  sb   € ð  àñ!ˆô ”:—<‘<¤×!2Ñ!2°aÀØ#*ô,ˆä
�
‰
×Ñ  s§{¡{Ô3ä
�
‰
×Ñ  C§H¡HÕ-r   c                 óº   — dddœ}t        t        j                  t        j                  d|d¬«      }t        j
                  j                  d|j                  «       y)	zoCheck that the routine stops when no minimiser is found
           after maximum specified sampling evaluationsra   T©ÚmaxevrÈ   re   rð   r  FN)r   r  r8   r   r>   r³   r—  r  rW  s      r   Útest_3_2_no_min_pool_simplicialz0TestShgoFailures.test_3_2_no_min_pool_simplicialº  sH   € ð Øñ!ˆä”:—<‘<¤×!2Ñ!2°aÀØ#/ô1ˆä
�
‰
×Ñ  s§{¡{Õ3r   c                 óT   — ddg}t        t        t        t        j                  |«       y)zSpecified bounds ub > lb)rC   re   ©re   rb   N©r   r  r   r¿   r8   ©r   r   s     r   Útest_4_1_bound_errz#TestShgoFailures.test_4_1_bound_errÃ  s   € à˜&Ð!ˆÜ”j¤$¬¯	©	°6Õ:r   c                 óT   — ddg}t        t        t        t        j                  |«       y)z)Specified bounds are of the form (lb, ub))re   rb   rb   r  Nr  r  s     r   Útest_4_2_bound_errz#TestShgoFailures.test_4_2_bound_errÈ  s   € à˜VÐ$ˆÜ”j¤$¬¯	©	°6Õ:r   c                 óØ   — dddœ}t        t        j                  t        j                  t        j                  d|d¬«      }t
        j                  j                  d|j                  «       y)zxEnsures the algorithm terminates on infeasible problems
           after maxev is exceeded. Use infty constraints optionrš   Tr	  r0  ©r¥   r¦   rª   r«   FN©	r   Útest_infeasibler8   r   r.   r>   r³   r—  r  rW  s      r   Útest_5_1_1_infeasible_sobolz,TestShgoFailures.test_5_1_1_infeasible_sobolÍ  sW   € ð  Øñ!ˆô ”?×$Ñ$¤o×&<Ñ&<Ü.×3Ñ3°sÀGØ#*ô,ˆô 	�
‰
×Ñ  s§{¡{Õ3r   c                 óÚ   — ddddœ}t        t        j                  t        j                  t        j                  d|d¬«      }t
        j                  j                  d|j                  «       y)zEnsures the algorithm terminates on infeasible problems
           after maxev is exceeded. Do not use infty constraints optionrš   TF)r
  rÈ   rÞ   r0  r  Nr  rW  s      r   Útest_5_1_2_infeasible_sobolz,TestShgoFailures.test_5_1_2_infeasible_sobolÙ  sZ   € ð  ØØ(-ñ/ˆô ”?×$Ñ$¤o×&<Ñ&<Ü.×3Ñ3°sÀGØ#*ô,ˆô 	�
‰
×Ñ  s§{¡{Õ3r   c                 óØ   — dddœ}t        t        j                  t        j                  t        j                  d|d¬«      }t
        j                  j                  d|j                  «       y)z[Ensures the algorithm terminates on infeasible problems
           after maxev is exceeded.iè  Fr	  rš   rð   r  Nr  rW  s      r   Útest_5_2_infeasible_simplicialz/TestShgoFailures.test_5_2_infeasible_simplicialæ  sW   € ð !Ø ñ"ˆô ”?×$Ñ$¤o×&<Ñ&<Ü.×3Ñ3°sÀGØ#/ô1ˆô 	�
‰
×Ñ  s§{¡{Õ3r   c                 óÒ   — t         j                  dz   dddddœ}t         j                  t         j                  f}t         j                  dd|dd	œ}t        t        t        g|¢­i |¤Ž y)
z<Test Global mode limiting local evaluations with f* too highrw   r"  Tr5   FrU  Nr0  rV  )rÐ   r   r8   r   r.   r   ÚUserWarningr   )r   rª   r„   Úkwargss       r   Útest_6_1_lower_known_f_minz+TestShgoFailures.test_6_1_lower_known_f_minò  si   € ô ×)Ñ)¨CÑ/Øà#'ØØ!&ñ(ˆô —	‘	œ7Ÿ>™>Ð*ˆÜ!(§¡ØØØ$Ø%,ñ	ˆô 	Œkœ4Ð1 $Ò1¨&Ó1r   c                 ó¢   ‡‡— ddl mŠm} g d¢}ˆˆfd„Šd‰_         |‰|«      }t	        |j
                  |j                  ‰j                  «       y )Nr   )r   r   ©©r   r4   r"  r"  r"  r"  c                 ó>   •— ‰xj                   dz  c_          ‰| «      S ©Nr5   )r¸  )r7   r(   r   s    €€r   r(   z"TestShgoFailures.test.<locals>.fun	  s   ø€ Ø�HŠH˜‰M�HÙ˜“8ˆOr   )Úscipy.optimizer   r   r¸  r€   r7   r(   )r   r   r   Úresultr(   r   s       @@r   r¶   zTestShgoFailures.test  s=   ù€ ß.Ú9ˆõ	ð ˆŒá�c˜6Ó"ˆÜˆf�h‰h˜Ÿ
™
 C§H¡HÕ-r   N)r    r!   r"   rý  r  r  r  r  r  r  r  r  rê   rë   Úthread_unsafer  r¶   r#   r   r   rù  rù  ž  sR   „ ò-ò3ò

.ò4ò;ò
;ò

4ò4ò
4ð ‡[�[×Ññ2ó ð2ó$.r   rù  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestShgoReturnsc                 ó¦   ‡— g d¢}ˆfd„Šd‰_         t        ‰|«      }t        j                  j	                  ‰j                   |j                   «       y )Nr!  c                 óD   •— ‰xj                   dz  c_         t        | «      S r$  ©r¸  r   ©r7   r(   s    €r   r(   z3TestShgoReturns.test_1_nfev_simplicial.<locals>.fun  ó   ø€ Ø�HŠH˜‰M�HÜ˜“8ˆOr   r   ©r¸  r   r>   r³   r—  ©r   r   r&  r(   s      @r   Útest_1_nfev_simplicialz&TestShgoReturns.test_1_nfev_simplicial  s>   ø€ Ú9ˆô	ð ˆŒä�c˜6Ó"ˆÜ
�
‰
×Ñ §¡¨&¯+©+Õ6r   c                 óª   ‡— g d¢}ˆfd„Šd‰_         t        ‰|d¬«      }t        j                  j	                  ‰j                   |j                   «       y )Nr!  c                 óD   •— ‰xj                   dz  c_         t        | «      S r$  r,  r-  s    €r   r(   z.TestShgoReturns.test_1_nfev_sobol.<locals>.fun$  r.  r   r   r0  r   r/  r0  s      @r   Útest_1_nfev_sobolz!TestShgoReturns.test_1_nfev_sobol!  s@   ø€ Ú9ˆô	ð ˆŒä�c˜6°7Ô;ˆÜ
�
‰
×Ñ §¡¨&¯+©+Õ6r   N)r    r!   r"   r1  r4  r#   r   r   r)  r)    s   „ ò
7ó
7r   r)  c                  ó˜  — d„ } t        | dgdg«      }t        |t        j                  ddg«      «      }t	        t
        ddg|d¬«      }t        j                  t        j                  |j                  dz  «      dk\  «      sJ ‚t        j                  t        j                  |j                  dz  «      d	k  «      sJ ‚|j                  sJ ‚y )
Nc                 ó^   — t        j                  | «      } t        j                  | dz  «      gS rÖ  ©r>   Úasarrayr?   r@   s    r   Úquadz$test_vector_constraint.<locals>.quad0  ó$   € Ü�J‰J�q‹MˆÜ—‘�q˜A‘v“ÐÐr   gš™™™™™@re   r   rò  r0  r^  r4   r™   )
r   r   r>   r  r   r   Úallr?   r7   r  )r9  ÚnlcÚoldcr¸   s       r   Útest_vector_constraintr>  .  s¥   € ò ô ˜d S E¨A¨3Ó
/€CÜ  ¤b§h¡h°°S¨zÓ&:Ó;€Dä
Œu�w Ð(°dÈGÔ
T€CÜ�6‰6”"—&‘&˜#Ÿ%™% !™Ó$¨Ñ+Ô,Ð,Ð,Ü�6‰6”"—&‘&˜#Ÿ%™% A™Ó&¨#Ñ-Ô.Ð.Ð.Ø�;Š;Ð‰;r   zignore:delta_gradc                  ó`  — d„ } t        | dgdg«      }ddi}t        t        ddg|d|¬«      }t        j                  t        j
                  |j                  d	z  «      dk\  «      sJ ‚t        j                  t        j
                  |j                  d	z  «      d
k  «      sJ ‚|j                  sJ ‚y )Nc                 ó^   — t        j                  | «      } t        j                  | dz  «      gS rÖ  r7  r@   s    r   r9  ztest_trust_constr.<locals>.quad?  r:  r   gÍÌÌÌÌÌ@re   rn  ræ  rò  r0  )r¥   r«   r©   r4   r™   )r   r   r   r>   r;  r?   r7   r  )r9  r<  r©   r¸   s       r   Útest_trust_constrrA  =  s¤   € ò ô ˜d S E¨A¨3Ó
/€CØ  .Ð1Ðô ÜØ	�'ÐØØØ)ô€Cô �6‰6”"—&‘&˜#Ÿ%™% !™Ó$¨Ñ+Ô,Ð,Ð,Ü�6‰6”"—&‘&˜#Ÿ%™% A™Ó&¨#Ñ-Ô.Ð.Ð.Ø�;Š;Ð‰;r   c                  óº  — dgdz  } d„ }t        |dd«      }t        t        | |¬«      }t        t	        j
                  |j                  «      d«       d„ }d|dœ}t        t        | |¬«      }t        t	        j
                  |j                  «      d«       d	gd
z  } d„ }d|dœ}t        d„ | |d¬«      }t        t	        j
                  |j                  «      d«       y )N)gÍÌÌÌÌÌì?r�   r4   c                 ó   — | d   | d   z   S rŸ   r#   r@   s    r   Úfaultyz)test_equality_constraints.<locals>.faultyX  s   € Ø�‰t�a˜‘d‰{Ðr   ç333333@r  c                 ó   — | d   | d   z   dz
  S )Nr   r5   rE  r#   r@   s    r   rD  z)test_equality_constraints.<locals>.faulty_  s   € Ø�‰t�a˜‘d‰{˜SÑ Ð r   r  r&   rË  rd   c                 ó6   — | d   | d   z   | d   z   | d   z   dz
  S rÑ  r#   r@   s    r   rD  z)test_equality_constraints.<locals>.faultyh  s+   € Ø�‰t�a˜‘d‰{˜Q˜q™TÑ! A a¡DÑ(¨1Ñ,Ð,r   c                 ó.   — t        j                  | «       S r   )r>   Úprodr@   s    r   r  z+test_equality_constraints.<locals>.<lambda>n  s   € ”B—G‘G˜A“J�,€ r   r0  )r   r¥   r«   r   )r   r   r   r   r>   r?   r7   )r   rD  r<  r¸   r¥   s        r   Útest_equality_constraintsrJ  T  sÆ   € àˆ\˜AÑ€Fòô ˜f c¨3Ó
/€CÜ
Œu˜V°Ô
5€CÜ”B—F‘F˜3Ÿ5™5“M 3Ô'ò!ð  ¨Ñ/€KÜ
Œu˜V°Ô
=€CÜ”B—F‘F˜3Ÿ5™5“M 3Ô'àˆZ˜!‰^€Fò-ð  ¨Ñ/€KÜ
ÙØØØô	€Cô ”B—F‘F˜3Ÿ5™5“M 3Õ'r   c                  óÆ   — d„ } | ddœ}dddddœd	œ}t        t        d
gdz  ||¬«      }|j                  d   j                  «       dk(  sJ ‚|j                  d   d   dk(  sJ ‚y )Nc                 ó8   — t        j                  | dz  «      dz
  S rƒ  r=   r@   s    r   r.   ztest_gh16971.<locals>.consv  s   € Ü�v‰v�a˜‘d‹|˜aÑÐr   r%   )r(   r'   rk  rb   r•   gš™™™™™©?)ÚrhobegÚtolÚcatol)rn  rª   rò  r4   )r¥   r©   rn  Úcobylarª   rO  )r   r   r©   Úlower)r.   Úcr©   r†   s       r   Útest_gh16971rS  u  s†   € ò ð ˜fÑ%€AàØ¨°tÑ<ñÐô
 	Ü�ˆy˜‰{¨Ð<Lô	€Að ×Ñ˜hÑ'×-Ñ-Ó/°8Ò;Ð;Ð;Ø×Ñ˜iÑ(¨Ñ1°TÒ9Ð9Ñ9r   )	r#   r3  rš   NNNNr0  r5   )Er±   rõ  Únumpyr>   r‘  Úmultiprocessingr   Únumpy.testingr   r   rê   r   r   r   r%  r   r	   r
   r   r   r   r   r   Úscipy.optimize._constraintsr   Úscipy.optimize._shgor   r   r/   r1   r¿   rÅ   rÊ   rG   r  rÐ   rÕ   rR   rÚ   r_   rá   rt   ræ   r|   r�   r+   r·  ÚboundsLJr
  r“   Úonesr  r—   r  rœ   r  rë   r&  r¹   r»   rî   r(  rù  r)  r>  ÚfilterwarningsrA  rJ  rS  r#   r   r   ú<module>r\     sJ  ðÛ Û 
ã Û Ý  ß 2Û ß 1÷H÷ Hó Hå =Ý %÷+ñ +òô Ð$ô ñ ˜g wÐ/Ø"# Q ô)€á
˜f fÐ-Ø"# Q ô)€á
˜l¨LÐ9Ø"# Q ô)€ôÐ$ô ñ ˜g˜YØ", Ø#/ð #+ "§(¡(¨Z¨LØ-8¨MØ-7¨LØ-8¨MØ-8¨MØ-7¨LØ-8¨MØ-8¨MØ-8¨MØ-8¨Mð	,;ó 	#<ð %- B§H¡Hò .Hó %Iô!€ñ. ˜h˜ZØ", Ø$0 >Ø"* "§(¡(¨Z¨L¨>Ó":Ø$, B§H¡H¨l¨^Ó$<ô	€ô#Ð$ô #ñJ ˜g wÐ/Ø",¨jÐ!9Ø#&ô€ôÐ$ô ñD ˜i˜]¨QÑ.ò"Là#.ô€ôÐ$ô ñ ˜k¨;Ð7Ø$7Ð#8Ø"&¨Ð!5ô7€ô
Ð%ô ð< €Ù‘�T�F˜Q‘J  ¨¡	Ó*Ó+€á	˜XØ$( 6Ø!%ô	
€ôÐ$ô ñ 
˜X˜L¨1Ñ,Ø"%Ø ' §¡¨£
¨SÑ 0ô
€ôÐ(ô ñ  Y°	Ð$:Ø+-¨$Ø),¨c¨
ô4€
ô
Ð-ô ñ0 '¨w¸Ð.@Ø48Ø26ô)€ð ‡�×Ñ�,ÓØ9=Ø;?Ø./òó  ð÷D3)ñ 3)÷tj1ñ j1÷ZY&ñ Y&÷zr.ñ r.÷l7ñ 7ò4ð ‡�×ÑÐ/Ó0ñó 1ðò,(óB:r   