Ë
    çÿæi>d  ã                   óŽ   — d Z ddlmZmZmZmZ ddlmZ ddlZddl	Z
ddlZddlmZmZmZmZmZ  G d„ d«      Z G d„ d	«      Zd
„ Zy)z#
Unit test for SLSQP optimization.
é    )Úassert_Úassert_array_almost_equalÚassert_allcloseÚassert_equal)ÚraisesN)Ú
fmin_slsqpÚminimizeÚBoundsÚNonlinearConstraintÚOptimizeResultc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Ú
MyCallBackzJpass a custom callback function

    This makes sure it's being used.
    c                 ó    — d| _         d| _        y )NFr   )Úbeen_calledÚncalls©Úselfs    út/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/optimize/tests/test_slsqp.pyÚ__init__zMyCallBack.__init__   s   € Ø ˆÔØˆ�ó    c                 ó`   — t        |t        «      rJ ‚d| _        | xj                  dz  c_        y ©NTé   ©Ú
isinstancer   r   r   ©r   Úxs     r   Ú__call__zMyCallBack.__call__   s(   € Ü˜a¤Ô0Ð0Ð0ØˆÔØ�Š�qÑŽr   c                 ó`   — t        |t        «      sJ ‚d| _        | xj                  dz  c_        y r   r   ©r   Úintermediate_results     r   Ú	callback2zMyCallBack.callback2   s)   € ÜÐ-¬~Ô>Ð>Ð>ØˆÔØ�Š�qÑŽr   c                 ó2   — t        |t        «      sJ ‚t        ‚©N)r   r   ÚStopIterationr    s     r   Ú	callback3zMyCallBack.callback3"   s   € ÜÐ-¬~Ô>Ð>Ð>ÜÐr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r"   r&   © r   r   r   r      s   „ ñòòò
ó
r   r   c                   óÂ  — e Zd ZdZd„ Zd<d„Zd<d„Zd<d„Zd<d„Zd<d„Z	d<d„Z
d<d	„Zd<d
„Zd<d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z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%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.e/j`                  jc                   e2jf                  d-¬.«      d/   d0   d1   d2k(  d3¬4«      d5„ «       Z4d6„ Z5d7„ Z6d8„ Z7d9„ Z8d:„ Z9y;)=Ú	TestSLSQPzð
    Test SLSQP algorithm using Example 14.4 from Numerical Methods for
    Engineers by Steven Chapra and Raymond Canale.
    This example maximizes the function f(x) = 2*x*y + 2*x - x**2 - 2*y**2,
    which has a maximum at x=2, y=1.
    c                 ó   — ddi| _         y )NÚdispF)Úoptsr   s    r   Úsetup_methodzTestSLSQP.setup_method.   s   € Ø˜U�Oˆ�	r   c                 óV   — |d   }|d   }|d|z  |z  d|z  z   |dz  z
  d|dz  z  z
  z  S )a¦  
        Arguments:
        d     - A list of two elements, where d[0] represents x and d[1] represents y
                 in the following equation.
        sign - A multiplier for f. Since we want to optimize it, and the SciPy
               optimizers can only minimize functions, we need to multiply it by
               -1 to achieve the desired solution
        Returns:
        2*x*y + 2*x - x**2 - 2*y**2

        r   r   é   r+   )r   ÚdÚsignr   Úys        r   ÚfunzTestSLSQP.fun1   sG   € ð ˆa‰DˆØˆa‰DˆØ�Q�q‘S˜‘U˜Q˜q™S‘[ 1 a¡4Ñ'¨!¨A¨q©D©&Ñ0Ñ1Ð1r   c                 óŒ   — |d   }|d   }|d|z  d|z  z   dz   z  }|d|z  d|z  z
  z  }t        j                  ||gt        «      S )zo
        This is the derivative of fun, returning a NumPy array
        representing df/dx and df/dy.

        r   r   éþÿÿÿr3   é   )ÚnpÚarrayÚfloat)r   r4   r5   r   r6   ÚdfdxÚdfdys          r   ÚjaczTestSLSQP.jacA   s[   € ð ˆa‰DˆØˆa‰DˆØ�R˜‘T˜A˜a™C‘Z !‘^Ñ$ˆØ�Q�q‘S˜1˜Q™3‘YÑˆÜ�x‰x˜˜t˜¤eÓ,Ð,r   c                 óJ   — | j                  ||«      | j                  ||«      fS r$   )r7   r@   )r   r4   r5   s      r   Úfun_and_jaczTestSLSQP.fun_and_jacM   s#   € Ø�x‰x˜˜4Ó  $§(¡(¨1¨dÓ"3Ð3Ð3r   c                 ó@   — t        j                  |d   |d   z
  g«      S )ú Equality constraint r   r   ©r;   r<   ©r   r   r5   s      r   Úf_eqconzTestSLSQP.f_eqconP   s   € ä�x‰x˜˜1™  !¡™˜Ó&Ð&r   c                 ó2   — t        j                  ddgg«      S )z! Equality constraint, derivative r   éÿÿÿÿrE   rF   s      r   Úfprime_eqconzTestSLSQP.fprime_eqconT   ó   € ä�x‰x˜!˜R˜˜	Ó"Ð"r   c                 ó,   — | j                  ||«      d   S )z Scalar equality constraint r   )rG   rF   s      r   Úf_eqcon_scalarzTestSLSQP.f_eqcon_scalarX   s   € à�|‰|˜A˜tÓ$ QÑ'Ð'r   c                 óH   — | j                  ||«      d   j                  «       S )z( Scalar equality constraint, derivative r   )rJ   ÚtolistrF   s      r   Úfprime_eqcon_scalarzTestSLSQP.fprime_eqcon_scalar\   s#   € à× Ñ   DÓ)¨!Ñ,×3Ñ3Ó5Ð5r   c                 óF   — t        j                  |d   |d   z
  dz
  g«      S )z Inequality constraint r   r   ç      ð?rE   rF   s      r   Úf_ieqconzTestSLSQP.f_ieqcon`   s%   € ä�x‰x˜˜1™  !¡™ sÑ*Ð+Ó,Ð,r   c                 ó2   — t        j                  ddgg«      S )z# Inequality constraint, derivative r   rI   rE   rF   s      r   Úfprime_ieqconzTestSLSQP.fprime_ieqcond   rK   r   c                 ó,   — t        j                  |«      S )z Vector inequality constraint )r;   Úasarrayr   s     r   Ú	f_ieqcon2zTestSLSQP.f_ieqcon2h   s   € ä�z‰z˜!‹}Ðr   c                 óF   — t        j                  |j                  d   «      S )z* Vector inequality constraint, derivative r   )r;   ÚidentityÚshaper   s     r   Úfprime_ieqcon2zTestSLSQP.fprime_ieqcon2l   s   € ä�{‰{˜1Ÿ7™7 1™:Ó&Ð&r   c           	      ó¼   — g d¢}|D ]S  }t        | j                  ddgd|d| j                  ¬«      }t        |d   |d   «       t	        |j
                  d	d
