
    Bpjդ                        S SK r S SKrS SKrS SKrS SKJr  S SKJ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JrJrJr  S SKJr  S SKJr  S SKJr   " S	 S
5      rS r " S S\5      r\" SS/S S /S9r \" SS/S S /S9r!\" SS/S S /S9r" " S S\5      r#\#" S/S/S\RH                  " S/S/S/S/S/S/S/S/S/S//
5      \RH                  " / S Q5      S!9r%\#" S"/S/S/\RH                  " S//5      \RH                  " S/5      S!9r& " S# S$\5      r'\'" S%S&/S'S(/S)S*9r( " S+ S,\5      r)\)" S-/S.-  / S/QS0S*9r* " S1 S2\5      r+\+" S3S3/S4/S5S6/S79r, " S8 S9\5      r-S:r.\/" \0" S;/S:-  S</S:-  5      5      r1\-" \1S=/SS79r2 " S> S?\5      r3\3" S@/SA-  SB\Rh                  " SA5      SC-
  S79r5 " SD SE\5      r6\6" S-S-/SF/SGSG/S79r7 " SH SI\5      r8\8" S%SJ/SSS79r9\	Rt                  Rw                  SK5         S\SL j5       r< " SM SN5      r= " SO SP5      r> " SQ SR5      r? " SS ST5      r@ " SU SV5      rASW rB\	Rt                  R                  SX5      SY 5       rDSZ rES[ rFg)]    N)Pool)assert_allclose)raiseswarns)	shgoBoundsminimize_scalarminimizerosen	rosen_der
rosen_hessNonlinearConstraintOptimizeWarning)new_constraint_to_old)SHGO)MaratosTestArgsc                   "    \ rS rSr  SS jrSrg)StructTestFunction   Nc                 @    Xl         X l        X0l        X@l        XPl        g Nbounds
expected_xexpected_funexpected_xlexpected_funl)selfr   r   r   r   r   s         [/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/optimize/tests/test__shgo.py__init__StructTestFunction.__init__   s    $(&*    )r   r   r   r   r   )NNN)__name__
__module____qualname____firstlineno__r    __static_attributes__ r"   r   r   r      s    8<15+r"   r   c                     / nU bK  [        U [        [        -  5      (       d  U 4n O U  H  n UR                  SU S.5        M     [        U5      nU$ S nU$ )Nineqtypefun)
isinstancetuplelistappend)gconss     r   wrap_constraintsr4      se    D}!UT\**AAKK !# $  T{ K Kr"   c                   0    \ rS rSrS rS r\" \5      rSrg)StructTest1+   c                 $    US   S-  US   S-  -   $ Nr         r(   r   xs     r   fStructTest1.f,       tqy1Q419$$r"   c                 4    [         R                  " U SS9S-
  * $ )Nr   axisg      @npsumr=   s    r   r2   StructTest1.g/   s    "S())r"   r(   N	r#   r$   r%   r&   r>   r2   r4   r3   r'   r(   r"   r   r6   r6   +   s    %* ADr"   r6   )   )r   r   r   r;   NNc                   4    \ rS rSrSrS rS r\" \5      rSr	g)StructTest2=   zF
Scalar function with several minima to test all minimiser retrievals
c                 :    US-
  [         R                  " U5      -  $ )N   )rE   sinr<   s     r   r>   StructTest2.fB   s    B"&&)##r"   c                 2    S[         R                  " U SS9-
  $ )N:   r   rB   rD   rG   s    r   r2   StructTest2.gE   s    BFF11%%%r"   r(   N
