Conditions | 7 |
Paths | 9 |
Total Lines | 23 |
Lines | 0 |
Ratio | 0 % |
Tests | 15 |
CRAP Score | 7 |
Changes | 0 |
1 | <?php |
||
43 | 3 | private function mergeRanges(array $ranges): array |
|
44 | { |
||
45 | 3 | $result = []; |
|
46 | 3 | $startRange = null; |
|
47 | 3 | $endRange = null; |
|
48 | 3 | foreach ($ranges as $key => $range) { |
|
49 | 3 | $nextRange = @$ranges[$key + 1]; |
|
50 | 3 | if ($startRange === null) { |
|
51 | 3 | $startRange = $range->dateFrom(); |
|
52 | } |
||
53 | |||
54 | 3 | if ($endRange === null || $range->dateTo() > $endRange) { |
|
55 | 3 | $endRange = $range->dateTo(); |
|
56 | } |
||
57 | |||
58 | 3 | if ($nextRange == null || $nextRange->dateFrom() > $range->dateTo()) { |
|
59 | 3 | $result[] = new Range($startRange, $endRange); |
|
60 | 3 | $startRange = null; |
|
61 | 3 | $endRange = null; |
|
62 | } |
||
63 | } |
||
64 | 3 | return $result; |
|
65 | } |
||
66 | } |
||
67 |