Passed
Push — master ( 21cf41...510e0f )
by Serhii
02:06 queued 30s
created

rules.go   A

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
cc 13
eloc 21
dl 0
loc 27
ccs 1
cts 1
cp 1
crap 13
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
D timeago.getRules 0 19 13
1
package timeago
2
3
type Rule struct {
4
	Single  bool
5
	Plural  bool
6
	Special bool
7
}
8
9
func getRules(number, lastDigit int) map[string]Rule {
10 1
	return map[string]Rule{
11
		"en": {
12
			Single: number == 1,
13
			Plural: number > 1 || number == 0,
14
		},
15
		"ru": {
16
			Special: (number >= 5 && number <= 20) || lastDigit == 0 || (lastDigit >= 5 && lastDigit <= 9),
17
			Single:  lastDigit == 1,
18
			Plural:  lastDigit >= 2 && lastDigit < 5,
19
		},
20
		"uk": {
21
			Special: (number >= 5 && number <= 20) || lastDigit == 0 || (lastDigit >= 5 && lastDigit <= 9),
22
			Single:  lastDigit == 1,
23
			Plural:  lastDigit >= 2 && lastDigit < 5,
24
		},
25
		"nl": {
26
			Single: number == 1,
27
			Plural: number > 1 || number == 0,
28
		},
29
	}
30
}
31