CasesHelper   A
last analyzed

Complexity

Total Complexity 26

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 85.71%

Importance

Changes 0
Metric Value
dl 0
loc 57
ccs 30
cts 35
cp 0.8571
rs 10
c 0
b 0
f 0
wmc 26
lcom 0
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
D canonizeCase() 0 47 26
1
<?php
2
namespace morphos\Russian;
3
4
use morphos\S;
5
6
trait CasesHelper
7
{
8
    use \morphos\CasesHelper;
9
10
    /**
11
     * @param string $case
12
     * @return string
13
     * @throws \Exception
14
     */
15 148
    public static function canonizeCase($case)
16
    {
17 148
        $case = S::lower($case);
18
        switch ($case) {
19 148
            case Cases::IMENIT:
20 139
            case 'именительный':
21 139
            case 'именит':
22 139
            case 'и':
23 24
                return Cases::IMENIT;
24
25 139
            case Cases::RODIT:
26 6
            case 'родительный':
27 6
            case 'родит':
28 6
            case 'р':
29 133
                return Cases::RODIT;
30
31 6
            case Cases::DAT:
32 5
            case 'дательный':
33 4
            case 'дат':
34 4
            case 'д':
35 2
                return Cases::DAT;
36
37 4
            case Cases::VINIT:
38 3
            case 'винительный':
39 3
            case 'винит':
40 3
            case 'в':
41 1
                return Cases::VINIT;
42
43 3
            case Cases::TVORIT:
44 2
            case 'творительный':
45 2
            case 'творит':
46 2
            case 'т':
47 1
                return Cases::TVORIT;
48
49 2
            case Cases::PREDLOJ:
50 1
            case 'предложный':
51
            case 'предлож':
52
            case 'п':
53 2
                return Cases::PREDLOJ;
54
55
            case Cases::LOCATIVE:
56
                return Cases::LOCATIVE;
57
58
            default:
59
                return \morphos\CasesHelper::canonizeCase($case);
60
        }
61
    }
62
}
63