Ë
    âQ(h˜  ã                   ór   — d dl Z d dlZd dlmZmZmZ d dlZd dlm	Z	m
Z
mZ  G d„ d«      Zd„ Z G d„ d«      Zy)	é    N)Úassert_allcloseÚassert_Úassert_array_equal)Úfmin_cobylaÚminimizeÚBoundsc                   óv   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  dd¬«      d„ «       Z
d	„ Zd
„ Zy)Ú
TestCobylac                 óf   — ddg| _         t        j                  d«      dg| _        ddddd	œ| _        y )
NgÍÌÌÌÌÌ@g…ëQ¸å?gä8Žã8Ž8@gUUUUUUå?Fé   çñhãˆµøä>éd   )ÚdispÚrhobegÚtolÚmaxiter)Úx0ÚmathÚsqrtÚsolutionÚopts©Úselfs    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_cobyla.pyÚsetup_methodzTestCobyla.setup_method   s5   € Ø˜�,ˆŒÜŸ™ ?Ó3°UÐ;ˆŒØ"¨a¸Ø #ñ%ˆ�	ó    c                 ó6   — |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                 ó*   — |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                 ó&   — | j                  |«       S ©N)r'   r!   s     r   Úcon2zTestCobyla.con2   s   € Ø—	‘	˜!“ˆ}Ðr   Tz&not slow, but noisy so only run rarely)Úreasonc           	      ó¬   — t        | j                  | j                  | j                  | j                  gdddd¬«      }t        || j                  d¬«       y )Nr   r   r   T)r   ÚrhoendÚmaxfunr   ç-Cëâ6?©Úatol)r   r#   r   r'   r*   r   r   )r   Úcapfdr"   s      r   Útest_simplezTestCobyla.test_simple   sB   € ô ˜Ÿ™ $§'¡'¨D¯I©I°t·y±yÐ+AÈ!Ø#¨C°dô<ˆä˜˜4Ÿ=™=¨tÖ4r   c                 óš  —  G d„ d«      } |«       }d| j                   dœd| j                  dœf}t        | j                  | j                  d||| j
                  ¬«      }t        |j                  | j                  d¬«       t        |j                  |j                  «       t        |j                  d	k  |«       t        |j                  d
