Ë
    ÏÍ:jÕ¤  ã                   óò  — 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 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mZ d dl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jH                  dgdgdgdgdgdgdgdgdgdgg
«       ejH                  g d ¢«      ¬!«      Z% e#d"gdgdg ejH                  dgg«       ejH                  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/¢d0¬*«      Z* G d1„ d2e«      Z+ e+d3d3gd4gd5d6g¬7«      Z, G d8„ d9e«      Z-d:Z. e/ e0d;gd:z  d<gd:z  «      «      Z1 e-e1d=gd¬7«      Z2 G d>„ d?e«      Z3 e3d@gdAz  dB ejh                  dA«      dCz
  ¬7«      Z5 G dD„ dEe«      Z6 e6d-d-gdFgdGdGg¬7«      Z7 G dH„ dIe«      Z8 e8d%dJgdd¬7«      Z9e	jt                  jw                  dK«      	 	 	 d\dL„«       Z< G dM„ dN«      Z= G dO„ dP«      Z> G dQ„ dR«      Z? G dS„ dT«      Z@ G dU„ dV«      ZAdW„ ZBe	jt                  j‡                  dX«      dY„ «       ZDdZ„ ZEd[„ ZFy)]é    N)ÚPool)Úassert_allclose)ÚraisesÚwarns)	ÚshgoÚBoundsÚminimize_scalarÚminimizeÚrosenÚ	rosen_derÚ
rosen_hessÚNonlinearConstraintÚOptimizeWarning)Únew_constraint_to_old)ÚSHGO)ÚMaratosTestArgsc                   ó   — 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         út/home/mcse/projects/srt_converter/srt-converter-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 }| �Dt        | t        t        z  «      s| f} n	 | D ]  } |j                  d| dœ«       Œ t        |«      }|S d }|S )NÚineq©ÚtypeÚfun)Ú
isinstanceÚtupleÚlistÚappend)ÚgÚconss     r   Úwrap_constraintsr0      sg   € Ø€DØ€}Ü˜!œU¤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©r8   s    r   r.   zStructTest1.g/   s   € Ü—‘˜ Ô" SÑ(Ð)Ð)r    N©r!   r"   r#   r9   r.   r0   r/   r$   r    r   r2   r2   +   s   „ ò%ò*ñ ˜AÓ�Dr    r2   )éÿÿÿÿé   )r   r   ©r   r6   ©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?   Úsinr7   s     r   r9   zStructTest2.fB   s   € Ø�B‘œ"Ÿ&™& ›)Ñ#Ð#r    c                 ó6   — dt        j                  | d¬«      z
  S )Né:   r   r<   r>   rA   s    r   r.   zStructTest2.gE   s   € Ø”B—F‘F˜1 1Ô%Ñ%Ð%r    N©r!   r"   r#   Ú__doc__r9   r.   r0   r/   r$   r    r   rH   rH   =   s   „ ñò$ò&ñ ˜AÓ�Dr    rH   )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	½‚Ã>@)
rQ   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   r5   r6   r$   r7   s     r   r9   zStructTest3.f|   s"   € Ø�q˜‘t ‘kÑ! Q q¡T¨a¡KÑ/Ð/r    c                 ó   — | d   | d   z  dz
  S )Nr   r6   ç      9@r$   rA   s    r   Úg1zStructTest3.g1   s   € Ø�‰t�a˜‘d‰{˜TÑ!Ð!r    c                 ó*   — | d   dz  | d   dz  z   dz
  S )Nr   r5   r6   rV   r$   rA   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   r6   rV   r5   r$   rA   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#   rO   r9   rW   rY   r.   r   r?   ÚinfÚ_StructTest3__nlcr/   r$   r    r   rS   rS   j   s7   „ ñò"0ò"ò,ò@ñ    1 b§f¡fÓ-€EØˆ8�Dr    rS   )r5   é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   é
   r5   é   r6   é   é   é   é   rD   é   é   r$   r7   s     r   r9   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 )Nr5   r   rf   r6   re   rc   é   r$   rA   s    r   rW   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 )	Nrh   r   rf   r6   rb   r5   re   g      q@r$   rA   s    r   rY   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   r6   r5   rD   rc   ri   éÄ   r$   rA   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 )	Nre   r   r5   r6   rf   rc   rg   rD   r$   rA   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#   rO   r9   rW   rY   rp   rr   r.   r0   r/   r$   r    r   r`   r`   •   s<   „ ñòò#òMòIò)ð 
