+
    ,i1                         R t ^ RIt^ RIHtHtHtHt ^ RIt^ RI	H
t
HtHtHtHt ^RIHtHtHtHtHtHtHt  ! R R4      t ! R R4      t ! R	 R
4      t ! R R4      tR# )z%
Unit test for constraint conversion
N)assert_array_almost_equalassert_allcloseassert_warnssuppress_warnings)NonlinearConstraintLinearConstraintOptimizeWarningminimizeBFGS)MaratosHyperbolicIneq
RosenbrockIneqRosenbrockEqIneqRosenbrockBoundedRosenbrockElecc                   >   a  ] tR t^t o RtRtRtR tR tR t	Rt
V tR# )	TestOldToNewNtrust-constrc           
     z   R  pRRRR /RRRR /RRRR /3p\        4       ;_uu_ 4       pVP                  \        R4       \        WP                  V P
                  V P                  VR7      pR	R	R	4       \        XP                  R
R.RR7       \        VP                  RRR7       R	#   + '       g   i     LD; i)c                 h    V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           #           @ xs   &Q/usr/lib/python3/dist-packages/scipy/optimize/tests/test_constraint_conversion.pyfun6TestOldToNew.test_constraint_dictionary_1.<locals>.fun   &    aD1H?adSjQ%666    typeineqr   c                 L    V ^ ,          ^V ^,          ,          ,
          ^,           # r   r   r   s   &r   <lambda>;TestOldToNew.test_constraint_dictionary_1.<locals>.<lambda>       !A$QqT/A2Er!   c                 N    V ^ ,          ) ^V ^,          ,          ,
          ^,           # r%   r   r   s   &r   r&   r'          1Q4%!ad(2BQ2Fr!   c                 N    V ^ ,          ) ^V ^,          ,          ,           ^,           # r%   r   r   s   &r   r&   r'      r*   r!   delta_grad == 0.0methodboundsconstraintsNffffff?g333333?-C6?rtol皙?
