Passed
Push — master ( e19d4b...e37ecf )
by Simon
04:39
created

tests.test_optimizers.test_memory_warm_start   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 67
Duplicated Lines 80.6 %

Importance

Changes 0
Metric Value
eloc 47
dl 54
loc 67
rs 10
c 0
b 0
f 0
wmc 2

2 Functions

Rating   Name   Duplication   Size   Complexity  
A test_memory_warm_start_1() 27 27 1
A test_memory_warm_start_0() 27 27 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
import pytest
2
import time
3
import numpy as np
4
import pandas as pd
5
from gradient_free_optimizers import GridSearchOptimizer
6
7
8
from ._parametrize import optimizers_non_smbo, optimizers_smbo
9
10
11 View Code Duplication
@pytest.mark.parametrize(*optimizers_non_smbo)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
12
def test_memory_warm_start_0(Optimizer_non_smbo):
13
    def objective_function(para):
14
        time.sleep(0.1)
15
        score = -para["x1"] * para["x1"]
16
        return score
17
18
    search_space = {
19
        "x1": np.arange(0, 10, 1),
20
    }
21
22
    n_iter = 20
23
24
    c_time1 = time.time()
25
    opt0 = GridSearchOptimizer(search_space)
26
    opt0.search(objective_function, n_iter=n_iter)
27
    diff_time1 = time.time() - c_time1
28
29
    c_time2 = time.time()
30
    opt1 = Optimizer_non_smbo(search_space)
31
    opt1.search(objective_function, n_iter=n_iter, memory_warm_start=opt0.search_data)
32
    diff_time2 = time.time() - c_time2
33
34
    print("\n diff_time1 ", diff_time1)
35
    print("\n diff_time2 ", diff_time2)
36
37
    assert diff_time2 < diff_time1 * 0.5
38
39
40 View Code Duplication
@pytest.mark.parametrize(*optimizers_smbo)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
41
def test_memory_warm_start_1(Optimizer_smbo):
42
    def objective_function(para):
43
        time.sleep(0.5)
44
        score = -para["x1"] * para["x1"]
45
        return score
46
47
    search_space = {
48
        "x1": np.arange(0, 1, 1),
49
    }
50
51
    n_iter = 2
52
53
    c_time1 = time.time()
54
    opt0 = GridSearchOptimizer(search_space)
55
    opt0.search(objective_function, n_iter=n_iter)
56
    diff_time1 = time.time() - c_time1
57
58
    c_time2 = time.time()
59
    opt1 = Optimizer_smbo(search_space)
60
    opt1.search(objective_function, n_iter=n_iter, memory_warm_start=opt0.search_data)
61
    diff_time2 = time.time() - c_time2
62
63
    print("\n diff_time1 ", diff_time1)
64
    print("\n diff_time2 ", diff_time2)
65
66
    assert diff_time2 < diff_time1 * 0.5
67