
    (ph|                        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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  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\RD                  " S/S/S/S/S/S/S/S/S/S//
5      \RD                  " / SQ5      S 9r#\!" S!/S/S/\RD                  " S//5      \RD                  " 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S/S)9r( " S0 S1\5      r)\)" S2S2/S3/S4S5/S69r* " S7 S8\5      r+S9r,\-" \." S:/S9-  S;/S9-  5      5      r/\+" \/S</SS69r0 " S= S>\5      r1\1" S?/S@-  SA\Rd                  " S@5      SB-
  S69r3 " SC SD\5      r4\4" S,S,/SE/SFSF/S69r5 " SG SH\5      r6\6" S$SI/SSS69r7\
Rp                  Rs                  SJ5         S[SK j5       r: " SL SM5      r; " SN SO5      r< " SP SQ5      r= " SR SS5      r> " ST SU5      r?SV r@\
Rp                  R                  SW5      SX 5       rBSY rCSZ rDg)\    N)Pool)assert_allcloseIS_PYPY)raiseswarns)shgoBoundsminimize_scalarminimizerosen	rosen_der
rosen_hessNonlinearConstraint)new_constraint_to_old)SHGOc                   "    \ 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         R/var/www/html/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 bJ  [        U [        [        4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_constraintsr3      se    D}!eT]++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   r1   StructTest1.g.   s    "S())r!   r'   N	r"   r#   r$   r%   r=   r1   r3   r2   r&   r'   r!   r   r5   r5   *   s    %* ADr!   r5   )   )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   )rD   sinr;   s     r   r=   StructTest2.fA   s    B"&&)##r!   c                 2    S[         R                  " U SS9-
  $ )N:   r   rA   rC   rF   s    r   r1   StructTest2.gD   s    BFF11%%%r!   r'   N
r"   r#   r$   r%   __doc__r=   r1   r3   r2   r&   r'   r!   r   rN   rN   <   s    $& ADr!   rN   )r   rO   g⡽4$?0_r<g GK@g
]<@gI{_H@gi<&,@g>E@gqŤCQ4@g8$B@go.n:@g^5	>@)
rY   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	)
StructTest3i   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   r9   r:   r'   r;   s     r   r=   StructTest3.f{   s"    qtk!QqTaK//r!   c                     U S   U S   -  S-
  $ )Nr   r:         9@r'   rF   s    r   g1StructTest3.g1~   s    tad{T!!r!   c                 *    U S   S-  U S   S-  -   S-
  $ )Nr   r9   r:   r`   r'   rF   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:   r`   r9   r'   rF   s    r   r1   StructTest3.g   s8    tad{T!1Q419qtqy#84#???r!   r   r'   N)r"   r#   r$   r%   rX   r=   ra   rd   r1   r   rD   inf_StructTest3__nlcr2   r&   r'   r!   r   r[   r[   i   s7    "0",@  1bff-E8Dr!   r[   )r9   2   )r   rj   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   
   r9      r:               rJ         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-
  * $ )Nr9   r   rt   r:   rs   rq      r'   rF   s    r   ra   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-
  * $ )	Nrv   r   rt   r:   rp   r9   rs   g     q@r'   rF   s    r   rd   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:   r9   rJ   rq   rw      r'   rF   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   -  -
  * $ )	Nrs   r   r9   r:   rt   rq   ru   rJ   r'   rF   s    r   g4StructTest4.g4   sn    QqTQY1*Q1X!_<q1Q419}Lqt8 1Q4i( ) 	)r!   r'   Nr"   r#   r$   r%   rX   r=   ra   rd   r   r   r1   r3   r2   r&   r'   r!   r   rm   rm      s<    #MI) 
