Ë
    çÿæin¥  ã                   óþ  — d dl Z 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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jL                  dgdgdgdgdgdgdgdgdgdgg
«       ejL                  g d ¢«      ¬!«      Z' e%d"gdgdg ejL                  dgg«       ejL                  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:Z0 e1 e2d;gd:z  d<gd:z  «      «      Z3 e/e3d=gd¬7«      Z4 G d>„ d?e«      Z5 e5d@gdAz  dB ejl                  dA«      dCz
  ¬7«      Z7 G dD„ dEe«      Z8 e8d-d-gdFgdGdGg¬7«      Z9 G dH„ dIe«      Z: e:d%dJgdd¬7«      Z;ejx                  j{                  dK«      	 	 	 d\dL„«       Z> G dM„ dN«      Z? G dO„ dP«      Z@ G dQ„ dR«      ZA G dS„ dT«      ZB G dU„ dV«      ZCdW„ ZDejx                  j‹                  dX«      dY„ «       ZFdZ„ ZGd[„ ZHy)]é    N)ÚPool)Úassert_allcloseÚIS_PYPY)Ú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/Volumes/fast/ai/experiments/voice-extract-mac/.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_constraintsr1      sb   € Ø€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©r9   s    r   r/   zStructTest1.g0   s   € Ü—‘˜ Ô" SÑ(Ð)Ð)r!   N©r"   r#   r$   r:   r/   r1   r0   r%   r!   r   r3   r3   ,   s   „ ò%ò*ñ ˜AÓ�Dr!   r3   )éÿÿÿÿé   )r   r   ©r   r7   ©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@   Úsinr8   s     r   r:   zStructTest2.fC   s   € Ø�B‘œ"Ÿ&™& ›)Ñ#Ð#r!   c                 ó6   — dt        j                  | d¬«      z
  S )Né:   r   r=   r?   rB   s    r   r/   zStructTest2.gF   s   € Ø”B—F‘F˜1 1Ô%Ñ%Ð%r!   N©r"   r#   r$   Ú__doc__r:   r/   r1   r0   r%   r!   r   rI   rI   >   s   „ ñò$ò&ñ ˜AÓ�Dr!   rI   )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	½‚Ã>@)
rR   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   r6   r7   r%   r8   s     r   r:   zStructTest3.f}   s"   € Ø�q˜‘t ‘kÑ! Q q¡T¨a¡KÑ/Ð/r!   c                 ó   — | d   | d   z  dz
  S )Nr   r7   ç      9@r%   rB   s    r   Úg1zStructTest3.g1€   s   € Ø�‰t�a˜‘d‰{˜TÑ!Ð!r!   c                 ó*   — | d   dz  | d   dz  z   dz
  S )Nr   r6   r7   rW   r%   rB   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   r7   rW   r6   r%   rB   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$   rP   r:   rX   rZ   r/   r   r@   ÚinfÚ_StructTest3__nlcr0   r%   r!   r   rT   rT   k   s7   „ ñò"0ò"ò,ò@ñ    1 b§f¡fÓ-€EØˆ8�Dr!   rT   )r6   é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   é
   r6   é   r7   é   é   é   é   rE   é   é   r%   r8   s     r   r:   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 )Nr6   r   rg   r7   rf   rd   é   r%   rB   s    r   rX   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 )	Nri   r   rg   r7   rc   r6   rf   g      q@r%   rB   s    r   rZ   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   r7   r6   rE   rd   rj   éÄ   r%   rB   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 )	Nrf   r   r6   r7   rg   rd   rh   rE   r%   rB   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$   rP   r:   rX   rZ   rq   rs   r/   r1   r0   r%   r!   r   ra   ra   –   s<   „ ñòò#òMòIò)ð 
