Completed
Push — master ( 137b9b...8d97a2 )
by Pol
03:29
created

Greedy::getResult()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
crap 1
1
<?php
2
3
namespace drupol\phpartition\Algorithm;
4
5
use drupol\phpartition\BasePartitionAlgorithm;
6
use drupol\phpartition\PartitionAlgorithmInterface;
7
use drupol\phpartition\Subset;
8
9
/**
10
 * Class Greedy.
11
 *
12
 * @package drupol\phpartition\Algorithm
13
 */
14
class Greedy extends BasePartitionAlgorithm implements PartitionAlgorithmInterface {
15
16
  /**
17
   * The greedy algorithm needs the input data to be sorted (desc).
18
   *
19
   * @return array
20
   */
21 2
  public function getResult() {
22 2
    $this->dataset->sortByValue('DESC');
23
24 2
    return parent::getResult();
25
  }
26
27
  /**
28
   * @param \drupol\phpartition\Subset $subset
29
   *
30
   * @return int|mixed
31
   */
32 2
  public function getSubsetWeight(Subset $subset) {
33 2
    $sum = 0;
34
35 2
    foreach($subset->getItems() as $item) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FOREACH keyword; 0 found
Loading history...
36 2
      $sum += $item->getValue();
37 2
    }
38
39 2
    return $sum;
40
  }
41
42
}