Completed
Pull Request — master (#43)
by Wojtek
02:45
created

WholeGroupPso   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 20
ccs 9
cts 9
cp 1
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __init__() 0 3 1
A optimize() 0 13 2
1
"""Contains WholeGroupPso class."""
2 1
from grortir.main.pso.optimization_controller import OptimizationController
3 1
from grortir.main.pso.swarm import Swarm
4
5
6 1
class WholeGroupPso(object):
7
    """Optimize whole group."""
8
9 1
    def __init__(self, process, number_of_particles):
10 1
        self.process = process
11 1
        self.number_of_particles = number_of_particles
12
13 1
    def optimize(self, ordered_stages_to_optimize):
14
        """Optimize whole group of stages.
15
16
            Parameters:
17
                ordered_stages_to_optimize (list): List of stages which need
18
                 to be optimized
19
        """
20 1
        swarm = Swarm(self.process, ordered_stages_to_optimize,
21
                      self.number_of_particles)
22 1
        swarm.initialize()
23 1
        while OptimizationController.should_continue(
24
                ordered_stages_to_optimize):
25
            swarm.do_single_iteration()
26