ˆR��RÐ€Aá˜AÓ�Dr!   ra   )iöÿÿÿrc   ri   )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 ©Nr7   g     €G@r   ç       @©r@   rL   ÚsqrtÚabsr8   s     r   r:   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!   NrC   r%   r!   r   rv   rv   ¿   s   „ ò
ð 	€AÙ˜AÓ�Dr!   rv   )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   rg   ç        r7   r6   ç      ð?ry   )ÚprintÚNÚintÚrange)r   r9   ÚargsÚkÚsÚiÚjÚaÚbÚxdÚydÚzdÚedÚuds                 r   r:   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!   NrO   r%   r!   r   r~   r~   Ï   s   „ ñò
ð( 	€AÙ˜AÓ�Dr!   r~   rE   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   ç      à?r6   r7   rg   r%   r8   s     r   r:   zStructTestS.fý   sS   € Ø�1‘˜‘ Ñ! Q q¡T¨C¡Z°AÑ$5Ñ5Ø�Q‘4˜#‘: !Ñ#ñ$Ø'(¨¡t¨c¡z°aÑ&7ñ8ð 	9r!   NrC   r%   r!   r   r•   r•   ü   s   „ ò9ð 	€AÙ˜AÓ�Dr!   r•   )r   ry   rf   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   ç      @r7   r^   éd   r%   r8   s     r   r:   zStructTestTable.f  s   € ØˆQ‰4�3Š;˜1˜Q™4 3š;Øàr!   NrC   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 r5   r%   )r   r9   r†   s      r   r:   zStructTestInfeasible.f   r;   r!   c                 ó   — | d   | d   z   dz
  S ©Nr   r7   r%   rB   s    r   rX   zStructTestInfeasible.g1#  s   € Ø�‰t�a˜‘d‰{˜Q‰Ðr!   c                 ó    — | d   | d   z   dz
   S r¡   r%   rB   s    r   rZ   zStructTestInfeasible.g2&  s   € Ø�1‘˜˜!™‘˜q‘Ð!Ð!r!   c                 ó    — | d    | d   z   dz
  S r¡   r%   rB   s    r   rq   zStructTestInfeasible.g3)  s   € Ø�!‘ˆu�q˜‘t‰|˜aÑÐr!   c                 ó"   — | d    | d   z   dz
   S r¡   r%   rB   s    r   rs   zStructTestInfeasible.g4,  s   € Ø�A‘$�˜˜1™‘ Ñ!Ð"Ð"r!   Nrt   r%   r!   r   rž   rž     s:   „ ñò%òò"ò ò#ð 
