§
    fŠtjÏ  ã                   ód   — d dl Z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  G d„ d¦  «        ZdS )é    N)Úassert_allcloseÚassert_equal)ÚBoundsÚLinearConstraintÚNonlinearConstraintÚOptimizeResultÚminimizec                   ór   — e Zd Zd„ Zedd„¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ ZdS )Ú
TestCOBYQAc                 ó*   — ddg| _         ddi| _        d S )NçÍÌÌÌÌÌ@ç…ëQ¸å?Úmaxfevéd   )Úx0Úoptions©Úselfs    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_cobyqa.pyÚsetup_methodzTestCOBYQA.setup_method   s   € Ø˜�,ˆŒØ  #�ˆŒˆˆó    ç      ð?c                 óP   — | d         dz  |t          | d         ¦  «        dz  z  z   S )Nr   é   é   é   )Úabs)ÚxÚcs     r   ÚfunzTestCOBYQA.fun   s(   € à�Œt�Q‰w˜�S  1¤™YœY¨™\Ñ)Ñ)Ð)r   c                 ó6   — | d         dz  | d         dz  z   dz
  S )Nr   r   r   g      9@© )r   s    r   ÚconzTestCOBYQA.con   s"   € à�Œt�Q‰w˜˜1œ˜q™Ñ  4Ñ'Ð'r   c                 óš  —  G d„ d¦  «        } G d„ d¦  «        }ddg} |¦   «         } |¦   «         }t          | j        dd¦  «        }t          | j        |d||| j        ¬	¦  «        }t          | j        |d||| j        ¬	¦  «        }t          j        d
¦  «        dg}	t          |j        |	d¬¦  «         |j	        sJ |j
        ¦   «         ‚|j        dk     s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚|j        |                      |	¦  «        dz   k     s
J |¦   «         ‚|j        |j        k    s
J d¦   «         ‚t          |j        |j        ¦  «         |j	        sJ |j
        ¦   «         ‚|j        |j        k    s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 )ú1TestCOBYQA.test_minimize_simple.<locals>.Callbackc                 óD   — t          j        ¦   «         | _        d| _        d S ©Nr   ©Ú	threadingÚLockÚlockÚn_callsr   s    r   Ú__init__z:TestCOBYQA.test_minimize_simple.<locals>.Callback.__init__   ó   € Ý%œNÑ,Ô,�”	Ø �”��r   c                 óž   — t          |t          j        ¦  «        sJ ‚| j        5  | xj        dz  c_        d d d ¦  «         d S # 1 swxY w Y   d S ©Nr   )Ú
isinstanceÚnpÚndarrayr,   r-   )r   r   s     r   Ú__call__z:TestCOBYQA.test_minimize_simple.<locals>.Callback.__call__#   s–   € Ý! !¥R¤ZÑ0Ô0Ð0Ð0Ð0Ø”Yð &ð &Ø�L”L AÑ%�L”Lð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ¤AÁAÁ	AN©Ú__name__Ú
__module__Ú__qualname__r.   r5   r"   r   r   ÚCallbackr&      ó2   € € € € € ð!ð !ð !ð&ð &ð &ð &ð &r   r:   c                   ó   — e Zd Zd„ Zd„ ZdS )ú:TestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntaxc                 óD   — t          j        ¦   «         | _        d| _        d S r(   r)   r   s    r   r.   zCTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__init__)   r/   r   c                 ó”   — t          |t          ¦  «        sJ ‚| j        5  | xj        dz  c_        d d d ¦  «         d S # 1 swxY w Y   d S r1   )r2   r   r,   r-   )r   Úintermediate_results     r   r5   zCTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__call__-   s•   € Ý!Ð"5µ~ÑFÔFÐFÐFÐFØ”Yð &ð &Ø�L”L AÑ%�L”Lð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   Ÿ=½AÁANr6   r"   r   r   ÚCallbackNewSyntaxr=   (   r;   r   rA   r   r   ç        Úcobyqa)ÚmethodÚconstraintsÚcallbackr   çä8Žã8Ž8@çUUUUUUå?ç-Cëâ6?©Úatolç:Œ0âŽyE>r   çü©ñÒMbP?z<Callback is not called exactly once for every function eval.)r   r#   r	   r    r   r3   Úsqrtr   r   ÚsuccessÚmessageÚmaxcvÚnfevr-   r   Únit)
r   r:   rA   r   rF   Úcallback_new_syntaxrE   ÚsolÚsol_newÚsolutions
             r   Útest_minimize_simplezTestCOBYQA.test_minimize_simple   sK  € ð	&ð 	&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð �Dˆ\ˆØ�8‘:”:ˆØ/Ð/Ñ1Ô1Ðõ *¨$¬(°C¸Ñ=Ô=ˆÝØŒHØØØ#ØØ”Lð
ñ 
ô 
ˆõ ØŒHØØØ#Ø(Ø”Lð
ñ 
ô 
ˆõ ”GÐ,Ñ-Ô-¨yÐ9ˆÝ˜œ˜x¨dÐ3Ñ3Ô3Ð3ØŒ{Ð'Ð'˜CœKÑ'Ô'ˆ{ØŒy˜4ÒÐÐ ÑÔÐØŒx˜3Šˆˆ ‰ŒˆØŒw˜Ÿš (Ñ+Ô+¨dÑ2Ò2Ð2Ð2°CÑ2Ô2Ð2ØŒx˜8Ô+Ò+Ð+Ð+ØJñ ,Ô+Ð+å�S”U˜GœIÑ&Ô&Ð&ØŒÐ/Ð/ ¤Ñ/Ô/ˆØŒw˜'œ+Ò%Ð%Ð%Ð%ØŒy˜GœMÒ)Ð)Ð)Ð)ØŒx˜7œ<Ò'Ð'Ð'Ð'ØŒw˜'œ+Ò%Ð%Ð%Ð%ØŒ|Ð2Ô:Ò:Ð:Ð:ØJñ ;Ô:Ð:Ð:Ð:r   c                 óö  ‡ ‡— ˆˆ fd„}t          ddgddg¦  «        Št          ‰ j        dd¦  «        }t          |‰ j        d‰|‰ j        ¬¦  «        }t          j        d	¦  «        d
g}t          |j	        |d¬¦  «         |j
        sJ |j        ¦   «         ‚|j        dk     s
