Skip to content

Commit 781cbc5

Browse files
committed
revert tests
1 parent 339170a commit 781cbc5

67 files changed

Lines changed: 5285 additions & 1280 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
File renamed without changes.
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
from hyperactive.optimizers import (
2+
HillClimbingOptimizer,
3+
StochasticHillClimbingOptimizer,
4+
RepulsingHillClimbingOptimizer,
5+
SimulatedAnnealingOptimizer,
6+
DownhillSimplexOptimizer,
7+
RandomSearchOptimizer,
8+
GridSearchOptimizer,
9+
RandomRestartHillClimbingOptimizer,
10+
RandomAnnealingOptimizer,
11+
PowellsMethod,
12+
PatternSearch,
13+
ParallelTemperingOptimizer,
14+
ParticleSwarmOptimizer,
15+
SpiralOptimization,
16+
EvolutionStrategyOptimizer,
17+
BayesianOptimizer,
18+
LipschitzOptimizer,
19+
DirectAlgorithm,
20+
TreeStructuredParzenEstimators,
21+
ForestOptimizer,
22+
)
23+
24+
25+
optimizers = (
26+
"Optimizer",
27+
[
28+
(HillClimbingOptimizer),
29+
(StochasticHillClimbingOptimizer),
30+
(RepulsingHillClimbingOptimizer),
31+
(SimulatedAnnealingOptimizer),
32+
(DownhillSimplexOptimizer),
33+
(RandomSearchOptimizer),
34+
(GridSearchOptimizer),
35+
(RandomRestartHillClimbingOptimizer),
36+
(RandomAnnealingOptimizer),
37+
(PowellsMethod),
38+
(PatternSearch),
39+
(ParallelTemperingOptimizer),
40+
(ParticleSwarmOptimizer),
41+
(SpiralOptimization),
42+
(EvolutionStrategyOptimizer),
43+
(BayesianOptimizer),
44+
(LipschitzOptimizer),
45+
(DirectAlgorithm),
46+
(TreeStructuredParzenEstimators),
47+
(ForestOptimizer),
48+
],
49+
)
50+
51+
52+
optimizers_strat = (
53+
"Optimizer_strat",
54+
[
55+
(HillClimbingOptimizer),
56+
(StochasticHillClimbingOptimizer),
57+
(RepulsingHillClimbingOptimizer),
58+
(SimulatedAnnealingOptimizer),
59+
(DownhillSimplexOptimizer),
60+
(RandomSearchOptimizer),
61+
(GridSearchOptimizer),
62+
(RandomRestartHillClimbingOptimizer),
63+
(RandomAnnealingOptimizer),
64+
(PowellsMethod),
65+
(PatternSearch),
66+
(ParallelTemperingOptimizer),
67+
(ParticleSwarmOptimizer),
68+
(SpiralOptimization),
69+
(EvolutionStrategyOptimizer),
70+
(BayesianOptimizer),
71+
(LipschitzOptimizer),
72+
(DirectAlgorithm),
73+
(TreeStructuredParzenEstimators),
74+
(ForestOptimizer),
75+
],
76+
)
77+
78+
79+
optimizers_non_smbo = (
80+
"Optimizer_non_smbo",
81+
[
82+
(HillClimbingOptimizer),
83+
(StochasticHillClimbingOptimizer),
84+
(RepulsingHillClimbingOptimizer),
85+
(SimulatedAnnealingOptimizer),
86+
(DownhillSimplexOptimizer),
87+
(RandomSearchOptimizer),
88+
(GridSearchOptimizer),
89+
(RandomRestartHillClimbingOptimizer),
90+
(RandomAnnealingOptimizer),
91+
(PowellsMethod),
92+
(PatternSearch),
93+
(ParallelTemperingOptimizer),
94+
(ParticleSwarmOptimizer),
95+
(SpiralOptimization),
96+
(EvolutionStrategyOptimizer),
97+
],
98+
)
99+
100+
101+
optimizers_smbo = (
102+
"Optimizer_smbo",
103+
[
104+
(BayesianOptimizer),
105+
(LipschitzOptimizer),
106+
(DirectAlgorithm),
107+
(TreeStructuredParzenEstimators),
108+
(ForestOptimizer),
109+
],
110+
)
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
import time
2+
import pytest
3+
import numpy as np
4+
5+
6+
from hyperactive import Hyperactive
7+
from hyperactive.optimizers.strategies import CustomOptimizationStrategy
8+
from hyperactive.optimizers import GridSearchOptimizer
9+
10+
from ._parametrize import optimizers_non_smbo
11+
12+
13+
def objective_function(opt):
14+
time.sleep(0.01)
15+
score = -(opt["x1"] * opt["x1"])
16+
return score
17+
18+
19+
search_space = {
20+
"x1": list(np.arange(0, 100, 1)),
21+
}
22+
23+
24+
def test_memory_Warm_start_0():
25+
optimizer1 = GridSearchOptimizer()
26+
optimizer2 = GridSearchOptimizer()
27+
28+
opt_strat = CustomOptimizationStrategy()
29+
opt_strat.add_optimizer(optimizer1, duration=0.2)
30+
opt_strat.add_optimizer(optimizer2, duration=0.8)
31+
32+
n_iter = 1000
33+
34+
c_time = time.time()
35+
36+
hyper = Hyperactive()
37+
hyper.add_search(
38+
objective_function,
39+
search_space,
40+
optimizer=opt_strat,
41+
n_iter=n_iter,
42+
memory=True,
43+
)
44+
hyper.run()
45+
46+
d_time = time.time() - c_time
47+
48+
search_data = hyper.search_data(objective_function)
49+
50+
optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
51+
optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
52+
53+
assert len(search_data) == n_iter
54+
55+
assert len(optimizer1.search_data) == 200
56+
assert len(optimizer2.search_data) == 800
57+
58+
assert optimizer1.best_score <= optimizer2.best_score
59+
60+
print("\n d_time", d_time)
61+
62+
assert d_time < 3
63+
64+
65+
def test_memory_Warm_start_1():
66+
optimizer1 = GridSearchOptimizer()
67+
optimizer2 = GridSearchOptimizer()
68+
69+
opt_strat = CustomOptimizationStrategy()
70+
opt_strat.add_optimizer(optimizer1, duration=0.2)
71+
opt_strat.add_optimizer(optimizer2, duration=0.8)
72+
73+
n_iter = 100
74+
75+
search_space = {
76+
"x1": list(np.arange(0, 1, 1)),
77+
}
78+
79+
c_time = time.time()
80+
81+
hyper = Hyperactive()
82+
hyper.add_search(
83+
objective_function,
84+
search_space,
85+
optimizer=opt_strat,
86+
n_iter=n_iter,
87+
memory=False,
88+
)
89+
hyper.run()
90+
91+
d_time = time.time() - c_time
92+
93+
search_data = hyper.search_data(objective_function)
94+
95+
optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
96+
optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
97+
98+
assert len(search_data) == n_iter
99+
100+
assert len(optimizer1.search_data) == 20
101+
assert len(optimizer2.search_data) == 80
102+
103+
assert optimizer1.best_score <= optimizer2.best_score
104+
105+
print("\n d_time", d_time)
106+
107+
assert d_time > 0.95
108+
109+
110+
111+
@pytest.mark.parametrize(*optimizers_non_smbo)
112+
def test_memory_Warm_start_2(Optimizer_non_smbo):
113+
optimizer1 = GridSearchOptimizer()
114+
optimizer2 = Optimizer_non_smbo()
115+
116+
opt_strat = CustomOptimizationStrategy()
117+
opt_strat.add_optimizer(optimizer1, duration=0.5)
118+
opt_strat.add_optimizer(optimizer2, duration=0.5)
119+
120+
search_space = {
121+
"x1": list(np.arange(0, 50, 1)),
122+
}
123+
124+
n_iter = 100
125+
126+
c_time = time.time()
127+
128+
hyper = Hyperactive()
129+
hyper.add_search(
130+
objective_function,
131+
search_space,
132+
optimizer=opt_strat,
133+
n_iter=n_iter,
134+
memory=True,
135+
)
136+
hyper.run()
137+
138+
d_time = time.time() - c_time
139+
140+
search_data = hyper.search_data(objective_function)
141+
142+
optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
143+
optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
144+
145+
assert len(search_data) == n_iter
146+
147+
assert len(optimizer1.search_data) == 50
148+
assert len(optimizer2.search_data) == 50
149+
150+
assert optimizer1.best_score <= optimizer2.best_score
151+
152+
print("\n d_time", d_time)
153+
154+
assert d_time < 0.9
155+
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import time
2+
import pytest
3+
import numpy as np
4+
5+
6+
from hyperactive import Hyperactive
7+
from hyperactive.optimizers.strategies import CustomOptimizationStrategy
8+
from hyperactive.optimizers import GridSearchOptimizer
9+
10+
from ._parametrize import optimizers_smbo
11+
12+
13+
def objective_function(opt):
14+
time.sleep(0.01)
15+
score = -(opt["x1"] * opt["x1"])
16+
return score
17+
18+
19+
search_space = {
20+
"x1": list(np.arange(0, 100, 1)),
21+
}
22+
23+
24+
@pytest.mark.parametrize(*optimizers_smbo)
25+
def test_memory_Warm_start_smbo_0(Optimizer_smbo):
26+
optimizer1 = GridSearchOptimizer()
27+
optimizer2 = Optimizer_smbo()
28+
29+
opt_strat = CustomOptimizationStrategy()
30+
opt_strat.add_optimizer(optimizer1, duration=0.8)
31+
opt_strat.add_optimizer(optimizer2, duration=0.2)
32+
33+
n_iter = 100
34+
35+
hyper = Hyperactive()
36+
hyper.add_search(
37+
objective_function,
38+
search_space,
39+
optimizer=opt_strat,
40+
n_iter=n_iter,
41+
memory=True,
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) == 80
53+
assert len(optimizer2.search_data) == 20
54+
55+
assert optimizer1.best_score <= optimizer2.best_score

0 commit comments

Comments
 (0)