Passed
Push — master ( 8e1ab0...b032b3 )
by Simon
01:32
created

objective_function_m5()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
import pytest
2
import numpy as np
3
4
from ._parametrize import optimizers
5
6
7
def objective_function(opt):
8
    score = -opt["x1"] * opt["x1"]
9
    return score
10
11
12
def objective_function_m5(opt):
13
    score = -(opt["x1"] - 5) * (opt["x1"] - 5)
14
    return score
15
16
17
def objective_function_p5(opt):
18
    score = -(opt["x1"] + 5) * (opt["x1"] + 5)
19
    return score
20
21
22
search_space_0 = {"x1": np.arange(-100, 101, 1)}
23
search_space_1 = {"x1": np.arange(0, 101, 1)}
24
search_space_2 = {"x1": np.arange(-100, 1, 1)}
25
26
search_space_3 = {"x1": np.arange(-10, 11, 0.1)}
27
search_space_4 = {"x1": np.arange(0, 11, 0.1)}
28
search_space_5 = {"x1": np.arange(-10, 1, 0.1)}
29
30
search_space_6 = {"x1": np.arange(-0.0000000003, 0.0000000003, 0.0000000001)}
31
search_space_7 = {"x1": np.arange(0, 0.0000000003, 0.0000000001)}
32
search_space_8 = {"x1": np.arange(-0.0000000003, 0, 0.0000000001)}
33
34
objective_para = (
35
    "objective",
36
    [
37
        (objective_function),
38
        (objective_function_m5),
39
        (objective_function_p5),
40
    ],
41
)
42
43
search_space_para = (
44
    "search_space",
45
    [
46
        (search_space_0),
47
        (search_space_1),
48
        (search_space_2),
49
        (search_space_3),
50
        (search_space_4),
51
        (search_space_5),
52
        (search_space_6),
53
        (search_space_7),
54
        (search_space_8),
55
    ],
56
)
57
58
59
@pytest.mark.parametrize(*objective_para)
60
@pytest.mark.parametrize(*search_space_para)
61
@pytest.mark.parametrize(*optimizers)
62
def test_best_results_0(Optimizer, search_space, objective):
63
    search_space = search_space
64
    objective_function = objective
65
66
    initialize = {"vertices": 2}
67
68
    opt = Optimizer()
69
    opt.init(search_space, initialize)
70
    opt.search(objective_function, n_iter=10)
71
72
    assert opt.best_score == objective_function(opt.best_para)
73