J |¦   «         ‚t          j        ‰j        |j	        k    ¦  «        r"t          j        |j	        ‰j        k    ¦  «        s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚|j        ‰                      |¦  «        dz   k     s
J |¦   «         ‚t          ddgddg¦  «        Št          |‰ j        d‰|‰ j        ¬¦  «        }|j
        rJ |j        ¦   «         ‚|j        dk    s
J |¦   «         ‚t          j        ‰j        |j	        k    ¦  «        r"t          j        |j	        ‰j        k    ¦  «        s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚d S )Nc                 ó¦   •— t          j        ‰j        | k    ¦  «        rt          j        | ‰j        k    ¦  «        sJ ‚‰                     | ¦  «        S ©N)r3   ÚallÚlbÚubr    )r   Úboundsr   s    €€r   Úfun_check_boundsz9TestCOBYQA.test_minimize_bounds.<locals>.fun_check_boundsZ   sD   ø€ Ý”6˜&œ) qš.Ñ)Ô)ÐD­b¬f°Q¸&¼)²^Ñ.DÔ.DÐDÐDÐDØ—8’8˜A‘;”;Ðr   ç      @ç333333ã?ç      @çffffffæ?rB   rC   ©rD   r_   rE   r   rG   rH   rI   rJ   rL   r   rM   g      @gÍÌÌÌÌÌä?gffffffÖ?)r   r   r#   r	   r   r   r3   rN   r   r   rO   rP   rQ   r\   r]   r^   rR   r    )r   r`   rE   rU   rW   r_   s   `    @r   Útest_minimize_boundszTestCOBYQA.test_minimize_boundsY   s'  øø€ ð	ð 	ð 	ð 	ð 	ð 	õ
 ˜˜c˜
 S¨# JÑ/Ô/ˆÝ)¨$¬(°C¸Ñ=Ô=ˆÝØØŒGØØØ#Ø”Lð