r   filterUserWarningr	   x0r.   bndsr   r   r   selfr   conssupress   &    r   test_constraint_dictionary_1)TestOldToNew.test_constraint_dictionary_1   s    	7(EF(FG(FGI   CJJ{$783"&))?C ! 	Sz540 ! s   AB**B:	c           
     b   R  pRRRR RRRR /p\        4       ;_uu_ 4       pVP                  \        R4       \        WP                  V P
                  V P                  VR	7      pR
R
R
4       \        XP                  RR.4       \        VP                  R4       R
#   + '       g   i     L@; i)c                 h    V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           # r   r   r   s   &r   r   6TestOldToNew.test_constraint_dictionary_2.<locals>.fun$   r    r!   r"   eqr   c                 H    W^ ,          ,          W ^,          ,          ,
          # r%   r   r   p1p2s   &&&r   r&   ;TestOldToNew.test_constraint_dictionary_2.<locals>.<lambda>'   s    aD2d7):r!   argsjacc                 4    \         P                  ! W) ..4      # )N)nparrayrG   s   &&&r   r&   rJ   )   s    B9+)>r!   r,   r-   Ng>[p?gr7?g,,?)   皙?r6   r;   s   &    r   test_constraint_dictionary_2)TestOldToNew.test_constraint_dictionary_2#   s    	7:>@   CJJ{$783"&))?C ! 		:67!34 ! s   ABB.	c           
     |   R  pRRRR /\        R ^ ^ 4      .p\        4       ;_uu_ 4       pVP                  \        R4       \	        WP
                  V P                  V P                  VR7      pRRR4       \        XP                  R	R	.R
R7       \        VP                  RR
R7       R#   + '       g   i     LD; i)c                 h    V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           # r   r   r   s   &r   r   6TestOldToNew.test_constraint_dictionary_3.<locals>.fun2   r    r!   r"   r#   r   c                 L    V ^ ,          ^V ^,          ,          ,
          ^,           # r%   r   r   s   &r   r&   ;TestOldToNew.test_constraint_dictionary_3.<locals>.<lambda>4   r(   r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   rX   5   s    adQqTkr!   r,   r-   Ng      ?r2   r3   g      ?)r   r   r7   r8   r	   r9   r.   r:   r   r   r   r;   s   &    r   test_constraint_dictionary_3)TestOldToNew.test_constraint_dictionary_31   s    	7(EF#$91a@B   CJJ{$783"&))?C ! 	d|$7T2 ! s   AB++B;	r   )   r   )r   Nr]   )__name__
__module____qualname____firstlineno__r9   r:   r.   r@   rR   rZ   __static_attributes____classdictcell____classdict__s   @r   r   r      s(     	B!DF153 3r!   r   c                      a  ] tR t^?t o ]P
                  P                  ^4      R 4       t]P
                  P                  ^4      R 4       tRt	V t
R# )TestNewToOldc                   R  p. ROp. p. ROpVP                  RRRR /\        R	 R^4      .4       VP                  \        . ROR\        P                  4      \        R
 R^4      .4       VP                  \        R ^ \        P                  4      \        R R^4      .4       V F  p/ pV FN  p\        4       ;_uu_ 4       p	V	P                  \        4       \        W#WR7      p
V
P                  Wx&   RRR4       KP  	  \        VR,          VR,          RR7       \        VR,          VR,          RR7       V^8X  g   K  \        VR,          VR,          RR7       K  	  R#   + '       g   i     K  ; i)c                     V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           V ^,          R,
          ^,          ,           # r   r   g      ?r   r   s   &r   r   :TestNewToOld.test_multiple_constraint_objects.<locals>.funB   8    aD1H?adSjQ%66!A$+!9KKKr!   slsqpcobylacobyqar   r"   r#   r   c                 L    V ^ ,          ^V ^,          ,          ,
          ^,           # r%   r   r   s   &r   r&   ?TestNewToOld.test_multiple_constraint_objects.<locals>.<lambda>I   s    qta!A$h7Jr!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   rq   J       1Q4!A$;r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   rq   M   rs   r!   c                 L    V ^ ,          ^V ^,          ,          ,
          ^,           # r%   r   r   s   &r   r&   rq   O   s    1Q4!ad(?Q3Fr!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   rq   P   rs   r!   r.   r0   Nr2   r3   r\   r   rP   rm   rn   ro   r   )rP   r{   r   )appendr   r   rN   infr   r7   r8   r	   r   r   )r<   num_parallel_threadsr   r9   conimethodsconfunsr.   r>   results   &&         r    test_multiple_constraint_objects-TestNewToOld.test_multiple_constraint_objects@   sS   	L? 	ffe-JK()>AFH 	I 	%j"bff=()>AFH 	I 	()F266R()>AFH 	I CD!&((CJJ{+%cfNF#)::DL )( "
 DM4+?dKDND,@tL#q(X^0D%)+  )((s   1E#	#E4c                	   R  p. ROp. p. p. ROpVP                  \        R ^^4      4       VP                  \        R R.R.4      4       VP                  \        R R\        P                  ! R.4      4      4       VP                  \        R	 RR4      4       VP                  \        R
 RR.RR.4      4       VP                  \        R RR.R4      4       VP                  \        R R\        P                  ) .R\        P                  .4      4       VP                  \        R R\        P                  4      4       VP                  \        R R.\        P                  4      4       VP                  \        R R\        P                  ! \        P                  .4      4      4       VP                  \        R \        P                  ) R 4      4       VP                  \        R \        P                  ! \        P                  ) 4      R 4      4       VP                  \        R R\        P                  4      4       VP                  \        R R\        P                  ) .RR.4      4       VP                  \        R RR.RR.4      4       VP                  \        R R!R".R#R$.4      4       VP                  \        . R%ORR4      4       VP                  \        . R%O. R&O.RR4      4       VP                  \        . R%O. R&O.R\        P                  ) .RR.4      4       V F  p/ pV FN  p	\        4       ;_uu_ 4       p
