
    -i                     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Jr   " S S5      rS r " S S5      rg)	    N)assert_allcloseassert_array_almost_equal)fmin_cobylaminimizeBoundsNonlinearConstraintLinearConstraintOptimizeResultc                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)
TestCobyla   c                     [         R                  " S5      S/U l        [        R                  " S5      S/U l        SSSSS.U l        g )	Ng888@g7l'V?gUUUUUU?r      gư>d   )disprhobegtolmaxiter)npsqrtx0mathsolutionoptsselfs    S/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_cobyla.pysetup_methodTestCobyla.setup_method   sA     77?+\:?3U;!D #%	    c                 6    US   S-  [        US   5      S-  -   $ )Nr      r      )absr   xs     r   funTestCobyla.fun   s!    tQwQqTA%%r    c                 *    US   S-  US   S-  -   S-
  $ )Nr   r"   r       r%   s     r   con1TestCobyla.con1   s"    tQw1q 2%%r    c                 &    U R                  U5      * $ N)r,   r%   s     r   con2TestCobyla.con2   s    		!}r    c           
          [        U R                  U R                  U R                  U R                  /SSSSS9n[        XR                  SS9  g )Nr   h㈵>r   )r   rhoendmaxfunr   -C6?atol)r   r'   r   r,   r0   r   r   r%   s     r   test_simpleTestCobyla.test_simple   s>    $''DIItyy+A!#Ca9==t4r    c           	          " S S5      n " S S5      nU" 5       nU" 5       n[        U R                  S[        R                  5      SU R                  S.4n[        U R                  U R                  SUX0R                  S	9n[        U R                  U R                  SUX@R                  S	9n[        UR                  U R                  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 R                  5      S-   :  d   U5       e[!        UR                  UR"                  SSS9  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   S5       eg )Nc                        \ rS rSrS rS rSrg)1TestCobyla.test_minimize_simple.<locals>.Callback%   c                      SU l         S U l        g Nr   n_callslast_xr   s    r   __init__:TestCobyla.test_minimize_simple.<locals>.Callback.__init__&   s     "r    c                 :    U =R                   S-  sl         Xl        g Nr   rA   r%   s     r   __call__:TestCobyla.test_minimize_simple.<locals>.Callback.__call__*   s    !r    )rC   rB   N__name__
__module____qualname____firstlineno__rD   rH   __static_attributes__r+   r    r   Callbackr=   %   s    # r    rP   c                        \ rS rSrS rS rSrg):TestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.   c                     SU l         g r@   rB   r   s    r   rD   CTestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.__init__/   s	     r    c                 \    [        U[        5      (       d   eU =R                  S-  sl        g rG   )
isinstancer
   rB   )r   intermediate_results     r   rH   CTestCobyla.test_minimize_simple.<locals>.CallbackNewSyntax.__call__2   s$    !"5~FFFF!r    rU   NrJ   r+   r    r   CallbackNewSyntaxrR   .   s    !"r    r[   r   ineqtyper'   cobyla)methodconstraintscallbackoptionsr6   r7   r3   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   infr0   r   r'   r   r   r   r&   r   successmessagemaxcvnfevr   rC   rB   )r   rP   r[   rb   callback_new_syntaxconssolsol_news           r   test_minimize_simpleTestCobyla.test_minimize_simple$   s   	  	 	" 	" :/1 $DIIq"&&9		24txxt ())=488TWWX4 3YYHt}}48{{'CKK'{yy4$$xx"}!c!}ww$--0477<<7!EEOO$		
 //ww'++%%%yyGMM)))xx7<<'''#6#>#>> 	VU	V>r    c                     SS S.SS S.4n[        S S/SUSS	0S
