src/barcodes/MSI/checksums.js   A
last analyzed

Complexity

Total Complexity 5
Complexity/F 2.5

Size

Lines of Code 23
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
nc 1
dl 0
loc 23
cc 0
rs 10
noi 0
wmc 5
mnd 2
bc 6
fnc 2
bpm 3
cpm 2.5

1 Function

Rating   Name   Duplication   Size   Complexity  
A checksums.js ➔ mod11 0 9 2
1
export function mod10(number){
2
	var sum = 0;
3
	for(var i = 0; i < number.length; i++){
4
		var n = parseInt(number[i]);
5
		if((i + number.length) % 2 === 0){
6
			sum += n;
7
		}
8
		else{
9
			sum += (n * 2) % 10 + Math.floor((n * 2) / 10);
10
		}
11
	}
12
	return (10 - (sum % 10)) % 10;
13
}
14
15
export function mod11(number){
16
	var sum = 0;
17
	var weights = [2, 3, 4, 5, 6, 7];
18
	for(var i = 0; i < number.length; i++){
19
		var n = parseInt(number[number.length - 1 - i]);
20
		sum += weights[i % weights.length] * n;
21
	}
22
	return (11 - (sum % 11)) % 11;
23
}
24