
    (ph                     \    S SK rS SKrS SKrS SKJrJr  S SKJrJ	r	J
r
JrJr   " S S5      rg)    N)assert_allcloseassert_equal)BoundsLinearConstraintNonlinearConstraintOptimizeResultminimizec                   n    \ rS rSrS r\SS j5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rSrg)
TestCOBYQA   c                 (    SS/U l         SS0U l        g )N@Q?maxfevd   )x0optionsselfs    S/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_cobyqa.pysetup_methodTestCOBYQA.setup_method   s    , #    c                 <    U S   S-  U[        U S   5      S-  -  -   $ )Nr            )abs)xcs     r   funTestCOBYQA.fun   s&    tQwS1Y\)))r   c                 *    U S   S-  U S   S-  -   S-
  $ )Nr   r   r   g      9@ )r   s    r   conTestCOBYQA.con   s"    tQw1q 4''r   c           	      :    " S S5      n " S S5      nSS/nU" 5       nU" 5       n[        U R                  SS5      n[        U R                  USUUU R                  S	9n[        U R                  USUUU R                  S	9n[
        R                  " S
5      S/n	[        UR                  U	SS9  UR                  (       d   UR                  5       eUR                  S:  d   U5       eUR                  S::  d   U5       eUR                  U R                  U	5      S-   :  d   U5       eUR                  UR                  :X  d   S5       e[        UR                  UR                  5        UR                  (       d   UR                  5       eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   S5       eg )Nc                        \ rS rSrS rS rSrg)1TestCOBYQA.test_minimize_simple.<locals>.Callback   c                 F    [         R                  " 5       U l        SU l        g Nr   	threadingLocklockn_callsr   s    r   __init__:TestCOBYQA.test_minimize_simple.<locals>.Callback.__init__       %NN,	 r   c                     [        U[        R                  5      (       d   eU R                     U =R                  S-  sl        S S S 5        g ! , (       d  f       g = fNr   )
isinstancenpndarrayr0   r1   )r   r   s     r   __call__:TestCOBYQA.test_minimize_simple.<locals>.Callback.__call__#   s8    !!RZZ0000YYLLA%L YYs   A
Ar0   r1   N__name__
__module____qualname____firstlineno__r2   r:   __static_attributes__r$   r   r   Callbackr)          !&r   rC   c                        \ rS rSrS rS rSrg):TestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax(   c                 F    [         R                  " 5       U l        SU l        g r,   r-   r   s    r   r2   CTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__init__)   r4   r   c                     [        U[        5      (       d   eU R                     U =R                  S-  sl        S S S 5        g ! , (       d  f       g = fr6   )r7   r   r0   r1   )r   intermediate_results     r   r:   CTestCOBYQA.test_minimize_simple.<locals>.CallbackNewSyntax.__call__-   s5    !"5~FFFFYYLLA%L YYs   A
Ar<   Nr=   r$   r   r   CallbackNewSyntaxrF   (   rD   r   rM   r   r           cobyqa)methodconstraintscallbackr   888@UUUUUU?-C6?atol:0yE>r   MbP?z<Callback is not called exactly once for every function eval.)r   r%   r	   r!   r   r8   sqrtr   r   successmessagemaxcvnfevr1   r   nit)
r   rC   rM   r   rR   callback_new_syntaxrQ   solsol_newsolutions
             r   test_minimize_simpleTestCOBYQA.test_minimize_simple   s   	& 	&	& 	& D\:/1 *$((C=HH#LL
 HH#(LL
 GG,-y9xd3{{'CKK'{yy4$$xx3##ww(+d227C72xx8+++ 	KJ	K+SUUGII&//ww'++%%%yyGMM)))xx7<<'''ww'++%%%||2::: 	KJ	K:r   c           	        ^ ^ UU 4S jn[        SS/SS/5      m[        T R                  SS5      n[        UT R                  STUT R
                  S9n[        R                  " S	5      S
/n[        UR                  USS9  UR                  (       d   UR                  5       eUR                  S:  d   U5       e[        R                  " TR                  UR                  :*  5      (       a2  [        R                  " UR                  TR                  :*  5      (       d   U5       eUR                   S::  d   U5       eUR"                  T R#                  U5      S-   :  d   U5       e[        SS/SS/5      m[        UT R                  STUT R
                  S9nUR                  (       a   UR                  5       eUR                  S:  d   U5       e[        R                  " TR                  UR                  :*  5      (       a2  [        R                  " UR                  TR                  :*  5      (       d   U5       eUR                   S::  d   U5       eg )Nc                    > [         R                  " TR                  U :*  5      (       a(  [         R                  " U TR                  :*  5      (       d   eTR	                  U 5      $ N)r8   alllbubr!   )r   boundsr   s    r   fun_check_bounds9TestCOBYQA.test_minimize_bounds.<locals>.fun_check_boundsZ   sD    66&))q.))bffQ&))^.D.DDD88A;r         @333333?      @ffffff?rN   rO   rP   rl   rQ   r   rS   rT   rU   rV   rX   r   rY   g      @g?gffffff?)r   r   r%   r	   r   r   r8   rZ   r   r   r[   r\   r]   ri   rj   rk   r^   r!   )r   rm   rQ   ra   rc   rl   s   `    @r   test_minimize_boundsTestCOBYQA.test_minimize_boundsY   s   	
 c
S#J/)$((C=GG#LL
 GG,-y9xd3{{'CKK'{yy4$$vvfii355())bffSUUfii5G.H.HM#MHxx3##ww(+d227C72 c
S$K0GG#LL
 ;;++yy4$$vvfii355())bffSUUfii5G.H.HM#MHxx3##r   c                    [        SS/SS5      n[        U R                  U R                  SUU R                  S9nS[
        R                  " S5      -
  S-  [
        R                  " S5      S-
  S-  /n[        UR                  USS	9  UR                  (       d   UR                  5       eUR                  S
:  d   U5       eUR                  S::  d   U5       eUR                  U R                  U5      S-   :  d   U5       eg )N      ?rO   rP   rQ   r         r   r   rU   rV   rX   r   rY   )r   r	   r!   r   r   r8   rZ   r   r   r[   r\   r]   r^   r   rQ   ra   rc   s       r    test_minimize_linear_constraints+TestCOBYQA.test_minimize_linear_constraints   s    &Sz3<HHGG#LL
 ^q(2771:>Q*>?xd3{{'CKK'{yy4$$xx3##ww(+d227C72r   c           	         [        U R                  SS5      n[        U R                  U R                  SSUU R
                  S9n[        R                  " S5      S/n[        UR                  USS9  UR                  (       d   UR                  5       eUR                  S	:  d   U5       eUR                  S
::  d   U5       eUR                  U R                  US5      S-   :  d   U5       eg )NrN   )       @rO   )argsrP   rQ   r   g988@gUUUUUU?rU   rV   rX   r   r   rY   )r   r%   r	   r!   r   r   r8   rZ   r   r   r[   r\   r]   r^   r{   s       r   test_minimize_argsTestCOBYQA.test_minimize_args   s    )$((C=HHGG#LL
 GG-.	:xd3{{'CKK'{yy4$$xx3##ww(C0477<<7r   c                 *  ^  U 4S jn[        SS/SS/5      n[        T R                  SS5      n[        T R                  T R
                  SUUT R                  S9nS	 H  n[        UT R
                  U4SUUT R                  S
9n[        UR                  UR                  5        UR                  (       d   UR                  5       eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  a  M   e   [        R                  " [         5         [        U 4S jT R
                  SUUT R                  S9  S S S 5        g ! , (       d  f       g = f)Nc                    > [         R                  " TR                  U 5      5      n[         R                  " USU-  5      $ )N)r   )r8   arrayr!   reshape)r   dimfr   s      r   	fun_array1TestCOBYQA.test_minimize_array.<locals>.fun_array   s.    !%A::a,,r   ro   rp   rq   rr   rN   rO   rs   )r   r   r   )r   rP   rl   rQ   r   c                 p   > [         R                  " TR                  U 5      TR                  U 5      /5      $ rh   )r8   r   r!   )r   r   s    r   <lambda>0TestCOBYQA.test_minimize_array.<locals>.<lambda>   s#    "((DHHQK!#=>r   )r   r   r%   r	   r!   r   r   r   r   r[   r\   r]   r^   r_   pytestraises	TypeError)r   r   rl   rQ   ra   r   	sol_arrays   `      r   test_minimize_arrayTestCOBYQA.test_minimize_array   sO   	-
 c
S#J/)$((C=HHGG#LL
 C V'I 	,$$7i&7&77$77imm+++99	///88y~~---77imm+++ $ ]]9%>' &%%s   'F
Fc                     [        U R                  SS5      nSS0n[        U R                  U R                  SUUS9nUR
                  (       a   UR                  5       eUR                  S::  d   U5       eg )NrN   r   r   rO   rx   )r   r%   r	   r!   r   r[   r\   r^   r   rQ   r   ra   s       r   test_minimize_maxfevTestCOBYQA.test_minimize_maxfev   sj    )$((C=Q-HHGG#
 ;;++xx1}!c!}r   c                     [        U R                  SS5      nSS0n[        U R                  U R                  SUUS9nUR
                  (       a   UR                  5       eUR                  S::  d   U5       eg )NrN   maxiterr   rO   rx   )r   r%   r	   r!   r   r[   r\   r_   r   s       r   test_minimize_maxiter TestCOBYQA.test_minimize_maxiter   sj    )$((C=a.HHGG#
 ;;++ww!| S |r   c                    [        U R                  SS5      n[        U R                  U R                  SUU R
                  S9n[        U R
                  5      nUR                  US'   [        U R                  U R                  SUUS9nUR                  (       d   UR                  5       eUR                  S:  d   U5       eUR                  UR                  ::  d   U5       eUR                  UR                  ::  d   U5       eg )NrN   rO   rx   f_targetrX   )r   r%   r	   r!   r   r   dictr[   r\   r]   r^   )r   rQ   sol_refr   ra   s        r   test_minimize_f_target!TestCOBYQA.test_minimize_f_target   s    )$((C=HHGG#LL
 t||$%kk
HHGG#
 {{'CKK'{yy4$$xx7<<',,'ww'++%*s*%r   )r   r   N)rw   )r>   r?   r@   rA   r   staticmethodr!   r%   rd   rt   r|   r   r   r   r   r   rB   r$   r   r   r   r      s[    ' * * ( (:Kx%$N8 ="*X"!+r   r   )numpyr8   r   r.   numpy.testingr   r   scipy.optimizer   r   r   r   r	   r   r$   r   r   <module>r      s'       7 m+ m+r   