forked from CentralArkansasCodeKata/TDDStringCalculator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtdd-str-calc.js
More file actions
32 lines (28 loc) · 786 Bytes
/
Copy pathtdd-str-calc.js
File metadata and controls
32 lines (28 loc) · 786 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var Add = function(numbers) {
'use strct';
if (!numbers) {return '';}
var matches, splitted, delimeter;
if ((matches = numbers.match(/^\/\/(.*)\n/))) {
delimeter = matches[1];
splitted = numbers.split('\n')[1].split(delimeter);
}
else {
splitted = numbers.split(/\n|,/g);
}
var sum = 0;
var negativeNums = [];
for (var i = 0; i < splitted.length; i++) {
var parsed = parseInt(splitted[i], 10);
if (parsed < 0) {
negativeNums.push(parsed);
continue;
}
if (parsed > 1000) {continue;}
sum += parsed;
}
if (negativeNums.length) {
throw new Error('negatives not allowed ' + negativeNums.toString());
}
return sum;
};
exports.Add = Add;