g«       ŒU y )N©NFz2-pointz3-pointç      ð¿rR   ©r_   ÚSLSQP©Úargsr@   ÚmethodÚoptionsÚsuccessÚmessager3   r   )r	   r7   r0   r   r   r   ©r   Újacsr@   Úress       r   Ú$test_minimize_unbounded_approximatedz.TestSLSQP.test_minimize_unbounded_approximatedq   s[   € â2ˆÛˆCÜ˜4Ÿ8™8 d¨C [°xØ"¨7Ø#'§9¡9ô.ˆCô �C˜	‘N C¨	¡NÔ3Ü˜CŸE™E A q 6Õ*ñ r   c                 óº   — t        | j                  ddgd| j                  d| j                  ¬«      }t	        |d   |d   «       t        |j                  dd	g«       y )
Nr_   rR   r`   ra   rb   rf   rg   r3   r   )r	   r7   r@   r0   r   r   r   ©r   rj   s     r   Útest_minimize_unbounded_givenz'TestSLSQP.test_minimize_unbounded_given{   sN   € ä�t—x‘x $¨ °8ØŸ8™8¨G¸T¿Y¹YôHˆä��I‘  I¡Ô/Ü˜Ÿ™  1˜vÕ&r   c                 ó€  — g d¢}|D ]©  }t        j                  d¬«      5  t        | j                  ddgd|dd| j                  ¬	«      }d d d «       t        d
   |d   «       t        |j                  ddg«       t        d|j                  d   k  «       t        |j                  d   dk  «       Œ« y # 1 sw Y   ŒlxY w)Nr^   Úignore)Úinvalidr_   rR   r`   ))ç      @N)Nç      à?ra   )rc   r@   Úboundsrd   re   rf   rg   rr   rs   r   r   )r;   Úerrstater	   r7   r0   r   r   r   rh   s       r   Ú"test_minimize_bounded_approximatedz,TestSLSQP.test_minimize_bounded_approximated‚   sŸ   € â2ˆÛˆCÜ—‘ XÖ.Ü˜tŸx™x¨$°¨¸8Ø#&Ø&@Ø&-°t·y±yôB�÷ /ô
 �C˜	‘N C¨	¡NÔ3Ü˜CŸE™E C¨ :Ô.Ü�C˜3Ÿ5™5 ™8‘OÔ$Ü�C—E‘E˜!‘H ‘OÕ$ñ ß.Ð.ús    )B4Â4B=	c                 ó¦   — t        | j                  ddgddd| j                  ¬«      }t        |d   |d   «       t	        |j
                  d	d
g«       y )Nr_   rR   r`   Tra   rb   rf   rg   r3   r   )r	   rB   r0   r   r   r   rm   s     r   Ú test_minimize_unbounded_combinedz*TestSLSQP.test_minimize_unbounded_combined�   sL   € ä�t×'Ñ'¨$°¨¸8Ø¨¸¿¹ôDˆä��I‘  I¡Ô/Ü˜Ÿ™  1˜vÕ&r   c                 óÚ   — g d¢}|D ]b  }t        | j                  ddgd|d| j                  ddœd| j                  ¬«      }t	        |d	   |d
   «       t        |j                  ddg«       Œd y )Nr^   r_   rR   r`   Úeq©Útyper7   rc   ra   )rc   r@   Úconstraintsrd   re   rf   rg   r   )r	   r7   rG   r0   r   r   r   rh   s       r   Ú#test_minimize_equality_approximatedz-TestSLSQP.test_minimize_equality_approximated—   so   € â2ˆÛˆCÜ˜4Ÿ8™8 d¨C [°xØ"Ø04Ø/3¯|©|Ø08ñ(:ð #*°4·9±9ô>ˆCô �C˜	‘N C¨	¡NÔ3Ü˜CŸE™E A q 6Õ*ñ r   c                 óØ   — t        | j                  ddg| j                  ddd| j                  ddœ| j                  ¬«      }t        |d   |d	   «       t        |j                  d
d
g«       y )Nr_   rR   ra   r`   rz   r{   ©r@   rd   rc   r}   re   rf   rg   r   )r	   r7   r@   rG   r0   r   r   r   rm   s     r   Útest_minimize_equality_givenz&TestSLSQP.test_minimize_equality_given¤   sa   € ä�t—x‘x $¨ °$·(±(Ø%¨GØ,0¸¿¹Ø,4ñ$6à#Ÿy™yô	*ˆô
 	��I‘  I¡Ô/Ü˜Ÿ™  1˜vÕ&r   c                 óî   — t        | j                  ddgd| j                  dd| j                  d| j                  dœ| j
                  ¬«      }t        |d   |d	   «       t        |j                  d
d
g«       y ©Nr_   rR   ra   r`   rz   ©r|   r7   rc   r@   ©rd   r@   rc   r}   re   rf   rg   r   ©	r	   r7   r@   rG   rJ   r0   r   r   r   rm   s     r   Útest_minimize_equality_given2z'TestSLSQP.test_minimize_equality_given2®   so   € ô �t—x‘x $¨ °WØŸ8™8¨'Ø,0Ø+/¯<©<Ø,4Ø+/×+<Ñ+<ñ$>ð  $Ÿy™yô*ˆô 	��I‘  I¡Ô/Ü˜Ÿ™  1˜vÕ&r   c                 óî   — t        | j                  ddgd| j                  dd| j                  d| j                  dœ| j
                  ¬«      }t        |d   |d	   «       t        |j                  d