k  |«       t        |j                  | j                  | j                  «      dz   k  |«       t        |j                  |j                  k(  d«       t        |j                  |j                   d«       y )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú1TestCobyla.test_minimize_simple.<locals>.Callbackc                 ó    — d| _         d | _        y )Nr   ©Ún_callsÚlast_xr   s    r   Ú__init__z:TestCobyla.test_minimize_simple.<locals>.Callback.__init__#   s   € Ø �”Ø"�•r   c                 ó<   — | xj                   dz  c_         || _        y ©Nr   r8   r!   s     r   Ú__call__z:TestCobyla.test_minimize_simple.<locals>.Callback.__call__'   s   € Ø—’ Ñ!•Ø�•r   N)Ú__name__Ú
__module__Ú__qualname__r;   r>   r&   r   r   ÚCallbackr6   "   s   „ ò#ó r   rB   Úineq©Útyper#   Úcobyla)ÚmethodÚconstraintsÚcallbackÚoptionsr/   r0   r   éF   çü©ñÒMbP?z<Callback is not called exactly once for every function eval.zGLast design vector sent to the callback is not equal to returned value.)r'   r*   r   r#   r   r   r   r"   r   r   ÚsuccessÚmessageÚmaxcvÚnfevr9   r   r:   )r   rB   rI   ÚconsÚsols        r   Útest_minimize_simplezTestCobyla.test_minimize_simple!   sÿ   € ÷	 ñ 	 ñ “:ˆð  ¨¯	©	Ñ2Ø¨¯	©	Ñ2ð4ˆä�t—x‘x §¡°ÀtØ (°$·)±)ô=ˆä˜Ÿ™˜tŸ}™}°4Õ8Ü�—‘˜SŸ[™[Ô)Ü�—	‘	˜DÑ  #Ô&Ü�—‘˜2‘˜sÔ#Ü�—‘˜$Ÿ(™( 4§=¡=Ó1°DÑ8Ñ8¸#Ô>Ü�—‘˜H×,Ñ,Ñ,ØNô	PäØ�E‰EØ�O‰OØUõ	
r   c                 ó†  ‡	‡
‡— t         j                  j                  d«      }|j                  dd«      Š
|j                  d«      Šˆ
fd„Š	ˆfd„}ˆ	fd„}ˆ	fd„}ˆ	fd„}d|d	œd|d	œd|d	œf}t        j                  d
«      }t        ||d|ddi¬«      }t        |j                  dkD  «       t        |j                   «       y )NiÒ  é
   c                 ó&   •— ‰j                  | «      S r)   )Údot)ÚwÚpbs    €r   Úpz8TestCobyla.test_minimize_constraint_violation.<locals>.pD   s   ø€ Ø—6‘6˜!“9Ðr   c                 ó,   •— | ‰z  j                  «        S r)   )Úsum)rX   Úspreads    €r   Úfz8TestCobyla.test_minimize_constraint_violation.<locals>.fG   s   ø€ Ø˜‘Z×$Ñ$Ó&Ð&Ð&r   c                 óH   •— dt         ‰| «      «      j                  «       z
  S )Niô  ©r    r\   ©rX   rZ   s    €r   Úc1z9TestCobyla.test_minimize_constraint_violation.<locals>.c1J   s   ø€ Øœ™Q˜q›T›Ÿ™›Ñ(Ð(r   c                 óH   •— dt         ‰| «      j                  «       «      z
  S ©Né   r`   ra   s    €r   Úc2z9TestCobyla.test_minimize_constraint_violation.<locals>.c2M   s   ø€ Ø”s™1˜Q›4Ÿ8™8›:“Ñ&Ð&r   c                 óH   •— dt         ‰| «      «      j                  «       z
  S rd   )r    Úmaxra   s    €r   Úc3z9TestCobyla.test_minimize_constraint_violation.<locals>.c3P   s   ø€ Ø”s™1˜Q›4“y—}‘}“Ñ&Ð&r   rC   rD   )rU   rF   Úcatolg�íµ ÷Æ°>)rG   rH   rJ   )	ÚnpÚrandomÚRandomStateÚrandÚzerosr   r   rO   rM   )r   Úrngr^   rb   rf   ri   rQ   Úw0rR   rZ   rY   r]   s            @@@r   Ú"test_minimize_constraint_violationz-TestCobyla.test_minimize_constraint_violation?   sµ   ú€ Ü�i‰i×#Ñ# DÓ)ˆØ�X‰X�b˜"ÓˆØ—‘˜"“ˆô	ô	'ô	)ô	'ô	'ð  ¨Ñ+Ø¨Ñ+Ø¨Ñ+ð-ˆô �X‰X�e‹_ˆÜ�q˜" X¸4Ø '¨˜ô0ˆä�—	‘	˜DÑ Ô!Ü�C—K‘K�Õ r   N)r?   r@   rA   r   r#   r'   r*   ÚpytestÚmarkÚxslowr3   rS   rr   r&   r   r   r
   r
   
   sJ   „ ò%ò&ò&òð ‡[�[×Ñ�tÐ$LÐÓMñ5ó Nð5ò
ó<!r   r
   c                  ó*  ‡
— 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 �cg c]  }d|dœ‘Œ	 }	}t	        ‰
||	d
¬«      }t        |j
                  |d¬«       t        |j                  |j                  «       t        |j                  |d¬«       d| dœ}	t	        ‰
||	d
¬«      }t        |j                  dd¬«       y c c}w )Nc                 ó0   — | d   dz
  dz  | d   dz
  dz  z   S )Nr   r   r   g      @r&   ©r"   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>.fminc   s   ø€ Ù�1‹v˜‰zÐr   c           	      óô   — t        j                  g d¢g d¢g d¢g«      }t        j                  t        t        |«      «      D �cg c]%  }||df   | d   z  ||df   | d   z  z   ||df   z   ‘Œ' c}«      S c c}w )N)r   éþÿÿÿr   )éÿÿÿÿr|   é   )r}   r   r   r   r   r   )rk   ÚarrayÚrangeÚlen)r"   ÚaÚis      r   Úcons1z&test_vector_constraints.<locals>.cons1f   s€   € Ü�H‰H’j¢+ªzÐ:Ó;ˆÜ�x‰xÜ*/´°A³«-ö9Ø%&ð ˜1˜a˜4™ 1 Q¡4™¨!¨A¨q¨D©'°A°a±D©.Ñ8Ø˜1˜a˜4™ó!ò 9ó :ð 	:ùò 9s   Á*A5c                 ó   — | S r)   r&   rx   s    r   Úcons2z&test_vector_constraints.<locals>.cons2k   s   € Øˆr   r   r   gffffffö?g333333û?gš™™™™™é?r   )r-   r/   r0   r   rC   rD   )rH   r   )
rk   r   r   r   r   r"   r   rM   rN   r#   )rz   r„   r†   r   Ú	cons_listÚxsolÚfsolrR   rQ   rH   r#   s             @r   Útest_vector_constraintsrŠ   ]   s  ø€ ò/ôò:ò
ô 
�‰�1�a�&Ó	€BØ�e˜UÐ#€Ià�ˆ:€DØ€Dô �c˜2˜y°Ô
6€CÜ�C˜ DÕ)ä
�c˜2˜t¨DÔ
1€CÜ‘C˜“H˜a dÕ+ð >GÖG°T˜F¨4Ó0ÐG€KÐGÜ
�3˜¨¸Ô
>€CÜ�C—E‘E˜4 dÕ+ÜˆC�K‰K˜Ÿ™Ô%Ü�C—G‘G˜T¨Õ-à!¨$Ñ/€KÜ
�3˜¨¸Ô
>€CÜ�C—G‘G˜Q TÖ*ùò Hs   Á6Dc                   ó   — e Zd Zd„ Zd„ Zy)Ú
TestBoundsc                 óÜ   — d„ }g d¢}g d¢}t        ||«      D ��cg c]	  \  }}||f‘Œ }}}t        |g d¢d|¬«      }g d¢}|j                  sJ ‚t        |j                  |d¬	«       y c c}}w )
Nc                 ó2   — t        j                  | dz  «      S ©Nr   ©rk   r\   rx   s    r   r^   z TestBounds.test_basic.<locals>.f�   ó   € Ü—6‘6˜!˜Q™$“<Ðr   )r}   Nr   Nç      à¿)r’   r’   NNr’   )r   r   r   é   re   rF   ©r   rG   Úbounds)r’   r’   r   r   r’   rL   r0   )Úzipr   rM   r   r"   )	r   r^   ÚlbÚubr‚   Úbr•   ÚresÚrefs	            r   Ú
test_basiczTestBounds.test_basicŒ   sl   € ò	 ò 'ˆÚ+ˆÜ%(¨¨R£[×1™T˜Q �1�a’&Ð1ˆÑ1ô �qš_°XÀfÔMˆÚ&ˆØ�{Š{Ðˆ{Ü˜Ÿ™˜s¨Ö.ùó 2s   ›A(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¬«       y )	Nc                 ó2   — t        j                  | dz  «      S r�   r�   rx   s    r   r^   z$TestBounds.test_unbounded.<locals>.f›   r‘   r   r   r   rF   r”   r   rL   r0   )r   rk   Úinfr   rM   r   r"   )r   r^   r•   rš   s       r   Útest_unboundedzTestBounds.test_unboundedš   sº   € ò	 ô œ"Ÿ&™&˜¤2§6¡6 'Ð*¬R¯V©V´R·V±VÐ,<Ó=ˆÜ�q˜a ˜V¨H¸VÔDˆØ�{Š{Ðˆ{Ü˜Ÿ™˜q tÕ,ä˜œRŸV™V˜G˜¤r§v¡v¬r¯v©vÐ&6Ó7ˆÜ�q˜a ˜V¨H¸VÔDˆØ�{Š{Ðˆ{Ü˜Ÿ™  1˜v¨DÖ1r   N)r?   r@   rA   rœ   r    r&   r   r   rŒ   rŒ   ‡   s   „ ò
/ó2r   rŒ   )r   Únumpyrk   Únumpy.testingr   r   r   rs   Úscipy.optimizer   r   r   r
   rŠ   rŒ   r&   r   r   ú<module>r¤      s7   ðÛ ã ß FÑ FÛ ç 8Ñ 8÷P!ñ P!òf'+÷T2ò 2r   