ˆR��RÐ€Aá˜AÓ�Dr    r`   )iöÿÿÿrb   rh   )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 ©Nr6   g     €G@r   ç       @©r?   rK   ÚsqrtÚabsr7   s     r   r9   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    NrB   r$   r    r   ru   ru   ¾   s   „ ò
ð 	€AÙ˜AÓ�Dr    ru   )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   rf   ç        r6   r5   ç      ð?rx   )ÚprintÚNÚintÚrange)r   r8   ÚargsÚkÚsÚiÚjÚaÚbÚxdÚydÚzdÚedÚuds                 r   r9   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    NrN   r$   r    r   r}   r}   Î   s   „ ñò
ð( 	€AÙ˜AÓ�Dr    r}   rD   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   ç      à?r5   r6   rf   r$   r7   s     r   r9   zStructTestS.fü   sS   € Ø�1‘˜‘ Ñ! Q q¡T¨C¡Z°AÑ$5Ñ5Ø�Q‘4˜#‘: !Ñ#ñ$Ø'(¨¡t¨c¡z°aÑ&7ñ8ð 	9r    NrB   r$   r    r   r”   r”   û   s   „ ò9ð 	€AÙ˜AÓ�Dr    r”   )r   rx   re   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   ç      @r6   r]   éd   r$   r7   s     r   r9   zStructTestTable.f  s   € ØˆQ‰4�3Š;˜1˜Q™4 3š;Øàr    NrB   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 r4   r$   )r   r8   r…   s      r   r9   zStructTestInfeasible.f  r:   r    c                 ó   — | d   | d   z   dz
  S ©Nr   r6   r$   rA   s    r   rW   zStructTestInfeasible.g1"  s   € Ø�‰t�a˜‘d‰{˜Q‰Ðr    c                 ó    — | d   | d   z   dz
   S r    r$   rA   s    r   rY   zStructTestInfeasible.g2%  s   € Ø�1‘˜˜!™‘˜q‘Ð!Ð!r    c                 ó    — | d    | d   z   dz
  S r    r$   rA   s    r   rp   zStructTestInfeasible.g3(  s   € Ø�!‘ˆu�q˜‘t‰|˜aÑÐr    c                 ó"   — | d    | d   z   dz
   S r    r$   rA   s    r   rr   zStructTestInfeasible.g4+  s   € Ø�A‘$�˜˜1™‘ Ñ!Ð"Ð"r    Nrs   r$   r    r   r�   r�     s:   „ ñò%òò"ò ò#ð 
ˆR��RÐ€AÙ˜AÓ�Dr    r�   )rC   r6   ú
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   r9   r   r/   r�   ÚloggingÚinfor   r?   Útestingr   r8   r   r)   r   Úxlr   Úfunl)Útestr…   Ú	test_atolr§   r¨   r©   rª   r«   r¬   r­   Úress              r   Úrun_testrº   8  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_sobola  ó   € ô 	”Õ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_sobolf  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_sobolk  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_sobolq  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_sobolv  rÃ   r    c                 ó"   — t        t        «       y)ú%NLP: Hock and Schittkowski problem 18N©rº   Útest3_1rÁ   s    r   Útest_f3_sobolz(TestShgoSobolTestFunctions.test_f3_sobol{  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, multimodalrP   )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å   rP   rc   )r§   r¨   Nræ   rÁ   s    r   Útest_f5_2_sobolz*TestShgoSobolTestFunctions.test_f5_2_sobol‹  s   € ô 	”˜B aÖ(r    N)r!   r"   r#   rO   rÂ   rÇ   rÍ   rÒ   r×   rÜ   ÚpytestÚmarkÚslowrã   rè   rê   r$   r    r   r¼   r¼   [  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¾   r6   Ú
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)]r6   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)]rc   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éÈ   rh   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Ô   r6   rñ   rò   NrÕ   rÁ   s    r   Útest_f2_2_simplicialz4TestShgoSimplicialTestFunctions.test_f2_2_simplicial°  rô   r    c                 ó(   — t        t        dd¬«       y)rÙ   r6   rñ   rò   NrÚ   rÁ   s    r   Útest_f3_simplicialz2TestShgoSimplicialTestFunctions.test_f3_simplicialµ  s   € ä”˜A¨|Ö<r    c                 ó(   — t        t        dd¬«       y)rÞ   r6   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É   ©rD   é,  r6   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   rD   Tr  r  r  r6   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û   r6   rñ   ©r§   r«   r¨   r¬   Nr¿   rÌ   s     r   Útest_f5_2_cons_symmetryz7TestShgoSimplicialTestFunctions.test_f5_2_cons_symmetryÑ  s)   € à ! 1˜vØñ!ˆô 	”˜CØ ¨Ø!-ö	/r    rb   c                 ó:   — g d¢ddœ}t        t        d|dd¬«       y)	z(Asymmetrically constrained test function)r   r   r   rf   Tr  i'  r6   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)r8   Úavgs    €r   ú<lambda>zFTestShgoSimplicialTestFunctions.test_f0_min_variance.<locals>.<lambda>ê  s   ø€ ¬r¯w©w°q«z¸CÑ/?€ r    r'   rD   rE   ©r   r¦   r   çVçž¯Ò<r±   N)r   r?   ÚvarÚsuccessr   r)   r8   )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$   rA   s    r   r)   zDTestShgoSimplicialTestFunctions.test_f0_min_variance_1D.<locals>.fun÷  s   € Ø˜˜C™‘= A¨¡GÑ,Ð,r    rE   )r   r   ç�íµ ÷Æ°>)r¯   N)r   r	   r  r   r)   r8   )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#   rO   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                   óþ  — e Zd 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d„ Zd„ Zej                  j9                  d¬«      d„ «       Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej                  jI                  d «      d!„ «       Z%d"„ Z&d#„ Z'ej                  jQ                  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)Nr5   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)Nr6   Ú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)Nr6   r1  )r¦   r§   r¨   r¬   çñhãˆµøä>r®   r±   )r   rÑ   r9   r   r/   r?   r´   r   r8   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�   rA   s    r   Úcallback_funczATestShgoArguments.test_3_1_disp_simplicial.<locals>.callback_func  ó   € ÜÐ4Õ5r    r6   rñ   rÉ   T©r¨   r¬   r©   r«   ©r§   r¬   r©   r«   N©rÀ   rÑ   r   r9   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 r9  r:  rA   s    r   r;  z<TestShgoArguments.test_3_2_disp_sobol.<locals>.callback_func*  r<  r    r6   r1  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$   )r8   ÚyÚzs      r   r  z5TestShgoArguments.test_args_gh14589.<locals>.<lambda>7  s   € ¨¨A©°©	€ r    )r   rf   )r6   r5   )Úfuncr   r…   c                 ó   — d| z  dz   S )Nr5   r6   r$   rA   s    r   r  z5TestShgoArguments.test_args_gh14589.<locals>.<lambda>9  s   €  ! a¡%¨!¡)€ r    )rI  r   N)r   r   r)   r8   )r   r¹   r$  s      r   Útest_args_gh14589z#TestShgoArguments.test_args_gh145894  sJ   € ô Ñ1¸6¸(Èô ˆäÑ+°V°HÔ=ˆÜ˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™uÕ%r    c                 ó¾  — t        dd«      }t        ddgddg«      |_        t        |j                  ddg|j
                  |j                  dd|j                  ¬«      }t        |j                  |j                  d	¬
«       t        dd«      }t        ddgddg«      |_        t        j                  «       5  t        j                  dt        t        f«       t        |j                  |j                  dd|j
                  |j                  |j                  ddœ|j
                  d¬«      }t        |j                  |j                  d	¬
«       t        |j                  |j                  dd|j
                  |j                  |j                  |j                   dœ|j
                  d¬«      }t        |j                  |j                  d	¬
«       ddd«       y# 1 sw Y   yxY w)zG
        Checks that using `args` for func, jac and hess works
        rŠ   éê   éûÿÿÿrc   r‘   útrust-constr)rŠ   rM  )r¦   r   Úmethodr…   Újacr#  r±   g      $Àg      $@Úignore)rP  r¦   r   rQ  r…   r1  )rI  r   r…   rª   r¦   r¬   )rP  r¦   r   rQ  ÚhessN)r   r   r   r
   r)   ÚconstrÚgradr   r8   Úx_optÚwarningsÚcatch_warningsÚsimplefilterr   ÚRuntimeWarningr   rS  )r   ÚobjÚres2r¹   s       r   Útest_args_gh23517z#TestShgoArguments.test_args_gh23517=  sŽ  € ô ˜c 3Ó'ˆÜ˜R ˜H q¨! fÓ-ˆŒ
ÜØ�G‰GØ�#ˆJØŸ
™
Ø—:‘:Ø!ØØ—‘ô
ˆô 	˜Ÿ™ §	¡	°Õ5ä˜c 3Ó'ˆÜ˜T 4˜L¨3°¨*Ó5ˆŒ
Ü×$Ñ$Ó&ñ %	9ô ×!Ñ!ØÜ ¤.Ð1ôô Ø—W‘WØ—z‘zØà,Ø#&§:¡:Ø!Ÿj™jØŸ8™8Ø&ñ"ð  ŸJ™JØ 'ôˆCô ˜CŸE™E 3§9¡9°4Õ8äØ—W‘WØ—z‘zØà,Ø#&§:¡:Ø!Ÿj™jØŸ8™8ØŸH™Hñ"ð  ŸJ™JØ 'ôˆCô ˜CŸE™E 3§9¡9°4Õ8÷K%	9÷ %	9ñ %	9ús   Â5DGÇG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ú   Nr4  rñ   ©r§   r¸   r«   r¬   ©râ   r   rº   rÌ   s     r   Útest_4_1_known_f_minz&TestShgoArguments.test_4_1_known_f_minw  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#  Tr6   )r_  r`  rú   Ú
local_iterNr4  rñ   ra  rb  rÌ   s     r   Útest_4_2_known_f_minz&TestShgoArguments.test_4_2_known_f_min‚  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#  Tr6   F©r_  r`  rú   re  rß   Nr1  ©r¦   r§   r¨   r«   r¬   r4  r®   )rÑ   r   r   r9   r   r/   r?   r´   r   r8   r   ©r   r«   r¹   s      r   Útest_4_4_known_f_minz&TestShgoArguments.test_4_4_known_f_min�  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¦   r4  r®   N©
r   rÀ   r9   r   r/   r?   r´   r   r8   r   r5  s     r   Útest_5_1_simplicial_arglessz-TestShgoArguments.test_5_1_simplicial_arglessž  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 1r1  ©r¦   r¬   r4  r®   Nrn  r5  s     r   Útest_5_2_sobol_arglessz(TestShgoArguments.test_5_2_sobol_argless£  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_iterr5   rñ   ©r¦   r«   r¬   r4  r®   r±   N©r   rÛ   r9   r   r/   r?   r´   r   r8   r   r)   r   rj  s      r   Útest_6_1_simplicial_max_iterz.TestShgoArguments.test_6_1_simplicial_max_iter©  ó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)	rt  Úmin_iterr5   rñ   rv  r4  r®   r±   Nrw  rj  s      r   Útest_6_2_simplicial_min_iterz.TestShgoArguments.test_6_2_simplicial_min_iter±  ry  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)rP  r¦   r›   çü©ñÒMbP?r1  ©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Úftolr4  rÉ   Tr   )r¦   rª   r«   N©r   rÛ   r9   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 )Nr5   r   r6   )r?   ÚarrayÚTrA   s    r   rQ  z1TestShgoArguments.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 ©Nr5   r   )r?   r‘  rA   s    r   rS  z2TestShgoArguments.test_7_3_minkwargs.<locals>.hessÔ  s   € Ü—x‘x ! Q ¨!¨Q¨Ð 0Ó1Ð1r    )rP  rQ  rS  z	Solver = zd====================================================================================================r›   r�  r1  r‚  N)r²   r³   rº   rÀ   )r   rƒ  rQ  rS  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 )Nr6   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   rm  Nr‡  rÁ   s    r   Útest_9_cons_gzTestShgoArguments.test_9_cons_gç  s   € äŒW�Y‰YœŸ™´G·L±LÀ±OÖDr    c                 ó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ÚsleeprA   s    r   r9   z0TestShgoArguments.test_10_finite_time.<locals>.fï  s   € Ü�J‰J�uÔØr    rc   )r¨   r«   r6   N)r   rÀ   r   Únit)r   r«   r9   r¹   s       r   Útest_10_finite_timez%TestShgoArguments.test_10_finite_timeë  s7   € à˜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)r_  rÉ   rb   Nr1  rü   r   r6   )r   rÆ   r9   r   r?   r´   Úassert_equalr8   rj  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 this)Úreasonc                 ó¼   — dddœ}t        t        j                  t        j                  dd|d¬«      }t        j
                  j                  d|j                  «       y)r¤  r  r   )r�  r_  r6   Nr1  rü   )r   rÆ   r9   r   r?   r´   r¥  r)   rj  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$   rA   s    r   r9   z/TestShgoArguments.test_13_high_sobol.<locals>.f  ó   € Ør    rF   é)   r1  ©r¬   r5   r]   N)r   Úsampling_function)r   r9   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 modere  re   rP   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ú   Tr6   rh   r1  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É   TrP  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    rJ   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@   rA   s    r   r9   z1TestShgoArguments.test_18_bounds_class.<locals>.f4  s   € Ü—9‘9˜Q“<×#Ñ#Ó%Ð%r    )g      Àr€   g      À)r’   rš   r^   )r’   r€   r   )r,   Úzipr   r   ÚnfevÚmessager  r?   r‘  r´   r   r8   )	r   r9   ÚlbÚubÚ
