Ë
    çÿæi¦  ã                   ór   — 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y)	é    N)Úassert_allcloseÚassert_array_almost_equal)Úfmin_cobylaÚminimizeÚBoundsÚNonlinearConstraintÚLinearConstraintÚOptimizeResultc                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)Ú
TestCobylac                 óŒ   — t        j                  d«      dg| _        t        j                  d«      dg| _        dddddœ| _        y )	Ngä8Žã8Ž8@g7®l'Vå?gUUUUUUå?r   é   g�íµ ÷Æ°>éd   )ÚdispÚrhobegÚtolÚmaxiter)ÚnpÚsqrtÚx0ÚmathÚsolutionÚopts©Úselfs    úu/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/optimize/tests/test_cobyla.pyÚsetup_methodzTestCobyla.setup_method   sA   € ô —7‘7˜?Ó+¨\Ð:ˆŒÜŸ™ ?Ó3°UÐ;ˆŒØ¨!°DØ #ñ%ˆ�	ó    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   c           	      ó¬   — t        | j                  | j                  | j                  | j                  gdddd¬«      }t        || j                  d¬«       y )Nr   çñhãˆµøä>r   )r   ÚrhoendÚmaxfunr   ç-Cëâ6?©Úatol)r   r%   r   r)   r,   r   r   r#   s     r   Útest_simplezTestCobyla.test_simple   s@   € ä˜Ÿ™ $§'¡'¨D¯I©I°t·y±yÐ+AÈ!Ø#¨C°aô9ˆä˜˜4Ÿ=™=¨tÖ4r   c                 ó  —  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                  | 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«       ‚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   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   %   s   „ ò#ó r   rE   c                   ó   — e Zd Zd„ Zd„ Zy)ú:TestCobyla.test_minimize_simple.<locals>.CallbackNewSyntaxc                 ó   — d| _         y r9   )r;   r   s    r   r=   zCTestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.__init__/   s	   € Ø �•r   c                 óR   — t        |t        «      sJ ‚| xj                  dz  c_        y r?   )Ú
isinstancer
   r;   )r   Úintermediate_results     r   r@   zCTestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.__call__2   s!   € Ü!Ð"5´~ÔFÐFÐFØ—’ Ñ!–r   NrA   r(   r   r   ÚCallbackNewSyntaxrG   .   s   „ ò!ó"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´  € ÷	 ñ 	 ÷	"ñ 	"ñ “:ˆÙ/Ó1Ðô $ D§I¡I¨q´"·&±&Ó9Ø¨¯	©	Ñ2ð4ˆä�t—x‘x §¡°ÀtØ (°$·)±)ô=ˆä˜4Ÿ8™8 T§W¡W°XÈ4Ø 3¸T¿Y¹YôHˆä˜Ÿ™˜tŸ}™}°4Õ8Ø�{Š{Ð'˜CŸK™KÓ'ˆ{Ø�y‰y˜4ÒÐ$ Ó$ÐØ�x‰x˜"Š}Ð!˜cÓ!ˆ}Ø�w‰w˜Ÿ™ $§-¡-Ó0°4Ñ7Ò7Ð<¸Ó<Ð7Ü!Ø�E‰EØ�O‰OØð$õ		
ð �ŠÐ/ §¡Ó/ˆØ�w‰w˜'Ÿ+™+Ò%Ð%Ð%Ø�y‰y˜GŸM™MÒ)Ð)Ð)Ø�x‰x˜7Ÿ<™<Ò'Ð'Ð'Ø×ÑÐ#6×#>Ñ#>Ò>ð 	VØUó	VÑ>r   c                 óè   — dd„ dœdd„ dœf}t        d„ dgd|dd	i¬
«      }|j                  dkD  sJ ‚|j                  sJ ‚t        d„ dgd|ddi¬
«      }|j                  dkD  sJ ‚|j                  rJ ‚y )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ð:ˆä‘{ Q C°ÀdØ '¨˜~ô/ˆà�y‰y˜3ŠÐˆØ�{Š{Ðˆ{Ü‘{ Q C°ÀdØ '¨˜~ô/ˆà�y‰y˜3ŠÐˆØ—;’;Ðˆ�;r   c                 óŽ   — d}t        d„ dgdd|i¬«      }|j                  dk(  sJ ‚|j                  sJ ‚|j                  |k  sJ ‚y )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   sO   € ØˆÜ‘~¨ u°XØ *¨HÐ5ô7ˆà�z‰z˜QŠÐˆØ�{Š{Ðˆ{Ø�w‰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                  | j                  |«      dz   k  sJ |«       ‚y )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‰HØ�G‰GØØ#Ø—I‘Iô
ˆð œŸ™ ›‘^ 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   N)rB   rC   rD   r   r%   r)   r,   r4   rc   rp   rw   rz   r(   r   r   r   r      s1   „ ò%ò&ò&òò5ò-Vò^ò#ó8r   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¬«       |j                  s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(   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   ø€ Ù�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    )r   ÚarrayÚrangeÚlen)r$   ÚaÚis      r   Úcons1z&test_vector_constraints.<locals>.cons1ƒ   s…   € Ü�H‰H’j¢+ªzÐ:Ó;ˆÜ�x‰xÜ*/´°A³¬-ó9Ù*7 Qð ˜1˜a˜4™ 1 Q¡4™¨!¨A¨q¨D©'°A°a±D©.Ñ8Ø˜1˜a˜4™ó!Ø*7ñ9ó :ð 	:ùò 9s   Á*A5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   rM   rN   )rR   r   )	r   rƒ   r   r   r   r$   r[   r\   r%   )r~   rˆ   rŠ   r   Ú	cons_listÚxsolÚfsolra   r`   rR   r%   s             @r   Útest_vector_constraintsrŽ   z   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¹Y°T˜F¨4Ó0¸Y€KÐGÜ
�3˜¨¸Ô
>€CÜ�C—E‘E˜4 dÕ+Ø�;Š;Ð#˜Ÿ™Ó#ˆ;Ü�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 rt   ©r   Úsumrg   s    r   Úfz TestBounds.test_basic.<locals>.fª   ó   € Ü—6‘6˜!˜Q™$“<Ðr   )r�   Nr   Nç      à¿)r—   r—   NNr—   )r   r    r!   rf   rW   rP   ©r   rQ   Úbounds)r—   r—   r   r   r—   rV   r2   )Úzipr   r[   r   r$   )	r   r•   ÚlbÚubr†   Úbr™   ÚresÚrefs	            r   Ú
test_basiczTestBounds.test_basic©   sm   € ò	 ò 'ˆÚ+ˆÜ%(¨¨R¤[Ô1¡[™T˜Q �1�a’& [ˆÑ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 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¡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)rB   rC   rD   r    r£   r(   r   r   r�   r�   ¤   s   „ ò
/ó2r   r�   )r   Únumpyr   Únumpy.testingr   r   Úscipy.optimizer   r   r   r   r	   r
   r   rŽ   r�   r(   r   r   Ú<module>r§      s5   ðÛ ã ß D÷÷ ÷k8ñ k8ò\'+÷T2ò 2r   