
    doin                        S SK r 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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\RL                  " S/S/S/S/S/S/S/S/S/S//
5      \RL                  " / S Q5      S!9r'\%" S"/S/S/\RL                  " S//5      \RL                  " 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:r0\1" \2" S;/S:-  S</S:-  5      5      r3\/" \3S=/SS79r4 " S> S?\5      r5\5" S@/SA-  SB\Rl                  " SA5      SC-
  S79r7 " SD SE\5      r8\8" S-S-/SF/SGSG/S79r9 " SH SI\5      r:\:" S%SJ/SSS79r;\Rx                  R{                  SK5         S\SL j5       r> " SM SN5      r? " SO SP5      r@ " SQ SR5      rA " SS ST5      rB " SU SV5      rCSW rD\Rx                  R                  SX5      SY 5       rFSZ rGS[ rHg)]    N)Pool)assert_allcloseIS_PYPY)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/land-ocr/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_constraintsr5      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    r3   StructTest1.g0   s    "S())r#   r)   N	r$   r%   r&   r'   r?   r3   r5   r4   r(   r)   r#   r    r7   r7   ,   s    %* ADr#   r7   )   )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   )rF   sinr=   s     r    r?   StructTest2.fC   s    B"&&)##r#   c                 2    S[         R                  " U SS9-
  $ )N:   r   rC   rE   rH   s    r    r3   StructTest2.gF   s    BFF11%%%r#   r)   N
r$   r%   r&   r'   __doc__r?   r3   r5   r4   r(   r)   r#   r    rP   rP   >   s    $& ADr#   rP   )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	)
StructTest3k   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)   rH   s    r    g1StructTest3.g1   s    tad{T!!r#   c                 *    U S   S-  U S   S-  -   S-
  $ )Nr   r;   r<   rc   r)   rH   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<   rc   r;   r)   rH   s    r    r3   StructTest3.g   s8    tad{T!1Q419qtqy#84#???r#   r   r)   N)r$   r%   r&   r'   rZ   r?   rd   rg   r3   r   rF   inf_StructTest3__nlcr4   r(   r)   r#   r    r^   r^   k   s7    "0",@  1bff-E8Dr#   r^   )r;   2   )r   rm   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<               rL         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   rw   r<   rv   rt      r)   rH   s    r    rd   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-
  * $ )	Nry   r   rw   r<   rs   r;   rv   g     q@r)   rH   s    r    rg   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;   rL   rt   rz      r)   rH   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   -  -
  * $ )	Nrv   r   r;   r<   rw   rt   rx   rL   r)   rH   s    r    g4StructTest4.g4   sn    QqTQY1*Q1X!_<q1Q419}Lqt8 1Q4i( ) 	)r#   r)   Nr$   r%   r&   r'   rZ   r?   rd   rg   r   r   r3   r5   r4   r(   r)   r#   r    rp   rp      s<    #MI) 
RRAADr#   rp   )irs   ry   )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          @rF   rT   sqrtabsr=   s     r    r?   StructTest5.f   s~    dTkN266"''#ad3h!A$+.F*G"HIId266"''#adadTk&:";<==>	
r#   Nr)   rJ   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   rw           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   rY   r)   r#   r    r   r      s    
( 	AADr#   r   rL   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<   rw   r)   r=   s     r    r?   StructTestS.f   sS    1!QqTCZA$55Q4#:!#$'(tcza&78 	9r#   Nr)   rJ   r)   r#   r    r   r      s    9 	AADr#   r   )r   r   rv   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<   rm   d   r)   r=   s     r    r?   StructTestTable.f  s    Q43;1Q43;r#   Nr)   rJ   r)   r#   r    r   r     s     	AADr#   r   rm   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-  -   $ r:   r)   )r   r>   r   s      r    r?   StructTestInfeasible.f   rA   r#   c                     U S   U S   -   S-
  $ Nr   r<   r)   rH   s    r    rd   StructTestInfeasible.g1#  s    tad{Qr#   c                      U S   U S   -   S-
  * $ r   r)   rH   s    r    rg   StructTestInfeasible.g2&  s    1!q!!r#   c                      U S   * U S   -   S-
  $ r   r)   rH   s    r    r   StructTestInfeasible.g3)  s    !uqt|ar#   c                 "    U S   * U S   -   S-
  * $ r   r)   rH   s    r    r   StructTestInfeasible.g4,  s    A$1!""r#   r)   Nr   r)   r#   r    r   r     s:    %" # 