V
P                  \        4       \        W#WR7      pVP                  W&   RRR4       KP  	  \        VR,          VR,          RR7       \        VR,          VR,          RR7       V^8X  g   K  \        VR,          VR,          RR7       K  	  V F  p/ pV U	u. uF  qR8w  g   K  V	NK  	  up	 FN  p	\        4       ;_uu_ 4       p
V
P                  \        4       \        W#WR7      pVP                  W&   RRR4       KP  	  \        VR,          VR,          RR7       V^8X  g   K  \        VR,          VR,          RR7       K  	  R#   + '       g   i     EK  ; iu up	i   + '       g   i     K  ; i)'c                     V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           V ^,          R,
          ^,          ,           # rj   r   r   s   &r   r   <TestNewToOld.test_individual_constraint_objects.<locals>.funa   rl   r!   rm   rn   ro   r   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   ATestNewToOld.test_individual_constraint_objects.<locals>.<lambda>j       !A$1+r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r   k   r   r!   g\(\?c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r   l   r   r!   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r   q   !    qtad{AaD1Q4K8r!   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r   t   r   r!   r1   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r   w   r   r!   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r   z   r   r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r   ~   r   r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r      r   r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r      r   r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r      r   r!   c                 0    V ^ ,          V ^,          ,
          # r%   r   r   s   &r   r&   r      r   r!   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r      r   r!   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r      r   r!   c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r      r   r!   rQ   r5   g333333?c                 ^    V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   r      r   r!   rw   NMbP?r3   rx   ry   g333333gffffffgg)rP   rz   r   )r   rP   rz   )r|   r   rN   rO   r}   r   r   r7   r8   r	   r   r   )r<   r~   r   r9   coner   r   r   r   r.   r>   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!&((CJJ{+%cfNF#)::DL )( "
 DM4+?dKDND,@tL#q(X^0D%)+  CD07NfX;M66N&((CJJ{+%cfNF#)::DL )( O
 DM4+?dK#q(X^0D%)+  )(( O(((s$   1R$	5R9R9 1R>	$R6>Sr   N)r^   r_   r`   ra   pytestmark	fail_slowr   r   rb   rc   rd   s   @r   rg   rg   ?   sK     [[1+ +< [[2Q+ Q+r!   rg   c                   B  a  ] tR t^t o Rt]! ^R7      t]P                  ! . RO4      ]n	        ]
