Completed
Push — master ( a65034...5a3549 )
by Michal
03:28
created

Comparison   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 13
Duplicated Lines 100 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 2
dl 13
loc 13
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A operate() 6 6 2
cmp() 1 1 ?

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
/*
3
    Copyright (c) 2016 Michal Čihař <[email protected]>
4
5
    This file is part of SimpleMath.
6
7
    This program is free software; you can redistribute it and/or modify
8
    it under the terms of the GNU General Public License as published by
9
    the Free Software Foundation; either version 2 of the License, or
10
    (at your option) any later version.
11
12
    This program is distributed in the hope that it will be useful,
13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
    GNU General Public License for more details.
16
17
    You should have received a copy of the GNU General Public License along
18
    with this program; if not, write to the Free Software Foundation, Inc.,
19
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
*/
21
namespace SimpleMath\Expressions;
22
23 View Code Duplication
abstract class Comparison extends Operator {
24
25
    protected $precidence = 3;
26
27
    public function operate(\SimpleMath\Stack $stack, $variables=array())
28
    {
29
        $right = $stack->pop()->operate($stack, $variables);
30
        $left = $stack->pop()->operate($stack, $variables);
31
        return $this->cmp($left, $right) ? 1 : 0;
32
    }
33
34
    abstract protected function cmp($left, $right);
35
}
36