ˆR��RÐ€AÙ˜AÓ�Dr!   rž   )rD   r7   ú
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   r:   r   r0   r‚   ÚloggingÚinfor   r@   Útestingr   r9   r   r*   r   Úxlr   Úfunl)Útestr†   Ú	test_atolr¨   r©   rª   r«   r¬   r­   r®   Úress              r   Úrun_testr»   9  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_sobolb  ó   € ô 	”Õ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_sobolg  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_soboll  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_sobolr  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_sobolw  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, multimodalrQ   )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æ   rQ   rd   )r¨   r©   Nrç   rÂ   s    r   Útest_f5_2_sobolz*TestShgoSobolTestFunctions.test_f5_2_sobolŒ  s   € ô 	”˜B aÖ(r!   N)r"   r#   r$   rP   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¿   r7   Ú
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)]r7   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)]rd   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éÈ   ri   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Õ   r7   rò   ró   NrÖ   rÂ   s    r   Útest_f2_2_simplicialz4TestShgoSimplicialTestFunctions.test_f2_2_simplicial±  rõ   r!   c                 ó(   — t        t        dd¬«       y)rÚ   r7   rò   ró   NrÛ   rÂ   s    r   Útest_f3_simplicialz2TestShgoSimplicialTestFunctions.test_f3_simplicial¶  s   € ä”˜A¨|Ö<r!   c                 ó(   — t        t        dd¬«       y)rß   r7   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Ê   ©rE   é,  r7   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   rE   Tr  r  r	  r7   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ü   r7   rò   ©r¨   r¬   r©   r­   NrÀ   rÍ   s     r   Útest_f5_2_cons_symmetryz7TestShgoSimplicialTestFunctions.test_f5_2_cons_symmetryÒ  s)   € à ! 1˜vØñ!ˆô 	”˜CØ ¨Ø!-ö	/r!   rc   c                 ó:   — g d¢ddœ}t        t        d|dd¬«       y)	z(Asymmetrically constrained test function)r   r   r   rg   Tr  i'  r7   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)r9   Úavgs    €r   Ú<lambda>zFTestShgoSimplicialTestFunctions.test_f0_min_variance.<locals>.<lambda>ë  s   ø€ ¬r¯w©w°q«z¸CÒ/?r!   r(   rE   rF   ©r   r§   r   çVçž¯Ò<r²   N)r   r@   ÚvarÚsuccessr   r*   r9   )r   r0   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%   rB   s    r   r*   zDTestShgoSimplicialTestFunctions.test_f0_min_variance_1D.<locals>.funø  s   € Ø˜˜C™‘= A¨¡GÑ,Ð,r!   rF   )r   r   ç�íµ ÷Æ°>)r°   N)r   r
   r   r   r*   r9   )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$   rP   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ej                  j5                  exr ej:                  dk(  d¬«      d„ «       Zd„ Zej                  jA                  d¬«      d„ «       Z!d„ Z"d„ Z#d„ Z$d„ Z%d „ Z&d!„ Z'ej                  jQ                  d"«      d#„ «       Z)d$„ Z*d%„ Z+ej                  jY                  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)Nr6   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)Nr7   Ú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)Nr7   r2  )r§   r¨   r©   r­   çñhãˆµøä>r¯   r²   )r   rÒ   r:   r   r0   r@   rµ   r   r9   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‚   rB   s    r   Úcallback_funczATestShgoArguments.test_3_1_disp_simplicial.<locals>.callback_func  ó   € ÜÐ4Õ5r!   r7   rò   rÊ   T©r©   r­   rª   r¬   ©r¨   r­   rª   r¬   N©rÁ   rÒ   r   r:   r   ©r   r<  r¸   s      r   Útest_3_1_disp_simplicialz*TestShgoArguments.test_3_1_disp_simplicial  s_   € ò	6ô œgÓ&ˆDÜ�—‘˜Ÿ™¨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 r:  r;  rB   s    r   r<  z<TestShgoArguments.test_3_2_disp_sobol.<locals>.callback_func+  r=  r!   r7   r2  rÊ   Tr>  rò   r?  Nr@  rA  s      r   Útest_3_2_disp_sobolz%TestShgoArguments.test_3_2_disp_sobol(  s^   € ò	6ô œgÓ&ˆDÜ�—‘˜Ÿ™¨A¸wØ'°&¸$°õ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%   )r9   ÚyÚzs      r   r  z5TestShgoArguments.test_args_gh14589.<locals>.<lambda>8  s   € ¨¨A©°ª	r!   )r   rg   )r7   r6   )Úfuncr   r†   c                 ó   — d| z  dz   S )Nr6   r7   r%   rB   s    r   r  z5TestShgoArguments.test_args_gh14589.<locals>.<lambda>:  s   €  ! a¡%¨!¢)r!   )rJ  r   N)r   r   r*   r9   )r   rº   r%  s      r   Útest_args_gh14589z#TestShgoArguments.test_args_gh145895  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‹   éê   éûÿÿÿrd   r’   útrust-constr)r‹   rN  )r§   r   Úmethodr†   Újacr$  r²   g      $Àg      $@Úignore)rQ  r§   r   rR  r†   r2  )rJ  r   r†   r«   r§   r­   )rQ  r§   r   rR  ÚhessN)r   r	   r   r   r*   ÚconstrÚgradr   r9   Úx_optÚwarningsÚcatch_warningsÚsimplefilterr   ÚRuntimeWarningr   rT  )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ˆŒ
Ü×$Ñ$Õ&ô ×!Ñ!ØÜ ¤.Ð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 '×&Ñ&ú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û   Nr5  rò   ©r¨   r¹   r¬   r­   ©rã   r   r»   rÍ   s     r   Útest_4_1_known_f_minz&TestShgoArguments.test_4_1_known_f_minx  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$  Tr7   )r`  ra  rû   Ú
local_iterNr5  rò   rb  rc  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$  Tr7   F©r`  ra  rû   rf  rà   Nr2  ©r§   r¨   r©   r¬   r­   r5  r¯   )rÒ   r   r   r:   r   r0   r@   rµ   r   r9   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§   r5  r¯   N©
r   rÁ   r:   r   r0   r@   rµ   r   r9   r   r6  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 1r2  ©r§   r­   r5  r¯   Nro  r6  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_iterr6   rò   ©r§   r¬   r­   r5  r¯   r²   N©r   rÜ   r:   r   r0   r@   rµ   r   r9   r   r*   r   rk  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)	ru  Úmin_iterr6   rò   rw  r5  r¯   r²   Nrx  rk  s      r   Útest_6_2_simplicial_min_iterz.TestShgoArguments.test_6_2_simplicial_min_iter²  rz  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)rQ  r§   rœ   çü©ñÒMbP?r2  ©r¨   r¹   r«   r­   N)rÜ   r0   r»   )r   Úsolverr«   s      r   Útest_7_1_minkwargsz$TestShgoArguments.test_7_1_minkwargsº  s6   € ó 4ˆFð +1Ü/6¯|©|ñ =Ðä”W ¨tØ&6Ø%,ö.ñ 4r!   c                 óŽ   — ddi}ddi}t        t        j                  t        j                  t        j                  d   ||¬«       y)z'Test the minimizer_kwargs default initsÚftolr5  rÊ   Tr   )r§   r«   r¬   N©r   rÜ   r:   r   r0   )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 )Nr6   r   r7   )r@   ÚarrayÚTrB   s    r   rR  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 ©Nr6   r   )r@   r’  rB   s    r   rT  z2TestShgoArguments.test_7_3_minkwargs.<locals>.hessÕ  s   € Ü—x‘x ! Q ¨!¨Q¨Ð 0Ó1Ð1r!   )rQ  rR  rT  z	Solver = zd====================================================================================================rœ   r‚  r2  rƒ  N)r³   r´   r»   rÁ   )r   r„  rR  rT  r«   s        r   Útest_7_3_minkwargsz$TestShgoArguments.test_7_3_minkwargsÍ  s`   € ó'ˆ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 )Nr7   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   rn  Nrˆ  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ÚsleeprB   s    r   r:   z0TestShgoArguments.test_10_finite_time.<locals>.fò  s   € Ü�J‰J�uÔØr!   rd   )r©   r¬   r7   N)r   rÁ   r   Únit)r   r¬   r:   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)r`  rÊ   rc   Nr2  rý   r   r7   )r   rÇ   r:   r   r@   rµ   Úassert_equalr9   rk  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   r`  r7   Nr2  rý   )r   rÇ   r:   r   r@   rµ   r¨  r*   rk  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%   rB   s    r   r:   z/TestShgoArguments.test_13_high_sobol.<locals>.f  ó   € Ør!   rG   é)   r2  ©r­   r6   r^   N)r   Úsampling_function)r   r:   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 moderf  rf   rQ   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û   Tr7   ri   r2  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Ê   TrQ  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>.sample0  s   € Ü—9‘9×$Ñ$¨1¨a¨&Ð$Ó1Ð1r!   rK   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@   ÚsquarerA   rB   s    r   r:   z1TestShgoArguments.test_18_bounds_class.<locals>.f7  s   € Ü—9‘9˜Q“<×#Ñ#Ó%Ð%r!   )g      Àr�   g      À)r“   r›   r_   )r“   r�   r€   )r-   Úzipr	   r   ÚnfevÚmessager   r@   r’  rµ   r   r9   )	r   r:   ÚlbÚubÚ
bounds_oldÚ
bounds_newÚres_old_boundsÚres_new_boundsrW  s	            r   Útest_18_bounds_classz&TestShgoArguments.test_18_bounds_class5  sÜ   € ò	&ò ˆÚˆÜœ#˜b "›+Ó&ˆ
Ü˜B “^ˆ
ä˜a Ó,ˆÜ˜a Ó,ˆà×"Ñ" n×&9Ñ&9Ò9Ð9Ð9Ø×%Ñ%¨×)?Ñ)?Ò?Ð?Ð?Ø×%Ñ%¨×)?Ñ)?Ò?Ð?Ð?Ü—‘šÓ'ˆÜ
�
‰
×"Ñ" >×#3Ñ#3°UÔ;Ü
�
‰
×"Ñ" >×#3Ñ#3°^×5EÑ5EÕFr!   rc   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½  r6   rK   )r¨   r®   N)r   r»   rÁ   Úmapr  )r   Úps     r   Útest_19_parallelizationz)TestShgoArguments.test_19_parallelizationI  sh   € ô �!ŒW˜Ü”W ¨A¯E©EÕ2÷ ä”˜B¬Õ,Ü�!ŒW˜Ü”V˜r¨1¯5©5Õ1÷ ä”˜2¤sÖ+÷ ˆWú÷ ˆWú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 rx   rz   rB   s    r   Ú	eggholderz=TestShgoArguments.test_20_constrained_args.<locals>.eggholderW  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     À:@r7   é'   r6   g     @D@rg   r%   rB   s    r   r:   z5TestShgoArguments.test_20_constrained_args.<locals>.f]  s7   € Ø˜1˜Q™4‘< %¨!¨A©$¡,Ñ.°°a¸±d±Ñ:¸UÀQÀqÁT¹\ÑIÐIr!   ©r   r�   rf   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@r7   g333333&@r6   gÍÌÌÌÌÌô?rg   rd   r%   )r9   r‰   s     r   Úg1_modifiedz?TestShgoArguments.test_20_constrained_args.<locals>.g1_modifiedb  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 )Nre   r   gÍÌÌÌÌÌ'@r7   gfffffæD@r6   gÍÌÌÌÌJ@rg   é   gR¸…ëQú?gìQ¸…ëÑ?gR¸…ëQÈ?g     €4@g×£p=
×ã?)r@   r{   rB   s    r   rZ   z6TestShgoArguments.test_20_constrained_args.<locals>.g2f  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   r7   r6   rg   r%   rB   s    r   Úh1z6TestShgoArguments.test_20_constrained_args.<locals>.h1n  s+   € Ø�Q‘4˜!˜A™$‘;  1¡Ñ%¨¨!©Ñ,¨qÑ0Ð0r!   r'   )r   )r)   r*   r†   r(   r  r	  r7   )r¨   r©   r§   r2  )r¨   r©   r§   r­   N)r   )r   rØ  r:   r   rÝ  rZ   râ  r0   s           r   Útest_20_constrained_argsz*TestShgoArguments.test_20_constrained_argsT  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 ©Nr6   )r@   rA   ÚpowerrB   s    r   rJ  z2TestShgoArguments.test_21_1_jac_true.<locals>.func~  s$   € Ü—6‘6œ"Ÿ(™( 1 a›.Ó)¨1¨q©5Ð0Ð0r!   r�  T)rQ  rR  rR  rD   r7   r6   rœ   rd   r2  )r   r¨   r©   r­   r«   r¬   c                 ó<   — t        j                  | dz  «      d| z  fS ræ  r?   rB   s    r   rJ  z2TestShgoArguments.test_21_1_jac_true.<locals>.func�  s   € Ü—6‘6˜!˜q™&“> 1 q¡5Ð(Ð(r!   r   rg   )r   r­   r«   )r7   r7   r7   r7   r7   )Úx0r   rR  r  r²   rQ  )r   r­   r«   r¬   N)r   r   r   r   r*   r9   )r   rJ  Úmin_kwdsÚopt_kwdsr   rº   r%  s          r   Útest_21_1_jac_truez$TestShgoArguments.test_21_1_jac_truez  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©rR  rT  Ú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 )Nrg   r   r6   rd   r%   rB   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 )NrE   r   r6   r%   rB   s    r   Úgradientz@TestShgoArguments.test_21_2_derivative_options.<locals>.gradient­  s   € Ø�q˜‘t‘8˜a‘<Ðr!   c                  ó   — y©NrE   r%   rB   s    r   rT  z<TestShgoArguments.test_21_2_derivative_options.<locals>.hess°  r¯  r!   c                 ó   — d|z  S rö  r%   )r9   rÔ  s     r   rï  z=TestShgoArguments.test_21_2_derivative_options.<locals>.hessp³  s   € Ø�q‘5ˆLr!   rî  rQ  rP  )iœÿÿÿrœ   ©r«   r¬   r   )ré  r   N)r   r   r   r@   rµ   r   r*   r9   )r   rí  rò  rô  rT  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ý  )rR  rT  rQ  rŽ  rø  rd   r  r²   N)r   r   r   r   r   r@   Úzerosr   r   r*   r9   )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%   )r9   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%   rB   s    r   r  z;TestShgoArguments.test_21_arg_tuple_sobol.<locals>.<lambda>Ú  s   € ¸¸1¹Àºr!   r(   ©r   rc   )r7   r2  )r†   r§   r­   r7   )r   r†   r§   N)r   r   r@   rþ  r   r   r*   r9   )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)0r"   r#   r$   r-  r0  r3  r7  rB  rE  rL  r^  rì   rí   rî   rd  rg  rl  rp  rs  ry  r}  r…  r‰  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ò&ò89ðt ‡[�[×Ññ/ó ð/ð ‡[�[×Ññ
/ó ð
/òTòTò
TòMòMò
.òAò.ò(/òEð ‡[�[×Ñ�wÒ: 3§<¡<°7Ñ#:ØGð ó Iñ
óIð
ò-ð ‡[�[×ÑÐ?ÐÓ@ñ	.ó 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Úmaxiterr6   Nr2  rý   Frf   )	r   rã   r:   r   r@   rµ   r¨  r   Útnevrk  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Á   r:   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 evaluationsrc   T)ÚmaxfevrÊ   rg   r2  ©r¨   r¬   r­   Fre   N)	r   Ú
test_tabler:   r   r@   rµ   r¨  r   rÉ  rk  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 evaluationsrc   T©ÚmaxevrÊ   rg   rò   r  FN)r   r  r:   r   r@   rµ   r¨  r   rk  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)rE   rg   ©rg   rd   N©r  r  r   rÁ   r:   ©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))rg   rd   rd   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  r2  ©r§   r¨   r¬   r­   FN©	r   Útest_infeasibler:   r   r0   r@   rµ   r¨  r   rk  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à   r2  r%  Nr&  rk  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&  rk  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 highry   r$  Tr7   Fri  Nr2  rj  )rÒ   r   r:   r   r0   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   r6   r3  r3  r3  r3  c                 ó>   •— ‰xj                   dz  c_          ‰| «      S ©Nr7   )rÉ  )r9   r*   r   s    €€r   r*   z"TestShgoFailures.test.<locals>.funQ  s   ø€ Ø�HŠH˜‰M�HÙ˜“8ˆOr!   )Úscipy.optimizer   r   rÉ  r‚   r9   r*   )r   r   r   Úresultr*   r   s       @@r   r¸   zTestShgoFailures.testM  s=   ù€ ß.Ú9ˆõ	ð ˆŒá�c˜6Ó"ˆÜˆf�h‰h˜Ÿ
™
 C§H¡HÕ-r!   N)r"   r#   r$   r  r  r  r  r!  r#  r(  r*  r,  r0  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 )Nr2  c                 óD   •— ‰xj                   dz  c_         t        | «      S r5  ©rÉ  r   ©r9   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   r7  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 )Nr2  c                 óD   •— ‰xj                   dz  c_         t        | «      S r5  r<  r=  s    €r   r*   z.TestShgoReturns.test_1_nfev_sobol.<locals>.funl  r>  r!   r   r2  r±  r?  r@  s      @r   Útest_1_nfev_sobolz!TestShgoReturns.test_1_nfev_soboli  s@   ø€ Ú9ˆô	ð ˆŒä�c˜6°7Ô;ˆÜ
