Passed
Push — master ( e19d4b...e37ecf )
by Simon
04:39
created

test_initialize_vertices()   A

Complexity

Conditions 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

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