§
    ¢éUg  ã                   ó\   — 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 )NgÍÌÌÌÌÌ@g…ëQ¸å?Úmaxfevéd   )Úx0Úoptions©Úselfs    ú_/var/www/surfInsights/venv3-11/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¦  «        } |¦   «         } |¦   «         }t          | j        dd¦  «        }t          | j        | j        d||| j        ¬¦  «        }t          | j        | 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| _         d S ©Nr   ©Ún_callsr   s    r   Ú__init__z:TestCOBYQA.test_minimize_simple.<locals>.Callback.__init__   ó   € Ø �”��r   c                 ó^   — t          |t          j        ¦  «        sJ ‚| xj        dz  c_        d S ©Nr   )Ú
isinstanceÚnpÚndarrayr(   )r   r   s     r   Ú__call__z:TestCOBYQA.test_minimize_simple.<locals>.Callback.__call__!   s.   € Ý! !¥R¤ZÑ0Ô0Ð0Ð0Ð0Ø�” Ñ!�”��r   N©Ú__name__Ú
__module__Ú__qualname__r)   r0   r    r   r   ÚCallbackr$      ó2   € € € € € ð!ð !ð !ð"ð "ð "ð "ð "r   r5   c                   ó   — e Zd Zd„ Zd„ ZdS )ú:TestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntaxc                 ó   — d| _         d S r&   r'   r   s    r   r)   zCTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__init__&   r*   r   c                 óT   — t          |t          ¦  «        sJ ‚| xj        dz  c_        d S r,   )r-   r   r(   )r   Úintermediate_results     r   r0   zCTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__call__)   s-   € Ý!Ð"5µ~ÑFÔFÐFÐFÐFØ�” Ñ!�”��r   Nr1   r    r   r   ÚCallbackNewSyntaxr8   %   r6   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   r   r.   Úsqrtr   r   ÚsuccessÚmessageÚmaxcvÚnfevr(   r   Únit)	r   r5   r<   rA   Úcallback_new_syntaxr@   ÚsolÚsol_newÚsolutions	            r   Útest_minimize_simplezTestCOBYQA.test_minimize_simple   sH  € ð	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð �8‘:”:ˆØ/Ð/Ñ1Ô1Ðõ *¨$¬(°C¸Ñ=Ô=ˆÝØŒHØŒGØØ#ØØ”Lð
ñ 
ô 
ˆõ ØŒHØŒGØØ#Ø(Ø”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)r.   ÚallÚlbÚubr   )r   Úboundsr   s    €€r   Úfun_check_boundsz9TestCOBYQA.test_minimize_bounds.<locals>.fun_check_boundsT   sD   ø€ Ý”6˜&œ) qš.Ñ)Ô)ÐD­b¬f°Q¸&¼)²^Ñ.DÔ.DÐDÐDÐDØ—8’8˜A‘;”;Ðr   ç      @ç333333ã?ç      @çffffffæ?r=   r>   ©r?   rZ   r@   r   rB   rC   rD   rE   rG   r   rH   g      @gÍÌÌÌÌÌä?gffffffÖ?)r   r   r!   r	   r   r   r.   rI   r   r   rJ   rK   rL   rW   rX   rY   rM   r   )r   r[   r@   rP   rR   rZ   s   `    @r   Útest_minimize_boundszTestCOBYQA.test_minimize_boundsS   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ÐMØŒ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ÐMØŒ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   r>   ©r?   r@   r   é   é   r   r   rD   rE   rG   r   rH   )r   r	   r   r   r   r.   rI   r   r   rJ   rK   rL   rM   ©r   r@   rP   rR   s       r   Ú test_minimize_linear_constraintsz+TestCOBYQA.test_minimize_linear_constraintsz   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 )Nr=   )ç       @r>   )Úargsr?   r@   r   g9Žã8Žã8@gUUUUUUÕ?rD   rE   rG   r   ri   rH   )r   r!   r	   r   r   r   r.   rI   r   r   rJ   rK   rL   rM   rf   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   )r.   Úarrayr   Úreshape)r   ÚdimÚfr   s      €r   Ú	fun_arrayz1TestCOBYQA.test_minimize_array.<locals>.fun_arrayœ   s2   ø€ Ý”˜Ÿš !™œÑ%Ô%ˆAÝ”:˜a ¨¡Ñ,Ô,Ð,r   r\   r]   r^   r_   r=   r>   r`   )r   r   r   )rj   r?   rZ   r@   r   c                 ó|   •— t          j        ‰                     | ¦  «        ‰                     | ¦  «        g¦  «        S rV   )r.   rn   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   rJ   rK   rL   rM   rN   ÚpytestÚraisesÚ	TypeError)r   rr   rZ   r@   rP   rp   Ú	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Ø”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 )Nr=   r   r   r>   rc   )r   r!   r	   r   r   rJ   rK   rM   ©r   r@   r   rP   s       r   Útest_minimize_maxfevzTestCOBYQA.test_minimize_maxfevÇ   sx   € Ý)¨$¬(°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 )Nr=   Úmaxiterr   r>   rc   )r   r!   r	   r   r   rJ   rK   rN   r{   s       r   Útest_minimize_maxiterz TestCOBYQA.test_minimize_maxiterÔ   sx   € Ý)¨$¬(°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 )Nr=   r>   rc   Úf_targetrG   )r   r!   r	   r   r   r   ÚdictrJ   rK   rL   rM   )r   r@   Úsol_refr   rP   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   )r2   r3   r4   r   Ústaticmethodr   r!   rS   ra   rg   rk   ry   r|   r   r„   r    r   r   r   r      sÜ   € € € € € ð'ð 'ð 'ð ð*ð *ð *ñ „\ð*ð ð(ð (ñ „\ð(ð5Kð 5Kð 5Kðn%$ð %$ð %$ðN8ð 8ð 8ð =ð =ð =ð"*ð *ð *ðX"ð "ð "ð!ð !ð !ð+ð +ð +ð +ð +r   r   )Únumpyr.   ru   Únumpy.testingr   r   Úscipy.optimizer   r   r   r   r	   r   r    r   r   ú<module>r‰      s´   ðØ Ð Ð Ð Ø €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð ð ð ð ðh+ð h+ð h+ð h+ð h+ñ h+ô h+ð h+ð h+ð h+r   