bounds_oldÚ
bounds_newÚres_old_boundsÚres_new_boundsrV  s	            r   Útest_18_bounds_classz&TestShgoArguments.test_18_bounds_class2  sÜ   € ò	&ò ˆÚˆÜœ#˜b "›+Ó&ˆ
Ü˜B “^ˆ
ä˜a Ó,ˆÜ˜a Ó,ˆà×"Ñ" n×&9Ñ&9Ò9Ð9Ð9Ø×%Ñ%¨×)?Ñ)?Ò?Ð?Ð?Ø×%Ñ%¨×)?Ñ)?Ò?Ð?Ð?Ü—‘šÓ'ˆÜ
�
‰
×"Ñ" >×#3Ñ#3°UÔ;Ü
�
‰
×"Ñ" >×#3Ñ#3°^×5EÑ5EÕFr    rb   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»  r5   rJ   )r§   r­   N)r   rº   rÀ   Úmapr  )r   Úps     r   Útest_19_parallelizationz)TestShgoArguments.test_19_parallelizationF  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 rw   ry   rA   s    r   Ú	eggholderz=TestShgoArguments.test_20_constrained_args.<locals>.eggholderT  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     À:@r6   é'   r5   g     @D@rf   r$   rA   s    r   r9   z5TestShgoArguments.test_20_constrained_args.<locals>.fZ  s7   € Ø˜1˜Q™4‘< %¨!¨A©$¡,Ñ.°°a¸±d±Ñ:¸UÀQÀqÁT¹\ÑIÐIr    ©r   r€   re   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@r6   g333333&@r5   gÍÌÌÌÌÌô?rf   rc   r$   )r8   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 )Nrd   r   gÍÌÌÌÌÌ'@r6   gfffffæD@r5   gÍÌÌÌÌJ@rf   é   gR¸…ëQú?gìQ¸…ëÑ?gR¸…ëQÈ?g     €4@g×£p=
×ã?)r?   rz   rA   s    r   rY   z6TestShgoArguments.test_20_constrained_args.<locals>.g2c  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   r6   r5   rf   r$   rA   s    r   Úh1z6TestShgoArguments.test_20_constrained_args.<locals>.h1k  s+   € Ø�Q‘4˜!˜A™$‘;  1¡Ñ%¨¨!©Ñ,¨qÑ0Ð0r    r&   )r   )r(   r)   r…   r'   r  r  r6   )r§   r¨   r¦   r1  )r§   r¨   r¦   r¬   N)r   )r   rÖ  r9   r   rÛ  rY   rà  r/   s           r   Útest_20_constrained_argsz*TestShgoArguments.test_20_constrained_argsQ  st   € ò	ò	Jð � Ñ!ˆò	ò	ò	1ð  ¨¸TÑBØ¨Ñ+Ø bÑ)ð+ˆô 	ˆQ�˜# Q°DÕ9äˆQ�˜# Q°DØ$ö	&r    c           	      ó@  — d„ }dddœ}ddi}t        |ddgddggd	d
d||¬«       |d   du sJ ‚d|v sJ ‚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¬«       t        ||dddiddi¬«      }|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 ©Nr5   )r?   r@   ÚpowerrA   s    r   rI  z2TestShgoArguments.test_21_1_jac_true.<locals>.func{  s$   € Ü—6‘6œ"Ÿ(™( 1 a›.Ó)¨1¨q©5Ð0Ð0r    r€  T)rP  rQ  rQ  rC   r6   r5   r›   rc   r1  )r   r§   r¨   r¬   rª   r«   c                 ó<   — t        j                  | dz  «      d| z  fS rä  r>   rA   s    r   rI  z2TestShgoArguments.test_21_1_jac_true.<locals>.funcŒ  s   € Ü—6‘6˜!˜q™&“> 1 q¡5Ð(Ð(r    r   rf   )r   r¬   rª   )r6   r6   r6   r6   r6   )Úx0r   rQ  r  r±   rP  )r   r¬   rª   r«   N)r   r
   r  r   r)   r8   )r   rI  Úmin_kwdsÚopt_kwdsr   r¹   r$  s          r   Útest_21_1_jac_truez$TestShgoArguments.test_21_1_jac_truew  sE  € ò	1ð &¨dÑ3ˆØ˜4�=ˆÜØØ˜�G˜a ˜VÐ$Ø˜Ø#Ø%Øõ	