d
g«       y rƒ   )	r	   r7   r@   rM   rP   r0   r   r   r   rm   s     r   Ú(test_minimize_equality_given_cons_scalarz2TestSLSQP.test_minimize_equality_given_cons_scalar»   sr   € ô �t—x‘x $¨ °WØŸ8™8¨'Ø,0Ø+/×+>Ñ+>Ø,4Ø+/×+CÑ+Cñ$Eð  $Ÿy™yô*ˆô 	��I‘  I¡Ô/Ü˜Ÿ™  1˜vÕ&r   c                 óÜ   — t        | j                  ddgd| j                  dd| j                  ddœ| j                  ¬«      }t        |d   |d	   «       t        |j                  d
dgd¬«       y )Nr_   rR   ra   r`   Úineqr{   r…   rf   rg   r3   r   çü©ñÒMbP?©Úatol)r	   r7   r@   rS   r0   r   r   r   rm   s     r   Útest_minimize_inequality_givenz(TestSLSQP.test_minimize_inequality_givenÈ   sf   € ä�t—x‘x $¨ °WØŸ8™8¨(Ø,2Ø+/¯=©=Ø,4ñ$6ð  $Ÿy™yô*ˆô 	��I‘  I¡Ô/Ü˜Ÿ™  1˜v¨DÖ1r   c                 óì   — t        | j                  ddg| j                  ddd| j                  | j                  dœ| j
                  ¬«      }t        |d   |d	   «       t        |j                  d
dg«       y )Nr_   rR   ra   r`   r‹   )r|   r7   r@   r€   rf   rg   r3   r   )	r	   r7   r@   rX   r\   r0   r   r   r   rm   s     r   Ú1test_minimize_inequality_given_vector_constraintsz;TestSLSQP.test_minimize_inequality_given_vector_constraintsÓ   sm   € ô �t—x‘x $¨ °$·(±(Ø%¨GØ,2Ø+/¯>©>Ø+/×+>Ñ+>ñ$@ð  $Ÿy™yô*ˆô 	��I‘  I¡Ô/Ü˜Ÿ™  1˜vÕ&r   c                 óš   — d„ }d„ }t        |dd«      g}t        j                  ddg«      }t        ddgddg«      }t	        ||d	||¬
«       y )Nc                 ó†   — d| d   cxk  rdk  rn J | «       ‚d| d   cxk  rdk  sJ | «       ‚ J | «       ‚| d   dz  | d   z   S )Nr   r   rs   r+   ©r   s    r   Úcz5TestSLSQP.test_minimize_bounded_constraint.<locals>.cä   sY   € Ø˜˜!™”> ”>Ð7°aÓ7Ð4 a¨1¨Q©4¤n°1¢nÐ7°aÓ7Ð4 nÐ7°aÓ7Ð4Ø�Q‘4˜3‘;  1¡Ñ%Ð%r   c                 óŽ   — d| d   cxk  rdk  rn J | «       ‚d| d   cxk  rdk  sJ | «       ‚ J | «       ‚| d   dz   | d   dz  z   S ©Nr   r   r3   r+   r”   s    r   Úfz5TestSLSQP.test_minimize_bounded_constraint.<locals>.fè   s_   € Ø˜˜!™”> ”>Ð7°aÓ7Ð4 a¨1¨Q©4¤n°1¢nÐ7°aÓ7Ð4 nÐ7°aÓ7Ð4Ø�a‘D˜A‘I�:  !¡¨¡	Ñ)Ð)r   r   g      ø?çÍÌÌÌÌÌì?rs   g        rR   ra   ©rd   rt   r}   )r   r;   rW   r
   r	   )r   r•   r˜   ÚcnsÚx0Úbnds         r   Ú test_minimize_bounded_constraintz*TestSLSQP.test_minimize_bounded_constraintß   sU   € ò
	&ò	*ô # 1 a¨Ó-Ð.ˆÜ�Z‰Z˜˜c˜
