Passed
Push — master ( 660aa4...4bb434 )
by Simon
01:29
created

test_direction_0()   A

Complexity

Conditions 1

Size

Total Lines 13
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 10
nop 0
dl 0
loc 13
rs 9.9
c 0
b 0
f 0
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import pytest
6
import numpy as np
7
8
9
from gradient_free_optimizers import GridSearchOptimizer
10
11
12
def parabola_function(para):
13
    loss = para["x"] * para["x"] + para["y"] * para["y"]
14
    return -loss
15
16
17
search_space = {
18
    "x": np.arange(-100, 100, 1),
19
    "y": np.arange(-100, 100, 1),
20
}
21
22
n_iter = 50
23
24
25
def test_direction_0():
26
    n_initialize = 1
27
    opt = GridSearchOptimizer(
28
        search_space, initialize={"vertices": n_initialize}, direction="orthogonal"
29
    )
30
    opt.search(parabola_function, n_iter=n_iter)
31
    search_data = opt.search_data
32
33
    print("\n search_data \n", search_data, "\n")
34
    y_data_count = search_data["y"].value_counts().to_dict()
35
    print("\n y_data_count \n", y_data_count, "\n")
36
37
    assert y_data_count[-100] >= n_iter - n_initialize
38