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

tests_old.test_optimizers.test_best_results   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 108
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 77
dl 0
loc 108
rs 10
c 0
b 0
f 0
wmc 5

5 Functions

Rating   Name   Duplication   Size   Complexity  
A test_best_results_0() 0 22 1
A objective_function_p5() 0 3 1
A test_best_results_1() 0 22 1
A objective_function() 0 3 1
A objective_function_m5() 0 3 1
1
import pytest
2
import numpy as np
3
4
5
from hyperactive import Hyperactive
6
from ._parametrize import optimizers
7
8
9
def objective_function(opt):
10
    score = -opt["x1"] * opt["x1"]
11
    return score
12
13
14
def objective_function_m5(opt):
15
    score = -(opt["x1"] - 5) * (opt["x1"] - 5)
16
    return score
17
18
19
def objective_function_p5(opt):
20
    score = -(opt["x1"] + 5) * (opt["x1"] + 5)
21
    return score
22
23
24
search_space_0 = {"x1": list(np.arange(-100, 101, 1))}
25
search_space_1 = {"x1": list(np.arange(0, 101, 1))}
26
search_space_2 = {"x1": list(np.arange(-100, 1, 1))}
27
28
search_space_3 = {"x1": list(np.arange(-10, 11, 0.1))}
29
search_space_4 = {"x1": list(np.arange(0, 11, 0.1))}
30
search_space_5 = {"x1": list(np.arange(-10, 1, 0.1))}
31
32
search_space_6 = {"x1": list(np.arange(-0.0000000003, 0.0000000003, 0.0000000001))}
33
search_space_7 = {"x1": list(np.arange(0, 0.0000000003, 0.0000000001))}
34
search_space_8 = {"x1": list(np.arange(-0.0000000003, 0, 0.0000000001))}
35
36
objective_para = (
37
    "objective",
38
    [
39
        (objective_function),
40
        (objective_function_m5),
41
        (objective_function_p5),
42
    ],
43
)
44
45
search_space_para = (
46
    "search_space",
47
    [
48
        (search_space_0),
49
        (search_space_1),
50
        (search_space_2),
51
        (search_space_3),
52
        (search_space_4),
53
        (search_space_5),
54
        (search_space_6),
55
        (search_space_7),
56
        (search_space_8),
57
    ],
58
)
59
60
61
@pytest.mark.parametrize(*objective_para)
62
@pytest.mark.parametrize(*search_space_para)
63
@pytest.mark.parametrize(*optimizers)
64
def test_best_results_0(Optimizer, search_space, objective):
65
    search_space = search_space
66
    objective_function = objective
67
68
    initialize = {"vertices": 2}
69
70
    hyper = Hyperactive()
71
    hyper.add_search(
72
        objective_function,
73
        search_space,
74
        optimizer=Optimizer(),
75
        n_iter=10,
76
        memory=False,
77
        initialize=initialize,
78
    )
79
    hyper.run()
80
81
    assert hyper.best_score(objective_function) == objective_function(
82
        hyper.best_para(objective_function)
83
    )
84
85
86
@pytest.mark.parametrize(*objective_para)
87
@pytest.mark.parametrize(*search_space_para)
88
@pytest.mark.parametrize(*optimizers)
89
def test_best_results_1(Optimizer, search_space, objective):
90
    search_space = search_space
91
    objective_function = objective
92
93
    initialize = {"vertices": 2}
94
95
    hyper = Hyperactive()
96
    hyper.add_search(
97
        objective_function,
98
        search_space,
99
        optimizer=Optimizer(),
100
        n_iter=10,
101
        memory=False,
102
        initialize=initialize,
103
    )
104
    hyper.run()
105
106
    assert hyper.best_para(objective_function)["x1"] in list(
107
        hyper.search_data(objective_function)["x1"]
108
    )
109