Ó#ˆÜ�b˜"�X  S˜zÓ*ˆÜ��B˜w¨sÀÖDr   c                 óš  — t        | j                  ddgd| j                  dddgd| j                  d| j                  dœ| j
                  ¬	«      }t        |d
   |d   «       t        |j                  ddgd¬«       t        d|j                  d   cxk  xr dk  nc «       t        d|j                  d   cxk  xr
 dk  «       y c «       y )Nr_   rR   ra   r`   ©çš™™™™™é¿rR   ©rI   çš™™™™™é?rz   r„   )rd   r@   rc   rt   r}   re   rf   rg   r£   rŒ   r�   r¡   r   r   rI   r†   rm   s     r   Ú#test_minimize_bound_equality_given2z-TestSLSQP.test_minimize_bound_equality_given2ñ   s³   € ô �t—x‘x $¨ °WØŸ8™8¨(Ø)¨9Ð5Ø,0Ø+/¯<©<Ø,4Ø+/×+<Ñ+<ñ$>ð  $Ÿy™yô*ˆô 	��I‘  I¡Ô/Ü˜Ÿ™  S˜z°Õ5Ü�˜Ÿ™˜a™Ö% AÔ%Ô&Ü��c—e‘e˜A‘hÖ% #Ñ%Õ&Ñ%Õ&r   c                 ó†   — t        | j                  ddgddd¬«      }|\  }}}}}t        |dk(  |«       t        |ddg«       y )Nr_   rR   r`   r   r   )rc   ÚiprintÚfull_outputr3   )r   r7   r   r   ©r   rj   r   ÚfxÚitsÚimodeÚsmodes          r   Útest_unbounded_approximatedz%TestSLSQP.test_unbounded_approximated  sK   € ä˜Ÿ™ D¨# ;°XØ"#°1ô6ˆà#&Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! a¨ VÕ,r   c                 óœ   — t        | j                  ddgd| j                  dd¬«      }|\  }}}}}t        |dk(  |«       t	        |ddg«       y )Nr_   rR   r`   r   r   )rc   Úfprimer¦   r§   r3   )r   r7   r@   r   r   r¨   s          r   Útest_unbounded_givenzTestSLSQP.test_unbounded_given
  sT   € ä˜Ÿ™ D¨# ;°XØ"&§(¡(°QØ'(ô*ˆð $'Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! a¨ VÕ,r   c                 óž   — t        | j                  ddgd| j                  gdd¬«      }|\  }}}}}t        |dk(  |«       t	        |ddg«       y )Nr_   rR   r`   r   r   )rc   Úeqconsr¦   r§   )r   r7   rG   r   r   r¨   s          r   Útest_equality_approximatedz$TestSLSQP.test_equality_approximated  sV   € ä˜Ÿ™ 4¨ *°7Ø#'§<¡< .Ø"#°1ô6ˆð $'Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! a¨ VÕ,r   c           	      ó´   — t        | j                  ddg| j                  d| j                  gdd¬«      }|\  }}}}}t	        |dk(  |«       t        |ddg«       y )Nr_   rR   r`   r   r   )r¯   rc   r²   r¦   r§   )r   r7   r@   rG   r   r   r¨   s          r   Útest_equality_givenzTestSLSQP.test_equality_given  s]   € ä˜Ÿ™ D¨# ;Ø $§¡¨wØ#'§<¡< .¸1Ø'(ô*ˆð $'Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! a¨ VÕ,r   c           
      óÈ   — t        | j                  ddg| j                  d| j                  | j                  dd¬«      }|\  }}}}}t        |dk(  |«       t        |ddg«       y )Nr_   rR   r`   r   r   )r¯   rc   Úf_eqconsÚfprime_eqconsr¦   r§   ©r   r7   r@   rG   rJ   r   r   r¨   s          r   Útest_equality_given2zTestSLSQP.test_equality_given2&  se   € ä˜Ÿ™ D¨# ;Ø $§¡¨wØ$(§L¡LØ)-×):Ñ):Ø"#Ø'(ô*ˆð $'Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! a¨ VÕ,r   c           	      ó¸   — t        | j                  ddg| j                  d| j                  gdd¬«      }|\  }}}}}t	        |dk(  |«       t        |ddgd¬	«       y )
Nr_   rR   r`   r   r   )r¯   rc   Úieqconsr¦   r§   r3   é   ©Údecimal)r   r7   r@   rS   r   r   r¨   s          r   Útest_inequality_givenzTestSLSQP.test_inequality_given2  s_   € ä˜Ÿ™ D¨# ;Ø $§¡¨xØ$(§M¡M ?Ø"#°1ô6ˆð $'Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! a¨ V°QÖ7r   c                 óL  — t        | j                  ddg| j                  dddg| j                  | j                  dd¬«	      }|\  }}}}}t        |dk(  |«       t        |d	d	gd
¬«       t        d|d   cxk  xr dk  nc «       t        d|d   cxk  xr
 d	k  «       y c «       y )Nr_   rR   r`   r    r¢   r   r   )r¯   rc   rt   r·   r¸   r¦   r§   r£   r½   r¾   r¡   rI   r¹   r¨   s          r   Útest_bound_equality_given2z$TestSLSQP.test_bound_equality_given2<  s    € ä˜Ÿ™ D¨# ;Ø $§¡¨xØ#-¨yÐ"9Ø$(§L¡LØ)-×):Ñ):Ø"#°1ô6ˆð $'Ñ ˆˆ2ˆs�E˜5Ü�˜‘
˜EÔ"Ü! ! c¨3 Z¸Õ;Ü�˜˜!™Ö! Ô!Ô"Ü��a˜‘dÖ!˜cÑ!Õ"Ñ!Õ"r   c                 ó‚   — t        d„ dgd„ gd¬«      }t        |dg«       t        d„ dgd„ d¬	«      }t        |dg«       y )
Nc                 ó   — | dz  S ©Nr3   r+   ©Úzs    r   Ú<lambda>z3TestSLSQP.test_scalar_constraints.<locals>.<lambda>L  ó   €   A¢r   g      @c                 ó   — | d   dz
  S ©Nr   r   r+   rÆ   s    r   rÈ   z3TestSLSQP.test_scalar_constraints.<locals>.<lambda>M  s   € ¨!¨A©$°ª(r   r   )r¼   r¦   rR   c                 ó   — | dz  S rÅ   r+   rÆ   s    r   rÈ   z3TestSLSQP.test_scalar_constraints.<locals>.<lambda>Q  rÉ   r   c                 ó   — | d   dz
  gS rË   r+   rÆ   s    r   rÈ   z3TestSLSQP.test_scalar_constraints.<locals>.<lambda>R  s   € ¨A¨a©D°1©H©:r   )Ú	f_ieqconsr¦   )r   r   r   s     r   Útest_scalar_constraintsz!TestSLSQP.test_scalar_constraintsJ  sM   € ä‘~¨ tÙ 2Ð3Øô!ˆô 	" ! b TÔ*ä‘~¨ tÙ!5Øô!ˆô 	" ! b TÕ*r   c                 ó,   — t        d„ dgddggd¬«       y )Nc                 ó   — | dz  dz
  S ©Nr3   r   r+   rÆ   s    r   rÈ   z/TestSLSQP.test_integer_bounds.<locals>.<lambda>X  s   € ˜Q ™T AšXr   r   r   ©rt   r¦   ©r   r   s    r   Útest_integer_boundszTestSLSQP.test_integer_boundsV  s   € äÑ%¨ s°Q¸°F°8ÀAÖFr   c                 óÞ   — t         j                   t         j                  ft        j                  dg«      t        j                  dg«      fg}t        d„ ddg|d¬«      }t	        |ddg«       y )Nr3   r½   c                 ó8   — t        j                  | dz  dz
  «      S rÒ   ©r;   ÚsumrÆ   s    r   rÈ   z-TestSLSQP.test_array_bounds.<locals>.<lambda>_  s   € ¤§¡¨¨1©¨q©Ô!1r   rr   r   rÓ   )r;   Úinfr<   r   r   )r   rt   r   s      r   Útest_array_boundszTestSLSQP.test_array_boundsZ  s\   € ô —F‘F�7œBŸF™FÐ#¤b§h¡h°¨s£m´R·X±X¸q¸c³]Ð%CÐDˆÜÑ1°C¸°:ÀfØô!ˆä! ! a¨ VÕ,r   c                 ój   — t        t        «      5  t        d„ g d¢«       d d d «       y # 1 sw Y   y xY w)Nc                 ó
   — ddgS rË   r+   r”   s    r   rÈ   z7TestSLSQP.test_obj_must_return_scalar.<locals>.<lambda>g  s   €  ! Q¡r   ©r   r3   r½   )Úassert_raisesÚ
ValueErrorr   r   s    r   Útest_obj_must_return_scalarz%TestSLSQP.test_obj_must_return_scalarc  s#   € ô œ:Õ&ÜÑ'ªÔ3÷ '×&Ñ&ús   �)©2c                 ó&   — t        d„ g d¢d¬«       y )Nc                 ó   — dgS ©Nr   r+   r”   s    r   rÈ   z;TestSLSQP.test_obj_returns_scalar_in_list.<locals>.<lambda>m  s   € ˜a™Sr   rÞ   r   )r¦   rÔ   r   s    r   Útest_obj_returns_scalar_in_listz)TestSLSQP.test_obj_returns_scalar_in_listi  s   € ô 	‘=¢)°AÖ6r   c                 ó>  — t        «       }t        | j                  ddgdd|| j                  ¬«      }|j                  sJ ‚|j
                  sJ ‚|j                  sJ ‚t        |j                  |d   «       t        | j                  ddgdd|j                  | j                  ¬«      }|j                  sJ ‚|j                  sJ ‚t        | j                  ddgdd|j                  | j                  ¬«      }|j                  rJ ‚|j
                  j                  d«      sJ ‚y )Nr_   rR   r`   ra   )rc   rd   Úcallbackre   Únitz!`callback` raised `StopIteration`)r   r	   r7   r0   rf   rg   r   r   r   r"   r&   Ú