RRAADr#   r   )rK   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   r4   r   logginginfor   rF   testingr   r>   r   r.   r   xlr   funl)testr   	test_atolr   r   r   r   r   r   r   ress              r    run_testr   9  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_sobolb       	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_sobolg  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_soboll  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_sobolr  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_sobolw  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, multimodalr[   )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  r[   rt   )r   r   Nr  r   s    r    test_f5_2_sobol*TestShgoSobolTestFunctions.test_f5_2_sobol  s     	Ba(r#   r)   N)r$   r%   r&   r'   rZ   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)]rt   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   ry   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   rL   ,  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   rL   Tr8  r:  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   Tr8  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#   rs   c                 4    / SQSS.n[        [        SUSSS9  g)	z(Asymmetrically constrained test function)r   r   r   rw   Tr8  i'  r<   r  rF  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   )rF   mean)r>   avgs    r    <lambda>FTestShgoSimplicialTestFunctions.test_f0_min_variance.<locals>.<lambda>  s    rwwqzC/?r#   r,   rL   rM   r   r   r   V瞯<r   N)r   rF   varsuccessr   r.   r>   )r   r4   r   rQ  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)   rH   s    r    r.   DTestShgoSimplicialTestFunctions.test_f0_min_variance_1D.<locals>.fun  s    C=AG,,r#   rM   )r   r   ư>)r   N)r   r
   rW  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'   rZ   r  r#  r&  r,  r/  r2  r  r  r  r5  r@  rC  rG  	fail_slowrK  skiprX  r_  r(   r)   r#   r    r  r    s    =
=
=
/=
= [[= =/// [[2/ / [[l#
$ $
$ [[l#1 $1r#   r  c                   f   \ 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\R                  R7                  \=(       a    \R<                  S:H  SS9S 5       rS r \R                  RC                  SS9S 5       r"S r#S r$S r%S  r&S! r'S" r(\R                  RS                  S#5      S$ 5       r*S% r+S& r,\R                  R[                  S'/ S(Q5      S) 5       r.S* r/S+ r0S,r1g-).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<   sobolrf  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<   rn  )r   r   r   r   h㈵>r   r   )r   r   r?   r   r4   rF   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   rH   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   rz  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 rx  ry  rH   s    r    rz  <TestShgoArguments.test_3_2_disp_sobol.<locals>.callback_func+  r|  r#   r<   rn  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    rR  5TestShgoArguments.test_args_gh14589.<locals>.<lambda>8  s
    	r#   )r   rw   )r<   r;   )funcr   r   c                     SU -  S-   $ )Nr;   r<   r)   rH   s    r    rR  r  :  s    !a%!)r#   )r  r   N)r   r   r.   r>   )r   r   r^  s      r    test_args_gh14589#TestShgoArguments.test_args_gh145895  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      rt   r   trust-constr)r   r  )r   r   methodr   jacr]  r   g      $g      $@ignore)r  r   r   r  r   rn  )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)  Nrr  r  r   r   r   r   r  r   r   r   s     r    test_4_1_known_f_min&TestShgoArguments.test_4_1_known_f_minx  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_iterNrr  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  Nrn  r   r   r   r   r   rr  r   )r   r   r   r?   r   r4   rF   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   rr  r   N
r   r   r?   r   r4   rF   r   r   r>   r   rs  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 1rn  r   r   rr  r   Nr  rs  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   rr  r   r   Nr   r  r?   r   r4   rF   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  rr  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?rn  r   r   r   r   N)r  r4   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ftolrr  r   Tr   )r   r   r   Nr   r  r?   r   r4   )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<   )rF   arrayTrH   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   )rF   r  rH   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  rn  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  maxtimerU  c                 0    [         R                  " S5        g)Ng+=r   )timesleeprH   s    r    r?   0TestShgoArguments.test_10_finite_time.<locals>.f  s    JJur#   rt   )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   rs   Nrn  r+  r   r<   )r   r   r?   r   rF   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  rU  r   )r  r  r<   Nrn  r+  )r   r   r?   r   rF   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)   rH   s    r    r?   /TestShgoArguments.test_13_high_sobol.<locals>.f      r#   rN   )   rn  r   r;   rm   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  rv   r[   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<   ry   rn  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)rF   randomuniform)r   ds     r    sample9TestShgoArguments.test_17_custom_sampling.<locals>.sample0  s    99$$1&$11r#   rS   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   )rF   squarerG   rH   s    r    r?   1TestShgoArguments.test_18_bounds_class.<locals>.f7  s    99Q<##%%r#   )g      r   g      )r   r   rn   )r   r   r   )r1   zipr	   r   nfevmessagerW  rF   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_class5  s    	& #b+&
B^
a,a,""n&9&9999%%)?)????%%)?)????'


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


