objective_function()   A
last analyzed

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 time
3
import numpy as np
4
import pandas as pd
5
6
7
from ._parametrize import optimizers_non_deterministic as optimizers
8
from gradient_free_optimizers import DirectAlgorithm
9
10
11
def objective_function(para):
12
    score = -(para["x0"] * para["x0"] + para["x1"] * para["x1"])
13
    return score
14
15
16
search_space = {
17
    "x0": np.arange(-75, 100, 1),
18
    "x1": np.arange(-100, 75, 1),
19
}
20
21
err = 0.000001
22
23
n_iter = 10
24
n_random = 2
25
26
n_last = n_iter - n_random
27
28
29 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...
30
def test_random_state_0(Optimizer):
31
    opt0 = Optimizer(search_space, initialize={"random": n_random}, random_state=1)
32
    opt0.search(
33
        objective_function,
34
        n_iter=n_iter,
35
    )
36
37
    opt1 = Optimizer(search_space, initialize={"random": n_random}, random_state=1)
38
    opt1.search(
39
        objective_function,
40
        n_iter=n_iter,
41
    )
42
43
    print("\n opt0.search_data \n", opt0.search_data)
44
    print("\n opt1.search_data \n", opt1.search_data)
45
46
    n_last_scores0 = list(opt0.search_data["score"].values)[-n_last:]
47
    n_last_scores1 = list(opt1.search_data["score"].values)[-n_last:]
48
49
    assert abs(np.sum(n_last_scores0) - np.sum(n_last_scores1)) < err
50
51
52
@pytest.mark.parametrize(*optimizers)
53
def test_random_state_1(Optimizer):
54
    opt0 = Optimizer(search_space, initialize={"random": n_random}, random_state=10)
55
    opt0.search(
56
        objective_function,
57
        n_iter=n_iter,
58
    )
59
60
    opt1 = Optimizer(search_space, initialize={"random": n_random}, random_state=10)
61
    opt1.search(
62
        objective_function,
63
        n_iter=n_iter,
64
    )
65
66
    n_last_scores0 = list(opt0.search_data["score"].values)[-n_last:]
67
    n_last_scores1 = list(opt1.search_data["score"].values)[-n_last:]
68
69
    assert abs(np.sum(n_last_scores0) - np.sum(n_last_scores1)) < err
70
71
72 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...
73
def test_random_state_2(Optimizer):
74
    opt0 = Optimizer(search_space, initialize={"random": n_random}, random_state=1)
75
    opt0.search(
76
        objective_function,
77
        n_iter=n_iter,
78
    )
79
80
    opt1 = Optimizer(search_space, initialize={"random": n_random}, random_state=10)
81
    opt1.search(
82
        objective_function,
83
        n_iter=n_iter,
84
    )
85
86
    print("\n opt0.search_data \n", opt0.search_data)
87
    print("\n opt1.search_data \n", opt1.search_data)
88
89
    n_last_scores0 = list(opt0.search_data["score"].values)[-n_last:]
90
    n_last_scores1 = list(opt1.search_data["score"].values)[-n_last:]
91
92
    assert abs(np.sum(n_last_scores0) - np.sum(n_last_scores1)) > err
93
94
95 View Code Duplication
def test_random_state_direct():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
96
    opt0 = DirectAlgorithm(
97
        search_space, initialize={"random": n_random}, random_state=1
98
    )
99
    opt0.search(
100
        objective_function,
101
        n_iter=n_iter,
102
    )
103
104
    opt1 = DirectAlgorithm(
105
        search_space, initialize={"random": n_random}, random_state=10
106
    )
107
    opt1.search(
108
        objective_function,
109
        n_iter=n_iter,
110
    )
111
112
    print("\n opt0.search_data \n", opt0.search_data)
113
    print("\n opt1.search_data \n", opt1.search_data)
114
115
    n_last_scores0 = list(opt0.search_data["score"].values)[-n_last:]
116
    n_last_scores1 = list(opt1.search_data["score"].values)[-n_last:]
117
118
    assert abs(np.sum(n_last_scores0) - np.sum(n_last_scores1)) < err
119
120
121
@pytest.mark.parametrize(*optimizers)
122
def test_no_random_state_0(Optimizer):
123
    opt0 = Optimizer(search_space, initialize={"random": n_random})
124
    opt0.search(objective_function, n_iter=n_iter)
125
126
    opt1 = Optimizer(search_space, initialize={"random": n_random})
127
    opt1.search(objective_function, n_iter=n_iter)
128
129
    print("\n opt0.search_data \n", opt0.search_data)
130
    print("\n opt1.search_data \n", opt1.search_data)
131
132
    n_last_scores0 = list(opt0.search_data["score"].values)[-n_last:]
133
    n_last_scores1 = list(opt1.search_data["score"].values)[-n_last:]
134
135
    assert abs(np.sum(n_last_scores0) - np.sum(n_last_scores1)) > err
136