startswith)r   rç   rj   s      r   Útest_callbackzTestSLSQP.test_callbacko  s  € ä“<ˆÜ�t—x‘x $¨ °8Ø%°À$Ç)Á)ôMˆà�{Š{Ðˆ{Ø�{Š{Ðˆ{Ø×#Ò#Ð#Ð#Ü�X—_‘_ c¨%¡jÔ1äØ�H‰HØ�3ˆKØØØ×'Ñ'Ø—I‘Iô
ˆð �{Š{Ðˆ{Ø×#Ò#Ð#Ð#äØ�H‰HØ�3ˆKØØØ×'Ñ'Ø—I‘Iô
ˆð —;’;ÐˆØ�{‰{×%Ñ%Ð&IÔJÐJÑJr   c                 óÞ   — ddg}d„ }d„ }t        d„ |d|dœd|dœfd	d
¬«      }|j                  }t         ||«      dd¬«       t         ||«      dk\  «       t        |j                  |«       y )Nr   r   c                 ó   — | d   | d   z   dz
  S r—   r+   r”   s    r   Úf1z5TestSLSQP.test_inconsistent_linearization.<locals>.f1š  ó   € Ø�Q‘4˜!˜A™$‘; ‘?Ð"r   c                 ó   — | d   dz  dz
  S ©Nr   r3   r   r+   r”   s    r   Úf2z5TestSLSQP.test_inconsistent_linearization.<locals>.f2œ  s   € Ø�Q‘4˜1‘9˜q‘=Ð r   c                 ó$   — | d   dz  | d   dz  z   S rð   r+   r”   s    r   rÈ   z;TestSLSQP.test_inconsistent_linearization.<locals>.<lambda>Ÿ  ó   € �a˜‘d˜A‘g  !¡ a¡Ò'r   rz   ©r|   r7   r‹   ©©r   Nrö   ra   ©r}   rt   rd   g:Œ0âŽyE>r�   g:Œ0âŽyE¾)r	   r   r   r   rf   )r   r   rí   rñ   Úsols        r   Útest_inconsistent_linearizationz)TestSLSQP.test_inconsistent_linearization�  s{   € ð �ˆFˆò	#ò	!äÙ'ØØ!%¨RÑ0Ø!'¨rÑ2ð4à'Øôˆð �E‰Eˆä™˜1›˜q tÕ,Ü‘�1“˜‘ÔÜ�—‘˜SÕ!r   c                 óp   — ddg}t        d„ |dd„ dœdd„ dœfd	d
¬«      }t        |j                   |«       y )Nr   r3   c                 ó$   — | d   dz  | d   dz  z   S rð   r+   r”   s    r   rÈ   z0TestSLSQP.test_regression_5743.<locals>.<lambda>°  ró   r   rz   c                 ó   — | d   | d   z   dz
  S rË   r+   r”   s    r   rÈ   z0TestSLSQP.test_regression_5743.<locals>.<lambda>²  s   € °q¸±t¸A¸a¹D±yÀ²{r   rô   r‹   c                 ó   — | d   dz
  S )Nr   r3   r+   r”   s    r   rÈ   z0TestSLSQP.test_regression_5743.<locals>.<lambda>³  s   € ¸¸1¹¸aºr   rõ   ra   r÷   )r	   r   rf   )r   r   rø   s      r   Útest_regression_5743zTestSLSQP.test_regression_5743«  sM   € ð �ˆFˆÜÙ'ØØ!%Ñ-BÑCØ!'Ñ/?Ñ@ðBà'Øôˆô 	�C—K‘K� Õ%r   c                 ón   — d„ }t        |g d¢d¬«      }t        |j                  j                  dk(  «       y )Nc                 óT   — | d   dz
  dz  d| d   dz
  dz  z  z   d| d   dz
  dz  z  z   S )Nr   r   r3   rs   r+   r”   s    r   Úfuncz$TestSLSQP.test_gh_6676.<locals>.func¹  s?   € Ø�a‘D˜1‘H˜q‘= 1 a¨¡d¨Q¡h°¡]¡?Ñ2°S¸!¸A¹$À¹(ÀQ¹Ñ5FÑFÐFr   ©r   r   r   ra   ©rd   )r½   )r	   r   r@   r[   )r   r  rø   s      r   Útest_gh_6676zTestSLSQP.test_gh_6676¸  s-   € ò	Gô �tšY¨wÔ7ˆÜ�—‘—‘ Ñ%Õ&r   c                 ó  — dddt         j                  dft         j                  dffdt         j                   fdfg}|D ]5  }t        t        «      5  t	        | j
                  ddg|d	¬
