Passed
Pull Request — master (#101)
by Simon
01:35
created

test_initialize_grid_1()   A

Complexity

Conditions 1

Size

Total Lines 17
Code Lines 12

Duplication

Lines 17
Ratio 100 %

Importance

Changes 0
Metric Value
cc 1
eloc 12
nop 0
dl 17
loc 17
rs 9.8
c 0
b 0
f 0
1
import numpy as np
2
from hyperactive.optimizers import HillClimbingOptimizer
3
from hyperactive.experiment import BaseExperiment
4
from hyperactive.search_config import SearchConfig
5
6
7
class Experiment(BaseExperiment):
8
    def objective_function(self, opt):
9
        score = -opt["x1"] * opt["x1"]
10
        return score
11
12
13
experiment = Experiment()
14
15
16
search_config = SearchConfig(
17
    x1=list(np.arange(-100, 101, 1)),
18
)
19
20
21
def test_initialize_warm_start_0():
22
    init = {
23
        "x1": 0,
24
    }
25
26
    initialize = {"warm_start": [init]}
27
28
    hyper = HillClimbingOptimizer()
29
    hyper.add_search(
30
        experiment,
31
        search_config,
32
        n_iter=1,
33
        initialize=initialize,
34
    )
35
    hyper.run()
36
37
    assert abs(hyper.best_score(experiment)) < 0.001
38
39
40
def test_initialize_warm_start_1():
41
    search_space = {
42
        "x1": list(np.arange(-10, 10, 1)),
43
    }
44
    init = {
45
        "x1": -10,
46
    }
47
48
    initialize = {"warm_start": [init]}
49
50
    hyper = HillClimbingOptimizer()
51
    hyper.add_search(
52
        experiment,
53
        search_config,
54
        n_iter=1,
55
        initialize=initialize,
56
    )
57
    hyper.run()
58
59
    assert hyper.best_para(experiment) == init
60
61
62
def test_initialize_vertices():
63
    initialize = {"vertices": 2}
64
65
    hyper = HillClimbingOptimizer()
66
    hyper.add_search(
67
        experiment,
68
        search_config,
69
        n_iter=2,
70
        initialize=initialize,
71
    )
72
    hyper.run()
73
74
    assert abs(hyper.best_score(experiment)) - 10000 < 0.001
75
76
77 View Code Duplication
def test_initialize_grid_0():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
78
    search_space = {
79
        "x1": list(np.arange(-1, 2, 1)),
80
    }
81
    initialize = {"grid": 1}
82
83
    hyper = HillClimbingOptimizer()
84
    hyper.add_search(
85
        experiment,
86
        search_config,
87
        n_iter=1,
88
        initialize=initialize,
89
    )
90
    hyper.run()
91
92
    assert abs(hyper.best_score(experiment)) < 0.001
93
94
95 View Code Duplication
def test_initialize_grid_1():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
96
    search_space = {
97
        "x1": list(np.arange(-2, 3, 1)),
98
    }
99
100
    initialize = {"grid": 1}
101
102
    hyper = HillClimbingOptimizer()
103
    hyper.add_search(
104
        experiment,
105
        search_config,
106
        n_iter=1,
107
        initialize=initialize,
108
    )
109
    hyper.run()
110
111
    assert abs(hyper.best_score(experiment)) - 1 < 0.001
112
113
114
def test_initialize_all_0():
115
    search_space = {
116
        "x1": list(np.arange(-2, 3, 1)),
117
    }
118
119
    initialize = {"grid": 100, "vertices": 100, "random": 100}
120
121
    hyper = HillClimbingOptimizer()
122
    hyper.add_search(
123
        experiment,
124
        search_config,
125
        n_iter=300,
126
        initialize=initialize,
127
    )
128
    hyper.run()
129