Passed
Pull Request — master (#28)
by Grega
01:01
created

Utility   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 1
Metric Value
c 4
b 0
f 1
dl 0
loc 28
rs 10
wmc 11

1 Method

Rating   Name   Duplication   Size   Complexity  
F get_benchmark() 0 25 11
1
"""Utilities for benchmarks."""
2
3
from . import Rastrigin, Rosenbrock, Griewank, \
4
    Sphere, Ackley, Schwefel, Schwefel221, \
5
    Schwefel222, Whitley
6
7
__all__ = ['Utility']
8
9
10
class Utility(object):
11
12
    # pylint: disable=too-many-return-statements
13
    @staticmethod
14
    def get_benchmark(benchmark):
15
        if not isinstance(benchmark, ''.__class__):
16
            return benchmark
17
        else:
18
            if benchmark == 'rastrigin':
19
                return Rastrigin()
20
            elif benchmark == 'rosenbrock':
21
                return Rosenbrock()
22
            elif benchmark == 'griewank':
23
                return Griewank()
24
            elif benchmark == 'sphere':
25
                return Sphere()
26
            elif benchmark == 'ackley':
27
                return Ackley()
28
            elif benchmark == 'schwefel':
29
                return Schwefel()
30
            elif benchmark == 'schwefel221':
31
                return Schwefel221()
32
            elif benchmark == 'schwefel222':
33
                return Schwefel222()
34
            elif benchmark == 'whitley':
35
                return Whitley()
36
            else:
37
                raise TypeError('Passed benchmark is not defined!')
38