From 240f720a8c714b9b0ece472144b9d04c2f68c666 Mon Sep 17 00:00:00 2001 From: Ridge Kimani Date: Sat, 7 Oct 2023 17:20:11 +0300 Subject: [PATCH 1/3] bug: update edge case for empty array --- Maths/Abs.js | 4 ++-- Maths/test/Abs.test.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Maths/Abs.js b/Maths/Abs.js index a418ee35f3..319925e90f 100644 --- a/Maths/Abs.js +++ b/Maths/Abs.js @@ -12,11 +12,11 @@ const abs = (num) => { const validNumber = +num // converted to number, also can use - Number(num) - if (Number.isNaN(validNumber)) { + if (Number.isNaN(validNumber) || typeof num !== "number") { throw new TypeError('Argument is NaN - Not a Number') } - return validNumber < 0 ? -validNumber : validNumber // if number is less then zero mean negative then it converted to positive. i.e -> n = -2 = -(-2) = 2 + return validNumber < 0 ? -validNumber : validNumber // if number is less than zero mean negative then it converted to positive. i.e -> n = -2 = -(-2) = 2 } export { abs } diff --git a/Maths/test/Abs.test.js b/Maths/test/Abs.test.js index 6a67fa50d1..bd2532896a 100644 --- a/Maths/test/Abs.test.js +++ b/Maths/test/Abs.test.js @@ -5,6 +5,7 @@ describe('Testing abs function', () => { expect(() => abs('234a')).toThrow() expect(() => abs({})).toThrow() expect(() => abs([12, -32, -60])).toThrow() + expect(() => abs([])).toThrow() // gets coerced to 0 }) it('Testing for number of string type', () => { From 760b7d324bb393653decb6c7aa14c1644911c6e5 Mon Sep 17 00:00:00 2001 From: Ridge Kimani Date: Sat, 7 Oct 2023 17:26:46 +0300 Subject: [PATCH 2/3] bug: add edge case for empty arrays --- Maths/Abs.js | 2 +- Maths/test/Abs.test.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Maths/Abs.js b/Maths/Abs.js index 319925e90f..53c353fb8b 100644 --- a/Maths/Abs.js +++ b/Maths/Abs.js @@ -12,7 +12,7 @@ const abs = (num) => { const validNumber = +num // converted to number, also can use - Number(num) - if (Number.isNaN(validNumber) || typeof num !== "number") { + if (Number.isNaN(validNumber) || typeof num === 'object') { throw new TypeError('Argument is NaN - Not a Number') } diff --git a/Maths/test/Abs.test.js b/Maths/test/Abs.test.js index bd2532896a..6a67fa50d1 100644 --- a/Maths/test/Abs.test.js +++ b/Maths/test/Abs.test.js @@ -5,7 +5,6 @@ describe('Testing abs function', () => { expect(() => abs('234a')).toThrow() expect(() => abs({})).toThrow() expect(() => abs([12, -32, -60])).toThrow() - expect(() => abs([])).toThrow() // gets coerced to 0 }) it('Testing for number of string type', () => { From 4dee86b0d15c9b852ec89765935010bfb4919b0f Mon Sep 17 00:00:00 2001 From: Ridge Kimani Date: Sat, 7 Oct 2023 17:34:56 +0300 Subject: [PATCH 3/3] feat: add test case for empty array --- Maths/test/Abs.test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/Maths/test/Abs.test.js b/Maths/test/Abs.test.js index 6a67fa50d1..0749679647 100644 --- a/Maths/test/Abs.test.js +++ b/Maths/test/Abs.test.js @@ -5,6 +5,7 @@ describe('Testing abs function', () => { expect(() => abs('234a')).toThrow() expect(() => abs({})).toThrow() expect(() => abs([12, -32, -60])).toThrow() + expect(() => abs([])).toThrow() // coerces to 0 }) it('Testing for number of string type', () => {