RRAADr!   rm   )irp   rv   )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          @rD   rR   sqrtabsr;   s     r   r=   StructTest5.f   s~    dTkN266"''#ad3h!A$+.F*G"HIId266"''#adadTk&:";<==>	
r!   Nr'   rH   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   rt           r:   r9         ?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   rW   r'   r!   r   r   r      s    
( 	AADr!   r   rJ   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         ?r9   r:   rt   r'   r;   s     r   r=   StructTestS.f   sS    1!QqTCZA$55Q4#:!#$'(tcza&78 	9r!   Nr'   rH   r'   r!   r   r   r      s    9 	AADr!   r   )r   r   rs   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:   rj   d   r'   r;   s     r   r=   StructTestTable.f
  s    Q43;1Q43;r!   Nr'   rH   r'   r!   r   r   r   	  s     	AADr!   r   rj   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-  -   $ r8   r'   )r   r<   r   s      r   r=   StructTestInfeasible.f  r?   r!   c                     U S   U S   -   S-
  $ Nr   r:   r'   rF   s    r   ra   StructTestInfeasible.g1!  s    tad{Qr!   c                      U S   U S   -   S-
  * $ r   r'   rF   s    r   rd   StructTestInfeasible.g2$  s    1!q!!r!   c                      U S   * U S   -   S-
  $ r   r'   rF   s    r   r   StructTestInfeasible.g3'  s    !uqt|ar!   c                 "    U S   * U S   -   S-
  * $ r   r'   rF   s    r   r   StructTestInfeasible.g4*  s    A$1!""r!   r'   Nr   r'   r!   r   r   r     s:    %" # 
RRAADr!   r   )rI   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   r2   r   logginginfor   rD   testingr   r<   r   r,   r   xlr   funl)testr   	test_atolr   r   r   r   r   r   r   ress              r   run_testr   7  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)TestShgoSobolTestFunctionsiZ  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_sobol`       	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_sobole  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_sobolj  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_sobolp  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_sobolu  r   r!   c                 "    [        [        5        g)%NLP: Hock and Schittkowski problem 18Nr   test3_1r   s    r   test_f3_sobol(TestShgoSobolTestFunctions.test_f3_sobolz  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, multimodalrO   )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  rO   rq   )r   r   Nr  r   s    r   test_f5_2_sobol*TestShgoSobolTestFunctions.test_f5_2_sobol  s     	Ba(r!   r'   N)r"   r#   r$   r%   rX   r   r   r   r   r   r  pytestmarkslowr	  r  r  r&   r'   r!   r   r   r   Z  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)]rq   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   rv   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   rJ   ,  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   rJ   Tr5  r7  r8  r:   r  r9  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   Tr5  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!   rp   c                 4    / SQSS.n[        [        SUSSS9  g)	z(Asymmetrically constrained test function)r   r   r   rt   Tr5  i'  r:   r  rC  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   )rD   mean)r<   avgs    r   <lambda>FTestShgoSimplicialTestFunctions.test_f0_min_variance.<locals>.<lambda>  s    rwwqzC/?r!   r*   rJ   rK   r   r   r   V瞯<r   N)r   rD   varsuccessr   r,   r<   )r   r2   r   rN  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'   rF   s    r   r,   DTestShgoSimplicialTestFunctions.test_f0_min_variance_1D.<locals>.fun  s    C=AG,,r!   rK   )r   r   ư>)r   N)r   r
   rT  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%   rX   r  r   r#  r)  r,  r/  r  r  r  r2  r=  r@  rD  	fail_slowrH  skiprU  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
\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\R                  R5                  \=(       a    \R:                  S:H  SS9S 5       rS r\R                  RA                  SS9S 5       r!S r"S r#S r$S r%S  r&S! r'\R                  RQ                  S"5      S# 5       r)S$ r*S% r+\R                  RY                  S&/ S'Q5      S( 5       r-S) r.S* r/S+r0g,)-TestShgoArgumentsi  c                 $    [        [        SSSS9  g)z>Iterative simplicial sampling on TestFunction 1 (multivariate)Nr9   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:   sobolrc  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:   rk  )r   r   r   r   h㈵>r   r   )r   r   r=   r   r2   rD   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   rF   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   rw  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 ru  rv  rF   s    r   rw  <TestShgoArguments.test_3_2_disp_sobol.<locals>.callback_func)  ry  r!   r:   rk  r   Trz  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   rO  5TestShgoArguments.test_args_gh14589.<locals>.<lambda>6  s
    	r!   )r   rt   )r:   r9   )funcr   r   c                     SU -  S-   $ )Nr9   r:   r'   rF   s    r   rO  r  8  s    !a%!)r!   )r  r   N)r   r   r,   r<   )r   r   r[  s      r   test_args_gh14589#TestShgoArguments.test_args_gh145893  sJ     16( +VH=)suu%r!   c                 N    [         R                  SSS.n[        [         SSUSS9  g)z,Test known function minima stopping criteriarZ  T)f_minf_tolr&  Nro  r  r   r   r   r   r  r   r   r   s     r   test_4_1_known_f_min&TestShgoArguments.test_4_1_known_f_min<  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 evaluationsrZ  Tr:   )r  r  r&  
local_iterNro  r  r  r  r   s     r   test_4_2_known_f_min&TestShgoArguments.test_4_2_known_f_minG  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 funcsrZ  Tr:   Fr  r  r&  r  r  Nrk  r   r   r   r   r   ro  r   )r   r   r   r=   r   r2   rD   r   r   r<   r   r   r   r   s      r   test_4_4_known_f_min&TestShgoArguments.test_4_4_known_f_minT  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   ro  r   N
r   r   r=   r   r2   rD   r   r   r<   r   rp  s     r   test_5_1_simplicial_argless-TestShgoArguments.test_5_1_simplicial_arglessc  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 1rk  r   r   ro  r   Nr  rp  s     r   test_5_2_sobol_argless(TestShgoArguments.test_5_2_sobol_arglessh  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_iterr9   r  r   r   r   ro  r   r   Nr   r   r=   r   r2   rD   r   r   r<   r   r,   r   r  s      r   test_6_1_simplicial_max_iter.TestShgoArguments.test_6_1_simplicial_max_itern  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_iterr9   r  r  ro  r   r   Nr  r  s      r   test_6_2_simplicial_min_iter.TestShgoArguments.test_6_2_simplicial_min_iterv  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)methodr   r   MbP?rk  r   r   r   r   N)r   r2   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ftolro  r   Tr   )r   r   r   Nr   r   r=   r   r2   )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                  $ )Nr9   r   r:   )rD   arrayTrF   s    r   jac1TestShgoArguments.test_7_3_minkwargs.<locals>.jac  s,    xxQqT1qt8 45777r!   c                 :    [         R                  " SS/SS//5      $ Nr9   r   )rD   r  rF   s    r   hess2TestShgoArguments.test_7_3_minkwargs.<locals>.hess  s    xx!Q!Q 011r!   )r  r  r  z	Solver = zd====================================================================================================r   r  rk  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!   win32z2Failing and fix in PyPy not planned (see gh-18632))reasonc                 j    SS0nS n[        U[        R                  SUS9nUR                  S:X  d   eg)r  maxtimerR  c                 0    [         R                  " S5        g)Ng+=r   )timesleeprF   s    r   r=   0TestShgoArguments.test_10_finite_time.<locals>.f  s    JJur!   rq   )r   r   r:   N)r   r   r   nit)r   r   r=   r   s       r   test_10_finite_time%TestShgoArguments.test_10_finite_time  s9     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   rp   Nrk  r(  r   r:   )r   r   r=   r   rD   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 thisc           	          SSS.n[        [        R                  [        R                  SSUSS9n[        R
                  R                  SUR                  5        g)r  rR  r   )r  r  r:   Nrk  r(  )r   r   r=   r   rD   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'   rF   s    r   r=   /TestShgoArguments.test_13_high_sobol.<locals>.f      r!   rL   )   rk  r   r9   rj   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  rs   rO   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:   rv   rk  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)rD   randomuniform)r   ds     r   sample9TestShgoArguments.test_17_custom_sampling.<locals>.sample  s    99$$1&$11r!   rQ   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   )rD   squarerE   rF   s    r   r=   1TestShgoArguments.test_18_bounds_class.<locals>.f  s    99Q<##%%r!   )g      r   g      )r   r   rk   )r   r   r   )r/   zipr	   r   nfevmessagerT  rD   r  r   r   r<   )	r   r=   lbub
bounds_old
bounds_newres_old_boundsres_new_boundsx_opts	            r   test_18_bounds_class&TestShgoArguments.test_18_bounds_class  s    	& #b+&
B^
a,a,""n&9&9999%%)?)????%%)?)????'


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


"">#3#3^5E5EFr!   rp   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  r9   rQ   )r   r   N)r   r   r   maprG  )r   ps     r   test_19_parallelization)TestShgoArguments.test_19_parallelization  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   rF   s    r   	eggholder=TestShgoArguments.test_20_constrained_args.<locals>.eggholder  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:   '   r9   g     @D@rt   r'   rF   s    r   r=   5TestShgoArguments.test_20_constrained_args.<locals>.f!  s7    1Q4<%!A$,.ad:UQqT\IIr!   r   r   rs   c                 Z    US-  U S   -  US-  U S   -  -   SU S   -  -   SU S   -  -   S	-
  $ )
Ngffffff@r   gffffff@r:   g333333&@r9   g?rt   rq   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      -  -
  $ )Nrr   r   g'@r:   gfffffD@r9   gJ@rt      gRQ?gQ?gRQ?g     4@gףp=
?)rD   r   rF   s    r   rd   6TestShgoArguments.test_20_constrained_args.<locals>.g2*  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:   r9   rt   r'   rF   s    r   h16TestShgoArguments.test_20_constrained_args.<locals>.h12  s+    Q4!A$;1%!,q00r!   r)   )r   )r+   r,   r   r*   rK  r8  r:   )r   r   r   rk  )r   r   r   r   N)r   )r   r'  r=   r   r.  rd   r5  r2   s           r   test_20_constrained_args*TestShgoArguments.test_20_constrained_args  sp    		J !			1  TB+b)+ 	Q#QD9Q#QD$	&r!   c           
      <   S n[        USS/SS//SSSSS	S
.S9  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  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$ Nr9   )rD   rE   powerrF   s    r   r  2TestShgoArguments.test_21_1_jac_true.<locals>.funcB  s$    66"((1a.)1q500r!   rI   r:   r9   r   rq   rk  r  T)r  r  )r   r   r   r   r   c                 >    [         R                  " U S-  5      SU -  4$ r;  rC   rF   s    r   r  r=  N  s    66!q&>1q5((r!   r   rt   )r   r   r   )r:   r:   r:   r:   r:   )x0r   r  rR  r   N)r   r   rT  r   r,   r<   )r   r  r   r   r[  s        r   test_21_1_jac_true$TestShgoArguments.test_21_1_jac_true>  s    	1 	GaV$#(/=	
	) q'Aq6B7QFQF;4/6t$DFt!{{{)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-   $ )Nrt   r   r9   rq   r'   rF   s    r   	objectiveATestShgoArguments.test_21_2_derivative_options.<locals>.objectivea  s*    qt8ad?Q1X-11r!   c                     SU S   -  S-   $ )NrJ   r   r9   r'   rF   s    r   gradient@TestShgoArguments.test_21_2_derivative_options.<locals>.gradientd  s    qt8a<r!   c                     gNrJ   r'   rF   s    r   r  <TestShgoArguments.test_21_2_derivative_options.<locals>.hessg  r  r!   c                     SU-  $ rM  r'   )r<   r"  s     r   rD  =TestShgoArguments.test_21_2_derivative_options.<locals>.hesspj  s    q5Lr!   rC  r  trust-constr)ir   r   r   r   )r?  r   N)r   r   rT  rD   r   r   r,   r<   )r   rB  rG  rJ  r  rD  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?rW  r   gffffff?rX  rX  )r  r  r  r  rR  rq   rR  r   N)r   r   r   r   r   rD   zerosrT  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'   rF   s    r   rO  ;TestShgoArguments.test_21_arg_tuple_sobol.<locals>.<lambda>  s    1r!   r*   r   rp   )r:   rk  )r   r   r   r:   )r   r   r   N)r   r   rD   rY  rT  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)1r"   r#   r$   r%   rd  rh  rl  rq  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  xfailr   sysplatformr  r  r_  r  r  r  r  r  r  r  r^  r#  r7  r@  parametrizerT  rZ  rb  r&   r'   r!   r   ra  ra    s   I/DMAA& [[/ / [[
/ 
/TT
TMM
.A.(/E [[w:3<<7#:G  I
I
- [[?@	. A	.	'1
*E8G( [[2, ,$&L2: [[\+CD1 E1>2&r!   ra  c                       \ 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 5       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maxiterr9   Nrk  r(  Frs   )	r   r  r=   r   rD   r   r  rT  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 evaluationsrp   T)maxfevr   rt   rk  r   r   r   Frr   N)	r   
test_tabler=   r   rD   r   r  rT  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 evaluationsrp   Tmaxevr   rt   r  rw  FN)r   rx  r=   r   rD   r   r  rT  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)rJ   rt   rt   rq   Nrq  rr  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))rt   rq   rq   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|  rk  r   r   r   r   FN	r   test_infeasibler=   r   r2   rD   r   r  rT  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  rk  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   rZ  Tr:   Fr  Nrk  r  )r   r   r=   r   r2   r   UserWarningr   )r   r   r   kwargss       r   test_6_1_lower_known_f_min+TestShgoFailures.test_6_1_lower_known_f_min  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   r9   r  r  r  r  c                 >   > T=R                   S-  sl         T" U 5      $ Nr:   )r  )r<   r,   r   s    r   r,   "TestShgoFailures.test.<locals>.fun	  s    HHMH8Or!   )scipy.optimizer   r   r  r   r<   r,   )r   r   r   resultr,   r   s       @@r   r   TestShgoFailures.test  s=    .9	 c6"fhh

CHH-r!   r'   N)r"   r#   r$   r%   rm  rs  ry  r~  r  r  r  r  r  r  r  thread_unsafer  r   r&   r'   r!   r   ri  ri    sR    -3

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

44
4 [[2 2$.r!   ri  c                        \ rS rSrS rS rSrg)TestShgoReturnsi  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   rD   r   r  r   r   r  r,   s      @r   test_1_nfev_simplicial&TestShgoReturns.test_1_nfev_simplicial  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>.fun$  r  r!   r   rk  r  r  r  s      @r   test_1_nfev_sobol!TestShgoReturns.test_1_nfev_sobol!  s@    9	 c67;


&++6r!   r'   N)r"   r#   r$   r%   r  r  r&   r'   r!   r   r  r    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      /$ r;  rD   asarrayrE   rF   s    r   quad$test_vector_constraint.<locals>.quad0  $    JJqMqAvr!   g@rt   r   ra  rk  r  r9   r   )
r   r   rD   r  r   r   allrE   r<   rT  )r  nlcoldcr   s       r   test_vector_constraintr  .  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      /$ r;  r  rF   s    r   r  test_trust_constr.<locals>.quad?  r  r!   g@rt   r  rQ  ra  rk  )r   r   r   r9   r   )r   r   r   rD   r  rE   r<   rT  )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   r9   c                     U S   U S   -   $ r   r'   rF   s    r   faulty)test_equality_constraints.<locals>.faultyX  s    tad{r!   333333@rQ  c                     U S   U S   -   S-
  $ )Nr   r:   r  r'   rF   s    r   r  r  _  s    tad{S  r!   rK  r*   r,  rs   c                 6    U S   U S   -   U S   -   U S   -   S-
  $ r4  r'   rF   s    r   r  r  h  s+    tad{QqT!AaD(1,,r!   c                 0    [         R                  " U 5      * $ r   )rD   prodrF   s    r   rO  +test_equality_constraints.<locals>.<lambda>n  s    BGGAJ,r!   rk  )r   r   r   r   )r   r   r   r   rD   rE   r<   )r   r  r  r   r   s        r   test_equality_constraintsr  T  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  rC   rF   s    r   r2   test_gh16971.<locals>.consv  s    vvad|ar!   r)   )r,   r+   r  rq   r   g?)rhobegtolcatol)r  r   ra  r9   )r   r   r  cobylar   r  )r   r   r   lower)r2   cr   r   s       r   test_gh16971r  u  s      f%At<
 	y{	A h'--/8;;;i(1T999r!   )	r'   ro  r   NNNNrk  r:   )Er   re  numpyrD   r  multiprocessingr   numpy.testingr   r   r  r   rq  r   r  r   r	   r
   r   r   r   r   r   scipy.optimize._constraintsr   scipy.optimize._shgor   r   r3   r5   r   r   r   rN   r  r   r   r[   r   rm   r  r   r  r   r   r/   r  boundsLJr;  r   onesrG  r   rx  r   r  r  r_  r   r   r  ra  ri  r  r  filterwarningsr  r  r  r'   r!   r   <module>r     s@    
     2  1H H H = %+ + $  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Y& Y&zr. r.l7 74 /0 1,(B:r!   