«       d d d «       Œ7 y # 1 sw Y   ŒBxY w)N)©r   r3   ©r3   r   )r  r  )r  r  r   r   )r   r   r_   rR   ra   )rt   rd   )r;   rÚ   rß   rà   r	   r7   )r   Úbounds_listrt   s      r   Útest_invalid_boundszTestSLSQP.test_invalid_bounds¿  sw   € ð ØØÜ�f‰f�aˆ[œ2Ÿ6™6 1˜+Ð&Ø”"—&‘&�ˆ\˜6Ð"ð
ˆó "ˆFÜœzÕ*Ü˜Ÿ™ D¨# ;°vÀgÕN÷ +Ð*ñ "ß*Ð*ús   ÁA8Á8B	c                 óò  — d„ }t        |dgddg¬«      }t        |j                  «       t        |j                  dd¬«       t        |d	gdd
g¬«      }t        |j                  «       t        |j                  dd¬«       t        |d	gddg¬«      }t        |j                  «       t        |j                  dd¬«       t        |dgdd
g¬«      }t        |j                  «       t        |j                  dd¬«       t        |dgddg¬«      }t        |j                  «       t        |j                  dd¬«       t        |dgddg¬«      }t        |j                  «       t        |j                  dd¬«       y )Nc                 ó   — | d   dz
  dz  S r—   r+   r”   s    r   r˜   z)TestSLSQP.test_bounds_clipping.<locals>.fÑ  s   € Ø�a‘D˜1‘H˜q‘=Ð r   é
   Úslsqprä   ©rd   rt   r   ç»½×Ùß|Û=r�   éöÿÿÿ)r3   Nr3   ç      à¿)rI   r   ©r	   r   rf   r   r   )r   r˜   rø   s      r   Útest_bounds_clippingzTestSLSQP.test_bounds_clippingÍ  s)  € ò	!ô �q˜2˜$ w¸	°{ÔCˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜3˜%¨¸¸ÔDˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜3˜%¨¸¸ÔDˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜2˜$ w¸	°{ÔCˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜4˜&¨¸'¸ÔCˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜2˜$ w¸°yÔAˆÜ�—‘ÔÜ˜Ÿ™˜q uÖ-r   c                 ó  — d„ }dd„ dœg}dd„ dœg}dd„ dœdd„ dœg}t        |dgd	|¬
«      }t        |j                  «       t        |j                  dd¬«       t        |dgd	|¬
«      }t        |j                  «       t        |j                  dd¬«       t        |dgd	|¬
«      }t        |j                  «       t        |j                  dd¬«       t        |dgd	|¬
«      }t        |j                  «       t        |j                  dd¬«       t        |dgd	|¬
«      }t        |j                  «       t        |j                  dd¬«       t        |dgd	|¬
«      }t        |j                  «       t        |j                  dd¬«       y )Nc                 ó&   — | \  } | | z  d| z  z
  dz   S rÒ   r+   r”   s    r   r˜   z,TestSLSQP.test_infeasible_initial.<locals>.fî  s   € Ø‰BˆAØ�Q‘3˜˜1™‘9˜q‘=Ð r   r‹   c                 ó   — d| z
  S rä   r+   r”   s    r   rÈ   z3TestSLSQP.test_infeasible_initial.<locals>.<lambda>ò  ó   € °A¸²Er   rô   c                 ó   — | dz
  S rÅ   r+   r”   s    r   rÈ   z3TestSLSQP.test_infeasible_initial.<locals>.<lambda>ó  r  r   c                 ó   — d| z
  S rä   r+   r”   s    r   rÈ   z3TestSLSQP.test_infeasible_initial.<locals>.<lambda>ô  ó   € °Q¸²Ur   c                 ó   — | dz   S ©Nr   r+   r”   s    r   rÈ   z3TestSLSQP.test_infeasible_initial.<locals>.<lambda>õ  r  r   r  r  )rd   r}   r   r  r�   r  r3   r  r  )r   r˜   Úcons_uÚcons_lÚcons_ulrø   s         r   Útest_infeasible_initialz!TestSLSQP.test_infeasible_initialì  sP  € ò	!ð "©/Ñ:Ð;ˆØ!©/Ñ:Ð;ˆØ"©?Ñ;Ø"©?Ñ;ð=ˆô �q˜2˜$ w¸FÔCˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜3˜%¨¸VÔDˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜3˜%¨¸VÔDˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜2˜$ w¸FÔCˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜4˜&¨¸gÔFˆÜ�—‘ÔÜ˜Ÿ™˜q uÕ-ä�q˜2˜$ w¸GÔDˆÜ�—‘ÔÜ˜Ÿ™˜q uÖ-r   Údicts)ÚmodeÚ	CompilersÚfortranÚnamez
