
    Pi0                         d Z ddlZddlZddlmZmZ ddlZddlm	Z	m
Z
mZmZmZ ddlmZmZmZmZmZmZmZ  G d d          Z G d	 d
          Z G d d          Z G d d          ZdS )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                   ,    e Zd ZdZdZdZd Zd Zd ZdS )TestOldToNew)   r   )r   Nr   trust-constrc                 `   d }dd ddd ddd df}t          j                    5  t          j        ddt                     t	          || j        | j        | j        |	          }d d d            n# 1 swxY w Y   t          |j	        d
dgd           t          |j
        dd           d S )Nc                 <    | d         dz
  dz  | d         dz
  dz  z   S Nr   r
   r         @ xs    /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/optimize/tests/test_constraint_conversion.pyfunz6TestOldToNew.test_constraint_dictionary_1.<locals>.fun   &    aD1H?adSjQ%666    ineqc                 0    | d         d| d         z  z
  dz   S Nr   r   r
   r   r   s    r   <lambda>z;TestOldToNew.test_constraint_dictionary_1.<locals>.<lambda>       !A$QqT/A2E r!   typer   c                 2    | d          d| d         z  z
  dz   S )Nr   r   r
      r   r   s    r   r%   z;TestOldToNew.test_constraint_dictionary_1.<locals>.<lambda>       1Q4%!ad(2BQ2F r!   c                 2    | d          d| d         z  z   dz   S r$   r   r   s    r   r%   z;TestOldToNew.test_constraint_dictionary_1.<locals>.<lambda>   r+   r!   ignoredelta_grad == 0.0methodboundsconstraintsffffff?g333333?-C6?rtol皙?warningscatch_warningsfilterwarningsUserWarningr   x0r0   bndsr   r   r   selfr   consress       r   test_constraint_dictionary_1z)TestOldToNew.test_constraint_dictionary_1   s!   	7 	7 	7(E(EFF(F(FGG(F(FGGI $&& 	? 	?#H.A;OOO3"&)? ? ?C	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	Sz55554000000s   ?A33A7:A7c                 H   d }dd dd d}t          j                    5  t          j        ddt                     t	          || j        | j        | j        |	          }d d d            n# 1 swxY w Y   t          |j	        d
dg           t          |j
        d           d S )Nc                 <    | d         dz
  dz  | d         dz
  dz  z   S r   r   r   s    r   r   z6TestOldToNew.test_constraint_dictionary_2.<locals>.fun%   r    r!   eqc                 0    || d         z  || d         z  z
  S Nr   r
   r   r   p1p2s      r   r%   z;TestOldToNew.test_constraint_dictionary_2.<locals>.<lambda>(   s    AaD2ad7): r!   )r
   皙?c                 2    t          j        || gg          S )N)nparrayrI   s      r   r%   z;TestOldToNew.test_constraint_dictionary_2.<locals>.<lambda>*   s    B9+)>)> r!   )r(   r   argsjacr-   r.   r/   g>[p?gr7?g,,?r8   r?   s       r   test_constraint_dictionary_2z)TestOldToNew.test_constraint_dictionary_2$   s   	7 	7 	7:: >>@ @ $&& 	? 	?#H.A;OOO3"&)? ? ?C	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 		:6777!344444s   ?A++A/2A/c                 n   d }dd dt          d dd          g}t          j                    5  t          j        ddt                     t          || j        | j        | j        |	          }d d d            n# 1 swxY w Y   t          |j
        d
d
gd           t          |j        dd           d S )Nc                 <    | d         dz
  dz  | d         dz
  dz  z   S r   r   r   s    r   r   z6TestOldToNew.test_constraint_dictionary_3.<locals>.fun3   r    r!   r"   c                 0    | d         d| d         z  z
  dz   S r$   r   r   s    r   r%   z;TestOldToNew.test_constraint_dictionary_3.<locals>.<lambda>5   r&   r!   r'   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   z;TestOldToNew.test_constraint_dictionary_3.<locals>.<lambda>6   s    adQqTk r!   r   r-   r.   r/   g      ?r4   r5   g      ?)r   r9   r:   r;   r<   r   r=   r0   r>   r   r   r   r?   s       r   test_constraint_dictionary_3z)TestOldToNew.test_constraint_dictionary_32   s   	7 	7 	7(E(EFF#$9$91a@@B $&& 	? 	?#H.A;OOO3"&)? ? ?C	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	d|$7777T222222s   ?A::A>A>N)	__name__
__module____qualname__r=   r>   r0   rC   rR   rW   r   r!   r   r   r      sP        	B!DF1 1 15 5 53 3 3 3 3r!   r   c                       e Zd Zej                            d          d             Zej                            d          d             ZdS )TestNewToOldr   c           	         d }g d}g }g d}|                     dd dt          d dd	          g           |                     t          g d
dt          j                  t          d dd	          g           |                     t          d dt          j                  t          d dd	          g           |D ]}i }|D ]d}t          j                    5  t          j        dt                     t          ||||          }|j
        ||<   d d d            n# 1 swxY w Y   et          |d         |d         d           t          |d         |d         d           t          |d         |d         d           d S )Nc                 Z    | d         dz
  dz  | d         dz
  dz  z   | d         dz
  dz  z   S Nr   r
   r   r   g      ?r   r   s    r   r   z: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                 0    | d         d| d         z  z
  dz   S r$   r   r   s    r   r%   z?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>J   s    qta!A$h7J r!   r'   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   z?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>K       1Q4!A$; r!   r
   )r
   r   rj   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   z?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>N   rh   r!   c                 0    | d         d| d         z  z
  dz   S r$   r   r   s    r   r%   z?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>P   s    1Q4!ad(?Q3F r!   r   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   z?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>Q   rh   r!   r-   r0   r2   rc   r   r4   r5   rd   re   )appendr   r   rN   infr9   r:   simplefilterr<   r   r   r   )	r@   r   r=   conimethodsconfunsr0   results	            r    test_multiple_constraint_objectsz-TestNewToOld.test_multiple_constraint_objectsA   s3   	L 	L 	LYY??? 	f-J-JKK()>)>AFFH 	I 	I 	I 	%jjj"bf==()>)>AFFH 	I 	I 	I 	()F)F26RR()>)>AFFH 	I 	I 	I  
	' 
	'CD! . .,.. . .)(K@@@%c2f#NNNF#):DL. . . . . . . . . . . . . . . DM4+?dKKKKDND,@tLLLLDND,@!%' ' ' ' '
	' 
	's   8DD!$D!   c           	      ,
   d }g d}g }g }g d}|                     t          d dd                     |                     t          d dgdg                     |                     t          d dt          j        dg                               |                     t          d	 dd                     |                     t          d
 ddgddg                     |                     t          d ddgd                     |                     t          d dt          j         gdt          j        g                     |                     t          d dt          j                             |                     t          d dgt          j                             |                     t          d dt          j        t          j        g                               |                     t          d t          j         d                     |                     t          d t          j        t          j                   d                     |                     t          d dt          j                             |                     t          d dt          j         gddg                     |                     t          d ddgddg                     |                     t          d ddgddg                     |                     t          g ddd                     |                     t          g dg d gdd                     |                     t          g dg d gdt          j         gddg                     |D ]}i }|D ]d}t          j                    5  t          j        d!t                     t          ||||"          }	|	j        ||<   d d d            n# 1 swxY w Y   et          |d#         |d$         d%&           t          |d'         |d$         d%&           t          |d(         |d$         d%&           |D ]}i }d) |D             D ]d}t          j                    5  t          j        d!t                     t          ||||"          }	|	j        ||<   d d d            n# 1 swxY w Y   et          |d#         |d$         d%&           t          |d(         |d$         d%&           d S )*Nc                 Z    | d         dz
  dz  | d         dz
  dz  z   | d         dz
  dz  z   S r_   r   r   s    r   r   z<TestNewToOld.test_individual_constraint_objects.<locals>.funa   r`   r!   ra   rb   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>j       !A$1+ r!   r
   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>k   r|   r!   g\(\?c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>l   r|   r!   c                 F    | d         | d         z
  | d         | d         z
  gS Nr   r
   r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>q   #    qtad{AaD1Q4K8 r!   c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>t   r   r!   r3   c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>w   r   r!   c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>z   r   r!   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>~   r|   r!   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r|   r!   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r|   r!   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r|   r!   c                 $    | d         | d         z
  S rH   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r|   r!   c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r   r!   c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r   r!   c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r   r!   rL   r7   g333333?c                 F    | d         | d         z
  | d         | d         z
  gS r   r   r   s    r   r%   zATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>   r   r!   g333333gffffffgg)r
   ri   r   )r   r
   ri   r-   rn   rc   r   MbP?r5   rd   re   c                     g | ]
}|d k    |S )rd   r   ).0r0   s     r   
<listcomp>zCTestNewToOld.test_individual_constraint_objects.<locals>.<listcomp>   s"    NNNf6X;M;M6;M;M;Mr!   )ro   r   rN   rO   rp   r   r9   r:   rq   r<   r   r   r   )
r@   r   r=   conerr   rs   rt   ru   r0   rv   s
             r   "test_individual_constraint_objectsz/TestNewToOld.test_individual_constraint_objects_   sM   	L 	L 	LYY??? 	'(=(=q!DDEEE'(=(=vvNNOOO'(=(=(,bhv.>.>@ @ 	A 	A 	A 	'88$    	! 	! 	! 	'883K$. . 	/ 	/ 	/ 	'884L$( ( 	) 	) 	) 	'88BF7OdBF^5 5 	6 	6 	6
 	'(=(=tRVLLMMM'(=(=vrvNNOOO'(=(=(,bhx.@.@B B 	C 	C 	C'(=(=wKKLLL'(=(=(*"&(9(92? ? 	@ 	@ 	@ 	'88"&" " 	# 	# 	# 	'88BF7OdC[2 2 	3 	3 	3 	'88"ISz+ + 	, 	, 	, 	'884L4+/ / 	0 	0 	0
 	$ZZZt<<===$jjj***%=tTJJKKK$jjj***%=&*RVG_tSkC C 	D 	D 	D  
	' 
	'CD! . .,.. . .)(K@@@%c2f#NNNF#):DL. . . . . . . . . . . . . . . DM4+?dKKKKDND,@tLLLLDND,@!%' ' ' ' '  		' 		'CDNNNNN . .,.. . .)(K@@@%c2f#NNNF#):DL. . . . . . . . . . . . . . . DM4+?dKKKKDND,@!%' ' ' ' '		' 		's$   58O99O= O=8SSSN)rX   rY   rZ   pytestmark	fail_slowrw   r   r   r!   r   r\   r\   @   so        [1' ' ': [2O' O' O' O' O'r!   r\   c                       e Zd ZdZ ed          Z ej        g d          e_         e	            Z
ddge
_         e             e             e             e             e            ee
gZd Zd Zd Zd	S )
TestNewToOldSLSQPrc   r   n_electrons)gEGg}_uG?go?ghSg	 )?g8M)տr   c           	      6   | j         D ]}t          j                    5  t          j        dt                     t          |j        |j        | j        |j	        |j
                  }d d d            n# 1 swxY w Y   t          |j        |j        d           d S )Nr-   r/      )decimal)list_of_problemsr9   r:   rq   r<   r   r   r=   r0   r1   constrr   r   x_opt)r@   probrv   s      r   test_list_of_problemsz'TestNewToOldSLSQP.test_list_of_problems   s    ) 		G 		GD(** ; ;%h<<<!$(DG)-)-.2k; ; ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; &fh