ñ 
ô 
ˆõ ”GÐ,Ñ-Ô-¨yÐ9ˆÝ˜œ˜x¨dÐ3Ñ3Ô3Ð3ØŒ{Ð'Ð'˜CœKÑ'Ô'ˆ{ØŒy˜4ÒÐÐ ÑÔÐÝŒv�f”i 3¤5Ò(Ñ)Ô)ÐM­b¬f°S´U¸f¼iÒ5GÑ.HÔ.HÐMÐMÈ#ÑMÔMÐHØŒx˜3Šˆˆ ‰ŒˆØŒw˜Ÿš (Ñ+Ô+¨dÑ2Ò2Ð2Ð2°CÑ2Ô2Ð2õ ˜˜c˜
 S¨$ KÑ0Ô0ˆÝØØŒGØØØ#Ø”Lð
ñ 
ô 
ˆð ”;Ð+Ð+ ¤Ñ+Ô+ˆØŒy˜4ÒÐÐ ÑÔÐÝŒv�f”i 3¤5Ò(Ñ)Ô)ÐM­b¬f°S´U¸f¼iÒ5GÑ.HÔ.HÐMÐMÈ#ÑMÔMÐHØŒx˜3Šˆˆ ‰Œˆˆˆ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 )Nr   rC   ©rD   rE   r   é   é   r   r   rI   rJ   rL   r   rM   )r   r	   r    r   r   r3   rN   r   r   rO   rP   rQ   rR   ©r   rE   rU   rW   s       r   Ú test_minimize_linear_constraintsz+TestCOBYQA.test_minimize_linear_constraints€   sþ   € Ý&¨¨S z°3¸Ñ<Ô<ˆÝØŒHØŒGØØ#Ø”Lð
ñ 
ô 
ˆð �œ ™œ‘^ 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   c                 ó¬  — t          | j        dd¦  «        }t          | j        | j        dd|| j        ¬¦  «        }t          j        d¦  «        dg}t          |j	        |d¬¦  «         |j
        sJ |j        ¦   «         ‚|j        d	k     s
J |¦   «         ‚|j        d
k    s
J |¦   «         ‚|j        |                      |d¦  «        dz   k     s
J |¦   «         ‚d S )NrB   )ç       @rC   )ÚargsrD   rE   r   g9Žã8Žã8@gUUUUUUÕ?rI   rJ   rL   r   rn   rM   )r   r#   r	   r    r   r   r3   rN   r   r   rO   rP   rQ   rR   rk   s       r   Útest_minimize_argszTestCOBYQA.test_minimize_args�   sê   € Ý)¨$¬(°C¸Ñ=Ô=ˆÝØŒHØŒGØØØ#Ø”Lð
ñ 
ô 
ˆõ ”GÐ-Ñ.Ô.°	Ð:ˆÝ˜œ˜x¨dÐ3Ñ3Ô3Ð3ØŒ{Ð'Ð'˜CœKÑ'Ô'ˆ{ØŒy˜4ÒÐÐ ÑÔÐØŒx˜3Šˆˆ ‰ŒˆØŒw˜Ÿš (¨CÑ0Ô0°4Ñ7Ò7Ð7Ð7¸Ñ7Ô7Ð7Ð7Ð7r   c           
      ó’  ‡ — ˆ fd„}t          ddgddg¦  «        }t          ‰ j        dd¦  «        }t          ‰ j        ‰ j        d||‰ j        ¬¦  «        }d	D ]›}t          |‰ j        |fd||‰ j        ¬
¦  «        }t          |j        |j        ¦  «         |j	        sJ |j
        ¦   «         ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚Œœt          j        t           ¦  «        5  t          ˆ fd„‰ j        d||‰ j        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó‚   •— t          j        ‰                     | ¦  «        ¦  «        }t          j        |d|z  ¦  «        S )N)r   )r3   Úarrayr    Úreshape)r   ÚdimÚfr   s      €r   Ú	fun_arrayz1TestCOBYQA.test_minimize_array.<locals>.fun_array¢   s2   ø€ Ý”˜Ÿš !™œÑ%Ô%ˆAÝ”:˜a ¨¡Ñ,Ô,Ð,r   ra   rb   rc   rd   rB   rC   re   )r   r   r   )ro   rD   r_   rE   r   c                 ó|   •— t          j        ‰                     | ¦  «        ‰                     | ¦  «        g¦  «        S r[   )r3   rs   r    )r   r   s    €r   ú<lambda>z0TestCOBYQA.test_minimize_array.<locals>.<lambda>Å   s*   ø€ �"œ( D§H¢H¨Q¡K¤K°·²¸!±´Ð#=Ñ>Ô>€ r   )r   r   r#   r	   r    r   r   r   r   rO   rP   rQ   rR   rS   ÚpytestÚraisesÚ	TypeError)r   rw   r_   rE   rU   ru   Ú	sol_arrays   `      r   Útest_minimize_arrayzTestCOBYQA.test_minimize_array¡   sç  ø€ ð	-ð 	-ð 	-ð 	-ð 	-õ
 ˜˜c˜
 S¨# JÑ/Ô/ˆÝ)¨$¬(°C¸Ñ=Ô=ˆÝØŒHØŒGØØØ#Ø”Lð
