Passed
Push — master ( 626f23...be3b1e )
by Simon
01:48
created

ce_singleOpt()   A

Complexity

Conditions 2

Size

Total Lines 45
Code Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 32
nop 2
dl 0
loc 45
rs 9.112
c 0
b 0
f 0
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_search_tracker(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, initialize=initialize)
22
    opt.search(
23
        objective_function,
24
        n_iter=n_iter,
25
        memory=False,
26
        verbosity=False,
27
    )
28
29
    n_new_positions = 0
30
    n_new_scores = 0
31
32
    n_current_positions = 0
33
    n_current_scores = 0
34
35
    n_best_positions = 0
36
    n_best_scores = 0
37
38
    optimizers = opt.optimizers
39
    for optimizer in optimizers:
40
        n_new_positions = n_new_positions + len(optimizer.pos_new_list)
41
        n_new_scores = n_new_scores + len(optimizer.score_new_list)
42
43
        n_current_positions = n_current_positions + len(optimizer.pos_current_list)
44
        n_current_scores = n_current_scores + len(optimizer.score_current_list)
45
46
        n_best_positions = n_best_positions + len(optimizer.pos_best_list)
47
        n_best_scores = n_best_scores + len(optimizer.score_best_list)
48
49
    assert n_new_positions == n_iter
50
    assert n_new_scores == n_iter
51
52
    assert n_current_positions == n_current_scores
53
    assert n_current_positions <= n_new_positions
54
55
    assert n_best_positions == n_best_scores
56
    assert n_best_positions <= n_new_positions
57