
    (ph                     r    S SK r S SKrS SKJrJrJr  S SKrS SKJ	r	J
r
Jr   " S S5      rS r " S S5      rg)	    N)assert_allcloseassert_assert_array_equal)fmin_cobylaminimizeBoundsc                   x    \ rS rSrS rS rS rS r\R                  R                  SSS9S	 5       rS
 rS rSrg)
TestCobyla
   c                 h    SS/U l         [        R                  " S5      S/U l        SSSSS	.U l        g )
Ng@gQ?g888@gUUUUUU?F   h㈵>d   )disprhobegtolmaxiter)x0mathsqrtsolutionoptsselfs    S/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_cobyla.pysetup_methodTestCobyla.setup_method   s5    ,?3U;"a #%	    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   Tz&not slow, but noisy so only run rarely)reasonc           
          [        U R                  U R                  U R                  U R                  /SSSSS9n[        X R                  SS9  g )Nr   r   r   T)r   rhoendmaxfunr   -C6?atol)r   r%   r   r*   r.   r   r   )r   capfdr$   s      r   test_simpleTestCobyla.test_simple   s@     $''DIItyy+A!#Cd<==t4r   c           	          " S S5      nU" 5       nSU R                   S.SU R                  S.4n[        U R                  U R                  SUX R
                  S9n[        UR                  U R                  SS9  [        UR                  UR                  5        [        UR                  S	:  U5        [        UR                  S
:  U5        [        UR                  U R                  U R                  5      S-   :  U5        [        UR                  UR                  :H  S5        [        UR                  UR                   S5        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   r?   r#   s     r   __call__:TestCobyla.test_minimize_simple.<locals>.Callback.__call__'   s    !r   )rA   r@   N)__name__
__module____qualname____firstlineno__rB   rF   __static_attributes__r)   r   r   Callbackr<   "   s    # r   rM   ineqtyper%   cobyla)methodconstraintscallbackoptionsr4   r5   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nfevr@   r   rA   )r   rM   rT   conssols        r   test_minimize_simpleTestCobyla.test_minimize_simple!   s    	  	  :  		2		24txxt ())=t}}48S[[)		D #&2s#$((4==1D88#>H,,,N	PEEOOU	
r   c                   ^	^
^ [         R                  R                  S5      nUR                  SS5      m
UR                  S5      mU
4S jm	U4S jnU	4S jnU	4S jnU	4S jnSUS	.SUS	.SUS	.4n[         R                  " S
5      n[        X'SUSS0S9n[        UR                  S:  5        [        UR                  (       + 5        g )Ni  r   c                 &   > TR                  U 5      $ r-   )dot)wpbs    r   p8TestCobyla.test_minimize_constraint_violation.<locals>.pD   s    66!9r   c                 ,   > U T-  R                  5       * $ r-   )sum)rc   spreads    r   f8TestCobyla.test_minimize_constraint_violation.<locals>.fG   s    Z$$&&&r   c                 H   > S[        T" U 5      5      R                  5       -
  $ )Ni  r"   rh   rc   re   s    r   c19TestCobyla.test_minimize_constraint_violation.<locals>.c1J   s    QqT((r   c                 H   > S[        T" U 5      R                  5       5      -
  $ N   rm   rn   s    r   c29TestCobyla.test_minimize_constraint_violation.<locals>.c2M   s    s1Q488:&&r   c                 H   > S[        T" U 5      5      R                  5       -
  $ rr   )r"   maxrn   s    r   c39TestCobyla.test_minimize_constraint_violation.<locals>.c3P   s    s1Q4y}}&&r   rN   rO   )r   rQ   catolgư>)rR   rS   rU   )	nprandomRandomStaterandzerosr   r   rZ   rX   )r   rngrj   ro   rt   rx   r\   w0r]   re   rd   ri   s            @@@r   "test_minimize_constraint_violation-TestCobyla.test_minimize_constraint_violation?   s    ii##D)XXb""		'	)	'	'  +++- XXe_qX4 '0		D !CKK r   )r   r   r   N)rH   rI   rJ   rK   r   r%   r*   r.   pytestmarkxslowr8   r^   r   rL   r)   r   r   r
   r
   
   sJ    %&& [[t$LM5 N5
<!r   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                  UR                  5        [        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)   r$   s    r   r%   $test_vector_constraints.<locals>.fun`   s%    !q1}!s
Q..r   c                    > T" U 5      S-
  $ rE   r)   )r$   r%   s    r   fmin%test_vector_constraints.<locals>.fminc   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>.cons1f   s    HHj+z:;xx*/A-9*7Q a41Q4!qD'AaD.8a4!*79 : 	: 9s   *A7c                     U $ r-   r)   r   s    r   cons2&test_vector_constraints.<locals>.cons2k   s    r   r    r   gffffff?g333333?g?r   )r2   r4   r5   r   rN   rO   )rS   r   )
r{   r   r   r   r   r$   r   rX   rY   r%   )r   r   r   r   	cons_listxsolfsolr]   r\   rS   r%   s             @r   test_vector_constraintsr   ]   s   /:
 
1a&	Be#I:DD c2
6CCD)
c2D
1CCHad+ >GGYTF40YKG
3
>CCEE4d+CKK%CGGT-!$/K
3
>CCGGQT* Hs   (C4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      $ Nr    r{   rh   r   s    r   rj    TestBounds.test_basic.<locals>.f       66!Q$<r   )r   Nr   N      )r   r   NNr   )r   r    r!      rs   rQ   r   rR   bounds)r   r   r   r   r   rW   r5   )zipr   rX   r   r$   )	r   rj   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   r   s    r   rj   $TestBounds.test_unbounded.<locals>.f   r   r   r   r    rQ   r   r   rW   r5   )r   r{   infr   rX   r   r$   )r   rj   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)rH   rI   rJ   rK   r   r   rL   r)   r   r   r   r      s    
/2r   r   )r   numpyr{   numpy.testingr   r   r   r   scipy.optimizer   r   r   r
   r   r   r)   r   r   <module>r      s7      F F  8 8P! P!f'+T2 2r   