intel-llvmz7Runtime warning due to floating point issues, not logic)Úreasonc                 óž   — d„ }d„ }d„ }d}d}t        d|¬«      t        d|¬«      f}t        ||d||¬	«      }t        |j                   «       y )
Nc                 ó$   — d| d   z  d| d   z  z   S )NrI   r   r:   r   r+   r”   s    r   Úcostz6TestSLSQP.test_inconsistent_inequalities.<locals>.cost  s   € Ø˜˜!™‘9˜q 1 Q¡4™xÑ'Ð'r   c                 ó   — | d   | d   z
  dz
  S ©Nr   r   r+   r”   s    r   Ú	ineqcons1z;TestSLSQP.test_inconsistent_inequalities.<locals>.ineqcons1  rî   r   c                 ó   — | d   | d   z
  S rË   r+   r”   s    r   Ú	ineqcons2z;TestSLSQP.test_inconsistent_inequalities.<locals>.ineqcons2  s   € Ø�Q‘4˜!˜A™$‘;Ðr   )r   é   )©éûÿÿÿr/  r0  r‹   rô   ra   rš   )Údictr	   r   rf   )r   r)  r,  r.  rœ   rt   Úconsrj   s           r   Útest_inconsistent_inequalitiesz(TestSLSQP.test_inconsistent_inequalities  sU   € ò	(ò	#ò	ð ˆØ#ˆÜ˜& iÔ0´$¸FÈ	Ô2RÐSˆÜ�t˜R¨¸ÈDÔQˆä�C—K‘K�Õ r   c                 óÞ   — d„ }t        ddgt        j                  t        j                  g«      }t        |ddgd|¬«      }t	        |j
                  «       t        |j                  ddg«       y )Nc                 ó$   — | d   dz  | d   dz  z   S rð   r+   r”   s    r   r˜   z)TestSLSQP.test_new_bounds_type.<locals>.f+  s   € Ø�Q‘4˜1‘9˜q ™t q™yÑ(Ð(r   r   r   r  r  )r
   r;   rÚ   r	   r   rf   r   r   )r   r˜   rt   rø   s       r   Útest_new_bounds_typezTestSLSQP.test_new_bounds_type*  sV   € ò	)ä˜˜A˜¤§¡¬¯©Ð 0Ó1ˆÜ�q˜1˜a˜&¨¸Ô@ˆÜ�—‘ÔÜ˜Ÿ™  1˜vÕ&r   c                 óF   —  G d„ d«      } |«       }|j                  «        y )Nc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú9TestSLSQP.test_nested_minimization.<locals>.NestedProblemc                 ó   — d| _         y rä   )ÚF_outer_countr   s    r   r   zBTestSLSQP.test_nested_minimization.<locals>.NestedProblem.__init__6  s
   € Ø%&�Õ"r   c                 ó  — | xj                   dz  c_         | j                   dkD  rt        d«      ‚t        | j                  dd¬«      }t	        |j
                  «       t        |j                  ddg«       |d   dz  |d   dz  z   |d   dz  z   S )	Nr   iè  z(Nested minimization failed to terminate.)r½   r:   ra   r  r   r3   )r<  Ú	Exceptionr	   ÚF_innerr   rf   r   r   )r   r   Ú	inner_ress      r   ÚF_outerzATestSLSQP.test_nested_minimization.<locals>.NestedProblem.F_outer9  s‡   € Ø×"Ò" aÑ'Õ"Ø×%Ñ%¨Ò,Ü#Ð$NÓOÐOÜ$ T§\¡\°6À'ÔJ�	Ü˜	×)Ñ)Ô*Ü 	§¡¨a°¨VÔ4Ø˜‘t˜Q‘w  1¡ q¡Ñ(¨1¨Q©4°©7Ñ2Ð2r   c                 ó0   — |d   dz
  dz  |d   dz
  dz  z   S r—   r+   r   s     r   r?  zATestSLSQP.test_nested_minimization.<locals>.NestedProblem.F_innerB  s%   € Ø˜!™˜q™ 1‘}¨¨!©¨q©°1¡}Ñ4Ð4r   c                 óŽ   — t        | j                  dd¬«      }t        |j                  «       t	        |j
                  g d¢«       y )N)r/  r/  r/  ra   r  r  )r	   rA  r   rf   r   r   )r   Ú	outer_ress     r   Úsolvez?TestSLSQP.test_nested_minimization.<locals>.NestedProblem.solveE  s0   € Ü$ T§\¡\°9ÀWÔM�	Ü˜	×)Ñ)Ô*Ü 	§¡ªYÕ7r   N)r'   r(   r)   r   rA  r?  rE  r+   r   r   ÚNestedProblemr:  4  s   „ ò'ò3ò5ó8r   rF  )rE  )r   rF  Úproblems      r   Útest_nested_minimizationz"TestSLSQP.test_nested_minimization2  s   € ÷	8ñ 	8ñ,  “/ˆØ�‰�r   c                 ó  — d„ }d„ }d„ }d|dœ}d|dœ}t        |ddgd||gd	d
g¬«      }t        j                  j                  |j                  d«       t        j                  j                  |j
                  ddg«       |j                  sJ ‚y )Nc                 ó2   — t        j                  | d   «      S r  )r;   Úsqrtr”   s    r   r7   z"TestSLSQP.test_gh1758.<locals>.funQ  s   € Ü—7‘7˜1˜Q™4“=Ð r   c                 ó$   — | d   d| d   z  dz  z
  S )rD   r   r3   r   r½   r+   r”   s    r   rG   z&TestSLSQP.test_gh1758.<locals>.f_eqconT  s   € à�Q‘4˜1˜q ™t™8¨™/Ñ)Ð)r   c                 ó&   — | d   | d    dz   dz  z
  S )rD   r   r   r½   r+   r”   s    r   Úf_eqcon2z'TestSLSQP.test_gh1758.<locals>.f_eqcon2X  s    € à�Q‘4˜A˜a™D˜5 1™9¨Ñ*Ñ*Ð*r   rz   rô   é   g      Ð?ra   )r  r   )r   rO  )rd   r}   rt   g8r]õ(ká?gÚÁQUUÕ?gc@›Á„öÒ?)r	   r;   Útestingr   r7   r   rf   )r   r7   rG   rN  Úc1Úc2rj   s          r   Útest_gh1758zTestSLSQP.test_gh1758M  s�   € ò	!ò	*ò	+ð  7Ñ+ˆØ 8Ñ,ˆä�s˜Q ˜I¨gØ$&¨ 8°YÀÐ4GôIˆô 	�
‰
×"Ñ" 3§7¡7¨OÔ<Ü
�
‰
×"Ñ" 3§5¡5¨:°yÐ*AÔBØ�{Š{Ð‰{r   c           
      ór   — dd„ dœdd„ dœf}d}d„ }g d¢}t        ||d||d	d