r#   r$   r%   r&   __doc__r>   r2   r4   r3   r'   r(   r"   r   rO   rO   =   s    $& ADr"   rO   )r   <   g⡽4$?0_r<g GK@g
]<@gI{_H@gi<&,@g>E@gqŤCQ4@g8$B@go.n:@g^5	>@)
r[   gs8g^V&+6g+?-2g+!/gN|1(gc=C#g^\gNg自ݿr   )r   g      @c                   ^    \ rS rSrSrS rS rS rS r\	" \S\
R                  5      r\4rSrg	)
StructTest3j   ah  
Hock and Schittkowski 18 problem (HS18). Hoch and Schittkowski (1981)
http://www.ai7.uni-bayreuth.de/test_problem_coll.pdf
Minimize: f = 0.01 * (x_1)**2 + (x_2)**2

Subject to: x_1 * x_2 - 25.0 >= 0,
            (x_1)**2 + (x_2)**2 - 25.0 >= 0,
            2 <= x_1 <= 50,
            0 <= x_2 <= 50.

Approx. Answer:
    f([(250)**0.5 , (2.5)**0.5]) = 5.0


c                 *    SUS   S-  -  US   S-  -   $ )Ng{Gz?r   r:   r;   r(   r<   s     r   r>   StructTest3.f|   s"    qtk!QqTaK//r"   c                     U S   U S   -  S-
  $ )Nr   r;         9@r(   rG   s    r   g1StructTest3.g1   s    tad{T!!r"   c                 *    U S   S-  U S   S-  -   S-
  $ )Nr   r:   r;   rb   r(   rG   s    r   g2StructTest3.g2   s"    tqy1Q419$t++r"   c                 F    U S   U S   -  S-
  U S   S-  U S   S-  -   S-
  4$ )Nr   r;   rb   r:   r(   rG   s    r   r2   StructTest3.g   s8    tad{T!1Q419qtqy#84#???r"   r   r(   N)r#   r$   r%   r&   rY   r>   rc   rf   r2   r   rE   inf_StructTest3__nlcr3   r'   r(   r"   r   r]   r]   j   s7    "0",@  1bff-E8Dr"   r]   )r:   2   )r   rl   g'In/@gS[:XL?      @)r   r   r   c                   R    \ rS rSrSrS rS rS rS rS r	\\\\	4r
\" \
5      rSrg	)
StructTest4   z
Hock and Schittkowski 11 problem (HS11). Hoch and Schittkowski (1981)

NOTE: Did not find in original reference to HS collection, refer to
      Henderson (2015) problem 7 instead. 02.03.2016
c                     US   S-
  S-  SUS   S-
  S-  -  -   US   S-  -   SUS   S	-
  S-  -  -   SUS   S
-  -  -   SUS   S-  -  -   US
   S-  -   SUS   -  US
   -  -
  SUS   -  -
  SUS
   -  -
  $ )Nr   
   r:      r;               rK         r(   r<   s     r   r>   StructTest4.f   s    1q 1!r	a'7#77!A$!)CqtbyQ&&')+adai8:;adai-HJKKK ad(QqT/" %'1I. 12AaD9 	r"   c                 n    SU S   S-  -  SU S   S-  -  -   U S   -   SU S   S-  -  -   SU S   -  -   S-
  * $ )Nr:   r   rv   r;   ru   rs      r(   rG   s    r   rc   StructTest4.g1   s^    QqTQYQqTQY.15AaDAIEqt8!" # 	#r"   c                 \    SU S   -  SU S   -  -   SU S   S-  -  -   U S   -   U S   -
  S-
  * $ )	Nrx   r   rv   r;   rr   r:   ru   g     q@r(   rG   s    r   rf   StructTest4.g2   sH    QqTA!H$rAaDAI~5!<qtCeKLLr"   c                 V    SU S   -  U S   S-  -   SU S   S-  -  -   SU S   -  -
  S-
  * $ )	N   r   r;   r:   rK   rs   ry      r(   rG   s    r   g3StructTest4.g3   sC    adQqTQY&QqTQY6QqTACGHHr"   c                     SU S   S-  -  U S   S-  -   SU S   -  U S   -  -
  SU S   S-  -  -   SU S   -  -   SU S   -  -
  * $ )	Nru   r   r:   r;   rv   rs   rw   rK   r(   rG   s    r   g4StructTest4.g4   sn    QqTQY1*Q1X!_<q1Q419}Lqt8 1Q4i( ) 	)r"   r(   Nr#   r$   r%   r&   rY   r>   rc   rf   r   r   r2   r4   r3   r'   r(   r"   r   ro   ro      s<    #MI) 
RRAADr"   ro   )irr   rx   )gܤ@g$H8?g	޿g0ev@gn8)gk_@/?g0g+?gP{[
E@c                   .    \ rS rSrS rSr\" \5      rSrg)StructTest5   c                 &   US   S-   * [         R                  " [         R                  " [        US   S-  US   S-   -   5      5      5      -  US   [         R                  " [         R                  " [        US   US   S-   -
  5      5      5      -  -
  $ Nr;   g     G@r          @rE   rS   sqrtabsr<   s     r   r>   StructTest5.f   s~    dTkN266"''#ad3h!A$+.F*G"HIId266"''#adadTk&:";<==>	
r"   Nr(   rI   r(   r"   r   r   r      s    
 	AADr"   r   )i i   g g      @gyCy@)r   r   r   c                   2    \ rS rSrSrS rSr\" \5      rSr	g)StructTestLJ   zN
LennardJones objective function. Used to test symmetry constraints
settings.
c                 x   [        SU 35        US   U l        [        U R                  S-  5      nSn[        US-
  5       Hu  n[        US-   U5       H_  nSU-  nSU-  nX   X   -
  n	XS-      XS-      -
  n
XS-      XS-      -
  nX-  X-  -   X-  -   nX-  U-  nUS:  d  MQ  USU-  S-
  U-  -  nMa     Mw     U$ )	Nzx = r   rv           r;   r:         ?r   )printNintrange)r   r=   argsksijabxdydzdeduds                 r   r>   StructTestLJ.f   s    QCja
Oq1uA1q5!_EETAD[1uXa%(1uXa%(Wrw&0Wr\8#(S.B..A %  r"   N)r   rX   r(   r"   r   r   r      s    
( 	AADr"   r   rK   g            @      c                   .    \ rS rSrS rSr\" \5      rSrg)StructTestS   c                 `    US   S-
  S-  US   S-
  S-  -   US   S-
  S-  -   US   S-
  S-  -   $ )Nr         ?r:   r;   rv   r(   r<   s     r   r>   StructTestS.f   sS    1!QqTCZA$55Q4#:!#$'(tcza&78 	9r"   Nr(   rI   r(   r"   r   r   r      s    9 	AADr"   r   )r   r   ru   r   r   c                   .    \ rS rSrS rSr\" \5      rSrg)StructTestTablei
  c                 *    US   S:X  a
  US   S:X  a  gg)Nr         @r;   rl   d   r(   r<   s     r   r>   StructTestTable.f  s    Q43;1Q43;r"   Nr(   rI   r(   r"   r   r   r   
  s     	AADr"   r   rl   r   c                   R    \ rS rSrSrS rS rS rS rS r	\\\\	4r
\" \
5      rSrg	)
StructTestInfeasiblei  z(
Test function with no feasible domain.
c                 $    US   S-  US   S-  -   $ r9   r(   )r   r=   r   s      r   r>   StructTestInfeasible.f  r@   r"   c                     U S   U S   -   S-
  $ Nr   r;   r(   rG   s    r   rc   StructTestInfeasible.g1"  s    tad{Qr"   c                      U S   U S   -   S-
  * $ r   r(   rG   s    r   rf   StructTestInfeasible.g2%  s    1!q!!r"   c                      U S   * U S   -   S-
  $ r   r(   rG   s    r   r   StructTestInfeasible.g3(  s    !uqt|ar"   c                 "    U S   * U S   -   S-
  * $ r   r(   rG   s    r   r   StructTestInfeasible.g4+  s    A$1!""r"   r(   Nr   r(   r"   r   r   r     s:    %" # 
RRAADr"   r   )rJ   r;   
Not a testc
                    [        U R                  U R                  XR                  X4UXgXS9n
[	        SU
 35        [
        R                  " SU
 35        U R                  b4  [        R                  R                  U
R                  U R                  UUS9  U R                  b3  [        R                  R                  U
R                  U R                  US9  U R                  b3  [        R                  R                  U
R                  U R                  US9  U R                   b3  [        R                  R                  U
R"                  U R                   US9  g )N)	r   constraintsniterscallbackminimizer_kwargsoptionssampling_methodworkerszres = rtolatolr   )r   r>   r   r3   r   logginginfor   rE   testingr   r=   r   r-   r   xlr   funl)testr   	test_atolr   r   r   r   r   r   r   ress              r   run_testr   8  s+    tvvt{{99( 0.AC
 
F3%.LL6# "


""355$//(1(1 	# 	3
 $


""377#'#4#4(1 	# 	3 #


""366#'#3#3(1 	# 	3 %


""388#'#5#5(1 	# 	3 r"   c                       \ rS rSrSrS rS rS rS rS r	S r
\R                  R                  S	 5       rS
 rS rSrg)TestShgoSobolTestFunctionsi[  z0
Global optimisation tests with Sobol sampling:
c                 "    [        [        5        g)NMultivariate test function 1:
x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]Nr   test1_1r   s    r   test_f1_1_sobol*TestShgoSobolTestFunctions.test_f1_1_sobola       	r"   c                 "    [        [        5        g)LMultivariate test function 1:
x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]Nr   test1_2r   s    r   test_f1_2_sobol*TestShgoSobolTestFunctions.test_f1_2_sobolf  r   r"   c                 (    SS0n[        [        US9  g)zWMultivariate test function 1:
x[0]**2 + x[1]**2 with bounds=[(None, None),(None, None)]dispT)r   Nr   test1_3r   r   s     r   test_f1_3_sobol*TestShgoSobolTestFunctions.test_f1_3_sobolk  s     4.'*r"   c                 "    [        [        5        g)JUnivariate test function on
f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]Nr   test2_1r   s    r   test_f2_1_sobol*TestShgoSobolTestFunctions.test_f2_1_sobolq  r   r"   c                 "    [        [        5        g)FUnivariate test function on
f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]Nr   test2_2r   s    r   test_f2_2_sobol*TestShgoSobolTestFunctions.test_f2_2_sobolv  r   r"   c                 "    [        [        5        g)%NLP: Hock and Schittkowski problem 18Nr   test3_1r   s    r   test_f3_sobol(TestShgoSobolTestFunctions.test_f3_sobol{  s
    r"   c                 *    SS0n[        [        SUS9  g)?NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)infty_constraintsFi  r   r   Nr   test4_1r   s     r   test_f4_sobol(TestShgoSobolTestFunctions.test_f4_sobol  s     '.GW5r"   c                      [        [        SS9  g)NLP: Eggholder, multimodalrZ   )r   Nr   test5_1r   s    r   test_f5_1_sobol*TestShgoSobolTestFunctions.test_f5_1_sobol  s     	Br"   c                 "    [        [        SSS9  g)r  rZ   rs   )r   r   Nr  r   s    r   test_f5_2_sobol*TestShgoSobolTestFunctions.test_f5_2_sobol  s     	Ba(r"   r(   N)r#   r$   r%   r&   rY   r   r   r   r   r   r  pytestmarkslowr  r  r  r'   r(   r"   r   r   r   [  sM    


+

 [[6 6 
)r"   r   c                   L   \ rS rSrSrS rS rS rS rS r	S r
\R                  R                  S	 5       rS
 rS rS r\R                  R%                  S5      S 5       r\R                  R)                  S5      S 5       r\R                  R)                  S5      S 5       rSrg)TestShgoSimplicialTestFunctionsi  z5
Global optimisation tests with Simplicial sampling:
c                 "    [        [        SSS9  g)r   r;   
simplicialr   r   Nr   r   s    r   test_f1_1_simplicial4TestShgoSimplicialTestFunctions.test_f1_1_simplicial       	A|<r"   c                 "    [        [        SSS9  g)r   r;   r  r  Nr   r   s    r   test_f1_2_simplicial4TestShgoSimplicialTestFunctions.test_f1_2_simplicial  r   r"   c                 "    [        [        SSS9  g)zWMultivariate test function 1: x[0]**2 + x[1]**2
with bounds=[(None, None),(None, None)]rs   r  r  Nr   r   s    r   test_f1_3_simplicial4TestShgoSimplicialTestFunctions.test_f1_3_simplicial  r   r"   c                 .    SS0n[        [        SSUSS9  g)r   minimize_every_iterF   rx   r  r   r   r   r   Nr   r   s     r   test_f2_1_simplicial4TestShgoSimplicialTestFunctions.test_f2_1_simplicial  s!     )%0Cq'!-	/r"   c                 "    [        [        SSS9  g)r   r;   r  r  Nr   r   s    r   test_f2_2_simplicial4TestShgoSimplicialTestFunctions.test_f2_2_simplicial  r   r"   c                 "    [        [        SSS9  g)r   r;   r  r  Nr  r   s    r   test_f3_simplicial2TestShgoSimplicialTestFunctions.test_f3_simplicial  s    A|<r"   c                 "    [        [        SSS9  g)r  r;   r  r  Nr	  r   s    r   test_f4_simplicial2TestShgoSimplicialTestFunctions.test_f4_simplicial  r   r"   c           	      6    SSS.nSn[        [        USUSSS9  g)	z&LJ: Symmetry-constrained test functionTsymmetryr   rK   ,  r;   r  r   r   r   r   r   Nr   testLJr   r   r   s      r   test_lj_symmetry_old4TestShgoSimplicialTestFunctions.test_lj_symmetry_old  s*    #!dc !-	/r"   c           	      >    S/S-  SS.nSn[        [        USUSSS	9  g
)z&LJ: Symmetry constrained test functionr   rK   Tr7  r9  r:  r;   r  r;  Nr<  r>  s      r   test_f5_1_lj_symmetry5TestShgoSimplicialTestFunctions.test_f5_1_lj_symmetry  s0     !uqy!dc !-	/r"   c                 4    SS/SS.n[        [        SUSSS9  g)	z"Symmetry constrained test functionr   Tr7  r)  r;   r  r   r   r   r   Nr   r   s     r   test_f5_2_cons_symmetry7TestShgoSimplicialTestFunctions.test_f5_2_cons_symmetry  s)     !1v! 	C !-	/r"   rr   c                 4    / SQSS.n[        [        SUSSS9  g)	z(Asymmetrically constrained test function)r   r   r   rv   Tr7  i'  r;   r  rE  N)r   test_sr   s     r   test_f5_3_cons_symmetry7TestShgoSimplicialTestFunctions.test_f5_3_cons_symmetry  s(      ,! 	5 !-	/r"   r   c                    ^ SmSU4S jS.n[        [        R                  SS/-  US9nUR                  (       d   e[	        UR
                  SS	S
9  [	        UR                  S5        g)zCReturn a minimum on a perfectly symmetric problem, based on
gh10429r   eqc                 6   > [         R                  " U 5      T-
  $ r   )rE   mean)r=   avgs    r   <lambda>FTestShgoSimplicialTestFunctions.test_f0_min_variance.<locals>.<lambda>  s    rwwqzC/?r"   r+   rK   rL   r   r   r   V瞯<r   N)r   rE   varsuccessr   r-   r=   )r   r3   r   rP  s      @r   test_f0_min_variance4TestShgoSimplicialTestFunctions.test_f0_min_variance  sY     %?@ 266!vh,DA{{{/s#r"   c                     S nS/n[        XS9n[        XS   S9nUR                  (       d   e[        UR                  UR                  5        [        UR
                  UR
                  SS9  g)zFReturn a minimum on a perfectly symmetric 1D problem, based on
gh10538c                     X S-
  -  U S-
  -  $ )Nr   r   r(   rG   s    r   r-   DTestShgoSimplicialTestFunctions.test_f0_min_variance_1D.<locals>.fun  s    C=AG,,r"   rL   )r   r   ư>)r   N)r   r	   rV  r   r-   r=   )r   r-   r   r   refs        r   test_f0_min_variance_1D7TestShgoSimplicialTestFunctions.test_f0_min_variance_1D  sZ    
	- 3&c)4{{{)suu40r"   r(   N)r#   r$   r%   r&   rY   r  r"  r%  r+  r.  r1  r  r  r  r4  r?  rB  rF  	fail_slowrJ  skiprW  r^  r'   r(   r"   r   r  r    s    =
=
=
/=
= [[= =/// [[2/ / [[l#
$ $
$ [[l#1 $1r"   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  S
 5       r\R                  R                  S 5       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\R                  R;                  SS9S 5       rS rS r S r!S r"S r#S  r$\R                  RK                  S!5      S" 5       r&S# r'S$ r(\R                  RS                  S%/ S&Q5      S' 5       r*S( r+S) r,S*r-g+),TestShgoArgumentsi  c                 $    [        [        SSSS9  g)z>Iterative simplicial sampling on TestFunction 1 (multivariate)Nr:   r  r   r   r   r   r   s    r   test_1_1_simpl_iter%TestShgoArguments.test_1_1_simpl_iter  s    D<Hr"   c                 .    SS0n[        [        SSUSS9  g)z3Iterative simplicial on TestFunction 2 (univariate)r(  FN	   r  r*  r   r   s     r   test_1_2_simpl_iter%TestShgoArguments.test_1_2_simpl_iter  s    (%0D7!-	/r"   c                 $    [        [        SSSS9  g)z9Iterative Sobol sampling on TestFunction 1 (multivariate)Nr;   sobolre  r   r   s    r   test_2_1_sobol_iter%TestShgoArguments.test_2_1_sobol_iter  s    D7Cr"   c           	      R   [        [        R                  [        R                  [        R                  SSSS9n[
        R                  R                  UR                  [        R                  SSS9  [
        R                  R                  UR                  [        R                  SS9  g)z7Iterative Sobol sampling on TestFunction 2 (univariate)Nr;   rm  )r   r   r   r   h㈵>r   r   )r   r   r>   r   r3   rE   r   r   r=   r   r-   r   r   r   s     r   test_2_2_sobol_iter%TestShgoArguments.test_2_2_sobol_iter  so    799gnn',,G= 	

""355'*<*<4d"S


""377G,@,@t"Lr"   c           
          S n[         [        4 HK  n[        UR                  UR                  SSUSS0S9  [        UR                  UR                  SSUSS0S9  MM     g)	zKIterative sampling on TestFunction 1 and 2  (multi and univariate)
        c                     [        S5        g Nz Local minimization callback testr   rG   s    r   callback_funcATestShgoArguments.test_3_1_disp_simplicial.<locals>.callback_func      45r"   r;   r  r   Tr   r   r   r   r   r   r   r   Nr   r   r   r>   r   r   ry  r   s      r   test_3_1_disp_simplicial*TestShgoArguments.test_3_1_disp_simplicial  s_    	6 g&DA!-'&$A <'&$A	 'r"   c           
          S n[         [        4 HK  n[        UR                  UR                  SSUSS0S9  [        UR                  UR                  SSUSS0S9  MM     g	)
zAIterative sampling on TestFunction 1 and 2 (multi and univariate)c                     [        S5        g rw  rx  rG   s    r   ry  <TestShgoArguments.test_3_2_disp_sobol.<locals>.callback_func*  r{  r"   r;   rm  r   Tr|  r  r}  Nr~  r  s      r   test_3_2_disp_sobol%TestShgoArguments.test_3_2_disp_sobol'  s^    	6 g&DAw'&$A <'&$A	 'r"   c                     [        S S/SS9n[        S S/S9n[        UR                  UR                  5        [        UR                  UR                  5        g)zEUsing `args` used to cause `shgo` to fail; see #14589, #15986,
#16506c                     X-  U-   $ r   r(   )r=   yzs      r   rQ  5TestShgoArguments.test_args_gh14589.<locals>.<lambda>7  s
    	r"   )r   rv   )r;   r:   )funcr   r   c                     SU -  S-   $ )Nr:   r;   r(   rG   s    r   rQ  r  9  s    !a%!)r"   )r  r   N)r   r   r-   r=   )r   r   r]  s      r   test_args_gh14589#TestShgoArguments.test_args_gh145894  sJ     16( +VH=)suu%r"   c                    [        SS5      n[        SS/SS/5      Ul        [        UR                  SS/UR
                  UR                  SSUR                  S9n[        UR                  UR                  S	S
9  [        SS5      n[        SS/SS/5      Ul        [        R                  " 5          [        R                  " S[        [        45        [        UR                  UR                  SSUR
                  UR                  UR                  SS.UR
                  SS9n[        UR                  UR                  S	S
9  [        UR                  UR                  SSUR
                  UR                  UR                  UR                   S.UR
                  SS9n[        UR                  UR                  S	S
9  SSS5        g! , (       d  f       g= f)z7
Checks that using `args` for func, jac and hess works
r      rs   r   trust-constr)r   r  )r   r   methodr   jacr\  r   g      $g      $@ignore)r  r   r   r  r   rm  )r  r   r   r   r   r   )r  r   r   r  hessN)r   r   r   r
   r-   constrgradr   r=   x_optwarningscatch_warningssimplefilterr   RuntimeWarningr   r  )r   objres2r   s       r   test_args_gh23517#TestShgoArguments.test_args_gh23517=  s    c3'RHq!f-
GG#J

::!
 			5c3'T4L3*5
$$& !! .1 WWzz,#&::!jj88&"  JJ 'C CEE39948WWzz,#&::!jj88HH"  JJ 'C CEE39948K '&&s   0D
G
Gc                 N    [         R                  SSS.n[        [         SSUSS9  g)z,Test known function minima stopping criteriar\  T)f_minf_tolr(  Nrq  r  r   r   r   r   r
  r   r   r   s     r   test_4_1_known_f_min&TestShgoArguments.test_4_1_known_f_minw  s/     $00 *.0 	DD'!-	/r"   c                 P    [         R                  SSSS.n[        [         SSUSS9  g)	z+Test Global mode limiting local evaluationsr\  Tr;   )r  r  r(  
local_iterNrq  r  r  r  r   s     r   test_4_2_known_f_min&TestShgoArguments.test_4_2_known_f_min  s2     ))#' 	DD'!-	/r"   c           
         [         R                  SSSSS.n[        [         R                  [         R                  [         R
                  SSUSS9n[        R                  R                  UR                  [         R                  S	S	S
9  g)z8Test Global mode limiting local evaluations for 1D funcsr\  Tr;   Fr  r  r(  r  r  Nrm  r   r   r   r   r   rq  r   )r   r   r   r>   r   r3   rE   r   r   r=   r   r   r   r   s      r   test_4_4_known_f_min&TestShgoArguments.test_4_4_known_f_min  so     ))#'!&( 799gnn',,w#*, 	

""355'*<*<4d"Sr"   c                     [        [        R                  [        R                  [        R                  S9n[
        R                  R                  UR                  [        R                  SSS9  g)z;Test Default simplicial sampling settings on TestFunction 1r   rq  r   N
r   r   r>   r   r3   rE   r   r   r=   r   rr  s     r   test_5_1_simplicial_argless-TestShgoArguments.test_5_1_simplicial_argless  sA    799gnn',,G


""355'*<*<4d"Sr"   c                     [        [        R                  [        R                  [        R                  SS9n[
        R                  R                  UR                  [        R                  SSS9  g)z6Test Default sobol sampling settings on TestFunction 1rm  r   r   rq  r   Nr  rr  s     r   test_5_2_sobol_argless(TestShgoArguments.test_5_2_sobol_argless  sF    799gnn',,#*,


""355'*<*<4d"Sr"   c                 X   SS0n[        [        R                  [        R                  [        R                  USS9n[
        R                  R                  UR                  [        R                  SSS9  [
        R                  R                  UR                  [        R                  SS9  g)	:Test that maximum iteration option works on TestFunction 3max_iterr:   r  r   r   r   rq  r   r   Nr   r  r>   r   r3   rE   r   r   r=   r   r-   r   r  s      r   test_6_1_simplicial_max_iter.TestShgoArguments.test_6_1_simplicial_max_iter  u    q/799gnn',,"LB


""355'*<*<4d"S


""377G,@,@t"Lr"   c                 X   SS0n[        [        R                  [        R                  [        R                  USS9n[
        R                  R                  UR                  [        R                  SSS9  [
        R                  R                  UR                  [        R                  SS9  g)	r  min_iterr:   r  r  rq  r   r   Nr  r  s      r   test_6_2_simplicial_min_iter.TestShgoArguments.test_6_2_simplicial_min_iter  r  r"   c           	      ^    S H'  nU[         R                  S.n[        [         SSUSS9  M)     g)z@Test the minimizer_kwargs arguments for solvers with constraints)COBYLACOBYQASLSQP)r  r   r   MbP?rm  r   r   r   r   N)r  r3   r   )r   solverr   s      r   test_7_1_minkwargs$TestShgoArguments.test_7_1_minkwargs  s6     4F +1/6|| =Wt&6%,. 4r"   c                     SS0nSS0n[        [        R                  [        R                  [        R                  S   XS9  g)z'Test the minimizer_kwargs default initsftolrq  r   Tr   )r   r   r   Nr   r  r>   r   r3   )r   r   r   s      r   test_7_2_minkwargs$TestShgoArguments.test_7_2_minkwargs  s7    "D>4.WYYGLLO.	Ar"   c           	          S HO  nS nS nUUUS.n[         R                  " SU 35        [         R                  " S5        [        [        SSUS	S
9  MQ     g)z?Test minimizer_kwargs arguments for solvers without constraints)zNelder-MeadPowellCGBFGS	Newton-CGzL-BFGS-BTNCdoglegz	trust-ncgztrust-exactztrust-krylovc                 ^    [         R                  " SU S   -  SU S   -  /5      R                  $ )Nr:   r   r;   )rE   arrayTrG   s    r   r  1TestShgoArguments.test_7_3_minkwargs.<locals>.jac  s,    xxQqT1qt8 45777r"   c                 :    [         R                  " SS/SS//5      $ Nr:   r   )rE   r  rG   s    r   r  2TestShgoArguments.test_7_3_minkwargs.<locals>.hess  s    xx!Q!Q 011r"   )r  r  r  z	Solver = zd====================================================================================================r   r  rm  r  N)r   r   r   r   )r   r  r  r  r   s        r   test_7_3_minkwargs$TestShgoArguments.test_7_3_minkwargs  s`    'F82 +1'*(, . LL9VH-.LL#Wt&6%,.'r"   c                 0    SSS.n[        [        S S USS9  g )Nr;   T)minhgrdr(  r  r*  r   r   s     r   test_8_homology_group_diff,TestShgoArguments.test_8_homology_group_diff  s$    *.0 	Dg!-	/r"   c                 t    [        [        R                  [        R                  [        R                  S   S9  g)'Test single function constraint passingr   r  Nr  r   s    r   test_9_cons_gTestShgoArguments.test_9_cons_g  s    WYYGLLODr"   c                 j    SS0nS n[        U[        R                  SUS9nUR                  S:X  d   eg)r  maxtimerT  c                 0    [         R                  " S5        g)Ng+=r   )timesleeprG   s    r   r>   0TestShgoArguments.test_10_finite_time.<locals>.f  s    JJur"   rs   )r   r   r;   N)r   r   r   nit)r   r   r>   r   s       r   test_10_finite_time%TestShgoArguments.test_10_finite_time  s7    e$	 1gnnAw?ww!||r"   c           	         SSS.n[        [        R                  [        R                  SSUSS9n[        R
                  R                  SUR                  S   5        [        R
                  R                  SUR                  S	   5        g)
*Test to cover the case where f_lowest == 0r   T)r  r   rr   Nrm  r*  r   r;   )r   r   r>   r   rE   r   assert_equalr=   r  s      r   test_11_f_min_0!TestShgoArguments.test_11_f_min_0  sf    !799gnn$"G=


3558,


3558,r"   z no way of currently testing this)reasonc           	          SSS.n[        [        R                  [        R                  SSUSS9n[        R
                  R                  SUR                  5        g)r  rT  r   )r  r  r;   Nrm  r*  )r   r   r>   r   rE   r   r  r-   r  s      r   test_12_sobol_inf_cons(TestShgoArguments.test_12_sobol_inf_cons  sH     $!799gnn"G=


SWW-r"   c                 N    S nS/S-  n[        XSS9nUR                  SS5        g)	z-Test init of high-dimensional sobol sequencesc                     gNr   r(   rG   s    r   r>   /TestShgoArguments.test_13_high_sobol.<locals>.f      r"   rM   )   rm  r   r:   rl   N)r   sampling_function)r   r>   r   SHGOcs       r   test_13_high_sobol$TestShgoArguments.test_13_high_sobol  s2    	 !B&Q82&r"   c                 *    SS0n[        [        SUS9  g)z6Test limited local iterations for a pseudo-global moder  ru   rZ   r  Nr  r   s     r   test_14_local_iter$TestShgoArguments.test_14_local_iter  s    #B0r"   c                 .    SS0n[        [        SSUSS9  g)z9Test minimize every iter options and cover function cacher(  Tr;   rx   rm  r*  Nr   r   s     r   test_15_min_every_iter(TestShgoArguments.test_15_min_every_iter  s    ($/AQ!(	*r"   c                 2    SS0nSS0n[        [        SX#S9  g)z:Test disp=True with minimizers that do not support bounds r   Tr  znelder-meadr  )r   r   r   Nr   )r   capsysr   r   s       r   test_16_disp_bounds_minimizer/TestShgoArguments.test_16_disp_bounds_minimizer#  s&    4.$m4, 	Er"   c                 (    S n[        [        SUS9  g)=Test the functionality to add custom sampling methods to shgoc                 >    [         R                  R                  X4S9$ )N)size)rE   randomuniform)r   ds     r   sample9TestShgoArguments.test_17_custom_sampling.<locals>.sample-  s    99$$1&$11r"   rR   r  Nr   )r   r  s     r   test_17_custom_sampling)TestShgoArguments.test_17_custom_sampling*  s    	2 	B7r"   c                    S n/ SQn/ SQn[        [        X#5      5      n[        X#5      n[        X5      n[        X5      nUR                  UR                  :X  d   eUR
                  UR
                  :X  d   eUR                  UR                  :X  d   e[        R                  " / SQ5      n[        R                  R                  UR                  U5        [        R                  R                  UR                  UR                  5        g )Nc                 J    [         R                  " U 5      R                  5       $ r   )rE   squarerF   rG   s    r   r>   1TestShgoArguments.test_18_bounds_class.<locals>.f4  s    99Q<##%%r"   )g      r   g      )r   r   rm   )r   r   r   )r0   zipr   r   nfevmessagerV  rE   r  r   r   r=   )	r   r>   lbub
bounds_old
bounds_newres_old_boundsres_new_boundsr  s	            r   test_18_bounds_class&TestShgoArguments.test_18_bounds_class2  s    	& #b+&
B^
a,a,""n&9&9999%%)?)????%%)?)????'


"">#3#3U;


"">#3#3^5E5EFr"   rr   c                 H   [        S5       n[        [        SUR                  S9  SSS5        [        [        S[        S9  [        S5       n[        [        SUR                  S9  SSS5        [        [        S[        S9  g! , (       d  f       Nb= f! , (       d  f       N3= f)r  r:   rR   )r   r   N)r   r   r   maprI  )r   ps     r   test_19_parallelization)TestShgoArguments.test_19_parallelizationF  sh     !WWAEE2 B,!WVr1551 2s+ W Ws   BB
B
B!c           	      ~    S nS nS/S-  nS nS nS nSUS	S
.SUS.SUS.4n[        X#SSUS9  [        X#SSUSS9  g)z0Test that constraints can be passed to argumentsc                 &   U S   S-   * [         R                  " [         R                  " [        U S   S-  U S   S-   -   5      5      5      -  U S   [         R                  " [         R                  " [        U S   U S   S-   -
  5      5      5      -  -
  $ r   r   rG   s    r   	eggholder=TestShgoArguments.test_20_constrained_args.<locals>.eggholderT  s    A$+rvvbggc!A$*!t2L.M&NOOA$rvvbggc!A$!A$+*>&?@AABr"   c                 H    SU S   -  SU S   -  -   SU S   -  -   SU S   -  -   $ )	Nǧ8@r   g     :@r;   '   r:   g     @D@rv   r(   rG   s    r   r>   5TestShgoArguments.test_20_constrained_args.<locals>.fZ  s7    1Q4<%!A$,.ad:UQqT\IIr"   r   r   ru   c                 Z    US-  U S   -  US-  U S   -  -   SU S   -  -   SU S   -  -   S	-
  $ )
Ngffffff@r   gffffff@r;   g333333&@r:   g?rv   rs   r(   )r=   r   s     r   g1_modified?TestShgoArguments.test_20_constrained_args.<locals>.g1_modified_  sT    s7QqT>AGadN2TAaD[@3J D  r"   c                     SU S   -  SU S   -  -   SU S   -  -   SU S   -  -   S	-
  S
[         R                  " SU S   S-  -  SU S   S-  -  -   SU S   S-  -  -   SU S   S-  -  -   5      -  -
  $ )Nrt   r   g'@r;   gfffffD@r:   gJ@rv      gRQ?gQ?gRQ?g     4@gףp=
?)rE   r   rG   s    r   rf   6TestShgoArguments.test_20_constrained_args.<locals>.g2c  s    1Q4$qt)#d1Q4i/$qt);b@1qL4!a</$qtQw,>adAgM r"   c                 6    U S   U S   -   U S   -   U S   -   S-
  $ Nr   r;   r:   rv   r(   rG   s    r   h16TestShgoArguments.test_20_constrained_args.<locals>.h1k  s+    Q4!A$;1%!,q00r"   r*   )r   )r,   r-   r   r+   rM  r:  r;   )r   r   r   rm  )r   r   r   r   N)r   )r   r7  r>   r   r>  rf   rE  r3   s           r   test_20_constrained_args*TestShgoArguments.test_20_constrained_argsQ  sp    		J !			1  TB+b)+ 	Q#QD9Q#QD$	&r"   c           
      2   S nSSS.nSS0n[        USS/SS//S	S
SUUS9  US   SL d   eSU;   d   eS nSS/SS/SS/SS/SS//n[        XSSSS.S9n[        U/ SQUSS9nUR                  (       d   e[        UR                  UR                  5        [        UR
                  UR
                  SS9  [        XSSS0SS0S9nUR                  (       d   e[        UR                  UR                  5        [        UR
                  UR
                  SS9  g)ztTest that shgo can handle objective functions that return the
gradient alongside the objective value. Fixes gh-13547c                 b    [         R                  " [         R                  " U S5      5      SU -  4$ Nr:   )rE   rF   powerrG   s    r   r  2TestShgoArguments.test_21_1_jac_true.<locals>.func{  s$    66"((1a.)1q500r"   r  T)r  r  r  rJ   r;   r:   r   rs   rm  )r   r   r   r   r   r   c                 >    [         R                  " U S-  5      SU -  4$ rK  rD   rG   s    r   r  rM    s    66!q&>1q5((r"   r   rv   )r   r   r   )r;   r;   r;   r;   r;   )x0r   r  rT  r   r  )r   r   r   r   N)r   r
   rV  r   r-   r=   )r   r  min_kwdsopt_kwdsr   r   r]  s          r   test_21_1_jac_true$TestShgoArguments.test_21_1_jac_truew  sA   	1 &d34=GaV$#%	
 $&&&   	) q'Aq6B7QFQF;4/6t$DFt!{{{)suu51 4%-w$7!4=* {{{)suu51r"   
derivativer  r  hesspc                 p   S nS nS nS nX4US.nXU   0nSS0nS/n	[        X)UUS	9n
[        U4S
/U	S.UDUD6nU
R                  (       d   e[        R                  R                  U
R                  UR                  5        [        R                  R                  U
R                  UR                  5        g)zjshgo used to raise an error when passing `options` with 'jac'
# see gh-12963. check that this is resolved
c                 6    SU S   -  U S   -  SU S   -  -   S-   $ )Nrv   r   r:   rs   r(   rG   s    r   	objectiveATestShgoArguments.test_21_2_derivative_options.<locals>.objective  s*    qt8ad?Q1X-11r"   c                     SU S   -  S-   $ )NrK   r   r:   r(   rG   s    r   gradient@TestShgoArguments.test_21_2_derivative_options.<locals>.gradient  s    qt8a<r"   c                     gNrK   r(   rG   s    r   r  <TestShgoArguments.test_21_2_derivative_options.<locals>.hess  r  r"   c                     SU-  $ r_  r(   )r=   r2  s     r   rV  =TestShgoArguments.test_21_2_derivative_options.<locals>.hessp  s    q5Lr"   rU  r  r  )ir   r   r   r   )rO  r   N)r   r
   rV  rE   r   r   r-   r=   )r   rT  rY  r\  r  rV  derivative_funcsr   r   r   r   r]  s               r   test_21_2_derivative_options.TestShgoArguments.test_21_2_derivative_options  s    	2	 		 $,EJ
;<$n597G"$y "aS ";K " " {{{


""377CGG4


""355#%%0r"   c                 >   / SQn[         [        S.nSS0n[        [        XUS9n[	        [        [
        R                  " S5      4SS0UD6nUR                  (       d   e[        UR                  UR                  5        [        UR                  UR                  SS9  g	)
zcEnsure the Hessian gets passed correctly to the local minimizer
routine. Previous report gh-14533.
)r   g?rh  r   gffffff?ri  ri  )r  r  r  r  rc  rs   rT  r   N)r   r   r   r   r
   rE   zerosrV  r   r-   r=   )r   r   r   r   r   r]  s         r   test_21_3_hess_options_rosen.TestShgoArguments.test_21_3_hess_options_rosen  s     D#Z8$k25&"$ubhhqk "+ " "{{{)suu51r"   c                    S nSS S.nS/n[        XSUSS9n[        U[        R                  " S	5      USUS
9nUR                  (       d   e[        UR                  UR                  5        [        UR                  UR                  5        g)zoshgo used to raise an error when passing `args` with Sobol sampling
# see gh-12114. check that this is resolvedc                     U S   U-  $ r  r(   )r=   r   s     r   r-   6TestShgoArguments.test_21_arg_tuple_sobol.<locals>.fun  s    Q419r"   r*   c                     U S   S-
  $ r   r(   rG   s    r   rQ  ;TestShgoArguments.test_21_arg_tuple_sobol.<locals>.<lambda>  s    1r"   r+   r   rr   )r;   rm  )r   r   r   r;   )r   r   r   N)r   r
   rE   rj  rV  r   r-   r=   )r   r-   r   r   r   r]  s         r   test_21_arg_tuple_sobol)TestShgoArguments.test_21_arg_tuple_sobol  s{    	 !'/AB3T{#*,sBHHQKT#.0{{{)suu%r"   r(   N).r#   r$   r%   r&   rf  rj  rn  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ra  r  r
  r  r  r  r  r.  r`  r3  rG  rR  parametrizere  rk  rs  r'   r(   r"   r   rc  rc    sW   I/DMAA&89t [[/ / [[
/ 
/TT
TMM
.A.(/E
- [[?@	. A	.	'1
*E8G( [[2, ,$&L(2T [[\+CD1 E1>2&r"   rc  c                   V    \ 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S rSrg)TestShgoFailuresi  c           	         SS0n[        [        R                  [        R                  SSUSS9n[        R
                  R                  SUR                  5        [        R
                  R                  SUR                  5        g)z'Test failure on insufficient iterationsmaxiterr:   Nrm  r*  Fru   )	r   r
  r>   r   rE   r   r  rV  tnevr  s      r   test_1_maxiterTestShgoFailures.test_1_maxiter  s\    a.799gnn"G= 	

s{{3


388,r"   c                 f    [        [        [        [        R                  [        R
                  SS9  g)z$Rejection of unknown sampling method	not_Sobolr  N)assert_raises
ValueErrorr   r   r>   r   r   s    r   test_2_sampling TestShgoFailures.test_2_sampling  s    j$		7>>&1	3r"   c                    SSS.n[        [        R                  [        R                  SUSS9n[        R
                  R                  SUR                  5        [        R
                  R                  SUR                  5        g	)
zdCheck that the routine stops when no minimiser is found
after maximum specified function evaluationsrr   T)maxfevr   rv   rm  r   r   r   Frt   N)	r   
test_tabler>   r   rE   r   r  rV  r&  r  s      r   test_3_1_no_min_pool_sobol+TestShgoFailures.test_3_1_no_min_pool_sobol  sb      ! :<<!2!2a#*,


s{{3


CHH-r"   c                     SSS.n[        [        R                  [        R                  SUSS9n[        R
                  R                  SUR                  5        g)	zdCheck that the routine stops when no minimiser is found
after maximum specified sampling evaluationsrr   Tmaxevr   rv   r  r  FN)r   r  r>   r   rE   r   r  rV  r  s      r   test_3_2_no_min_pool_simplicial0TestShgoFailures.test_3_2_no_min_pool_simplicial   sH     !:<<!2!2a#/1


s{{3r"   c                 T    SS/n[        [        [        [        R                  U5        g)zSpecified bounds ub > lb)rK   rv   rv   rs   Nr  r  r   r   r>   r   r   s     r   test_4_1_bound_err#TestShgoFailures.test_4_1_bound_err	  s    &!j$		6:r"   c                 T    SS/n[        [        [        [        R                  U5        g)z)Specified bounds are of the form (lb, ub))rv   rs   rs   r  Nr  r  s     r   test_4_2_bound_err#TestShgoFailures.test_4_2_bound_err  s    V$j$		6:r"   c           	          SSS.n[        [        R                  [        R                  [        R                  SUSS9n[
        R                  R                  SUR                  5        g)zmEnsures the algorithm terminates on infeasible problems
after maxev is exceeded. Use infty constraints optionr   Tr  rm  r   r   r   r   FN	r   test_infeasibler>   r   r3   rE   r   r  rV  r  s      r   test_5_1_1_infeasible_sobol,TestShgoFailures.test_5_1_1_infeasible_sobol  sW      ! ?$$o&<&<.33sG#*, 	

s{{3r"   c           	          SSSS.n[        [        R                  [        R                  [        R                  SUSS9n[
        R                  R                  SUR                  5        g)ztEnsures the algorithm terminates on infeasible problems
after maxev is exceeded. Do not use infty constraints optionr   TF)r  r   r  rm  r  Nr  r  s      r   test_5_1_2_infeasible_sobol,TestShgoFailures.test_5_1_2_infeasible_sobol  sZ      (-/ ?$$o&<&<.33sG#*, 	

s{{3r"   c           	          SSS.n[        [        R                  [        R                  [        R                  SUSS9n[
        R                  R                  SUR                  5        g)zPEnsures the algorithm terminates on infeasible problems
after maxev is exceeded.i  Fr  r   r  r  Nr  r  s      r   test_5_2_infeasible_simplicial/TestShgoFailures.test_5_2_infeasible_simplicial,  sW     ! " ?$$o&<&<.33sG#/1 	

s{{3r"   c                     [         R                  S-   SSSSS.n[         R                  [         R                  4n[         R                  SSUSS	.n[        [        [        /UQ70 UD6  g)
z<Test Global mode limiting local evaluations with f* too highr   r\  Tr;   Fr  Nrm  r  )r   r   r>   r   r3   r   UserWarningr   )r   r   r   kwargss       r   test_6_1_lower_known_f_min+TestShgoFailures.test_6_1_lower_known_f_min8  si     ))C/#'!&( 		7>>*!($%,	 	k41$1&1r"   c                    ^^ SSK JmJn  / SQnUU4S jmSTl        U" TU5      n[	        UR
                  UR                  TR                  5        g )Nr   )r   r   r   r:   r  r  r  r  c                 >   > T=R                   S-  sl         T" U 5      $ Nr;   )r&  )r=   r-   r   s    r   r-   "TestShgoFailures.test.<locals>.funN  s    HHMH8Or"   )scipy.optimizer   r   r&  r   r=   r-   )r   r   r   resultr-   r   s       @@r   r   TestShgoFailures.testJ  s=    .9	 c6"fhh

CHH-r"   r(   N)r#   r$   r%   r&   r{  r  r  r  r  r  r  r  r  r  r   r'   r(   r"   r   rw  rw    s9    -3

.4;
;

44
42$.r"   rw  c                        \ rS rSrS rS rSrg)TestShgoReturnsiY  c                    ^ / SQnU4S jmSTl         [        TU5      n[        R                  R	                  TR                   UR                   5        g )Nr  c                 D   > T=R                   S-  sl         [        U 5      $ r  r&  r   r=   r-   s    r   r-   3TestShgoReturns.test_1_nfev_simplicial.<locals>.fun]      HHMH8Or"   r   r&  r   rE   r   r  r   r   r  r-   s      @r   test_1_nfev_simplicial&TestShgoReturns.test_1_nfev_simplicialZ  s>    9	 c6"


&++6r"   c                    ^ / SQnU4S jmSTl         [        TUSS9n[        R                  R	                  TR                   UR                   5        g )Nr  c                 D   > T=R                   S-  sl         [        U 5      $ r  r  r  s    r   r-   .TestShgoReturns.test_1_nfev_sobol.<locals>.funi  r  r"   r   rm  r  r  r  s      @r   test_1_nfev_sobol!TestShgoReturns.test_1_nfev_sobolf  s@    9	 c67;


&++6r"   r(   N)r#   r$   r%   r&   r  r  r'   r(   r"   r   r  r  Y  s    
7
7r"   r  c                     S n [        U S/S/5      n[        U[        R                  " SS/5      5      n[	        [
        SS/USS9n[        R                  " [        R                  " UR                  S-  5      S:  5      (       d   e[        R                  " [        R                  " UR                  S-  5      S	:*  5      (       d   eUR                  (       d   eg )
Nc                 b    [         R                  " U 5      n [         R                  " U S-  5      /$ rK  rE   asarrayrF   rG   s    r   quad$test_vector_constraint.<locals>.quadu  $    JJqMqAvr"   g@rv   r   rr  rm  r  r:   r   )
r   r   rE   r  r   r   allrF   r=   rV  )r  nlcoldcr   s       r   test_vector_constraintr  s  s      dSEA3
/C bhhSz&:;D
uw(dG
TC66"&&#%%!$+,,,,66"&&#%%A&#-....;;;r"   zignore:delta_gradc                     S n [        U S/S/5      nSS0n[        [        SS/USUS9n[        R                  " [        R
                  " UR                  S	-  5      S:  5      (       d   e[        R                  " [        R
                  " UR                  S	-  5      S
:*  5      (       d   eUR                  (       d   eg )Nc                 b    [         R                  " U 5      n [         R                  " U S-  5      /$ rK  r  rG   s    r   r  test_trust_constr.<locals>.quad  r  r"   g@rv   r  r  rr  rm  )r   r   r   r:   r   )r   r   r   rE   r  rF   r=   rV  )r  r  r   r   s       r   test_trust_constrr    s      dSEA3
/C .1 	')C 66"&&#%%!$+,,,,66"&&#%%A&#-....;;;r"   c                     S/S-  n S n[        USS5      n[        [        XS9n[        [        R
                  " UR                  5      S5        S nSUS.n[        [        XS9n[        [        R
                  " UR                  5      S5        S	/S
-  n S nSUS.n[        S U USS9n[        [        R
                  " UR                  5      S5        g )N)g?r   r:   c                     U S   U S   -   $ r   r(   rG   s    r   faulty)test_equality_constraints.<locals>.faulty  s    tad{r"   333333@rS  c                     U S   U S   -   S-
  $ )Nr   r;   r  r(   rG   s    r   r  r    s    tad{S  r"   rM  r+   r<  ru   c                 6    U S   U S   -   U S   -   U S   -   S-
  $ rD  r(   rG   s    r   r  r    s+    tad{QqT!AaD(1,,r"   c                 0    [         R                  " U 5      * $ r   )rE   prodrG   s    r   rQ  +test_equality_constraints.<locals>.<lambda>  s    BGGAJ,r"   rm  )r   r   r   r   )r   r   r   r   rE   rF   r=   )r   r  r  r   r   s        r   test_equality_constraintsr    s    \AF fc3
/C
uV
5CBFF355M3'!  /K
uV
=CBFF355M3'Z!^F-  /K
	C BFF355M3'r"   c                      S n U SS.nSSSSS.S	.n[        [        S
/S-  XS9nUR                  S   R                  5       S:X  d   eUR                  S   S   S:X  d   eg )Nc                 :    [         R                  " U S-  5      S-
  $ r  rD   rG   s    r   r3   test_gh16971.<locals>.cons  s    vvad|ar"   r*   )r-   r,   r  rs   r   g?)rhobegtolcatol)r  r   rr  r:   )r   r   r  cobylar   r  )r   r   r   lower)r3   cr   r   s       r   test_gh16971r    s      f%At<
 	y{	A h'--/8;;;i(1T999r"   )	r(   rq  r   NNNNrm  r;   )Gr   r  numpyrE   r  multiprocessingr   numpy.testingr   r  r   r  r   r  r   r   r	   r
   r   r   r   r   r   scipy.optimize._constraintsr   scipy.optimize._shgor   .scipy.optimize.tests.test_minimize_constrainedr   r   r4   r6   r   r   r   rO   r  r   r   r]   r  ro   r
  r   r  r   r   r0   r%  boundsLJr=  r   onesrI  r   r  r   r  r  ra  r   r   r  rc  rw  r  r  filterwarningsr  r  r  r(   r"   r   <module>r     sC         )  1Y Y Y = % J+ + $  gw/"#Q)
ff-"#Q)
lL9"#Q)$  gY",#/ #%((ZL-8M-7L-8M-8M-7L-8M-8M-8M-8M	,; 	#< %'HH .H %I!. hZ",$0>"$((ZL>":$&HHl^$<	#$ #J gw/",j!9#&$ D i]Q."L#.$  k;7$7#8"&!57
% < TFQJ	*+	X$(6!%	
$  
XL1,"% "
S 0
(  Y	$:+-$),c
4

- 0 'w.@4826) ,9=;?./  D3) 3)tj1 j1Z^& ^&Dq. q.j7 74 /0 1,(B:r"   