diff --git a/Maths/isDivisible.js b/Maths/IsDivisible.js similarity index 57% rename from Maths/isDivisible.js rename to Maths/IsDivisible.js index 072957e920..9c2ec81cf5 100644 --- a/Maths/isDivisible.js +++ b/Maths/IsDivisible.js @@ -1,11 +1,11 @@ // Checks if a number is divisible by another number. -const isDivisible = (num1, num2) => { - if (isNaN(num1) || isNaN(num2) || num1 == null || num2 == null) { - return 'All parameters have to be numbers' +export const isDivisible = (num1, num2) => { + if (!Number.isFinite(num1) || !Number.isFinite(num2)) { + throw new TypeError('Expected a number') } if (num2 === 0) { - return 'Not possible to divide by zero' + return false } return num1 % num2 === 0 } diff --git a/Maths/test/IsDivisible.test.js b/Maths/test/IsDivisible.test.js new file mode 100644 index 0000000000..80ece0a0d7 --- /dev/null +++ b/Maths/test/IsDivisible.test.js @@ -0,0 +1,39 @@ +import { isDivisible } from '../IsDivisible' + +describe('isDivisible', () => { + const testCases = [ + [0, 1, true], + [0, 2, true], + [1, 1, true], + [1, 2, false], + [2, 1, true], + [4, 4, true], + [16, 4, true], + [36978235, 5, true], + [36978235, 4, false], + [4.5, 1.5, true], + [4.5, 1.2, false], + [5, 0, false], + [5, -0, false] + ] + + test.each(testCases)('if parameters are (%i, %i) it returns %p', (dividend, divisor, expected) => { + expect(isDivisible(dividend, divisor)).toBe(expected) + }) + + const errorCases = [ + [NaN, NaN], + [NaN, 1], + [1, NaN], + ['1', 1], + [1, '1'], + [1, true], + [false, 2] + ] + + test.each(errorCases)('throws an error if parameters are (%p, %p)', (dividend, divisor) => { + expect(() => { + isDivisible(dividend, divisor) + }).toThrow() + }) +}) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy