Passed
Push — master ( b0b7f3...e3d174 )
by Simon
04:31
created

tests.test_optimizers.test_search_tracker   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 42
dl 0
loc 60
rs 10
c 0
b 0
f 0
wmc 2

1 Function

Rating   Name   Duplication   Size   Complexity  
A test_convex_convergence_singleOpt() 0 49 2
1
import pytest
2
from tqdm import tqdm
3
import numpy as np
4
5
from ._parametrize import optimizers
6
7
8
n_iter_para = ("n_iter", [(10), (20), (30)])
9
10
11
@pytest.mark.parametrize(*n_iter_para)
12
@pytest.mark.parametrize(*optimizers)
13
def test_convex_convergence_singleOpt(Optimizer, n_iter):
14
    def objective_function(para):
15
        score = -para["x1"] * para["x1"]
16
        return score
17
18
    search_space = {"x1": np.arange(-10, 11, 1)}
19
    initialize = {"vertices": 1}
20
21
    opt = Optimizer(search_space)
22
    opt.search(
23
        objective_function,
24
        n_iter=n_iter,
25
        memory=False,
26
        verbosity=False,
27
        initialize=initialize,
28
    )
29
30
    n_new_positions = 0
31
    n_new_scores = 0
32
33
    n_current_positions = 0
34
    n_current_scores = 0
35
36
    n_best_positions = 0
37
    n_best_scores = 0
38
39
    optimizers = opt.optimizers
40
    for optimizer in optimizers:
41
        n_new_positions = n_new_positions + len(optimizer.pos_new_list)
42
        n_new_scores = n_new_scores + len(optimizer.score_new_list)
43
44
        n_current_positions = n_current_positions + len(
45
            optimizer.pos_current_list
46
        )
47
        n_current_scores = n_current_scores + len(optimizer.score_current_list)
48
49
        n_best_positions = n_best_positions + len(optimizer.pos_best_list)
50
        n_best_scores = n_best_scores + len(optimizer.score_best_list)
51
52
    assert n_new_positions == n_iter
53
    assert n_new_scores == n_iter
54
55
    assert n_current_positions == n_current_scores
56
    assert n_current_positions <= n_new_positions
57
58
    assert n_best_positions == n_best_scores
59
    assert n_best_positions <= n_new_positions
60
61