@@ -67,13 +67,15 @@ def callback(intermediate_result: OptimizeResult):
6767 assert (
6868 intermediate_result .sample .shape [1 ] == intermediate_result .x .size
6969 )
70-
71- minimize (
72- lambda x : np .sum (x ** 2 , axis = 1 ),
73- ((- 10 , 3 ), (- 1 , 1 )),
74- maxeval = 10 ,
75- callback = callback ,
76- )
70+ try :
71+ minimize (
72+ lambda x : np .sum (x ** 2 , axis = 1 ),
73+ ((- 10 , 3 ), (- 1 , 1 )),
74+ maxeval = 10 ,
75+ callback = callback ,
76+ )
77+ except ImportError :
78+ pytest .skip (f"{ minimize .__name__ } requires additional dependencies that are not installed." )
7779
7880
7981@pytest .mark .parametrize (
@@ -104,16 +106,18 @@ def ackley(x, n: int = 2):
104106 )
105107
106108 bounds = [[- 32.768 , 20 ], [- 32.768 , 32.768 ]]
109+ try :
110+ res0 = minimize (lambda x : [ackley (x [0 ], 2 )], bounds , maxeval = 10 , seed = 123 )
111+ res1 = minimize (lambda x : [ackley (x [0 ], 2 )], bounds , maxeval = 10 , seed = 123 )
107112
108- res0 = minimize (lambda x : [ackley (x [0 ], 2 )], bounds , maxeval = 10 , seed = 123 )
109- res1 = minimize (lambda x : [ackley (x [0 ], 2 )], bounds , maxeval = 10 , seed = 123 )
110-
111- assert np .all (res0 .x == res1 .x )
112- assert np .all (res0 .fx == res1 .fx )
113- assert res0 .nit == res1 .nit
114- assert res0 .nfev == res1 .nfev
115- assert np .all (res0 .sample == res1 .sample )
116- assert np .all (res0 .fsample == res1 .fsample )
113+ assert np .all (res0 .x == res1 .x )
114+ assert np .all (res0 .fx == res1 .fx )
115+ assert res0 .nit == res1 .nit
116+ assert res0 .nfev == res1 .nfev
117+ assert np .all (res0 .sample == res1 .sample )
118+ assert np .all (res0 .fsample == res1 .fsample )
119+ except ImportError :
120+ pytest .skip (f"{ minimize .__name__ } requires additional dependencies that are not installed." )
117121
118122
119123def test_batched_sampling ():
@@ -133,11 +137,14 @@ def ackley(x, n: int = 2):
133137
134138 bounds = [[- 32.768 , 20 ], [- 32.768 , 32.768 ]]
135139
136- out = bayesian_optimization (
137- lambda x : [ackley (xi - 3.14 ) for xi in x ],
138- bounds = bounds ,
139- maxeval = 100 ,
140- batchSize = 10 ,
141- acquisitionFunc = MaximizeEI (pool_size = 200 , avoid_clusters = True ),
142- )
143- assert out .nfev == 100
140+ try :
141+ out = bayesian_optimization (
142+ lambda x : [ackley (xi - 3.14 ) for xi in x ],
143+ bounds = bounds ,
144+ maxeval = 100 ,
145+ batchSize = 10 ,
146+ acquisitionFunc = MaximizeEI (pool_size = 200 , avoid_clusters = True ),
147+ )
148+ assert out .nfev == 100
149+ except ImportError :
150+ pytest .skip ("scikit-learn is not installed, skipping Bayesian optimization tests." )
0 commit comments