diff --git a/05_sumAll/sumAll.js b/05_sumAll/sumAll.js index 210720e..a6b356e 100644 --- a/05_sumAll/sumAll.js +++ b/05_sumAll/sumAll.js @@ -1,11 +1,27 @@ const sumAll = function(num1, num2) { let sum = 0; - - for (let i = num1; i <= num2; i++) { - sum += parseInt(i); - } + let num1Type = typeof num1; + let num2Type = typeof num2; - return sum; + //Ensures number is not negative + if (num1 < 0 || num2 < 0) { + return "ERROR"; + //Ensures sum is a number + } else if (num1Type !== "number" || num2Type !== "number") { + return "ERROR"; + //If the second number is smaller than the first number + } else if (num2 < num1) { + for (let i = num2; i <= num1; i++) { + sum += parseInt(i); + } + return sum; + //If the first number is larger than the second number + } else { + for (let i = num1; i <= num2; i++) { + sum += parseInt(i); + } + return sum; + } }; // Do not edit below this line diff --git a/05_sumAll/sumAll.spec.js b/05_sumAll/sumAll.spec.js index 1a9fb7c..a171e5f 100644 --- a/05_sumAll/sumAll.spec.js +++ b/05_sumAll/sumAll.spec.js @@ -4,19 +4,19 @@ describe('sumAll', () => { test('sums numbers within the range', () => { expect(sumAll(1, 4)).toEqual(10); }); - test.skip('works with large numbers', () => { + test('works with large numbers', () => { expect(sumAll(1, 4000)).toEqual(8002000); }); - test.skip('works with larger number first', () => { + test('works with larger number first', () => { expect(sumAll(123, 1)).toEqual(7626); }); - test.skip('returns ERROR with negative numbers', () => { + test('returns ERROR with negative numbers', () => { expect(sumAll(-10, 4)).toEqual('ERROR'); }); - test.skip('returns ERROR with non-number parameters', () => { + test('returns ERROR with non-number parameters', () => { expect(sumAll(10, "90")).toEqual('ERROR'); }); - test.skip('returns ERROR with non-number parameters', () => { + test('returns ERROR with non-number parameters', () => { expect(sumAll(10, [90, 1])).toEqual('ERROR'); }); });