ñ 
ô 
ˆð ð 	,ð 	,ˆCÝ ØØ”Ø�VØØØ'Øœðñ ô ˆIõ ˜œ 	¤Ñ,Ô,Ð,ØÔ$Ð7Ð7 iÔ&7Ñ7Ô7Ð$Ø”7˜iœmÒ+Ð+Ð+Ð+Ø”9 	¤Ò/Ð/Ð/Ð/Ø”8˜yœ~Ò-Ð-Ð-Ð-Ø”7˜iœmÒ+Ð+Ð+Ð+Ð+õ Œ]�9Ñ%Ô%ð 	ð 	ÝØ>Ð>Ð>Ð>Ø”ØØØ'Øœðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ä#D<Ä<E ÅE c                 óÌ   — t          | j        dd¦  «        }ddi}t          | j        | j        d||¬¦  «        }|j        rJ |j        ¦   «         ‚|j        dk    s
J |¦   «         ‚d S )NrB   r   r   rC   rh   )r   r#   r	   r    r   rO   rP   rR   ©r   rE   r   rU   s       r   Útest_minimize_maxfevzTestCOBYQA.test_minimize_maxfevÍ   sw   € Ý)¨$¬(°C¸Ñ=Ô=ˆØ˜Q�-ˆÝØŒHØŒGØØ#Øð
ñ 
ô 
ˆð ”;Ð+Ð+ ¤Ñ+Ô+ˆØŒx˜1Š}ˆ}ˆ}˜c‰}Œ}ˆ}ˆ}ˆ}r   c                 óÌ   — t          | j        dd¦  «        }ddi}t          | j        | j        d||¬¦  «        }|j        rJ |j        ¦   «         ‚|j        dk    s
J |¦   «         ‚d S )NrB   Úmaxiterr   rC   rh   )r   r#   r	   r    r   rO   rP   rS   r€   s       r   Útest_minimize_maxiterz TestCOBYQA.test_minimize_maxiterÚ   sw   € Ý)¨$¬(°C¸Ñ=Ô=ˆØ˜a�.ˆÝØŒHØŒGØØ#Øð
ñ 
ô 
ˆð ”;Ð+Ð+ ¤Ñ+Ô+ˆØŒw˜!Š|ˆ|ˆ|˜S‰|Œ|ˆ|ˆ|ˆ|r   c                 ó®  — t          | j        dd¦  «        }t          | j        | j        d|| j        ¬¦  «        }t          | j        ¦  «        }|j        |d<   t          | j        | j        d||¬¦  «        }|j        sJ |j        ¦   «         ‚|j	        dk     s
J |¦   «         ‚|j
        |j
        k    s
J |¦   «         ‚|j        |j        k    s
J |¦   «         ‚d S )NrB   rC   rh   Úf_targetrL   )r   r#   r	   r    r   r   ÚdictrO   rP   rQ   rR   )r   rE   Úsol_refr   rU   s        r   Útest_minimize_f_targetz!TestCOBYQA.test_minimize_f_targetç   sö   € Ý)¨$¬(°C¸Ñ=Ô=ˆÝØŒHØŒGØØ#Ø”Lð
ñ 
ô 
ˆõ �t”|Ñ$Ô$ˆØ%œkˆ�
ÑÝØŒHØŒGØØ#Øð
ñ 
ô 
ˆð Œ{Ð'Ð'˜CœKÑ'Ô'ˆ{ØŒy˜4ÒÐÐ ÑÔÐØŒx˜7œ<Ò'Ð'Ð'¨Ñ'Ô'Ð'ØŒw˜'œ+Ò%Ð%Ð% sÑ%Ô%Ð%Ð%Ð%r   N)r   )r7   r8   r9   r   Ústaticmethodr    r#   rX   rf   rl   rp   r~   r�   r„   r‰   r"   r   r   r   r      sÜ   € € € € € ð'ð 'ð 'ð ð*ð *ð *ñ „\ð*ð ð(ð (ñ „\ð(ð:Kð :Kð :Kðx%$ð %$ð %$ðN8ð 8ð 8ð =ð =ð =ð"*ð *ð *ðX"ð "ð "ð!ð !ð !ð+ð +ð +ð +ð +r   r   )Únumpyr3   rz   r*   Únumpy.testingr   r   Úscipy.optimizer   r   r   r   r	   r   r"   r   r   ú<module>rŽ      sÀ   ðØ Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð ð ð ð ðm+ð m+ð m+ð m+ð m+ñ m+ô m+ð m+ð m+ð m+r   