§
    fŠtj>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dS )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dS )Ú
MyCallBackzJpass a custom callback function

    This makes sure it's being used.
    c                 ó"   — d| _         d| _        d S )NFr   )Úbeen_calledÚncalls©Úselfs    ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_slsqp.pyÚ__init__zMyCallBack.__init__   s   € Ø ˆÔØˆŒˆˆó    c                 ób   — t          |t          ¦  «        rJ ‚d| _        | xj        dz  c_        d S ©NTé   ©Ú
isinstancer   r   r   ©r   Úxs     r   Ú__call__zMyCallBack.__call__   s4   € Ý˜a¥Ñ0Ô0Ð0Ð0Ð0ØˆÔØˆŒ�qÑˆŒˆˆr   c                 ób   — t          |t          ¦  «        sJ ‚d| _        | xj        dz  c_        d S r   r   ©r   Úintermediate_results     r   Ú	callback2zMyCallBack.callback2   s5   € ÝÐ-­~Ñ>Ô>Ð>Ð>Ð>ØˆÔØˆŒ�qÑˆŒˆˆr   c                 ó>   — 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      sZ   € € € € € ðð ðð ð ðð ð ð
ð ð ð
ð ð ð ð 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/j0         1                     e2j3        d.¬/¦  «        d0         d1         d2         d3k    d4¬5¦  «        d6„ ¦   «         Z4d7„ Z5d8„ Z6d9„ Z7d:„ Z8d;„ Z9d<S )>Ú	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| _         d S )NÚdispF)Úoptsr   s    r   Úsetup_methodzTestSLSQP.setup_method.   s   € Ø˜U�OˆŒ	ˆ	ˆ	r   ç      ð?c                 ób   — |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   éþÿÿÿr4   é   )ÚnpÚarrayÚfloat)r   r5   r6   r   r7   Ú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˜˜t˜¥eÑ,Ô,Ð,r   c                 óZ   — |                       ||¦  «        |                      ||¦  «        fS r$   )r8   rA   )r   r5   r6   s      r   Úfun_and_jaczTestSLSQP.fun_and_jacM   s)   € Ø�xŠx˜˜4Ñ Ô  $§(¢(¨1¨dÑ"3Ô"3Ð3Ð3r   c                 óJ   — t          j        |d         |d         z
  g¦  «        S )ú Equality constraint r   r   ©r<   r=   ©r   r   r6   s      r   Úf_eqconzTestSLSQP.f_eqconP   s    € åŒx˜˜1œ  !¤™˜Ñ&Ô&Ð&r   c                 ó0   — t          j        ddgg¦  «        S )z! Equality constraint, derivative r   éÿÿÿÿrF   rG   s      r   Úfprime_eqconzTestSLSQP.fprime_eqconT   ó   € åŒx˜!˜R˜˜	Ñ"Ô"Ð"r   c                 ó:   — |                       ||¦  «        d         S )z Scalar equality constraint r   )rH   rG   s      r   Úf_eqcon_scalarzTestSLSQP.f_eqcon_scalarX   s   € à�|Š|˜A˜tÑ$Ô$ QÔ'Ð'r   c                 ó^   — |                       ||¦  «        d                              ¦   «         S )z( Scalar equality constraint, derivative r   )rK   ÚtolistrG   s      r   Úfprime_eqcon_scalarzTestSLSQP.fprime_eqcon_scalar\   s)   € à× Ò   DÑ)Ô)¨!Ô,×3Ò3Ñ5Ô5Ð5r   c                 óP   — t          j        |d         |d         z
  dz
  g¦  «        S )z Inequality constraint r   r   r2   rF   rG   s      r   Úf_ieqconzTestSLSQP.f_ieqcon`   s&   € åŒx˜˜1œ  !¤™ sÑ*Ð+Ñ,Ô,Ð,r   c                 ó0   — t          j        ddgg¦  «        S )z# Inequality constraint, derivative r   rJ   rF   rG   s      r   Úfprime_ieqconzTestSLSQP.fprime_ieqcond   rL   r   c                 ó*   — t          j        |¦  «        S )z Vector inequality constraint )r<   Úasarrayr   s     r   Ú	f_ieqcon2zTestSLSQP.f_ieqcon2h   s   € åŒz˜!‰}Œ}Ðr   c                 ó@   — t          j        |j        d         ¦  «        S )z* Vector inequality constraint, derivative r   )r<   ÚidentityÚshaper   s     r   Úfprime_ieqcon2zTestSLSQP.fprime_ieqcon2l   s   € åŒ{˜1œ7 1œ:Ñ&Ô&Ð&r   c           	      óÀ   — g d¢}|D ]V}t          | j        ddgd|d| j        ¬¦  «        }t          |d         |d         ¦  «         t	          |j        d	d
g¦  «         ŒWd S )N©NFz2-pointz3-pointç      ð¿r2   ©r_   ÚSLSQP©ÚargsrA   ÚmethodÚoptionsÚsuccessÚmessager4   r   )r	   r8   r0   r   r   r   ©r   ÚjacsrA   Úress       r   Ú$test_minimize_unbounded_approximatedz.TestSLSQP.test_minimize_unbounded_approximatedq   sƒ   € à2Ð2Ð2ˆØð 	+ð 	+ˆCÝ˜4œ8 d¨C [°xØ"¨7Ø#'¤9ð.ñ .ô .ˆCõ �C˜	”N C¨	¤NÑ3Ô3Ð3Ý˜CœE A q 6Ñ*Ô*Ð*Ð*ð	+ð 	+r   c                 ó¸   — t          | j        ddgd| j        d| j        ¬¦  «        }t	          |d         |d         ¦  «         t          |j        dd	g¦  «         d S )
Nr_   r2   r`   ra   rb   rf   rg   r4   r   )r	   r8   rA   r0   r   r   r   ©r   rj   s     r   Útest_minimize_unbounded_givenz'TestSLSQP.test_minimize_unbounded_given{   sd   € å�t”x $¨ °8Øœ8¨G¸T¼YðHñ Hô 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 ¦  «         n# 1 swxY w Y   t          |d
         |d         ¦  «         t          |j        ddg¦  «         t          d|j        d         k    ¦  «         t          |j        d         dk    ¦  «         ŒÁd S )Nr^   Úignore)Úinvalidr_   r2   r`   ))ç      @N)Nç      à?ra   )rc   rA   Úboundsrd   re   rf   rg   rr   rs   r   r   )r<   Úerrstater	   r8   r0   r   r   r   rh   s       r   Ú"test_minimize_bounded_approximatedz,TestSLSQP.test_minimize_bounded_approximated‚   s2  € à2Ð2Ð2ˆØð 		%ð 		%ˆCÝ” XÐ.Ñ.Ô.ð Bð BÝ˜tœx¨$°¨¸8Ø#&Ø&@Ø&-°t´yðBñ Bô B�ðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bõ
 �C˜	”N C¨	¤NÑ3Ô3Ð3Ý˜CœE C¨ :Ñ.Ô.Ð.Ý�C˜3œ5 œ8’OÑ$Ô$Ð$Ý�C”E˜!”H ’OÑ$Ô$Ð$Ð$ð		%ð 		%s   ž#AÁA	ÁA	c                 ó®   — t          | j        ddgddd| j        ¬¦  «        }t          |d         |d         ¦  «         t	          |j        d	d
g¦  «         d S )Nr_   r2   r`   Tra   rb   rf   rg   r4   r   )r	   rC   r0   r   r   r   rm   s     r   Ú test_minimize_unbounded_combinedz*TestSLSQP.test_minimize_unbounded_combined�   sc   € å�tÔ'¨$°¨¸8Ø¨¸¼ðDñ Dô Dˆå��I”  I¤Ñ/Ô/Ð/Ý˜œ  1˜vÑ&Ô&Ð&Ð&Ð&r   c                 óÔ   — g d¢}|D ]`}t          | j        ddgd|d| j        ddœd| j        ¬¦  «        }t	          |d	         |d
         ¦  «         t          |j        ddg¦  «         Œad S )Nr^   r_   r2   r`   Úeq©Útyper8   rc   ra   )rc   rA   Úconstraintsrd   re   rf   rg   r   )r	   r8   rH   r0   r   r   r   rh   s       r   Ú#test_minimize_equality_approximatedz-TestSLSQP.test_minimize_equality_approximated—   sš   € à2Ð2Ð2ˆØð 	+ð 	+ˆCÝ˜4œ8 d¨C [°xØ"Ø04Ø/3¬|Ø08ð(:ð (:ð #*°4´9ð>ñ >ô >ˆCõ �C˜	”N C¨	¤NÑ3Ô3Ð3Ý˜Cœ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¦  «         d S )Nr_   r2   ra   r`   rz   r{   ©rA   rd   rc   r}   re   rf   rg   r   )r	   r8   rA   rH   r0   r   r   r   rm   s     r   Útest_minimize_equality_givenz&TestSLSQP.test_minimize_equality_given¤   sx   € å�t”x $¨ °$´(Ø%¨GØ,0¸¼Ø,4ð$6ð $6à#œ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¦  «         d S ©Nr_   r2   ra   r`   rz   ©r|   r8   rc   rA   ©rd   rA   rc   r}   re   rf   rg   r   ©	r	   r8   rA   rH   rK   r0   r   r   r   rm   s     r   Útest_minimize_equality_given2z'TestSLSQP.test_minimize_equality_given2®   sƒ   € õ �t”x $¨ °WØœ8¨'Ø,0Ø+/¬<Ø,4Ø+/Ô+<ð$>ð $>ð  $œ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¦  «         d S rƒ   )	r	   r8   rA   rN   rQ   r0   r   r   r   rm   s     r   Ú(test_minimize_equality_given_cons_scalarz2TestSLSQP.test_minimize_equality_given_cons_scalar»   s†   € õ �t”x $¨ °WØœ8¨'Ø,0Ø+/Ô+>Ø,4Ø+/Ô+Cð$Eð $Eð  $œ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¬¦  «         d S )Nr_   r2   ra   r`   Úineqr{   r…   rf   rg   r4   r   çü©ñÒMbP?©Úatol)r	   r8   rA   rS   r0   r   r   r   rm   s     r   Útest_minimize_inequality_givenz(TestSLSQP.test_minimize_inequality_givenÈ   s€   € å�t”x $¨ °WØœ8¨(Ø,2Ø+/¬=Ø,4ð$6ð $6ð  $œyð*ñ *ô *ˆõ 	��I”  I¤Ñ/Ô/Ð/Ý˜œ  1˜v¨DÐ1Ñ1Ô1Ð1Ð1Ð1r   c                 óÖ   — t          | j        ddg| j        ddd| j        | j        dœ| j        ¬¦  «        }t          |d         |d	         ¦  «         t          |j        d
dg¦  «         d S )Nr_   r2   ra   r`   r‹   )r|   r8   rA   r€   rf   rg   r4   r   )	r	   r8   rA   rX   r\   r0   r   r   r   rm   s     r   Ú1test_minimize_inequality_given_vector_constraintsz;TestSLSQP.test_minimize_inequality_given_vector_constraintsÓ   s‚   € õ �t”x $¨ °$´(Ø%¨GØ,2Ø+/¬>Ø+/Ô+>ð$@ð $@ð  $œ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	||¬
¦  «         d S )Nc                 ó”   — d| d         cxk    rdk    rn nd| d         cxk    rdk    sn J | ¦   «         ‚| d         dz  | d         z   S )Nr   r   rs   r+   ©r   s    r   Úcz5TestSLSQP.test_minimize_bounded_constraint.<locals>.cä   s[   € Ø˜˜!œ�>�>’>�> ’>�>�>�>�> a¨1¨Q¬4 n n¢n n°1¢n n n n n°a¡n¤nÐ4Ø�Q”4˜3‘;  1¤Ñ%Ð%r   c                 óœ   — d| d         cxk    rdk    rn nd| d         cxk    rdk    sn J | ¦   «         ‚| d         dz   | d         dz  z   S ©Nr   r   r4   r+   r”   s    r   Úfz5TestSLSQP.test_minimize_bounded_constraint.<locals>.fè   sa   € Ø˜˜!œ�>�>’>�> ’>�>�>�>�> a¨1¨Q¬4 n n¢n n°1¢n n n n n°a¡n¤nÐ4Ø�a”D˜A‘I�:  !¤¨¡	Ñ)Ð)r   r   g      ø?çÍÌÌÌÌÌì?rs   g        r2   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ß   s   € ð
	&ð 	&ð 	&ð	*ð 	*ð 	*õ # 1 a¨Ñ-Ô-Ð.ˆÝŒZ˜˜c˜
Ñ#Ô#ˆÝ�b˜"�X  S˜zÑ*Ô*ˆÝ��B˜w¨sÀÐDÑDÔDÐDÐDÐ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    odk    nc ¦  «         t          d|j        d         cxk    odk    nc ¦  «         d S )Nr_   r2   ra   r`   ©çš™™™™™é¿r2   ©rJ   çš™™™™™é?rz   r„   )rd   rA   rc   rt   r}   re   rf   rg   r£   rŒ   r�   r¡   r   r   rJ   r†   rm   s     r   Ú#test_minimize_bound_equality_given2z-TestSLSQP.test_minimize_bound_equality_given2ñ   sð   € õ �t”x $¨ °WØœ8¨(Ø)¨9Ð5Ø,0Ø+/¬<Ø,4Ø+/Ô+<ð$>ð $>ð  $œyð*ñ *ô *ˆõ 	��I”  I¤Ñ/Ô/Ð/Ý˜œ  S˜z°Ð5Ñ5Ô5Ð5Ý�˜œ˜aœÐ%Ð%Ò%Ð% AÒ%Ð%Ð%Ð%Ñ&Ô&Ð&Ý��c”e˜A”hÐ%Ð%Ò%Ð% #Ò%Ð%Ð%Ð%Ñ&Ô&Ð&Ð&Ð&r   c                 ó˜   — t          | j        ddgddd¬¦  «        }|\  }}}}}t          |dk    |¦  «         t          |ddg¦  «         d S )Nr_   r2   r`   r   r   )rc   ÚiprintÚfull_outputr4   )r   r8   r   r   ©r   rj   r   ÚfxÚitsÚimodeÚsmodes          r   Útest_unbounded_approximatedz%TestSLSQP.test_unbounded_approximated  se   € å˜œ D¨# ;°XØ"#°1ð6ñ 6ô 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¦  «         d S )Nr_   r2   r`   r   r   )rc   Úfprimer¦   r§   r4   )r   r8   rA   r   r   r¨   s          r   Útest_unbounded_givenzTestSLSQP.test_unbounded_given
  sl   € å˜œ 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¦  «         d S )Nr_   r2   r`   r   r   )rc   Úeqconsr¦   r§   )r   r8   rH   r   r   r¨   s          r   Útest_equality_approximatedz$TestSLSQP.test_equality_approximated  sn   € å˜œ 4¨ *°7Ø#'¤< .Ø"#°1ð6ñ 6ô 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¦  «         d S )Nr_   r2   r`   r   r   )r¯   rc   r²   r¦   r§   )r   r8   rA   rH   r   r   r¨   s          r   Útest_equality_givenzTestSLSQP.test_equality_given  ss   € å˜œ 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¦  «         d S )Nr_   r2   r`   r   r   )r¯   rc   Úf_eqconsÚfprime_eqconsr¦   r§   ©r   r8   rA   rH   rK   r   r   r¨   s          r   Útest_equality_given2zTestSLSQP.test_equality_given2&  sx   € å˜œ D¨# ;Ø $¤¨wØ$(¤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¬	¦  «         d S )
Nr_   r2   r`   r   r   )r¯   rc   Úieqconsr¦   r§   r4   é   ©Údecimal)r   r8   rA   rS   r   r   r¨   s          r   Útest_inequality_givenzTestSLSQP.test_inequality_given2  sx   € å˜œ D¨# ;Ø $¤¨xØ$(¤M ?Ø"#°1ð6ñ 6ô 6ˆð $'Ñ ˆˆ2ˆs�E˜5Ý�˜’
˜EÑ"Ô"Ð"Ý! ! a¨ V°QÐ7Ñ7Ô7Ð7Ð7Ð7r   c                 óR  — 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    odk    nc ¦  «         t          d|d         cxk    od	k    nc ¦  «         d S )Nr_   r2   r`   r    r¢   r   r   )r¯   rc   rt   r·   r¸   r¦   r§   r£   r½   r¾   r¡   rJ   r¹   r¨   s          r   Útest_bound_equality_given2z$TestSLSQP.test_bound_equality_given2<  sà   € å˜œ D¨# ;Ø $¤¨xØ#-¨yÐ"9Ø$(¤LØ)-Ô):Ø"#°1ð6ñ 6ô 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¦  «         d S )
Nc                 ó   — | dz  S ©Nr4   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¦   r2   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  s}   € å�~�~¨ tØ 2Ð 2Ð3Øð!ñ !ô !ˆõ 	" ! b TÑ*Ô*Ð*å�~�~¨ tØ!5Ð!5Øð!ñ !ô !ˆõ 	" ! b TÑ*Ô*Ð*Ð*Ð*r   c                 ó6   — t          d„ dgddggd¬¦  «         d S )Nc                 ó   — | dz  dz
  S ©Nr4   r   r+   rÆ   s    r   rÈ   z/TestSLSQP.test_integer_bounds.<locals>.<lambda>X  s   € ˜Q ™T A™X€ r   r   r   ©rt   r¦   ©r   r   s    r   Útest_integer_boundszTestSLSQP.test_integer_boundsV  s+   € åÐ%Ð%¨ s°Q¸°F°8ÀAÐFÑFÔFÐFÐFÐ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¦  «         d S )Nr4   r½   c                 ó6   — t          j        | dz  dz
  ¦  «        S rÒ   ©r<   ÚsumrÆ   s    r   rÈ   z-TestSLSQP.test_array_bounds.<locals>.<lambda>_  s   € ¥¤¨¨1©¨q©Ñ!1Ô!1€ r   rr   r   rÓ   )r<   Úinfr=   r   r   )r   rt   r   s      r   Útest_array_boundszTestSLSQP.test_array_boundsZ  sq   € õ ”F�7�BœFÐ#¥b¤h°¨s¡m¤mµR´X¸q¸c±]´]Ð%CÐDˆÝÐ1Ð1°C¸°:ÀfØð!ñ !ô !ˆå! ! a¨ VÑ,Ô,Ð,Ð,Ð,r   c                 ó†   — t          t          ¦  «        5  t          d„ g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó
   — ddgS rË   r+   r”   s    r   rÈ   z7TestSLSQP.test_obj_must_return_scalar.<locals>.<lambda>g  s
   €  ! Q € r   ©r   r4   r½   )Úassert_raisesÚ
