tests.test_optimizers.test_parameter.test_evolution_strategy_para_init   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

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

2 Functions

Rating   Name   Duplication   Size   Complexity  
A objective_function() 0 3 1
A test_hill_climbing_para() 0 3 1
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import pytest
6
import numpy as np
7
8
from gradient_free_optimizers import EvolutionStrategyOptimizer
9
from ._base_para_test import _base_para_test_func
10
from gradient_free_optimizers import HillClimbingOptimizer
11
12
13
def objective_function(para):
14
    score = -para["x1"] * para["x1"]
15
    return score
16
17
18
search_space = {"x1": np.arange(-100, 101, 1)}
19
20
21
parallel_tempering_para = [
22
    ({"mutation_rate": 0.5}),
23
    ({"mutation_rate": 0.9}),
24
    ({"mutation_rate": 0.1}),
25
    ({"mutation_rate": 0}),
26
    ({"mutation_rate": 2}),
27
    ({"crossover_rate": 0.5}),
28
    ({"crossover_rate": 0.9}),
29
    ({"crossover_rate": 0.1}),
30
    ({"crossover_rate": 0}),
31
    ({"crossover_rate": 2}),
32
    ({"population": 1}),
33
    ({"population": 2}),
34
    ({"population": 100}),
35
    (
36
        {
37
            "population": [
38
                HillClimbingOptimizer(search_space),
39
                HillClimbingOptimizer(search_space),
40
                HillClimbingOptimizer(search_space),
41
                HillClimbingOptimizer(search_space),
42
            ]
43
        }
44
    ),
45
    ({"rand_rest_p": 0}),
46
    ({"rand_rest_p": 0.5}),
47
    ({"rand_rest_p": 1}),
48
]
49
50
51
pytest_wrapper = ("opt_para", parallel_tempering_para)
52
53
54
@pytest.mark.parametrize(*pytest_wrapper)
55
def test_hill_climbing_para(opt_para):
56
    _base_para_test_func(opt_para, EvolutionStrategyOptimizer)
57