Completed
Pull Request — master (#21)
by Antonio Oertel
04:28 queued 01:59
created

CnsCalculator::calculateDigit()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 14
ccs 9
cts 9
cp 1
rs 9.4285
cc 1
eloc 9
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Brazanation\Documents\Cns;
4
5
use Brazanation\Documents\DigitCalculable;
6
use Brazanation\Documents\DigitCalculator;
7
8
final class CnsCalculator implements DigitCalculable
9
{
10
    /**
11
     * {@inheritdoc}
12
     */
13 10
    public function calculateDigit($baseNumber)
14
    {
15 10
        $pis = substr($baseNumber, 0, 11);
16
17 10
        $calculator = new DigitCalculator($pis);
18 10
        $calculator->useComplementaryInsteadOfModule();
19 10
        $calculator->replaceWhen('8', 10);
20 10
        $calculator->replaceWhen('0', 11);
21 10
        $calculator->withMultipliersInterval(5, 15);
22
23 10
        $digit = $calculator->calculate();
24
25 10
        return "{$digit}";
26
    }
27
}
28