Ë
    âQ(hÏ  ã                   ó\   — 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y)é    N)Úassert_allcloseÚassert_equal)ÚBoundsÚLinearConstraintÚNonlinearConstraintÚOptimizeResultÚminimizec                   ód   — 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y)Ú
TestCOBYQAc                 ó(   — ddg| _         ddi| _        y )NçÍÌÌÌÌÌ@ç…ëQ¸å?Úmaxfevéd   )Úx0Úoptions©Úselfs    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_cobyqa.pyÚsetup_methodzTestCOBYQA.setup_method   s   € Ø˜�,ˆŒØ  #�ˆ�ó    c                 ó<   — | 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¨™\Ñ)Ñ)Ð)r   c                 ó*   — | 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                  | 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«       ‚y )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú1TestCOBYQA.test_minimize_simple.<locals>.Callbackc                 óD   — t        j                  «       | _        d| _        y ©Nr   ©Ú	threadingÚLockÚlockÚn_callsr   s    r   Ú__init__z:TestCOBYQA.test_minimize_simple.<locals>.Callback.__init__   ó   € Ü%ŸN™NÓ,�”	Ø �•r   c                 ó¨   — t        |t        j                  «      sJ ‚| j                  5  | xj                  dz  c_        d d d «       y # 1 sw Y   y xY w©Nr   )Ú
isinstanceÚnpÚndarrayr+   r,   )r   r   s     r   Ú__call__z:TestCOBYQA.test_minimize_simple.<locals>.Callback.__call__#   s@   € Ü! !¤R§Z¡ZÔ0Ð0Ð0Ø—Y‘Yñ &Ø—L’L AÑ%•L÷&÷ &ñ &ús   ©AÁAN©Ú__name__Ú
__module__Ú__qualname__r-   r4   r!   r   r   ÚCallbackr%      ó   „ ò!ó&r   r9   c                   ó   — e Zd Zd„ Zd„ Zy)ú:TestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntaxc                 óD   — t        j                  «       | _        d| _        y 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 «       y # 1 sw Y   y xY wr0   )r1   r   r+   r,   )r   Úintermediate_results     r   r4   zCTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__call__-   s=   € Ü!Ð"5´~ÔFÐFÐFØ—Y‘Yñ &Ø—L’L AÑ%•L÷&÷ &ñ &ús	   Ÿ>¾ANr5   r!   r   r   ÚCallbackNewSyntaxr<   (   r:   r   r@   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   r2   Úsqrtr   r   ÚsuccessÚmessageÚmaxcvÚnfevr,   r   Únit)
r   r9   r@   r   rE   Úcallback_new_syntaxrD   ÚsolÚsol_newÚsolutions
             r   Útest_minimize_simplezTestCOBYQA.test_minimize_simple   sã  € ÷	&ñ 	&÷	&ñ 	&ð �Dˆ\ˆÙ“:ˆÙ/Ó1Ðô *¨$¯(©(°C¸Ó=ˆÜØ�H‰HØØØ#ØØ—L‘Lô
ˆô Ø�H‰HØØØ#Ø(Ø—L‘Lô
ˆô —G‘GÐ,Ó-¨yÐ9ˆÜ˜Ÿ™˜x¨dÕ3Ø�{Š{Ð'˜CŸK™KÓ'ˆ{Ø�y‰y˜4ÒÐ$ Ó$ÐØ�x‰x˜3ŠÐ# Ó#ˆØ�w‰w˜Ÿ™ (Ó+¨dÑ2Ò2Ð7°CÓ7Ð2Ø�x‰x˜8×+Ñ+Ò+ð 	KØJó	KÐ+ä�S—U‘U˜GŸI™IÔ&Ø�ŠÐ/ §¡Ó/ˆØ�w‰w˜'Ÿ+™+Ò%Ð%Ð%Ø�y‰y˜GŸM™MÒ)Ð)Ð)Ø�x‰x˜7Ÿ<™<Ò'Ð'Ð'Ø�w‰w˜'Ÿ+™+Ò%Ð%Ð%Ø�|‰|Ð2×:Ñ:Ò:ð 	KØJó	KÑ:r   c                 ód  ‡ ‡— ˆˆ 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"                  ‰ j#                  |«      dz   k  sJ |«       ‚t        ddgddg«      Št        |‰ j                  d‰|‰ j
                  ¬«      }|j                  rJ |j                  «       ‚|j                  dkD  sJ |«       ‚t        j                  ‰j                  |j                  k  «      r,t        j                  |j                  ‰j                  k  «      sJ |«       ‚|j                   dk  sJ |«       ‚y )Nc                 ó²   •— t        j                  ‰j                  | k  «      r"t        j                  | ‰j                  k  «      sJ ‚‰j	                  | «      S ©N)r2   ÚallÚlbÚubr   )r   Úboundsr   s    €€r   Úfun_check_boundsz9TestCOBYQA.test_minimize_bounds.<locals>.fun_check_boundsZ   s>   ø€ Ü—6‘6˜&Ÿ)™) q™.Ô)¬b¯f©f°Q¸&¿)¹)±^Ô.DÐDÐDØ—8‘8˜A“;Ðr   ç      @ç333333ã?ç      @çffffffæ?rA   rB   ©rC   r^   rD   r   rF   rG   rH   rI   rK   r   rL   g      @gÍÌÌÌÌÌä?gffffffÖ?)r   r   r"   r	   r   r   r2   rM   r   r   rN   rO   rP   r[   r\   r]   rQ   r   )r   r_   rD   rT   rV   r^   s   `    @r   Útest_minimize_boundszTestCOBYQA.test_minimize_boundsY   sÕ  ù€ õ	ô
 ˜˜c˜
 S¨# JÓ/ˆÜ)¨$¯(©(°C¸Ó=ˆÜØØ�G‰GØØØ#Ø—L‘Lô
ˆô —G‘GÐ,Ó-¨yÐ9ˆÜ˜Ÿ™˜x¨dÕ3Ø�{Š{Ð'˜CŸK™KÓ'ˆ{Ø�y‰y˜4ÒÐ$ Ó$ÐÜ�v‰v�f—i‘i 3§5¡5Ñ(Ô)¬b¯f©f°S·U±U¸f¿i¹iÑ5GÔ.HÐMÈ#ÓMÐHØ�x‰x˜3ŠÐ# Ó#ˆØ�w‰w˜Ÿ™ (Ó+¨dÑ2Ò2Ð7°CÓ7Ð2ô ˜˜c˜
 S¨$ KÓ0ˆÜØØ�G‰GØØØ#Ø—L‘Lô
ˆð —;’;Ð+ §¡Ó+ˆØ�y‰y˜4ÒÐ$ Ó$ÐÜ�v‰v�f—i‘i 3§5¡5Ñ(Ô)¬b¯f©f°S·U±U¸f¿i¹iÑ5GÔ.HÐMÈ#ÓMÐHØ�x‰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                  | j                  |«      dz   k  sJ |«       ‚y )Nç      ð?rB   ©rC   rD   r   é   é   r   r   rH   rI   rK   r   rL   )r   r	   r   r   r   r2   rM   r   r   rN   rO   rP   rQ   ©r   rD   rT   rV   s       r   Ú test_minimize_linear_constraintsz+TestCOBYQA.test_minimize_linear_constraints€   sÝ   € Ü&¨¨S z°3¸Ó<ˆÜØ�H‰HØ�G‰GØØ#Ø—L‘Lô
ˆð œŸ™ ›‘^ qÑ(¬2¯7©7°1«:¸©>¸QÑ*>Ð?ˆÜ˜Ÿ™˜x¨dÕ3Ø�{Š{Ð'˜CŸK™KÓ'ˆ{Ø�y‰y˜4ÒÐ$ Ó$ÐØ�x‰x˜3ŠÐ# Ó#ˆØ�w‰w˜Ÿ™ (Ó+¨dÑ2Ò2Ð7°CÓ7Ñ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                  | j                  |d«      dz   k  sJ |«       ‚y )NrA   )ç       @rB   )ÚargsrC   rD   r   g9Žã8Žã8@gUUUUUUÕ?rH   rI   rK   r   rn   rL   )r   r"   r	   r   r   r   r2   rM   r   r   rN   rO   rP   rQ   rk   s       r   Útest_minimize_argszTestCOBYQA.test_minimize_args�   sÊ   € Ü)¨$¯(©(°C¸Ó=ˆÜØ�H‰HØ�G‰GØØØ#Ø—L‘Lô
ˆô —G‘GÐ-Ó.°	Ð:ˆÜ˜Ÿ™˜x¨dÕ3Ø�{Š{Ð'˜CŸK™KÓ'ˆ{Ø�y‰y˜4ÒÐ$ Ó$ÐØ�x‰x˜3ŠÐ# Ó#ˆØ�w‰w˜Ÿ™ (¨CÓ0°4Ñ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(  rŒÒJ ‚ t        j                  t         «      5  t        ˆ fd„‰ j
                  d||‰ j                  ¬«       d d d «       y # 1 sw Y   y xY w)Nc                 ó~   •— t        j                  ‰j                  | «      «      }t        j                  |d|z  «      S )N)r   )r2   Úarrayr   Úreshape)r   ÚdimÚfr   s      €r   Ú	fun_arrayz1TestCOBYQA.test_minimize_array.<locals>.fun_array¢   s.   ø€ Ü—‘˜Ÿ™ !›Ó%ˆAÜ—:‘:˜a ¨¡Ó,Ð,r   r`   ra   rb   rc   rA   rB   rd   )r   r   r   )ro   rC   r^   rD   r   c                 ón   •— t        j                  ‰j                  | «      ‰j                  | «      g«      S rZ   )r2   rs   r   )r   r   s    €r   ú<lambda>z0TestCOBYQA.test_minimize_array.<locals>.<lambda>Å   s%   ø€ œ"Ÿ(™( D§H¡H¨Q£K°·±¸!³Ð#=Ó>€ r   )r   r   r"   r	   r   r   r   r   r   rN   rO   rP   rQ   rR   ÚpytestÚraisesÚ	TypeError)r   rw   r^   rD   rT   ru   Ú	sol_arrays   `      r   Útest_minimize_arrayzTestCOBYQA.test_minimize_array¡   s]  ø€ ô	-ô
 ˜˜c˜
 S¨# JÓ/ˆÜ)¨$¯(©(°C¸Ó=ˆÜØ�H‰HØ�G‰GØØØ#Ø—L‘Lô
ˆð ò 	,ˆCÜ ØØ—‘Ø�VØØØ'ØŸ™ôˆIô ˜Ÿ™ 	§¡Ô,Ø×$Ò$Ð7 i×&7Ñ&7Ó7Ð$Ø—7‘7˜iŸm™mÒ+Ð+Ð+Ø—9‘9 	§¡Ò/Ð/Ð/Ø—8‘8˜yŸ~™~Ò-Ð-Ð-Ø—7‘7˜iŸm™mÓ+Ð+Ð+ð	,ô$ �]‰]œ9Ó%ñ 	ÜÛ>Ø—‘ØØØ'ØŸ™õ÷	÷ 	ñ 	ús   Å)E?Å?Fc                 óè   — t        | j                  dd«      }ddi}t        | j                  | j                  d||¬«      }|j
                  rJ |j                  «       ‚|j                  dk  sJ |«       ‚y )NrA   r   r   rB   rh   )r   r"   r	   r   r   rN   rO   rQ   ©r   rD   r   rT   s       r   Útest_minimize_maxfevzTestCOBYQA.test_minimize_maxfevÍ   sj   € Ü)¨$¯(©(°C¸Ó=ˆØ˜Q�-ˆÜØ�H‰HØ�G‰GØØ#Øô
ˆð —;’;Ð+ §¡Ó+ˆØ�x‰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 |«       ‚y )NrA   Úmaxiterr   rB   rh   )r   r"   r	   r   r   rN   rO   rR   r€   s       r   Útest_minimize_maxiterz TestCOBYQA.test_minimize_maxiterÚ   sj   € Ü)¨$¯(©(°C¸Ó=ˆØ˜a�.ˆÜØ�H‰HØ�G‰GØØ#Øô
ˆð —;’;Ð+ §¡Ó+ˆØ�w‰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 |«       ‚y )NrA   rB   rh   Úf_targetrK   )r   r"   r	   r   r   r   ÚdictrN   rO   rP   rQ   )r   rD   Úsol_refr   rT   s        r   Útest_minimize_f_targetz!TestCOBYQA.test_minimize_f_targetç   sÜ   € Ü)¨$¯(©(°C¸Ó=ˆÜØ�H‰HØ�G‰GØØ#Ø—L‘Lô
ˆô �t—|‘|Ó$ˆØ%Ÿk™kˆ�
ÑÜØ�H‰HØ�G‰GØØ#Øô
ˆð �{Š{Ð'˜CŸK™KÓ'ˆ{Ø�y‰y˜4ÒÐ$ Ó$ÐØ�x‰x˜7Ÿ<™<Ò'Ð,¨Ó,Ð'Ø�w‰w˜'Ÿ+™+Ò%Ð* sÓ*Ñ%r   N)rg   )r6   r7   r8   r   Ústaticmethodr   r"   rW   re   rl   rp   r~   r�   r„   r‰   r!   r   r   r   r      s[   „ ò'ð ò*ó ð*ð ñ(ó ð(ò:Kòx%$òN8ò =ò"*òX"ò!ó+r   r   )Únumpyr2   rz   r)   Únumpy.testingr   r   Úscipy.optimizer   r   r   r   r	   r   r!   r   r   ú<module>rŽ      s'   ðÛ Û Û ß 7÷õ ÷m+ò m+r   