§
    fŠtj¦  ã                   ó€   — d dl 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  G d„ d¦  «        Zd„ Z G d„ d¦  «        ZdS )	é    N)Úassert_allcloseÚassert_array_almost_equal)Úfmin_cobylaÚminimizeÚBoundsÚNonlinearConstraintÚLinearConstraintÚOptimizeResultc                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )Ú
TestCobylac                 óŠ   — t          j        d¦  «        dg| _        t          j        d¦  «        dg| _        dddddœ| _        d S )	Ngä8Žã8Ž8@g7®l'Vå?gUUUUUUå?r   é   g�íµ ÷Æ°>éd   )ÚdispÚrhobegÚtolÚmaxiter)ÚnpÚsqrtÚx0ÚmathÚsolutionÚopts©Úselfs    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_cobyla.pyÚsetup_methodzTestCobyla.setup_method   sL   € õ ”7˜?Ñ+Ô+¨\Ð:ˆŒÝœ ?Ñ3Ô3°UÐ;ˆŒØ¨!°DØ #ð%ð %ˆŒ	ˆ	ˆ	ó    c                 óJ   — |d         dz  t          |d         ¦  «        dz  z   S )Nr   é   r   é   )Úabs©r   Úxs     r   ÚfunzTestCobyla.fun   s#   € Ø�Œt�Q‰w�˜Q˜qœT™œ A™Ñ%Ð%r   c                 ó6   — |d         dz  |d         dz  z   dz
  S )Nr   r    r   é   © r#   s     r   Úcon1zTestCobyla.con1   s"   € Ø�Œt�Q‰w˜˜1œ˜q™Ñ  2Ñ%Ð%r   c                 ó.   — |                       |¦  «         S ©N)r)   r#   s     r   Úcon2zTestCobyla.con2   s   € Ø—	’	˜!‘”ˆ}Ðr   c           	      óŒ   — t          | j        | j        | j        | j        gdddd¬¦  «        }t          || j        d¬¦  «         d S )Nr   çñhãˆµøä>r   )r   ÚrhoendÚmaxfunr   ç-Cëâ6?©Úatol)r   r%   r   r)   r,   r   r   r#   s     r   Útest_simplezTestCobyla.test_simple   sO   € å˜œ $¤'¨D¬I°t´yÐ+AÈ!Ø#¨C°að9ñ 9ô 9ˆå˜˜4œ=¨tÐ4Ñ4Ô4Ð4Ð4Ð4r   c                 ód  —  G d„ d¦  «        } G d„ d¦  «        } |¦   «         } |¦   «         }t          | j        dt          j        ¦  «        d| j        dœf}t          | j        | j        d||| j        ¬	¦  «        }t          | j        | j        d||| j        ¬	¦  «        }t          |j
        | j        d
¬¦  «         |j        sJ |j        ¦   «         ‚|j        dk     s
J |¦   «         ‚|j        dk     s
J |¦   «         ‚|j        |                      | j        ¦  «        dz   k     s
J |¦   «         ‚t!          |j
        |j        dd¬¦  «         |j        sJ |j        ¦   «         ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    s
J d¦   «         ‚d S )Nc                   ó   — e Zd Zd„ Zd„ ZdS )ú1TestCobyla.test_minimize_simple.<locals>.Callbackc                 ó"   — d| _         d | _        d S ©Nr   ©Ún_callsÚlast_xr   s    r   Ú__init__z:TestCobyla.test_minimize_simple.<locals>.Callback.__init__&   s   € Ø �”Ø"�”��r   c                 ó4   — | xj         dz  c_         || _        d S ©Nr   r:   r#   s     r   Ú__call__z:TestCobyla.test_minimize_simple.<locals>.Callback.__call__*   s   € Ø�” Ñ!�”Ø�”��r   N©Ú__name__Ú
__module__Ú__qualname__r=   r@   r(   r   r   ÚCallbackr7   %   s2   € € € € € ð#ð #ð #ð ð  ð  ð  ð  r   rE   c                   ó   — e Zd Zd„ Zd„ ZdS )ú:TestCobyla.test_minimize_simple.<locals>.CallbackNewSyntaxc                 ó   — d| _         d S r9   )r;   r   s    r   r=   zCTestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.__init__/   s   € Ø �”��r   c                 óT   — t          |t          ¦  «        sJ ‚| xj        dz  c_        d S r?   )Ú
isinstancer
   r;   )r   Úintermediate_results     r   r@   zCTestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.__call__2   s-   € Ý!Ð"5µ~ÑFÔFÐFÐFÐFØ�” Ñ!�”��r   NrA   r(   r   r   ÚCallbackNewSyntaxrG   .   s2   € € € € € ð!ð !ð !ð"ð "ð "ð "ð "r   rL   r   Úineq©Útyper%   Úcobyla)ÚmethodÚconstraintsÚcallbackÚoptionsr1   r2   r.   éF   çü©ñÒMbP?é   zGLast design vector sent to the callback is not equal to returned value.)ÚdecimalÚerr_msgzGCallback is not called the same amount of times for old and new syntax.)r   r)   r   Úinfr,   r   r%   r   r   r   r$   r   ÚsuccessÚmessageÚmaxcvÚnfevr   r<   r;   )r   rE   rL   rS   Úcallback_new_syntaxÚconsÚsolÚsol_news           r   Útest_minimize_simplezTestCobyla.test_minimize_simple$   s   € ð	 ð 	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð �8‘:”:ˆØ/Ð/Ñ1Ô1Ðõ $ D¤I¨qµ"´&Ñ9Ô9Ø¨¬	Ð2Ð2ð4ˆå�t”x ¤°ÀtØ (°$´)ð=ñ =ô =ˆå˜4œ8 T¤W°XÈ4Ø 3¸T¼YðHñ Hô Hˆå˜œ˜tœ}°4Ð8Ñ8Ô8Ð8ØŒ{Ð'Ð'˜CœKÑ'Ô'ˆ{ØŒy˜4ÒÐÐ ÑÔÐØŒx˜"Š}ˆ}ˆ}˜c‰}Œ}ˆ}ØŒw˜Ÿš $¤-Ñ0Ô0°4Ñ7Ò7Ð7Ð7¸Ñ7Ô7Ð7Ý!ØŒEØŒOØð$ð		
