tests.test_optimizers.test_search_tracker   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 39
dl 0
loc 57
rs 10
c 0
b 0
f 0
wmc 2

1 Function

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