AFFFFF		G 		Gs   AA11A5	8A5	c           	      ^   d }t          d ddgddg          }d}t          j                    5  t          j        ddt                     t          j        t                    5  t          |d	| j	        ||
           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                 Z    | d         dz
  dz  | d         dz
  dz  z   | d         dz
  dz  z   S r_   r   r   s    r   r   z:TestNewToOldSLSQP.test_warn_mixed_constraints.<locals>.fun   r`   r!   c                 L    | d         dz  | d         z
  | d         | d         z
  gS r$   r   r   s    r   r%   z?TestNewToOldSLSQP.test_warn_mixed_constraints.<locals>.<lambda>   s'    adAg!nadQqTk-J r!   rL   r7   r3   r   r   r   r-   r.   ra   r/   )
r   r9   r:   r;   r<   r   warnsr   r   r0   )r@   r   rA   r>   s       r   test_warn_mixed_constraintsz-TestNewToOldSLSQP.test_warn_mixed_constraints   sv   	L 	L 	L"#J#J$'9sCj: :0$&& 	M 	M#H.A;OOOo.. M M#y!%TtM M M MM M M M M M M M M M M M M M M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms5   5B"$B
>B"
B	B"B	B""B&)B&c           	          d }d}| j         dk    rd}nd }t          d dt          j                  }t	          ||| j         ||          }t          |j        d           t          g d	dt          j                  }t	          ||| j         ||          }t          |j        d           g }|                    t          d
 dt          j        d                     |                    t          d dt          j        t                                           |                    t          d dt          j        d                     |                    t          d dt          j        d                     |                    t          g d	dt          j        d                     |D ]L}t          j        t                    5  t	          ||| j         ||           d d d            n# 1 swxY w Y   Md S )Nc                 Z    | d         dz
  dz  | d         dz
  dz  z   | d         dz
  dz  z   S r_   r   r   s    r   r   z8TestNewToOldSLSQP.test_warn_ignored_options.<locals>.fun   r`   r!   ra   rc   r   c                     | d         S )Nr   r   r   s    r   r%   z=TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>   s
    QqT r!   r   r/   r
   )r
   r   r   c                     | d         dz  S Nr   r   r   r   s    r   r%   z=TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>       !A$' r!   T)keep_feasiblec                     | d         dz  S r   r   r   s    r   r%   z=TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>   r   r!   )hessc                     | d         dz  S r   r   r   s    r   r%   z=TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>   r   r!   *   )finite_diff_jac_sparsityc                     | d         dz  S r   r   r   s    r   r%   z=TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>   r   r!   )finite_diff_rel_step)r0   r   rN   rp   r   r   r   r   ro   r	   r   r   r   )r@   r   r=   r>   rA   rB   rt   s          r   test_warn_ignored_optionsz+TestNewToOldSLSQP.test_warn_ignored_options   s   	L 	L 	L;'!!4DDD">>1bf==sBt{"6 6 6 	###			1bf55sBt{"6 6 6 	###'(9(91bf6:< < < 	= 	= 	='(9(91bf-1VV5 5 5 	6 	6 	6'(9(91bfACE E E 	F 	F 	F'(9(91bf=?A A A 	B 	B 	B$YYY26379 9 9 	: 	: 	: 	L 	LCo.. L Lb $DdL L L LL L L L L L L L L L L L L L L	L 	Ls   G22G6	9G6	N)rX   rY   rZ   r0   r   elecrN   rO   r   r   brockr   r   r   r   r   r   r   r   r   r   r!   r   r   r      s        F4AD A A A B BDJEa&EK		&(("