ñ 	
ô 	
ð 	
ð ŒÐ/Ð/ ¤Ñ/Ô/ˆØŒw˜'œ+Ò%Ð%Ð%Ð%ØŒy˜GœMÒ)Ð)Ð)Ð)ØŒx˜7œ<Ò'Ð'Ð'Ð'ØÔÐ#6Ô#>Ò>Ð>Ð>ØUñ ?Ô>Ð>Ð>Ð>r   c                 óÖ   — dd„ dœdd„ dœf}t          d„ dgd|dd	i¬
¦  «        }|j        dk    sJ ‚|j        sJ ‚t          d„ dgd|ddi¬
¦  «        }|j        dk    sJ ‚|j        rJ ‚d S )NrM   c                 ó   — d| z
  S )Né   r(   ©r$   s    r   ú<lambda>z?TestCobyla.test_minimize_constraint_violation.<locals>.<lambda>V   ó
   € °!°a±%€ r   rN   c                 ó   — | dz
  S )NrW   r(   rg   s    r   rh   z?TestCobyla.test_minimize_constraint_violation.<locals>.<lambda>W   ri   r   c                 ó   — | S r+   r(   rg   s    r   rh   z?TestCobyla.test_minimize_constraint_violation.<locals>.<lambda>X   ó   €  € r   r   rP   Úcatolg333333ã?©rQ   rR   rT   gš™™™™™¹?c                 ó   — | S r+   r(   rg   s    r   rh   z?TestCobyla.test_minimize_constraint_violation.<locals>.<lambda>\   rl   r   gš™™™™™Ù?)r   r]   r[   )r   r`   ra   s      r   Ú"test_minimize_constraint_violationz-TestCobyla.test_minimize_constraint_violationS   s±   € ð  ¨¨Ð8Ð8Ø¨¨Ð8Ð8ð:ˆå�{�{ Q C°ÀdØ '¨˜~ð/ñ /ô /ˆàŒy˜3ŠˆˆˆØŒ{ÐÐˆ{Ý�{�{ Q C°ÀdØ '¨˜~ð/ñ /ô /ˆàŒy˜3ŠˆˆˆØ”;ÐÐˆÐÐr   c                 ó~   — d}t          d„ dgdd|i¬¦  «        }|j        dk    sJ ‚|j        sJ ‚|j        |k    sJ ‚d S )Néú   c                 ó   — | dz  S ©Nr    r(   rg   s    r   rh   z*TestCobyla.test_f_target.<locals>.<lambda>c   s
   €   A¡€ r   iô  rP   Úf_target)rQ   rT   r   )r   Ústatusr[   r%   )r   ru   ra   s      r   Útest_f_targetzTestCobyla.test_f_targeta   sb   € ØˆÝ�~�~¨ u°XØ *¨HÐ5ð7ñ 7ô 7ˆàŒz˜QŠˆˆˆØŒ{ÐÐˆ{ØŒw˜(Ò"Ð"Ð"Ð"Ð"Ð"r   c                 óÞ  — t          ddgdd¦  «        }t          | j        | j        d|| j        ¬¦  «        }dt          j        d¦  «        z
  dz  t          j        d¦  «        dz
  dz  g}t          |j        |d¬	¦  «         |j	        sJ |j
        ¦   «         ‚|j        d
k     s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚|j        |                      |¦  «        dz   k     s
J |¦   «         ‚d S )Ng      ð?rP   rn   rf   é   r!   r   r1   r2   g:Œ0âŽyE>r   rV   )r	   r   r%   r   r   r   r   r   r$   r[   r\   r]   r^   )r   rR   ra   r   s       r   Ú test_minimize_linear_constraintsz+TestCobyla.test_minimize_linear_constraintsi   sþ   € Ý&¨¨S z°3¸Ñ<Ô<ˆÝØŒHØŒGØØ#Ø”Ið
ñ 
ô 
ˆð �œ ™œ‘^ qÑ(­2¬7°1©:¬:¸©>¸QÑ*>Ð?ˆÝ˜œ˜x¨dÐ3Ñ3Ô3Ð3ØŒ{Ð'Ð'˜CœKÑ'Ô'ˆ{ØŒy˜4ÒÐÐ ÑÔÐØŒx˜3Šˆˆ ‰ŒˆØŒw˜Ÿš (Ñ+Ô+¨dÑ2Ò2Ð2Ð2°CÑ2Ô2Ð2Ð2Ð2r   N)rB   rC   rD   r   r%   r)   r,   r4   rc   rp   rw   rz   r(   r   r   r   r      sŸ   € € € € € ð%ð %ð %ð&ð &ð &ð&ð &ð &ðð ð ð5ð 5ð 5ð-Vð -Vð -Vð^ð ð ð#ð #ð #ð8ð 8ð 8ð 8ð 8r   r   c                  ó0  ‡	— d„ Š	ˆ	fd„} d„ }d„ }t          j        ddg¦  «        }‰	||g}ddg}d	}t          ‰	||d
¬¦  «        }t          ||d¬¦  «         t          ‰	|| d
¬¦  «        }t           ‰	|¦  «        dd¬¦  «         d„ |D ¦   «         }t	          ‰	||d
¬¦  «        }t          |j        |d¬¦  «         |j        sJ |j        ¦   «         ‚t          |j        |d¬¦  «         d| dœ}t	          ‰	||d
¬¦  «        }t          |j        dd¬¦  «         d S )Nc                 ó<   — | d         dz
  dz  | d         dz
  dz  z   S )Nr   r   r    g      @r(   rg   s    r   r%   z$test_vector_constraints.<locals>.fun}   s%   € Ø�!”�q‘˜1‰}  !¤ s¡
¨Q™Ñ.Ð.r   c                 ó    •—  ‰| ¦  «        dz
  S r?   r(   )r$   r%   s    €r   Úfminz%test_vector_constraints.<locals>.fmin€   s   ø€ Øˆs�1‰vŒv˜‰zÐr   c                 ó¶   ‡ ‡— t          j        g d¢g d¢g d¢g¦  «        Št          j        ˆˆ fd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        S )N)r   éþÿÿÿr    )éÿÿÿÿr€   é   )r�   r    r    c                 ót   •— g | ]4}‰|d f         ‰d          z  ‰|df         ‰d         z  z   ‰|df         z   ‘Œ5S )r   r   r    r(   )Ú.0ÚiÚar$   s     €€r   ú
<listcomp>z:test_vector_constraints.<locals>.cons1.<locals>.<listcomp>…   s^   ø€ ð 9ð 9ð 9Ø%&ð ˜1˜a˜4œ 1 Q¤4™¨!¨A¨q¨D¬'°A°a´D©.Ñ8Ø˜1˜a˜4œñ!ð 9ð 9ð 9r   )r   ÚarrayÚrangeÚlen)r$   r†   s   `@r   Úcons1z&test_vector_constraints.<locals>.cons1ƒ   sq   øø€ ÝŒH�j�j�j + + +¨z¨z¨zÐ:Ñ;Ô;ˆÝŒxð 9ð 9ð 9ð 9ð 9Ý*/µ°A±´©-¬-ð9ñ 9ô 9ñ :ô :ð 	:r   c                 ó   — | S r+   r(   rg   s    r   Úcons2z&test_vector_constraints.<locals>.cons2ˆ   s   € Øˆr   r    r   gffffffö?g333333û?gš™™™™™é?r.   )r/   r1   r2   r   c                 ó   — g | ]}d |dœ‘ŒS )rM   rN   r(   )r„   r`   s     r   r‡   z+test_vector_constraints.<locals>.<listcomp>™   s    € ÐGÐGÐG°T˜F¨4Ð0Ð0ÐGÐGÐGr   )rR   r   rM   rN   )	r   rˆ   r   r   r   r$   r[   r\   r%   )
r~   r‹   r�   r   Ú	cons_listÚxsolÚfsolra   rR   r%   s
            @r   Útest_vector_constraintsr’   z   s‰  ø€ ð/ð /ð /ðð ð ð ð ð:ð :ð :ð
ð ð õ 
Œ�1�a�&Ñ	Ô	€BØ�e˜UÐ#€Ià�ˆ:€DØ€Dõ �c˜2˜y°Ð
6Ñ
6Ô
6€CÝ�C˜ DÐ)Ñ)Ô)Ð)å
�c˜2˜t¨DÐ
1Ñ
1Ô
1€CÝ�C�C˜‘H”H˜a dÐ+Ñ+Ô+Ð+ð HÐG¸YÐGÑGÔG€KÝ
�3˜¨¸Ð
>Ñ
>Ô
>€CÝ�C”E˜4 dÐ+Ñ+Ô+Ð+ØŒ;Ð#Ð#˜œÑ#Ô#ˆ;Ý�C”G˜T¨Ð-Ñ-Ô-Ð-à!¨$Ð/Ð/€KÝ
�3˜¨¸Ð
>Ñ
>Ô
>€CÝ�C”G˜Q TÐ*Ñ*Ô*Ð*Ð*Ð*r   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
TestBoundsc                 óÂ   — d„ }g d¢}g d¢}d„ t          ||¦  «        D ¦   «         }t          |g d¢d|¬¦  «        }g d¢}|j        sJ ‚t          |j        |d	¬
¦  «         d S )Nc                 ó0   — t          j        | dz  ¦  «        S rt   ©r   Úsumrg   s    r   Úfz TestBounds.test_basic.<locals>.fª   ó   € Ý”6˜!˜Q™$‘<”<Ðr   )r�   Nr   Nç      à¿)r›   r›   NNr›   c                 ó   — g | ]	\  }}||f‘Œ
S r(   r(   )r„   r†   Úbs      r   r‡   z)TestBounds.test_basic.<locals>.<listcomp>¯   s    € Ð1Ð1Ð1™T˜Q �1�a�&Ð1Ð1Ð1r   )r   r    r!   rf   rW   rP   ©r   rQ   Úbounds)r›   r›   r   r   r›   rV   r2   )Úzipr   r[   r   r$   )r   r™   ÚlbÚubrŸ   ÚresÚrefs          r   Ú
test_basiczTestBounds.test_basic©   s•   € ð	 ð 	 ð 	 ð 'Ð&Ð&ˆØ+Ð+Ð+ˆØ1Ð1¥S¨¨R¡[¤[Ð1Ñ1Ô1ˆõ �q˜_˜_˜_°XÀfÐMÑMÔMˆØ&Ð&Ð&ˆØŒ{ÐÐˆ{Ý˜œ˜s¨Ð.Ñ.Ô.Ð.Ð.Ð.r   c                 óÆ  — d„ }t          t          j         t          j         gt          j        t          j        g¦  «        }t          |ddgd|¬¦  «        }|j        sJ ‚t          |j        dd¬¦  «         t          dt          j         gt          j        t          j        g¦  «        }t          |ddgd|¬¦  «        }|j        sJ ‚t          |j        ddgd¬¦  «         d S )	Nc                 ó0   — t          j        | dz  ¦  «        S rt   r—   rg   s    r   r™   z$TestBounds.test_unbounded.<locals>.f¸   rš   r   r   r    rP   rž   r   rV   r2   )r   r   rZ   r   r[   r   r$   )r   r™   rŸ   r£   s       r   Útest_unboundedzTestBounds.test_unbounded·   sÞ   € ð	 ð 	 ð 	 õ �"œ&˜¥2¤6 'Ð*­R¬VµR´VÐ,<Ñ=Ô=ˆÝ�q˜a ˜V¨H¸VÐDÑDÔDˆØŒ{ÐÐˆ{Ý˜œ˜q tÐ,Ñ,Ô,Ð,å˜�RœV˜G˜¥r¤v­r¬vÐ&6Ñ7Ô7ˆÝ�q˜a ˜V¨H¸VÐDÑDÔDˆØŒ{ÐÐˆ{Ý˜œ  1˜v¨DÐ1Ñ1Ô1Ð1Ð1Ð1r   N)rB   rC   rD   r¥   r¨   r(   r   r   r”   r”   ¤   s2   € € € € € ð
/ð /ð /ð2ð 2ð 2ð 2ð 2r   r”   )r   Únumpyr   Únumpy.testingr   r   Úscipy.optimizer   r   r   r   r	   r
   r   r’   r”   r(   r   r   ú<module>r¬      sõ   ðØ €€€à Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðk8ð k8ð k8ð k8ð k8ñ k8ô k8ð k8ð\'+ð '+ð '+ðT2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2r   