ð ˜‰ $Ñ&Ð&Ð&Ø˜Ñ Ð Ð ò	)ð �q�'˜A˜q˜6 B¨ 7¨Q°¨F°Q¸°FÐ;ˆä�4 ¸Ø/6¸tÑ$DôFˆä�t¢¸Øô!ˆà�{Š{Ðˆ{Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™u¨5Õ1ô �4 ¸Ø%-¨wÐ$7Ø! 4˜=ô*ˆð �{Š{Ðˆ{Ü˜Ÿ™ §¡Ô)Ü˜Ÿ™˜sŸu™u¨5Ö1r    Ú
derivative©rQ  rS  Ú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 )Nrf   r   r5   rc   r$   rA   s    r   Ú	objectivezATestShgoArguments.test_21_2_derivative_options.<locals>.objective§  s*   € Ø�q˜‘t‘8˜a ™d‘? Q¨¨1©¡XÑ-°Ñ1Ð1r    c                 ó   — d| d   z  dz   S )NrD   r   r5   r$   rA   s    r   Úgradientz@TestShgoArguments.test_21_2_derivative_options.<locals>.gradientª  s   € Ø�q˜‘t‘8˜a‘<Ðr    c                  ó   — y©NrD   r$   rA   s    r   rS  z<TestShgoArguments.test_21_2_derivative_options.<locals>.hess­  r­  r    c                 ó   — d|z  S rô  r$   )r8   rÒ  s     r   rí  z=TestShgoArguments.test_21_2_derivative_options.<locals>.hessp°  s   € Ø�q‘5ˆLr    rì  rP  rO  )iœÿÿÿr›   ©rª   r«   r   )rç  r   N)r   r
   r  r?   r´   r   r)   r8   )r   rë  rð  rò  rS  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û  )rQ  rS  rP  r�  rö  rc   r  r±   N)r   r   r   r   r
   r?   Úzerosr  r   r)   r8   )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$   )r8   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$   rA   s    r   r  z;TestShgoArguments.test_21_arg_tuple_sobol.<locals>.<lambda>×  s   € ¸¸1¹À¹€ r    r'   ©r   rb   )r6   r1  )r…   r¦   r¬   r6   )r   r…   r¦   N)r   r
   r?   rü  r  r   r)   r8   )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/  r2  r6  rA  rD  rK  r]  rë   rì   rí   rc  rf  rk  ro  rr  rx  r|  r„  rˆ  r•  r˜  r›  r¢  r¦  r'  r©  r²  r´  r¶  r¹  rÂ  rÏ  r&  rÓ  rá  rê  Úparametrizerø  rý  r  r$   r    r   r)  r)    sW  „ òIò/òDòMòAòAò&ò89ðt ‡[�[×Ññ/ó ð/ð ‡[�[×Ññ