&((((**G G GM M M%L %L %L %L %Lr!   r   c                   l    e Zd ZdZ ed           ed          gZej        j        d             Z	dS )TestNewToOldCobylard   r   r      c           	         | j         D ]}t          j                    5  t          j        dt                     t          |j        |j        d|j        |j	                  }t          |j        |j        | j
        |j        |j	                  }d d d            n# 1 swxY w Y   t          |j        |j        d           d S )Nr-   r   r/   r   r5   )r   r9   r:   rq   r<   r   r   r=   r1   r   r0   r   )r@   r   truthrv   s       r   r   z(TestNewToOldCobyla.test_list_of_problems  s    ) 	> 	>D(** 	; 	;%h<<< 47(6(,-1[: : : "$(DG)-)-.2k; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; FJ	=====	> 	>s   A0BB	 B	N)
rX   rY   rZ   r0   r   r   r   r   slowr   r   r!   r   r   r     sd        F ++++++
 [> > > > >r!   r   )__doc__r9   numpyrN   numpy.testingr   r   r   scipy.optimizer   r   r   r   r	   test_minimize_constrainedr   r   r   r   r   r   r   r   r\   r   r   r   r!   r   <module>r      s        , , , , , , , , = = = = = = = = = = = = = =A A A A A A A A A A A A A A A A A A
,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3^o' o' o' o' o' o' o' o'dOL OL OL OL OL OL OL OLd> > > > > > > > > >r!   