Passed
Pull Request — master (#130)
by Marcin
02:55
created

Comparison   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 11
lcom 0
cbo 1
dl 0
loc 37
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
C compare() 0 25 11
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Phpml\Math;
6
7
use Phpml\Exception\InvalidArgumentException;
8
9
class Comparison
10
{
11
    /**
12
     * @param mixed  $a
13
     * @param mixed  $b
14
     * @param string $operator
15
     *
16
     * @return bool
17
     *
18
     * @throws InvalidArgumentException
19
     */
20
    public static function compare($a, $b, string $operator): bool
21
    {
22
        switch ($operator) {
23
            case '>':
24
                return $a > $b;
25
            case '>=':
26
                return $a >= $b;
27
            case '=':
28
            case '==':
29
                return $a == $b;
30
            case '===':
31
                return $a === $b;
32
            case '<=':
33
                return $a <= $b;
34
            case '<':
35
                return $a < $b;
36
            case '!=':
37
            case '<>':
38
                return $a != $b;
39
            case '!==':
40
                return $a !== $b;
41
            default:
42
                throw InvalidArgumentException::invalidOperator($operator);
43
        }
44
    }
45
}
46