Code Duplication    Length = 32-33 lines in 5 locations

tests/_local_test_optimization_strategies/_test_memory_warm_start_smbo.py 1 location

@@ 24-55 (lines=32) @@
21
}
22
23
24
@pytest.mark.parametrize(*optimizers_smbo)
25
def test_memory_Warm_start_smbo_0(Optimizer_smbo):
26
    optimizer1 = GridSearchOptimizer()
27
    optimizer2 = Optimizer_smbo()
28
29
    opt_strat = CustomOptimizationStrategy()
30
    opt_strat.add_optimizer(optimizer1, duration=0.8)
31
    opt_strat.add_optimizer(optimizer2, duration=0.2)
32
33
    n_iter = 100
34
35
    hyper = Hyperactive()
36
    hyper.add_search(
37
        objective_function,
38
        search_space,
39
        optimizer=opt_strat,
40
        n_iter=n_iter,
41
        memory=True,
42
    )
43
    hyper.run()
44
45
    search_data = hyper.search_data(objective_function)
46
47
    optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
48
    optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
49
50
    assert len(search_data) == n_iter
51
52
    assert len(optimizer1.search_data) == 80
53
    assert len(optimizer2.search_data) == 20
54
55
    assert optimizer1.best_score <= optimizer2.best_score
56

tests/test_optimizers/test_optimization_strategies.py 1 location

@@ 25-57 (lines=33) @@
22
}
23
24
25
@pytest.mark.parametrize(*optimizers)
26
def test_strategy_combinations_0(Optimizer):
27
    """Test custom optimization strategy with multiple optimizers."""
28
    optimizer1 = Optimizer()
29
    optimizer2 = HillClimbingOptimizer()
30
31
    opt_strat = CustomOptimizationStrategy()
32
    opt_strat.add_optimizer(optimizer1, duration=0.5)
33
    opt_strat.add_optimizer(optimizer2, duration=0.5)
34
35
    n_iter = 4
36
37
    hyper = Hyperactive()
38
    hyper.add_search(
39
        objective_function,
40
        search_space,
41
        optimizer=opt_strat,
42
        n_iter=n_iter,
43
        memory=False,
44
        initialize={"random": 1},
45
    )
46
    hyper.run()
47
48
    search_data = hyper.search_data(objective_function)
49
50
    optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
51
    optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
52
53
    assert len(search_data) == n_iter
54
55
    assert len(optimizer1.search_data) == 2
56
    assert len(optimizer2.search_data) == 2
57
58
    assert optimizer1.best_score <= optimizer2.best_score
59

tests/_local_test_optimization_strategies/_test_strategy_combinations.py 3 locations

@@ 91-123 (lines=33) @@
88
    assert optimizer1.best_score <= optimizer2.best_score
89
90
91
@pytest.mark.parametrize(*optimizers)
92
@pytest.mark.parametrize(*optimizers_strat)
93
def test_strategy_combinations_2(Optimizer, Optimizer_strat):
94
    optimizer1 = Optimizer()
95
    optimizer2 = Optimizer_strat()
96
97
    opt_strat = CustomOptimizationStrategy()
98
    opt_strat.add_optimizer(optimizer1, duration=0.9)
99
    opt_strat.add_optimizer(optimizer2, duration=0.1)
100
101
    n_iter = 10
102
103
    hyper = Hyperactive()
104
    hyper.add_search(
105
        objective_function,
106
        search_space,
107
        optimizer=opt_strat,
108
        n_iter=n_iter,
109
        memory=False,
110
    )
111
    hyper.run()
112
113
    search_data = hyper.search_data(objective_function)
114
115
    optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
116
    optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
117
118
    assert len(search_data) == n_iter
119
120
    assert len(optimizer1.search_data) == 9
121
    assert len(optimizer2.search_data) == 1
122
123
    assert optimizer1.best_score <= optimizer2.best_score
124
125
126
@pytest.mark.parametrize(*optimizers)
@@ 56-88 (lines=33) @@
53
    assert optimizer1.best_score <= optimizer2.best_score
54
55
56
@pytest.mark.parametrize(*optimizers)
57
@pytest.mark.parametrize(*optimizers_strat)
58
def test_strategy_combinations_1(Optimizer, Optimizer_strat):
59
    optimizer1 = Optimizer()
60
    optimizer2 = Optimizer_strat()
61
62
    opt_strat = CustomOptimizationStrategy()
63
    opt_strat.add_optimizer(optimizer1, duration=0.1)
64
    opt_strat.add_optimizer(optimizer2, duration=0.9)
65
66
    n_iter = 10
67
68
    hyper = Hyperactive()
69
    hyper.add_search(
70
        objective_function,
71
        search_space,
72
        optimizer=opt_strat,
73
        n_iter=n_iter,
74
        memory=False,
75
    )
76
    hyper.run()
77
78
    search_data = hyper.search_data(objective_function)
79
80
    optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
81
    optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
82
83
    assert len(search_data) == n_iter
84
85
    assert len(optimizer1.search_data) == 1
86
    assert len(optimizer2.search_data) == 9
87
88
    assert optimizer1.best_score <= optimizer2.best_score
89
90
91
@pytest.mark.parametrize(*optimizers)
@@ 21-53 (lines=33) @@
18
}
19
20
21
@pytest.mark.parametrize(*optimizers)
22
@pytest.mark.parametrize(*optimizers_strat)
23
def test_strategy_combinations_0(Optimizer, Optimizer_strat):
24
    optimizer1 = Optimizer()
25
    optimizer2 = Optimizer_strat()
26
27
    opt_strat = CustomOptimizationStrategy()
28
    opt_strat.add_optimizer(optimizer1, duration=0.5)
29
    opt_strat.add_optimizer(optimizer2, duration=0.5)
30
31
    n_iter = 30
32
33
    hyper = Hyperactive()
34
    hyper.add_search(
35
        objective_function,
36
        search_space,
37
        optimizer=opt_strat,
38
        n_iter=n_iter,
39
        memory=False,
40
    )
41
    hyper.run()
42
43
    search_data = hyper.search_data(objective_function)
44
45
    optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"]
46
    optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"]
47
48
    assert len(search_data) == n_iter
49
50
    assert len(optimizer1.search_data) == 15
51
    assert len(optimizer2.search_data) == 15
52
53
    assert optimizer1.best_score <= optimizer2.best_score
54
55
56
@pytest.mark.parametrize(*optimizers)