/ó ð
/òTòTò
TòMòMò
.òAò.ò(/òEò
ò-ð ‡[�[×ÑÐ?ÐÓ@ñ	.ó Að	.ò	'ò1ò
*òEò8òGð( ‡[�[×Ñ˜2Óñ,ó ð,ò$&òL(2ðT ‡[�[×Ñ˜\Ò+CÓDñ1ó Eð1ò>2ó&r    r)  c                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Z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Úmaxiterr5   Nr1  rü   Fre   )	r   râ   r9   r   r?   r´   r¥  r  Útnevrj  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À   r9   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 evaluationsrb   T)ÚmaxfevrÉ   rf   r1  ©r§   r«   r¬   Frd   N)	r   Ú
test_tabler9   r   r?   r´   r¥  r  rÇ  rj  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 evaluationsrb   T©ÚmaxevrÉ   rf   rñ   r  FN)r   r  r9   r   r?   r´   r¥  r  rj  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)rD   rf   ©rf   rc   N©r  r  r   rÀ   r9   ©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))rf   rc   rc   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  r1  ©r¦   r§   r«   r¬   FN©	r   Útest_infeasibler9   r   r/   r?   r´   r¥  r  rj  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ß   r1  r   Nr!  rj  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!  rj  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 highrx   r#  Tr6   Frh  Nr1  ri  )rÑ   r   r9   r   r/   r   ÚUserWarningr   )r   r«   r…   Úkwargss       r   Útest_6_1_lower_known_f_minz+TestShgoFailures.test_6_1_lower_known_f_min8  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   r5   r.  r.  r.  r.  c                 ó>   •— ‰xj                   dz  c_          ‰| «      S ©Nr6   )rÇ  )r8   r)   r   s    €€r   r)   z"TestShgoFailures.test.<locals>.funN  s   ø€ Ø�HŠH˜‰M�HÙ˜“8ˆOr    )Úscipy.optimizer   r   rÇ  r�   r8   r)   )r   r   r   Úresultr)   r   s       @@r   r·   zTestShgoFailures.testJ  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·   r$   r    r   r  r  ä  s9   „ ò-ò3ò

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

4ò4ò
4ò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 r0  ©rÇ  r   ©r8   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   r2  r)   s      @r   Útest_1_nfev_simplicialz&TestShgoReturns.test_1_nfev_simplicialZ  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 r0  r7  r8  s    €r   r)   z.TestShgoReturns.test_1_nfev_sobol.<locals>.funi  r9  r    r   r1  r¯  r:  r;  s      @r   Útest_1_nfev_sobolz!TestShgoReturns.test_1_nfev_sobolf  s@   ø€ Ú9ˆô	ð ˆŒä�c˜6°7Ô;ˆÜ
�
‰
×Ñ §¡¨&¯+©+Õ6r    N)r!   r"   r#   r<  r?  r$   r    r   r4  r4  Y  s   „ ò
7ó
7r    r4  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@   rA   s    r   Úquadz$test_vector_constraint.<locals>.quadu  ó$   € Ü�J‰J�q‹MˆÜ—‘�q˜A‘v“ÐÐr    gš™™™™™@rf   r€   r  r1  rq  r5   rš   )
r   r   r?   r‘  r   r   Úallr@   r8   r  )rD  ÚnlcÚoldcr¹   s       r   Útest_vector_constraintrI  s  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ä  rB  rA   s    r   rD  ztest_trust_constr.<locals>.quad„  rE  r    gÍÌÌÌÌÌ@rf   rP  rO  r  r1  )r¦   r¬   rª   r5   rš   )r   r   r   r?   rF  r@   r8   r  )rD  rG  rª   r¹   s       r   Útest_trust_constrrL  ‚  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‘   r5   c                 ó   — | d   | d   z   S r    r$   rA   s    r   Úfaultyz)test_equality_constraints.<locals>.faulty�  s   € Ø�‰t�a˜‘d‰{Ðr    ç333333@r  c                 ó   — | d   | d   z   dz
  S )Nr   r6   rP  r$   rA   s    r   rO  z)test_equality_constraints.<locals>.faulty¤  s   € Ø�‰t�a˜‘d‰{˜SÑ Ð r    r  r'   rÙ  re   c                 ó6   — | d   | d   z   | d   z   | d   z   dz
  S rß  r$   rA   s    r   rO  z)test_equality_constraints.<locals>.faulty­  s+   € Ø�‰t�a˜‘d‰{˜Q˜q™TÑ! A a¡DÑ(¨1Ñ,Ð,r    c                 ó.   — t        j                  | «       S r   )r?   ÚprodrA   s    r   r  z+test_equality_constraints.<locals>.<lambda>³  s   € ”B—G‘G˜A“J�,€ r    r1  )r   r¦   r¬   r€   )r   r   r   r   r?   r@   r8   )r   rO  rG  r¹   r¦   s        r   Útest_equality_constraintsrU  ™  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>   rA   s    r   r/   ztest_gh16971.<locals>.cons»  s   € Ü�v‰v�a˜‘d‹|˜aÑÐr    r&   )r)   r(   r~  rc   r–   gš™™™™™©?)ÚrhobegÚtolÚcatol)rP  r«   r  r5   )r¦   rª   rP  Úcobylar«   rZ  )r   r   rª   Úlower)r/   Úcrª   r‡   s       r   Útest_gh16971r^  º  s†   € ò ð ˜fÑ%€AàØ¨°tÑ<ñÐô
 	Ü�ˆy˜‰{¨Ð<Lô	€Að ×Ñ˜hÑ'×-Ñ-Ó/°8Ò;Ð;Ð;Ø×Ñ˜iÑ(¨Ñ1°TÒ9Ð9Ñ9r    )	r$   r4  r›   NNNNr1  r6   )Gr²   rW  Únumpyr?   rŸ  Úmultiprocessingr   Únumpy.testingr   rë   r   r  r   r1  r   r   r	   r
   r   r   r   r   r   Úscipy.optimize._constraintsr   Úscipy.optimize._shgor   Ú.scipy.optimize.tests.test_minimize_constrainedr   r   r0   r2   rÀ   rÆ   rË   rH   r‘  rÑ   rÖ   rS   rÛ   r`   râ   ru   rç   r}   r‚   r,   rÆ  ÚboundsLJr  r”   Úonesr  r˜   r  r�   r"  rì   r'  rº   r¼   rï   r)  r  r4  rI  ÚfilterwarningsrL  rU  r^  r$   r    r   ú<module>rh     sM  ðÛ Û ã Û Ý  Ý )Û ß 1÷Y÷ Yõ Yå =Ý %Ý J÷+ñ +òô Ð$ô ñ ˜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^&ñ ^&÷Dq.ñ q.÷j7ñ 7ò4ð ‡�×ÑÐ/Ó0ñó 1ðò,(óB:r    