
    doi0                         S r SSKrSSKrSSKJrJr  SSKrSSKJ	r	J
r
JrJrJr  SSKJrJrJrJrJrJrJr   " S S5      r " S	 S
5      r " S S5      r " S S5      rg)z%
Unit test for constraint conversion
    N)assert_array_almost_equalassert_allclose)NonlinearConstraintLinearConstraintOptimizeWarningminimizeBFGS   )MaratosHyperbolicIneq
RosenbrockIneqRosenbrockEqIneqRosenbrockBoundedRosenbrockElecc                   2    \ rS rSrSrSrSrS rS rS r	Sr
g	)
TestOldToNew   )   r   )r   Nr   trust-constrc           	      n   S nSS S.SS S.SS S.4n[         R                  " 5          [         R                  " SS[        5        [	        XR
                  U R                  U R                  US	9nS S S 5        [        WR                  S
S/SS9  [        UR                  SSS9  g ! , (       d  f       N;= f)Nc                 0    U S   S-
  S-  U S   S-
  S-  -   $ Nr   r
   r         @ xs    k/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_constraint_conversion.pyfun6TestOldToNew.test_constraint_dictionary_1.<locals>.fun   &    aD1H?adSjQ%666    ineqc                 $    U S   SU S   -  -
  S-   $ Nr   r   r
   r   r   s    r   <lambda>;TestOldToNew.test_constraint_dictionary_1.<locals>.<lambda>       !A$QqT/A2Er#   typer    c                 &    U S   * SU S   -  -
  S-   $ )Nr   r   r
      r   r   s    r   r'   r(          1Q4%!ad(2BQ2Fr#   c                 &    U S   * SU S   -  -   S-   $ r&   r   r   s    r   r'   r(      r.   r#   ignoredelta_grad == 0.0methodboundsconstraintsffffff?g333333?-C6?rtol皙?warningscatch_warningsfilterwarningsUserWarningr   x0r3   bndsr   r   r    selfr    consress       r   test_constraint_dictionary_1)TestOldToNew.test_constraint_dictionary_1   s    	7(EF(FG(FGI $$&##H.A;O3"&))?C ' 	Sz540 '&s   AB&&
B4c           	      b   S nSS SS S.n[         R                  " 5          [         R                  " SS[        5        [	        XR
                  U R                  U R                  US	9nS S S 5        [        WR                  S
S/5        [        UR                  S5        g ! , (       d  f       N== f)Nc                 0    U S   S-
  S-  U S   S-
  S-  -   $ r   r   r   s    r   r    6TestOldToNew.test_constraint_dictionary_2.<locals>.fun%   r"   r#   eqc                      XS   -  X S   -  -
  $ Nr   r
   r   r   p1p2s      r   r'   ;TestOldToNew.test_constraint_dictionary_2.<locals>.<lambda>(   s    aD2d7):r#   )r
   皙?c                 4    [         R                  " X* //5      $ )N)nparrayrN   s      r   r'   rQ   *   s    B9+)>r#   )r+   r    argsjacr0   r1   r2   g>[p?gr7?g,,?r;   rB   s       r   test_constraint_dictionary_2)TestOldToNew.test_constraint_dictionary_2$   s    	7: >@ $$&##H.A;O3"&))?C ' 		:67!34 '&s   AB  
B.c           	      t   S nSS S.[        S SS5      /n[        R                  " 5          [        R                  " SS[        5        [        XR                  U R                  U R                  US	9nS S S 5        [        WR                  S
S
/SS9  [        UR                  SSS9  g ! , (       d  f       N;= f)Nc                 0    U S   S-
  S-  U S   S-
  S-  -   $ r   r   r   s    r   r    6TestOldToNew.test_constraint_dictionary_3.<locals>.fun3   r"   r#   r$   c                 $    U S   SU S   -  -
  S-   $ r&   r   r   s    r   r'   ;TestOldToNew.test_constraint_dictionary_3.<locals>.<lambda>5   r)   r#   r*   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r^   6   s    adQqTkr#   r   r0   r1   r2   g      ?r7   r8   g      ?)r   r<   r=   r>   r?   r   r@   r3   rA   r   r   r    rB   s       r   test_constraint_dictionary_3)TestOldToNew.test_constraint_dictionary_32   s    	7(EF#$91a@B $$&##H.A;O3"&))?C ' 	d|$7T2 '&s   AB))
B7r   N)__name__
__module____qualname____firstlineno__r@   rA   r3   rF   rX   r`   __static_attributes__r   r#   r   r   r      s     	B!DF153r#   r   c                       \ rS rSr\R
                  R                  S5      S 5       r\R
                  R                  S5      S 5       rSr	g)TestNewToOld@   r   c           
         S n/ SQn/ n/ SQnUR                  SS S.[        S SS	5      /5        UR                  [        / S
QS[        R                  5      [        S SS	5      /5        UR                  [        S S[        R                  5      [        S SS	5      /5        U H  n0 nU HT  n[
        R                  " 5          [
        R                  " S[        5        [        XXuS9nUR                  Xg'   S S S 5        MV     [        US   US   SS9  [        US   US   SS9  [        US   US   SS9  M     g ! , (       d  f       M  = f)Nc                 H    U S   S-
  S-  U S   S-
  S-  -   U S   S-
  S-  -   $ Nr   r
   r   r   g      ?r   r   s    r   r    :TestNewToOld.test_multiple_constraint_objects.<locals>.funC   8    aD1H?adSjQ%66!A$+!9KKKr#   r   r   r
   slsqpcobylacobyqar   r$   c                 $    U S   SU S   -  -
  S-   $ r&   r   r   s    r   r'   ?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>J   s    qta!A$h7Jr#   r*   c                     U S   U S   -
  $ rM   r   r   s    r   r'   ru   K       1Q4!A$;r#   r
   )r
   r   ry   c                     U S   U S   -
  $ rM   r   r   s    r   r'   ru   N   rw   r#   c                 $    U S   SU S   -  -
  S-   $ r&   r   r   s    r   r'   ru   P   s    1Q4!ad(?Q3Fr#   r   c                     U S   U S   -
  $ rM   r   r   s    r   r'   ru   Q   rw   r#   r0   r3   r5   rq   r   r7   r8   rr   rs   )appendr   r   rT   infr<   r=   simplefilterr?   r   r    r   )	rC   r    r@   conimethodsconfunsr3   results	            r    test_multiple_constraint_objects-TestNewToOld.test_multiple_constraint_objectsA   sI   	L? 	f-JK()>AFH 	I 	%j"bff=()>AFH 	I 	()F266R()>AFH 	I CD!,,.))(K@%cfNF#)::DL /. "
 DM4+?dKDND,@tLDND,@!%'  /.s   4D==
E   c           
       	   S n/ SQn/ n/ n/ SQnUR                  [        S SS5      5        UR                  [        S S/S/5      5        UR                  [        S S[        R                  " S/5      5      5        UR                  [        S	 SS5      5        UR                  [        S
 SS/SS/5      5        UR                  [        S SS/S5      5        UR                  [        S S[        R                  * /S[        R                  /5      5        UR                  [        S S[        R                  5      5        UR                  [        S S/[        R                  5      5        UR                  [        S S[        R                  " [        R                  /5      5      5        UR                  [        S [        R                  * S5      5        UR                  [        S [        R                  " [        R                  * 5      S5      5        UR                  [        S S[        R                  5      5        UR                  [        S S[        R                  * /SS/5      5        UR                  [        S SS/SS/5      5        UR                  [        S SS/SS/5      5        UR                  [        / SQSS5      5        UR                  [        / SQ/ S Q/SS5      5        UR                  [        / SQ/ S Q/S[        R                  * /SS/5      5        U H  n0 nU HT  n[        R                  " 5          [        R                  " S![        5        [        XXS"9n	U	R                  Xx'   S S S 5        MV     [        US#   US$   S%S&9  [        US'   US$   S%S&9  [        US(   US$   S%S&9  M     U H  n0 nU Vs/ s H  oS':w  d  M
  UPM     sn HT  n[        R                  " 5          [        R                  " S![        5        [        XXS"9n	U	R                  Xx'   S S S 5        MV     [        US#   US$   S%S&9  [        US(   US$   S%S&9  M     g ! , (       d  f       GM?  = fs  snf ! , (       d  f       M  = f))Nc                 H    U S   S-
  S-  U S   S-
  S-  -   U S   S-
  S-  -   $ rl   r   r   s    r   r    <TestNewToOld.test_individual_constraint_objects.<locals>.funa   rn   r#   ro   rp   c                     U S   U S   -
  $ rM   r   r   s    r   r'   ATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>j       !A$1+r#   r
   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r   k   r   r#   g\(\?c                     U S   U S   -
  $ rM   r   r   s    r   r'   r   l   r   r#   c                 .    U S   U S   -
  U S   U S   -
  /$ Nr   r
   r   r   r   s    r   r'   r   q   !    qtad{AaD1Q4K8r#   c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r   t   r   r#   r6   c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r   w   r   r#   c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r   z   r   r#   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r   ~   r   r#   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r      r   r#   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r      r   r#   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r      r   r#   c                     U S   U S   -
  $ rM   r   r   s    r   r'   r      r   r#   c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r      r   r#   c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r      r   r#   c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r      r   r#   rR   r:   g333333?c                 .    U S   U S   -
  U S   U S   -
  /$ r   r   r   s    r   r'   r      r   r#   g333333gffffffgg)r
   rx   r   )r   r
   rx   r0   r}   rq   r   MbP?r8   rr   rs   )r~   r   rT   rU   r   r   r<   r=   r   r?   r   r    r   )
rC   r    r@   coner   r   r   r   r3   r   s
             r   "test_individual_constraint_objects/TestNewToOld.test_individual_constraint_objects_   s   	L? 	'(=q!DE'(=vvNO'(=(,bhhv.>@ 	A 	'8$  	! 	'83K$. 	/ 	'84L$( 	) 	'8BFF7OdBFF^5 	6
 	'(=tRVVLM'(=vrvvNO'(=(,bhhx.@B 	C'(=wKL'(=(*"&&(92? 	@ 	'8"&&" 	# 	'8BFF7OdC[2 	3 	'8"ISz+ 	, 	'84L4+/ 	0
 	$Zt<=$j*%=tTJK$j*%=&*RVVG_tSkC 	D CD!,,.))(K@%cfNF#)::DL /. "
 DM4+?dKDND,@tLDND,@!%'  CD07NfX;M6N,,.))(K@%cfNF#)::DL /. O
 DM4+?dKDND,@!%'  /. O..s$   4Q&	Q9Q9?4Q>&
Q6>
Rr   N)
rb   rc   rd   re   pytestmark	fail_slowr   r   rf   r   r#   r   rh   rh   @   sH    [[1' ': [[2O' O'r#   rh   c                       \ rS rSrSr\" SS9r\R                  " / SQ5      \l	        \
" 5       rSS/\l	        \" 5       \" 5       \" 5       \" 5       \" 5       \\/rS rS rS	 rS
rg)TestNewToOldSLSQP   rq   r   n_electrons)gEGg}_uG?go?ghSg	 )?g8M)տr   c           
      z   U R                    H  n[        R                  " 5          [        R                  " S[        5        [        UR                  UR                  U R                  UR                  UR                  S9nS S S 5        [        WR                  UR                  SS9  M     g ! , (       d  f       N2= f)Nr0   r2      )decimal)list_of_problemsr<   r=   r   r?   r   r    r@   r3   r4   constrr   r   x_opt)rC   probr   s      r   test_list_of_problems'TestNewToOldSLSQP.test_list_of_problems   s{    ))D((*%%h<!$((DGG)-)-.2kk; + &fhh

AF ***s   AB,,
B:	c           
      \   S n[        S SS/SS/5      nSn[        R                  " 5          [        R                  " SS[        5        [
        R                  " [        5         [        US	U R                  X2S
9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                 H    U S   S-
  S-  U S   S-
  S-  -   U S   S-
  S-  -   $ rl   r   r   s    r   r    :TestNewToOldSLSQP.test_warn_mixed_constraints.<locals>.fun   rn   r#   c                 4    U S   S-  U S   -
  U S   U S   -
  /$ r&   r   r   s    r   r'   ?TestNewToOldSLSQP.test_warn_mixed_constraints.<locals>.<lambda>   s%    adAg!nadQqTk-Jr#   rR   r:   r6   r   r   r   r0   r1   ro   r2   )
r   r<   r=   r>   r?   r   warnsr   r   r3   )rC   r    rD   rA   s       r   test_warn_mixed_constraints-TestNewToOldSLSQP.test_warn_mixed_constraints   s    	L"#J$'9sCj:0$$&##H.A;Oo.#y!%TM / '&.. '&s#   7B$B;B
B	B
B+c           
         S nSnU R                   S:X  a  SnOS n[        S S[        R                  5      n[	        XU R                   X4S9n[        UR                  S5        [        / S	QS[        R                  5      n[	        XU R                   X4S9n[        UR                  S5        / nUR                  [        S
 S[        R                  SS95        UR                  [        S S[        R                  [        5       S95        UR                  [        S S[        R                  SS95        UR                  [        S S[        R                  SS95        UR                  [        / S	QS[        R                  SS95        U H;  n[        R                  " [        5         [	        XU R                   X4S9  S S S 5        M=     g ! , (       d  f       MO  = f)Nc                 H    U S   S-
  S-  U S   S-
  S-  -   U S   S-
  S-  -   $ rl   r   r   s    r   r    8TestNewToOldSLSQP.test_warn_ignored_options.<locals>.fun   rn   r#   ro   rq   r   c                     U S   $ )Nr   r   r   s    r   r'   =TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>   s    QqTr#   r   r2   r
   )r
   r   r   c                     U S   S-  $ Nr   r   r   r   s    r   r'   r          !A$'r#   T)keep_feasiblec                     U S   S-  $ r   r   r   s    r   r'   r      r   r#   )hessc                     U S   S-  $ r   r   r   s    r   r'   r      r   r#   *   )finite_diff_jac_sparsityc                     U S   S-  $ r   r   r   s    r   r'   r      r   r#   )finite_diff_rel_step)r3   r   rT   r   r   r   r    r   r~   r	   r   r   r   )rC   r    r@   rA   rD   rE   r   s          r   test_warn_ignored_options+TestNewToOldSLSQP.test_warn_ignored_options   s~   	L;;'!4DD">1bff=st{{"6 	#	1bff5st{{"6 	#'(91bff6:< 	='(91bff-1V5 	6'(91bffACE 	F'(91bff=?A 	B$Y266379 	:Co. $DL /. ..s   &G		
G	r   N)rb   rc   rd   re   r3   r   elecrT   rU   r   r   brockr   r   r   r   r   r   r   r   r   rf   r   r#   r   r   r      sw    FAD A BDJEa&EK	&("&((*GM%Lr#   r   c                   h    \ rS rSrSr\" SS9\" SS9/r\R                  R                  S 5       r
Srg)	TestNewToOldCobylai  rr   r   r      c           
         U R                    H  n[        R                  " 5          [        R                  " S[        5        [        UR                  UR                  SUR                  UR                  S9n[        UR                  UR                  U R                  UR                  UR                  S9nS S S 5        [        WR                  WR                  SS9  M     g ! , (       d  f       N2= f)Nr0   r   r2   r   r8   )r   r<   r=   r   r?   r   r    r@   r4   r   r3   r   )rC   r   truthr   s       r   r   (TestNewToOldCobyla.test_list_of_problems  s     ))D((*%%h< 477(6(,-1[[: "$((DGG)-)-.2kk; + FJJ		= ***s   BC!!
C/	r   N)rb   rc   rd   re   r3   r   r   r   r   slowr   rf   r   r#   r   r   r     s?    F ++
 [[> >r#   r   )__doc__r<   numpyrT   numpy.testingr   r   r   scipy.optimizer   r   r   r   r	   test_minimize_constrainedr   r   r   r   r   r   r   r   rh   r   r   r   r#   r   <module>r      sg     , = =A A A
,3 ,3^o' o'dOL OLd> >r#   