Skip to content

Commit ca65282

Browse files
committed
add tests for opt. strat.
1 parent 5cb7b1d commit ca65282

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import pytest
2+
import numpy as np
3+
4+
5+
from hyperactive import Hyperactive
6+
from hyperactive.optimizers.strategies import CustomOptimizationStrategy
7+
from hyperactive.optimizers import HillClimbingOptimizer
8+
9+
from ._parametrize import optimizers
10+
11+
12+
def objective_function(opt):
13+
score = -(opt["x1"] * opt["x1"] + opt["x2"] * opt["x2"])
14+
return score
15+
16+
17+
search_space = {
18+
"x1": list(np.arange(-3, 3, 1)),
19+
"x2": list(np.arange(-3, 3, 1)),
20+
}
21+
22+
23+
@pytest.mark.parametrize(*optimizers)
24+
def test_strategy_combinations_0(Optimizer):
25+
optimizer1 = Optimizer()
26+
optimizer2 = HillClimbingOptimizer()
27+
28+
opt_strat = CustomOptimizationStrategy()
29+
opt_strat.add_optimizer(optimizer1, duration=0.5)
30+
opt_strat.add_optimizer(optimizer2, duration=0.5)
31+
32+
n_iter = 4
33+
34+
hyper = Hyperactive()
35+
hyper.add_search(
36+
objective_function,
37+
search_space,
38+
optimizer=opt_strat,
39+
n_iter=n_iter,
40+
memory=False,
41+
initialize={"random": 1},
42+
)
43+
hyper.run()
44+
45+
search_data = hyper.search_data(objective_function)
46+
47+
optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
48+
optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
49+
50+
assert len(search_data) == n_iter
51+
52+
assert len(optimizer1.search_data) == 2
53+
assert len(optimizer2.search_data) == 2
54+
55+
assert optimizer1.best_score <= optimizer2.best_score

0 commit comments

Comments
 (0)