"">#3#3^5E5EFr#   rs   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;   rS   )r   r   N)r   r   r   maprJ  )r   ps     r    test_19_parallelization)TestShgoArguments.test_19_parallelizationI  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   rH   s    r    	eggholder=TestShgoArguments.test_20_constrained_args.<locals>.eggholderW  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@rw   r)   rH   s    r    r?   5TestShgoArguments.test_20_constrained_args.<locals>.f]  s7    1Q4<%!A$,.ad:UQqT\IIr#   r   r   rv   c                 Z    US-  U S   -  US-  U S   -  -   SU S   -  -   SU S   -  -   S	-
  $ )
Ngffffff@r   gffffff@r<   g333333&@r;   g?rw   rt   r)   )r>   r   s     r    g1_modified?TestShgoArguments.test_20_constrained_args.<locals>.g1_modifiedb  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      -  -
  $ )Nru   r   g'@r<   gfffffD@r;   gJ@rw      gRQ?gQ?gRQ?g     4@gףp=
?)rF   r   rH   s    r    rg   6TestShgoArguments.test_20_constrained_args.<locals>.g2f  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;   rw   r)   rH   s    r    h16TestShgoArguments.test_20_constrained_args.<locals>.h1n  s+    Q4!A$;1%!,q00r#   r+   )r   )r-   r.   r   r,   rN  r;  r<   )r   r   r   rn  )r   r   r   r   N)r   )r   r9  r?   r   r@  rg   rG  r4   s           r    test_20_constrained_args*TestShgoArguments.test_20_constrained_argsT  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;   )rF   rG   powerrH   s    r    r  2TestShgoArguments.test_21_1_jac_true.<locals>.func~  s$    66"((1a.)1q500r#   r  T)r  r  r  rK   r<   r;   r   rt   rn  )r   r   r   r   r   r   c                 >    [         R                  " U S-  5      SU -  4$ rM  rE   rH   s    r    r  rO    s    66!q&>1q5((r#   r   rw   )r   r   r   )r<   r<   r<   r<   r<   )x0r   r  rU  r   r  )r   r   r   r   N)r   r   rW  r   r.   r>   )r   r  min_kwdsopt_kwdsr   r   r^  s          r    test_21_1_jac_true$TestShgoArguments.test_21_1_jac_truez  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-   $ )Nrw   r   r;   rt   r)   rH   s    r    	objectiveATestShgoArguments.test_21_2_derivative_options.<locals>.objective  s*    qt8ad?Q1X-11r#   c                     SU S   -  S-   $ )NrL   r   r;   r)   rH   s    r    gradient@TestShgoArguments.test_21_2_derivative_options.<locals>.gradient  s    qt8a<r#   c                     gNrL   r)   rH   s    r    r  <TestShgoArguments.test_21_2_derivative_options.<locals>.hess  r  r#   c                     SU-  $ ra  r)   )r>   r4  s     r    rX  =TestShgoArguments.test_21_2_derivative_options.<locals>.hessp  s    q5Lr#   rW  r  r  )ir   r   r   r   )rQ  r   N)r   r   rW  rF   r   r   r.   r>   )r   rV  r[  r^  r  rX  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?rj  r   gffffff?rk  rk  )r  r  r  r  re  rt   rU  r   N)r   r   r   r   r   rF   zerosrW  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)   rH   s    r    rR  ;TestShgoArguments.test_21_arg_tuple_sobol.<locals>.<lambda>  s    1r#   r,   r   rs   )r<   rn  )r   r   r   r<   )r   r   r   N)r   r   rF   rl  rW  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)2r$   r%   r&   r'   rg  rk  ro  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  xfailr   sysplatformr  r  rb  r  r  r  r  r  r!  r0  ra  r5  rI  rT  parametrizerg  rm  ru  r(   r)   r#   r    rd  rd    s   I/DMAA&89t [[/ / [[
/ 
/TT
TMM
.A.(/E [[w:3<<7#:G  I
I
- [[?@	. A	.	'1
*E8G( [[2, ,$&L(2T [[\+CD1 E1>2&r#   rd  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;   Nrn  r+  Frv   )	r   r  r?   r   rF   r   r  rW  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 evaluationsrs   T)maxfevr   rw   rn  r   r   r   Fru   N)	r   
test_tabler?   r   rF   r   r  rW  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 evaluationsrs   Tmaxevr   rw   r  r  FN)r   r  r?   r   rF   r   r  rW  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)rL   rw   rw   rt   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))rw   rt   rt   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  rn  r   r   r   r   FN	r   test_infeasibler?   r   r4   rF   r   r  rW  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  rn  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  Nrn  r  )r   r   r?   r   r4   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   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>.funQ  s    HHMH8Or#   )scipy.optimizer   r   r(  r   r>   r.   )r   r   r   resultr.   r   s       @@r    r   TestShgoFailures.testM  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    r|  r|    s9    -3

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

44
42$.r#   r|  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   rF   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>.funl  r  r#   r   rn  r	  r  r  s      @r    test_1_nfev_sobol!TestShgoReturns.test_1_nfev_soboli  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      /$ rM  rF   asarrayrG   rH   s    r    quad$test_vector_constraint.<locals>.quadx  $    JJqMqAvr#   g@rw   r   rt  rn  r  r;   r   )
r   r   rF   r  r   r   allrG   r>   rW  )r  nlcoldcr   s       r    test_vector_constraintr  v  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      /$ rM  r  rH   s    r    r  test_trust_constr.<locals>.quad  r  r#   g@rw   r  r  rt  rn  )r   r   r   r;   r   )r   r   r   rF   r  rG   r>   rW  )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)   rH   s    r    faulty)test_equality_constraints.<locals>.faulty  s    tad{r#   333333@rT  c                     U S   U S   -   S-
  $ )Nr   r<   r  r)   rH   s    r    r  r    s    tad{S  r#   rN  r,   r>  rv   c                 6    U S   U S   -   U S   -   U S   -   S-
  $ rF  r)   rH   s    r    r  r    s+    tad{QqT!AaD(1,,r#   c                 0    [         R                  " U 5      * $ r   )rF   prodrH   s    r    rR  +test_equality_constraints.<locals>.<lambda>  s    BGGAJ,r#   rn  )r   r   r   r   )r   r   r   r   rF   rG   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  rE   rH   s    r    r4   test_gh16971.<locals>.cons  s    vvad|ar#   r+   )r.   r-   r  rt   r   g?)rhobegtolcatol)r  r   rt  r;   )r   r   r  cobylar   r  )r   r   r   lower)r4   cr   r   s       r    test_gh16971r    s      f%At<
 	y{	A h'--/8;;;i(1T999r#   )	r)   rr  r   NNNNrn  r<   )Ir   rx  r  numpyrF   r  multiprocessingr   numpy.testingr   r   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   r5   r7   r   r   r   rP   r  r   r   r^   r  rp   r  r   r  r   r   r1   r'  boundsLJr>  r   onesrJ  r   r  r   r  r  rb  r   r   r  rd  r|  r  r  filterwarningsr  r  r  r)   r#   r    <module>r     sF    
      2  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`& `&Hq. q.j7 74 /0 1,(B:r#   