From f7aa76e904d4b600896b325e791605525ab67028 Mon Sep 17 00:00:00 2001 From: Don Date: Thu, 23 Jun 2022 15:28:30 -0400 Subject: [PATCH] Completed sumAll exercise --- 05_sumAll/sumAll.js | 24 +++++++++++++++++++++++- 05_sumAll/sumAll.spec.js | 10 +++++----- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/05_sumAll/sumAll.js b/05_sumAll/sumAll.js index 00880c7..a408115 100644 --- a/05_sumAll/sumAll.js +++ b/05_sumAll/sumAll.js @@ -1,5 +1,27 @@ -const sumAll = function() { +const sumAll = function(x, y) { + if (x < 0 || y < 0) { + return "ERROR" + } else if (typeof x != "number" || typeof y != "number") { + return "ERROR" + } + + let diff = x - y + if (diff < 0) { + diff *= -1 + } + + let sum = 0 + let min = x + if (x > y) { + min = y + } + + for (let i = 0; i <= diff; i++) { + sum += min + min++ + } + 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'); }); });