! 4       t^ ^ .]n	        ]! 4       ]! 4       ]! 4       ]! 4       ]! 4       ]].tR t]P(                  P*                  R 4       t]P(                  P*                  R 4       tRtV tR# )	TestNewToOldSLSQPrm   n_electronsc                z   V P                    F  p\        4       ;_uu_ 4       pVP                  \        4       \	        VP
                  VP                  V P                  VP                  VP                  R 7      pRRR4       \        XP                  VP                  ^R7       K  	  R#   + '       g   i     L8; i)r-   N)decimal)list_of_problemsr   r7   r8   r	   r   r9   r.   r/   constrr   r   x_opt)r<   probr>   r   s   &   r   test_list_of_problems'TestNewToOldSLSQP.test_list_of_problems   sv    ))D"$$

;'!$((DGG)-)-.2kk; % &fhh

AF *$$s   AB**B:c                   R  p\        R RR.RR.4      pRp\        4       ;_uu_ 4       pVP                  \        R4       \	        \
        \        VR	V P                  W2R7       RRR4       R#   + '       g   i     R# ; i)
c                     V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           V ^,          R,
          ^,          ,           # rj   r   r   s   &r   r   :TestNewToOldSLSQP.test_warn_mixed_constraints.<locals>.fun   rl   r!   c                 l    V ^ ,          ^,          V ^,          ,
          V ^,          V ^,          ,
          .# r%   r   r   s   &r   r&   ?TestNewToOldSLSQP.test_warn_mixed_constraints.<locals>.<lambda>   s%    adAg!nadQqTk-Jr!   rQ   r5   r1   Nr,   r-   r]   r]   r]   rx   )r   r   r7   r8   r   r   r	   r.   )r<   r   r=   r:   r>   s   &    r   test_warn_mixed_constraints-TestNewToOldSLSQP.test_warn_mixed_constraints   sj    	L"#J$'9sCj:0  CJJ{$78(C $DL !   s   :A..A?	c                   R  pRpV P                   R8X  d   RpMRp\        R ^\        P                  4      p\	        WV P                   W4R7      p\        VP                  ^4       \        . RO^\        P                  4      p\	        WV P                   W4R7      p\        VP                  ^4       . pVP                  \        R ^\        P                  RR7      4       VP                  \        R ^\        P                  \        4       R	7      4       VP                  \        R
 ^\        P                  ^*R7      4       VP                  \        R ^\        P                  ^*R7      4       VP                  \        . RO^\        P                  RR7      4       V F%  p\        \        \        WV P                   W4R7       K'  	  R# )c                     V ^ ,          ^,
          ^,          V ^,          R,
          ^,          ,           V ^,          R,
          ^,          ,           # rj   r   r   s   &r   r   8TestNewToOldSLSQP.test_warn_ignored_options.<locals>.fun   rl   r!   rm   Nc                     V ^ ,          # r%   r   r   s   &r   r&   =TestNewToOldSLSQP.test_warn_ignored_options.<locals>.<lambda>   s    QqTr!   r-   c                 "    V ^ ,          ^,          # r%   r   r   s   &r   r&   r          !A$'r!   T)keep_feasiblec                 "    V ^ ,          ^,          # r%   r   r   s   &r   r&   r      r   r!   )hessc                 "    V ^ ,          ^,          # r%   r   r   s   &r   r&   r      r   r!   )finite_diff_jac_sparsityc                 "    V ^ ,          ^,          # r%   r   r   s   &r   r&   r      r   r!   )finite_diff_rel_steprx   r   )rP   r   r   )r.   r   rN   r}   r	   r   r   r   r|   r
   r   r   )r<   r   r9   r:   r=   r?   r   s   &      r   test_warn_ignored_options+TestNewToOldSLSQP.test_warn_ignored_options   sg   	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(C $DL r!   r   N)gEGg}_uG?go?ghSg	 )?g8M)տ)r^   r_   r`   ra   r.   r   elecrN   rO   r   r   brockr   r   r   r   r   r   r   r   r   thread_unsafer   r   rb   rc   rd   s   @r   r   r      s     FAD A BDJEa&EK	&("&((*G [[
L 
L [[$L $Lr!   r   c                      a  ] tR tRt o Rt]! ^R7      ]! ^R7      .t]P                  P                  R 4       t
RtV tR# )TestNewToOldCobylai  rn   r   c                   V P                    F  p\        4       ;_uu_ 4       pVP                  \        4       \	        VP
                  VP                  R VP                  VP                  R7      p\	        VP
                  VP                  V P                  VP                  VP                  R7      pRRR4       \        XP
                  XP
                  RR7       K  	  R#   + '       g   i     L8; i)r   r-   Nr   r3   )r   r   r7   r8   r	   r   r9   r/   r   r.   r   )r<   r   r>   truthr   s   &    r   r   (TestNewToOldCobyla.test_list_of_problems  s     ))D"$$

;' 477(6(,-1[[: "$((DGG)-)-.2kk; % FJJ		= *$$s   BC""C2r   N)r^   r_   r`   ra   r.   r   r   r   r   slowr   rb   rc   rd   s   @r   r   r     sB     F ++
 [[> >r!   r   )__doc__numpyrN   numpy.testingr   r   r   r   r   scipy.optimizer   r   r   r	   r
   test_minimize_constrainedr   r   r   r   r   r   r   r   rg   r   r   r   r!   r   <module>r      sk    M M = =A A A
,3 ,3^r+ r+jOL OLd> >r!   