forked from bayesian-optimization/BayesianOptimization
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_acceptance.py
69 lines (53 loc) · 1.7 KB
/
test_acceptance.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# import numpy as np
# from bayes_opt import BayesianOptimization
# from bayes_opt.util import ensure_rng
# def test_simple_optimization():
# """
# ...
# """
# def f(x, y):
# return -x ** 2 - (y - 1) ** 2 + 1
# optimizer = BayesianOptimization(
# f=f,
# pbounds={"x": (-3, 3), "y": (-3, 3)},
# random_state=12356,
# verbose=0,
# )
# optimizer.maximize(init_points=0, n_iter=25)
# max_target = optimizer.max["target"]
# max_x = optimizer.max["params"]["x"]
# max_y = optimizer.max["params"]["y"]
# assert (1 - max_target) < 1e-3
# assert np.abs(max_x - 0) < 1e-1
# assert np.abs(max_y - 1) < 1e-1
# def test_intermediate_optimization():
# """
# ...
# """
# def f(x, y, z):
# x_factor = np.exp(-(x - 2) ** 2) + (1 / (x ** 2 + 1))
# y_factor = np.exp(-(y - 6) ** 2 / 10)
# z_factor = (1 + 0.2 * np.cos(z)) / (1 + z ** 2)
# return (x_factor + y_factor) * z_factor
# optimizer = BayesianOptimization(
# f=f,
# pbounds={"x": (-7, 7), "y": (-7, 7), "z": (-7, 7)},
# random_state=56,
# verbose=0,
# )
# optimizer.maximize(init_points=0, n_iter=150)
# max_target = optimizer.max["target"]
# max_x = optimizer.max["params"]["x"]
# max_y = optimizer.max["params"]["y"]
# max_z = optimizer.max["params"]["z"]
# assert (2.640 - max_target) < 0
# assert np.abs(2 - max_x) < 1e-1
# assert np.abs(6 - max_y) < 1e-1
# assert np.abs(0 - max_z) < 1e-1
# if __name__ == '__main__':
# r"""
# CommandLine:
# python tests/test_bayesian_optimization.py
# """
# import pytest
# pytest.main([__file__])