ValueErrorr   r   s    r   Útest_obj_must_return_scalarz%TestSLSQP.test_obj_must_return_scalarc  sŽ   € õ �:Ñ&Ô&ð 	4ð 	4ÝÐ'Ð'¨¨¨Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   •6¶:½:c                 ó0   — t          d„ g d¢d¬¦  «         d S )Nc                 ó   — dgS ©Nr   r+   r”   s    r   rÈ   z;TestSLSQP.test_obj_returns_scalar_in_list.<locals>.<lambda>m  s   € ˜a˜S€ r   rÞ   r   )r¦   rÔ   r   s    r   Útest_obj_returns_scalar_in_listz)TestSLSQP.test_obj_returns_scalar_in_listi  s%   € õ 	�=�= ) ) )°AÐ6Ñ6Ô6Ð6Ð6Ð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                             d¦  «        sJ ‚d S )Nr_   r2   r`   ra   )rc   rd   Úcallbackre   Únitz!`callback` raised `StopIteration`)r   r	   r8   r0   rf   rg   r   r   r   r"   r&   Ú
startswith)r   rç   rj   s      r   Útest_callbackzTestSLSQP.test_callbacko  s(  € å‘<”<ˆÝ�t”x $¨ °8Ø%°À$Ä)ðMñ Mô MˆàŒ{ÐÐˆ{ØŒ{ÐÐˆ{ØÔ#Ð#Ð#Ð#Ý�X”_ c¨%¤jÑ1Ô1Ð1åØŒHØ�3ˆKØØØÔ'Ø”Ið
ñ 
ô 
ˆð Œ{ÐÐˆ{ØÔ#Ð#Ð#Ð#åØŒHØ�3ˆKØØØÔ'Ø”Ið
ñ 
ô 
ˆð ”;ÐÐˆØŒ{×%Ò%Ð&IÑJÔJÐJÐJÐ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        |¦  «         d S )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   r4   r   r+   r”   s    r   Úf2z5TestSLSQP.test_inconsistent_linearization.<locals>.f2œ  s   € Ø�Q”4˜1‘9˜q‘=Ð r   c                 ó0   — | 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|   r8   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Ð0Ø!'¨rÐ2Ð2ð4à'Øðñ ô ˆð ŒEˆå˜˜˜1™œ˜q tÐ,Ñ,Ô,Ð,Ý���1‘”˜’ÑÔÐÝ�”˜SÑ!Ô!Ð!Ð!Ð!r   c                 óx   — ddg}t          d„ |dd„ dœdd„ dœfd	d
¬¦  «        }t          |j         |¦  «         d S )Nr   r4   c                 ó0   — | 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   r4   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«  sp   € ð �ˆFˆÝØ'Ð'ØØ!%Ð-BÐ-BÐCÐCØ!'Ð/?Ð/?Ð@Ð@ðBà'Øðñ ô ˆõ 	�C”K� Ñ%Ô%Ð%Ð%Ð%r   c                 ón   — d„ }t          |g d¢d¬¦  «        }t          |j        j        dk    ¦  «         d S )Nc                 óf   — | d         dz
  dz  d| d         dz
  dz  z  z   d| d         dz
  dz  z  z   S )Nr   r   r4   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   rA   r[   )r   r  rø   s      r   Útest_gh_6676zTestSLSQP.test_gh_6676¸  sK   € ð	Gð 	Gð 	Gõ �t˜Y˜Y˜Y¨wÐ7Ñ7Ô7ˆÝ�”” Ò%Ñ&Ô&Ð&Ð&Ð&r   c                 óü   — dddt           j        dft           j        dffdt           j         fdfg}|D ]H}t          t          ¦  «        5  t	          | j        ddg|d	¬
¦  «         d d d ¦  «         n# 1 swxY w Y   ŒId S )N)©r   r4   ©r4   r   )r  r  )r  r  r   r   )r   r   r_   r2   ra   )rt   rd   )r<   rÚ   rß   rà   r	   r8   )r   Úbounds_listrt   s      r   Útest_invalid_boundszTestSLSQP.test_invalid_bounds¿  sé   € ð ØØÝŒf�aˆ[�2œ6 1˜+Ð&Ø•"”&�ˆ\˜6Ð"ð
ˆð "ð 	Oð 	OˆFÝ�zÑ*Ô*ð Oð OÝ˜œ D¨# ;°vÀgÐNÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oøð	Oð 	Os   Á	A0Á0A4	Á7A4	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¬¦  «         d S )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�   éöÿÿÿ)r4   Nr4   ç      à¿)rJ   r   ©r	   r   rf   r   r   )r   r˜   rø   s      r   Útest_bounds_clippingzTestSLSQP.test_bounds_clippingÍ  sŸ  € ð	!ð 	!ð 	!õ �q˜2˜$ w¸	°{ÐCÑCÔCˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜3˜%¨¸¸ÐDÑDÔDˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜3˜%¨¸¸ÐDÑDÔDˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜2˜$ w¸	°{ÐCÑCÔCˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜4˜&¨¸'¸ÐCÑCÔCˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜2˜$ w¸°yÐAÑAÔAˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-Ð-Ð-r   c                 ó4  — 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¬¦  «         d S )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¸±E€ r   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¸±U€ r   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  r4   r  r  )r   r˜   Úcons_uÚcons_lÚcons_ulrø   s         r   Útest_infeasible_initialz!TestSLSQP.test_infeasible_initialì  sÚ  € ð	!ð 	!ð 	!ð "¨/¨/Ð:Ð:Ð;ˆØ!¨/¨/Ð:Ð:Ð;ˆØ"¨?¨?Ð;Ð;Ø"¨?¨?Ð;Ð;ð=ˆõ �q˜2˜$ w¸FÐCÑCÔCˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜3˜%¨¸VÐDÑDÔDˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜3˜%¨¸VÐDÑDÔDˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜2˜$ w¸FÐCÑCÔCˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜4˜&¨¸gÐFÑFÔFˆÝ�”ÑÔÐÝ˜œ˜q uÐ-Ñ-Ô-Ð-å�q˜2˜$ w¸GÐDÑDÔ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         ¦  «         d S )
Nc                 ó0   — d| d         z  d| d         z  z   S )NrJ   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  s�   € ð	(ð 	(ð 	(ð	#ð 	#ð 	#ð	ð 	ð 	ð ˆØ#ˆÝ˜& iÐ0Ñ0Ô0µ$¸FÈ	Ð2RÑ2RÔ2RÐSˆÝ�t˜R¨¸ÈDÐQÑQÔQˆå�C”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¦  «         d S )Nc                 ó0   — | 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*  ss   € ð	)ð 	)ð 	)å˜˜A˜¥¤­¬Ð 0Ñ1Ô1ˆÝ�q˜1˜a˜&¨¸Ð@Ñ@Ô@ˆÝ�”ÑÔÐÝ˜œ  1˜vÑ&Ô&Ð&Ð&Ð&r   c                 ó\   —  G d„ d¦  «        } |¦   «         }|                      ¦   «          d S )Nc                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ú9TestSLSQP.test_nested_minimization.<locals>.NestedProblemc                 ó   — d| _         d S 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k    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   r4   )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ÐOÝ$ T¤\°6À'ÐJÑJÔJ�	Ý˜	Ô)Ñ*Ô*Ð*Ý 	¤¨a°¨VÑ4Ô4Ð4Ø˜”t˜Q‘w  1¤ q¡Ñ(¨1¨Q¬4°©7Ñ2Ð2r   c                 ó<   — |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¢¦  «         d S )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  sE   € Ý$ T¤\°9ÀWÐMÑMÔM�	Ý˜	Ô)Ñ*Ô*Ð*Ý 	¤¨Y¨Y¨YÑ7Ô7Ð7Ð7Ð7r   N)r'   r(   r)   r   rA  r?  rE  r+   r   r   ÚNestedProblemr:  4  sP   € € € € € ð'ð 'ð 'ð3ð 3ð 3ð5ð 5ð 5ð8ð 8ð 8ð 8ð 8r   rF  )rE  )r   rF  Úproblems      r   Útest_nested_minimizationz"TestSLSQP.test_nested_minimization2  sH   € ð	8ð 	8ð 	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð,  �-‘/”/ˆØ�Š‰Œˆˆˆr   c                 ó
  — d„ }d„ }d„ }d|dœ}d|dœ}t          |ddgd||gd	d
g¬¦  «        }t          j                             |j        d¦  «         t          j                             |j        ddg¦  «         |j        sJ ‚d S )Nc                 ó6   — t          j        | d         ¦  «        S r  )r<   Úsqrtr”   s    r   r8   z"TestSLSQP.test_gh1758.<locals>.funQ  s   € Ý”7˜1˜Qœ4‘=”=Ð r   c                 ó0   — | d         d| d         z  dz  z
  S )rE   r   r4   r   r½   r+   r”   s    r   rH   z&TestSLSQP.test_gh1758.<locals>.f_eqconT  s   € à�Q”4˜1˜q œt™8¨™/Ñ)Ð)r   c                 ó2   — | d         | d          dz   dz  z
  S )rE   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   r8   r   rf   )r   r8   rH   rN  Úc1Úc2rj   s          r   Útest_gh1758zTestSLSQP.test_gh1758M  sÈ   € ð	!ð 	!ð 	!ð	*ð 	*ð 	*ð	+ð 	+ð 	+ð  7Ð+Ð+ˆØ 8Ð,Ð,ˆå�s˜Q ˜I¨gØ$&¨ 8°YÀÐ4GðIñ Iô Iˆõ 	Œ
×"Ò" 3¤7¨OÑ<Ô<Ð<Ý
Œ
×"Ò" 3¤5¨:°yÐ*AÑBÔBÐBØŒ{ÐÐˆ{ÐÐr   c           
      ór   — dd„ dœdd„ dœf}d}d„ }g d¢}t          ||d||d	d
dœ¬¦  «        }|j        rJ ‚d S )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¼$±,ÀÑ2B€ r   rô   c                 ó*   — | d         | d         z   dz
  S )Nr   r4   r+   r”   s    r   rÈ   z'TestSLSQP.test_gh9640.<locals>.<lambda>h  s   € °!°A´$¸¸1¼±+À±/€ r   )©r:   r4   rW  rW  c                 ó   — dS r  r+   r”   s    r   Útargetz%TestSLSQP.test_gh9640.<locals>.targetk  s   € Ø�1r   )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  sˆ   € ØÐ(BÐ(BÐCÐCØÐ(AÐ(AÐBÐBðDˆà*ˆð	ð 	ð 	àKÐKÐ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 ‚d S )Ngš™™™™™¹?r2   g<ú}°Ú?c                 ó€   •— | ‰j         k                         ¦   «         sJ ‚t          j                             | ¦  «        S r$   )ÚlbÚallr<   ÚlinalgÚnorm)r   rt   s    €r   r˜   z7TestSLSQP.test_parameters_stay_within_bounds.<locals>.f€  s5   ø€ Ø˜œ’N×'Ò'Ñ)Ô)Ð)Ð)Ð)Ý”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  s™   ø€ õ �œ # ™œ­¬°3°%©¬Ñ9Ô9ˆÝŒX�f”i 6¤9¨v¬yÑ#8Ø'ñ#(ñ (ñ )ô )ˆð	%ð 	%ð 	%ð 	%ð 	%õ
 �q˜" W°VÐ<Ñ<Ô<ˆØŒ{ÐÐˆ{ÐÐr   N)r2   ):r'   r(   r)   r*   r1   r8   rA   rC   rH   rK   rN   rQ   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-   '   s�  € € € € € ðð ð$ð $ð $ð2ð 2ð 2ð 2ð 
-ð 
-ð 
-ð 
-ð4ð 4ð 4ð 4ð'ð 'ð 'ð 'ð#ð #ð #ð #ð(ð (ð (ð (ð6ð 6ð 6ð 6ð-ð -ð -ð -ð#ð #ð #ð #ðð ð ð'ð 'ð 'ð
+ð +ð +ð'ð 'ð 'ð%ð %ð %ð'ð 'ð 'ð+ð +ð +ð'ð 'ð 'ð'ð 'ð 'ð'ð 'ð 'ð	2ð 	2ð 	2ð
'ð 
'ð 
'ðEð Eð Eð$'ð 'ð 'ð"-ð -ð -ð-ð -ð -ð-ð -ð -ð-ð -ð -ð
-ð 
-ð 
-ð8ð 8ð 8ð#ð #ð #ð
+ð 
+ð 
+ðGð Gð Gð-ð -ð -ð4ð 4ð 4ð7ð 7ð 7ðKð Kð Kð@"ð "ð "ð8&ð &ð &ð'ð 'ð 'ðOð Oð Oð.ð .ð .ð>!.ð !.ð !.ðF „[×ÒÐ(�uÔ(¨gÐ6Ñ6Ô6°{ÔCÀIÔNÈvÔVØ&ò'àWð ñ Yô Yð!ð !ñYô Yð!ð0'ð 'ð 'ðð ð ð6ð ð ð2ð ð ðð ð ð ð r   r-   c                  óÊ   ‡— t           j                             d¦  «        } |                      ddg¬¦  «        }t          j        ddd¦  «        }d„ Šˆfd	„} |||¦  «         d S )
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                 ó4   •—  ‰‰| ¦  «        d         d         S r+  r+   )rp  rq  ro  s    €€r   Úmetric_az[test_slsqp_segfault_wrong_workspace_computation.<locals>.efficient_metric.<locals>.metric_a–  ó   ø€ Ø�6˜!˜WÑ%Ô% aÔ(¨Ô+Ð+r   c                 ó4   •—  ‰|| ¦  «        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°xÀ±{´{ÀVÑ7K€ r   rô   c                 ó0   — 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¸a±y´yÀ1±}€ r   r2   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•  sÇ   øøøø€ ð	,ð 	,ð 	,ð 	,ð 	,ð 	,ð	,ð 	,ð 	,ð 	,ð 	,ð !%Ð-KÐ-KÐ-KÐ-KÐ-KÐLÐLØ $Ð-DÐ-DÐEÐEðGˆå”(�C ™FœF B¥s¨1¡v¤v¡I ;Ñ.Ð/Ñ0Ô0°Ô3ˆÝ˜(Ø!Ø !˜tØ!(Ø&1ð	3ñ 3ô 3ˆð
 ˆr   )r<   ÚrandomÚdefault_rngÚuniformÚlinspace)Úrngr   rY  r|  rq  s       @r   Ú/test_slsqp_segfault_wrong_workspace_computationr‚  ‰  sˆ   ø€ õ
 Œ)×
Ò
Ð 0Ñ
1Ô
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†     s3  ððð ð:ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :à *Ð *Ð *Ð *Ð *Ð *Ø €€€Ø Ð Ð Ð Ø €€€ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ðð ð ð ð ñ ô ð ð0_	ð _	ð _	ð _	ð _	ñ _	ô _	ð _	ðD ð  ð  ð  ð  r   