tests.test_optimizers.test_opt_algos_simple   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

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

2 Functions

Rating   Name   Duplication   Size   Complexity  
A objective_function() 0 3 1
A test_opt_algos_0() 0 8 1
1
from gradient_free_optimizers.optimizers.core_optimizer import search_tracker
2
import pytest
3
import numpy as np
4
5
from gradient_free_optimizers import (
6
    HillClimbingOptimizer,
7
    StochasticHillClimbingOptimizer,
8
    RepulsingHillClimbingOptimizer,
9
    SimulatedAnnealingOptimizer,
10
    DownhillSimplexOptimizer,
11
    RandomSearchOptimizer,
12
    GridSearchOptimizer,
13
    RandomRestartHillClimbingOptimizer,
14
    PowellsMethod,
15
    PatternSearch,
16
    RandomAnnealingOptimizer,
17
    ParallelTemperingOptimizer,
18
    ParticleSwarmOptimizer,
19
    EvolutionStrategyOptimizer,
20
    BayesianOptimizer,
21
    TreeStructuredParzenEstimators,
22
    ForestOptimizer,
23
)
24
25
optimizers = (
26
    "Optimizer",
27
    [
28
        (HillClimbingOptimizer),
29
        (StochasticHillClimbingOptimizer),
30
        (RepulsingHillClimbingOptimizer),
31
        (SimulatedAnnealingOptimizer),
32
        (DownhillSimplexOptimizer),
33
        (RandomSearchOptimizer),
34
        (GridSearchOptimizer),
35
        (RandomRestartHillClimbingOptimizer),
36
        (PowellsMethod),
37
        (PatternSearch),
38
        (RandomAnnealingOptimizer),
39
        (ParallelTemperingOptimizer),
40
        (ParticleSwarmOptimizer),
41
        (EvolutionStrategyOptimizer),
42
        (BayesianOptimizer),
43
        (TreeStructuredParzenEstimators),
44
        (ForestOptimizer),
45
    ],
46
)
47
48
49
def objective_function(para):
50
    score = -para["x1"] * para["x1"]
51
    return score
52
53
54
search_space = {
55
    "x1": np.arange(0, 10, 1),
56
}
57
58
59
@pytest.mark.parametrize(*optimizers)
60
def test_opt_algos_0(Optimizer):
61
    opt = Optimizer(search_space)
62
    opt.search(objective_function, n_iter=15)
63
64
    _ = opt.best_para
65
    _ = opt.best_score
66
    _ = opt.search_data
67