�
‰
×Ñ §¡¨&¯+©+Õ6r!   N)r"   r#   r$   rA  rD  r%   r!   r   r9  r9  \  s   „ ò
7ó
7r!   r9  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@   ÚasarrayrA   rB   s    r   Úquadz$test_vector_constraint.<locals>.quadx  ó$   € Ü�J‰J�q‹MˆÜ—‘�q˜A‘v“ÐÐr!   gš™™™™™@rg   r�   r  r2  rr  r6   r›   )
r   r   r@   r’  r   r   ÚallrA   r9   r   )rI  ÚnlcÚoldcrº   s       r   Útest_vector_constraintrN  v  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æ  rG  rB   s    r   rI  ztest_trust_constr.<locals>.quad‡  rJ  r!   gÍÌÌÌÌÌ@rg   rQ  rP  r  r2  )r§   r­   r«   r6   r›   )r   r   r   r@   rK  rA   r9   r   )rI  rL  r«   rº   s       r   Útest_trust_constrrQ  …  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’   r6   c                 ó   — | d   | d   z   S r¡   r%   rB   s    r   Úfaultyz)test_equality_constraints.<locals>.faulty   s   € Ø�‰t�a˜‘d‰{Ðr!   ç333333@r  c                 ó   — | d   | d   z   dz
  S )Nr   r7   rU  r%   rB   s    r   rT  z)test_equality_constraints.<locals>.faulty§  s   € Ø�‰t�a˜‘d‰{˜SÑ Ð r!   r  r(   rÛ  rf   c                 ó6   — | d   | d   z   | d   z   | d   z   dz
  S rá  r%   rB   s    r   rT  z)test_equality_constraints.<locals>.faulty°  s+   € Ø�‰t�a˜‘d‰{˜Q˜q™TÑ! A a¡DÑ(¨1Ñ,Ð,r!   c                 ó.   — t        j                  | «       S r   )r@   ÚprodrB   s    r   r  z+test_equality_constraints.<locals>.<lambda>¶  s   € ”B—G‘G˜A“J‘,r!   r2  )r   r§   r­   r�   )r   r   r   r   r@   rA   r9   )r   rT  rL  rº   r§   s        r   Útest_equality_constraintsrZ  œ  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?   rB   s    r   r0   ztest_gh16971.<locals>.cons¾  s   € Ü�v‰v�a˜‘d‹|˜aÑÐr!   r'   )r*   r)   r  rd   r—   gš™™™™™©?)ÚrhobegÚtolÚcatol)rQ  r¬   r  r6   )r§   r«   rQ  Úcobylar¬   r_  )r   r   r«   Úlower)r0   Úcr«   rˆ   s       r   Útest_gh16971rc  ½  s†   € ò ð ˜fÑ%€AàØ¨°tÑ<ñÐô
 	Ü�ˆy˜‰{¨Ð<Lô	€Að ×Ñ˜hÑ'×-Ñ-Ó/°8Ò;Ð;Ð;Ø×Ñ˜iÑ(¨Ñ1°TÒ9Ð9Ñ9r!   )	r%   r5  rœ   NNNNr2  r7   )Ir³   r  rX  Únumpyr@   r¢  Úmultiprocessingr   Únumpy.testingr   r   rì   r   r  r   r6  r   r	   r
   r   r   r   r   r   r   Úscipy.optimize._constraintsr   Úscipy.optimize._shgor   Ú.scipy.optimize.tests.test_minimize_constrainedr   r   r1   r3   rÁ   rÇ   rÌ   rI   r’  rÒ   r×   rT   rÜ   ra   rã   rv   rè   r~   rƒ   r-   rÈ  ÚboundsLJr  r•   Úonesr  r™   r  rž   r'  rí   r(  r»   r½   rð   r*  r
  r9  rN  ÚfilterwarningsrQ  rZ  rc  r%   r!   r   Ú<module>rm     sP  ðÛ Û 
Û ã Û Ý  ß 2Û ß 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`&ñ `&÷Hq.ñ q.÷j7ñ 7ò4ð ‡�×ÑÐ/Ó0ñó 1ðò,(óB:r!   