dœ¬«      }|j                  rJ ‚y )Nr‹   c                 ó    — | d    | d   z
  dz
  S )Nr   r   r½   r+   r”   s    r   rÈ   z'TestSLSQP.test_gh9640.<locals>.<lambda>g  s   € °1°Q±4°%¸!¸A¹$±,ÀÒ2Br   rô   c                 ó   — | d   | d   z   dz
  S )Nr   r3   r+   r”   s    r   rÈ   z'TestSLSQP.test_gh9640.<locals>.<lambda>h  s   € °!°A±$¸¸1¹±+À²/r   )©r9   r3   rW  rW  c                  ó   — yr  r+   r”   s    r   Útargetz%TestSLSQP.test_gh9640.<locals>.targetk  s   € Ør   )g ãö51þ¿gäÐ£X«{ä¿g ¢¼ŽP(ê¿ra   Fi'  )r/   Úmaxiter)rd   rt   r}   re   )r	   rf   )r   r3  ÚbndsrY  rœ   rj   s         r   Útest_gh9640zTestSLSQP.test_gh9640f  sX   € ØÑ(BÑCØÑ(AÑBðDˆà*ˆò	âKˆÜ�v˜r¨'¸$ÈDØ',¸Ñ>ô@ˆð —;’;Ðˆ�;r   c                 ó*  ‡— t        t        j                  dg«      t        j                  dg«      «      Št        j                  ‰j                  ‰j                  ‰j                  z
  dz  z   «      }ˆfd„}t        ||d‰¬«      }|j                  sJ ‚y )Ngš™™™™™¹?rR   g<ú}°Ú?c                 ó€   •— | ‰j                   k\  j                  «       sJ ‚t        j                  j	                  | «      S r$   )ÚlbÚallr;   ÚlinalgÚnorm)r   rt   s    €r   r˜   z7TestSLSQP.test_parameters_stay_within_bounds.<locals>.f€  s0   ø€ Ø˜Ÿ™‘N×'Ñ'Ô)Ð)Ð)Ü—9‘9—>‘> !Ó$Ð$r   ra   r  )r
   r;   r<   r_  Úubr	   rf   )r   rœ   r˜   rj   rt   s       @r   Ú"test_parameters_stay_within_boundsz,TestSLSQP.test_parameters_stay_within_boundst  sx   ø€ ô œŸ™ # ›¬¯©°3°%«Ó9ˆÜ�X‰X�f—i‘i 6§9¡9¨v¯y©yÑ#8Ø'ñ#(ñ (ó )ˆô	%ô
 �q˜" W°VÔ<ˆØ�{Š{Ð‰{r   N)rR   ):r'   r(   r)   r*   r1   r7   r@   rB   rG   rJ   rM   rP   rS   rU   rX   r\   rk   rn   rv   rx   r~   r�   r‡   r‰   r�   r‘   rž   r¤   r­   r°   r³   rµ   rº   rÀ   rÂ   rÏ   rÕ   rÛ   rá   rå   rê   rù   rþ   r  r	  r  r   ÚpytestÚmarkÚxfailÚscipyÚshow_configr4  r7  rH  rS  r\  rd  r+   r   r   r-   r-   '   sQ  „ ñò$ó2ó 
-ó4ó'ó#ó(ó6ó-ó#òò'ò
+ò'ò%ò'ò+ò'ò'ò'ò	2ò
'òEò$'ò"-ò-ò-ò-ò
-ò8ò#ò
+òGò-ò4ò7òKò@"ò8&ò'òOò.ò>!.ðF ‡[�[×ÑÐ(�u×(Ñ(¨gÔ6°{ÑCÀIÑNÈvÑVØ&ñ'àWð ó Yñ!óYð!ò0'òò6ò2ór   r-   c                  ó¼   ‡— t         j                  j                  d«      } | j                  ddg¬«      }t        j                  ddd«      }d„ Šˆfd	„} |||«       y )
Nl   _x
&ºC1 é   im  )Úsizer™   g      @é2   c                 ó   — ddgddggS rË   r+   )ÚvÚweightss     r   Úmetricz?test_slsqp_segfault_wrong_workspace_computation.<locals>.metric’  s   € Ø�A�˜˜1�vˆÐr   c                 óÈ   •‡ ‡‡— ˆˆ fd„Šˆfd„}dˆˆfd„dœdd„ dœf}t        j                  t        ‰ «      dt        ‰ «      z  gz  g«      d   }t        ||‰ fd	|¬
«      }|S )Nc                 ó"   •—  ‰‰| «      d   d   S r+  r+   )rp  rq  ro  s    €€r   Úmetric_az[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.metric_a–  ó   ø€ Ù˜!˜WÓ% aÑ(¨Ñ+Ð+r   c                 ó"   •—  ‰|| «      d   d   S rä   r+   )rp  ro  rq  s     €r   Úmetric_bz[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.metric_b™  ru  r   rz   c                 ó   •—  ‰| «      ‰z
  S r$   r+   )r   rt  rY  s    €€r   rÈ   z[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.<lambda>œ  s   ø€ ±xÀ³{ÀVÒ7Kr   rô   c                 ó2   — t        j                  | «      dz
  S r  rØ   r”   s    r   rÈ   z[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.<lambda>�  s   € ´r·v±v¸a³yÀ1²}r   rR   r   ra   )rc   rd   r}   )r;   r<   Úlenr	   )ro  rY  rw  r}   rp  Úresultrt  rq  s   ``    @€r   Úefficient_metriczItest_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric•  ss   û€ õ	,ô	,ð !%Ô-KÑLØ $Ñ-DÑEðGˆä—(‘(œC ›F B¤s¨1£v¡I ;Ñ.Ð/Ó0°Ñ3ˆÜ˜(Ø!Ø !˜tØ!(Ø&1ô	3ˆð
 ˆr   )r;   ÚrandomÚdefault_rngÚuniformÚlinspace)Úrngr   rY  r|  rq  s       @r   Ú/test_slsqp_segfault_wrong_workspace_computationr‚  ‰  sV   ø€ ô
 �)‰)×
Ñ
Ð 0Ó
1€CØ�‰˜"˜S˜ˆÓ"€AÜ�[‰[˜˜c 2Ó&€Fòôñ" �Q˜Õr   )r*   Únumpy.testingr   r   r   r   re  r   rß   Únumpyr;   rh  Úscipy.optimizer   r	   r
   r   r   r   r-   r‚  r+   r   r   Ú<module>r†     sF   ðñ÷:ó :å *Û Û Û ÷,õ ,÷ñ ÷0_	ñ _	óD r   