Passed
Push — master ( 2d5f27...fd0b7f )
by Simon
01:30
created

tests.Bayesian   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 59
Duplicated Lines 16.95 %

Importance

Changes 0
Metric Value
wmc 13
eloc 36
dl 10
loc 59
rs 10
c 0
b 0
f 0

7 Functions

Rating   Name   Duplication   Size   Complexity  
A test_warm_start_smbo() 0 4 2
A _base_test() 10 10 3
A test_skip_retrain() 0 4 2
A get_score() 0 2 1
A test_start_up_evals() 0 4 2
A test_max_sample_size() 0 4 2
A _test_BayesianOptimizer() 0 3 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import numpy as np
6
7
from gradient_free_optimizers import BayesianOptimizer
8
9
n_iter = 100
10
11
12
def get_score(pos_new):
13
    return -(pos_new[0] * pos_new[0])
14
15
16
space_dim = np.array([10])
17
init_positions = [np.array([0]), np.array([1]), np.array([2]), np.array([3])]
18
19
20 View Code Duplication
def _base_test(opt):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
21
    for nth_init in range(len(init_positions)):
22
        pos_new = opt.init_pos(nth_init)
23
        score_new = get_score(pos_new)
24
        opt.evaluate(score_new)
25
26
    for nth_iter in range(len(init_positions), n_iter):
27
        pos_new = opt.iterate(nth_iter)
28
        score_new = get_score(pos_new)
29
        opt.evaluate(score_new)
30
31
32
def _test_BayesianOptimizer(opt_para):
33
    opt = BayesianOptimizer(init_positions, space_dim, opt_para=opt_para)
34
    _base_test(opt)
35
36
37
def test_skip_retrain():
38
    for skip_retrain in ["many", "some", "few", "never"]:
39
        opt_para = {"skip_retrain": skip_retrain}
40
        _test_BayesianOptimizer(opt_para)
41
42
43
def test_start_up_evals():
44
    for start_up_evals in [0, 1, 100]:
45
        opt_para = {"start_up_evals": start_up_evals}
46
        _test_BayesianOptimizer(opt_para)
47
48
49
def test_warm_start_smbo():
50
    for warm_start_smbo in [True, False]:
51
        opt_para = {"warm_start_smbo": warm_start_smbo}
52
        _test_BayesianOptimizer(opt_para)
53
54
55
def test_max_sample_size():
56
    for max_sample_size in [10, 100, 10000, 10000000000]:
57
        opt_para = {"max_sample_size": max_sample_size}
58
        _test_BayesianOptimizer(opt_para)
59