9nUR                  S:  d   eUR                  (       d   e[        S S/SUSS0S
9nUR                  S:  d   eUR                  (       a   eg )Nr\   c                     SU -
  $ )N   r+   r&   s    r   <lambda>?TestCobyla.test_minimize_constraint_violation.<locals>.<lambda>V       !a%r    r]   c                     U S-
  $ )Nrf   r+   rw   s    r   rx   ry   W   rz   r    c                     U $ r/   r+   rw   s    r   rx   ry   X       r    r   r_   catolg333333?r`   ra   rc   g?c                     U $ r/   r+   rw   s    r   rx   ry   \   r}   r    g?)r   rl   rj   )r   ro   rp   s      r   "test_minimize_constraint_violation-TestCobyla.test_minimize_constraint_violationS   s      88:{QCd '~/yy3{{{{QCd '~/yy3;;;r    c                     Sn[        S S/SSU0S9nUR                  S:X  d   eUR                  (       d   eUR                  U::  d   eg )N   c                     U S-  $ Nr"   r+   rw   s    r   rx   *TestCobyla.test_f_target.<locals>.<lambda>c   s    Ar    i  r_   f_target)r`   rc   r   )r   statusrj   r'   )r   r   rp   s      r   test_f_targetTestCobyla.test_f_targeta   sO    ~uX *H57zzQ{{{ww("""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 )Ng      ?r_   r   rv      r#   r   r6   r7   g:0yE>r   re   )r	   r   r'   r   r   r   r   r   r&   rj   rk   rl   rm   )r   ra   rp   r   s       r    test_minimize_linear_constraints+TestCobyla.test_minimize_linear_constraintsi   s    &Sz3<HHGG#II
 ^q(2771:>Q*>?xd3{{'CKK'{yy4$$xx3##ww(+d227C72r    )r   r   r   N)rK   rL   rM   rN   r   r'   r,   r0   r9   rr   r   r   r   rO   r+   r    r   r   r      s1    %&&5-V^#8r    r   c                    ^
 S m
U
4S jn S nS n[         R                  " SS/5      nT
X/nSS/nS	n[        T
X4S
S9n[        XuSS9  [        T
X0S
S9n[        T
" U5      SSS9  U Vs/ s H  nSUS.PM
     n	n[	        T
X9S
S9n[        UR
                  USS9  UR                  (       d   UR                  5       e[        UR                  USS9  SU S.n	[	        T
X9S
S9n[        UR                  SSS9  g s  snf )Nc                 0    U S   S-
  S-  U S   S-
  S-  -   $ )Nr   r   r"   g      @r+   rw   s    r   r'   $test_vector_constraints.<locals>.fun}   s%    !q1}!s
Q..r    c                    > T" U 5      S-
  $ rG   r+   )r&   r'   s    r   fmin%test_vector_constraints.<locals>.fmin   s    1vzr    c           	          [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " [        [        U5      5       Vs/ s H#  nXS4   U S   -  XS4   U S   -  -   XS4   -   PM%     sn5      $ s  snf )N)r   r"   )r      )r   r"   r"   r   r   r"   )r   arrayrangelen)r&   ais      r   cons1&test_vector_constraints.<locals>.cons1   s    HHj+z:;xx*/A-9*7Q a41Q4!qD'AaD.8a4!*79 : 	: 9s   *A7c                     U $ r/   r+   rw   s    r   cons2&test_vector_constraints.<locals>.cons2   s    r    r"   r   gffffff?g333333?g?r3   )r4   r6   r7   r   r\   r]   )ra   r   )	r   r   r   r   r   r&   rj   rk   r'   )r   r   r   r   	cons_listxsolfsolrp   ro   ra   r'   s             @r   test_vector_constraintsr   z   s   /:
 
1a&	Be#I:DD c2
6CCD)
c2D
1CCHad+ >GGYTF40YKG
3
>CCEE4d+;;##;CGGT-!$/K
3
>CCGGQT* Hs   (C6c                        \ rS rSrS rS rSrg)
TestBounds   c                     S n/ SQn/ SQn[        X#5       VVs/ s H  u  pEXE4PM
     nnn[        U/ SQSUS9n/ SQnUR                  (       d   e[        UR                  USS	9  g s  snnf )
Nc                 4    [         R                  " U S-  5      $ r   r   sumrw   s    r   f TestBounds.test_basic.<locals>.f       66!Q$<r    )r   Nr   N      )r   r   NNr   )r   r"   r#   rv   rf   r_   r   r`   bounds)r   r   r   r   r   re   r7   )zipr   rj   r   r&   )	r   r   lbubr   br   resrefs	            r   
test_basicTestBounds.test_basic   sg    	  '+%([1[TQ1&[1 q_XfM&{{{s. 2s   A'c                    S n[        [        R                  * [        R                  * /[        R                  [        R                  /5      n[        USS/SUS9nUR                  (       d   e[        UR                  SSS9  [        S[        R                  * /[        R                  [        R                  /5      n[        USS/SUS9nUR                  (       d   e[        UR                  SS/SS9  g )	Nc                 4    [         R                  " U S-  5      $ r   r   rw   s    r   r   $TestBounds.test_unbounded.<locals>.f   r   r    r   r"   r_   r   r   re   r7   )r   r   ri   r   rj   r   r&   )r   r   r   r   s       r   test_unboundedTestBounds.test_unbounded   s    	  "&&266'*RVVRVV,<=qaVHVD{{{qt,RVVGrvvrvv&67qaVHVD{{{1vD1r    r+   N)rK   rL   rM   rN   r   r   rO   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    