diff --git a/Maths/Factorial.js b/Maths/Factorial.js index 29b416a67e..9b77b8d8f3 100644 --- a/Maths/Factorial.js +++ b/Maths/Factorial.js @@ -19,18 +19,18 @@ const calcRange = (num) => { const calcFactorial = (num) => { if (num === 0) { - return 'The factorial of 0 is 1.' + return 1 } if (num < 0) { - return 'Sorry, factorial does not exist for negative numbers.' + throw Error('Sorry, factorial does not exist for negative numbers.') } if (!num) { - return 'Sorry, factorial does not exist for null or undefined numbers.' + throw Error('Sorry, factorial does not exist for null or undefined numbers.') } if (num > 0) { const range = calcRange(num) const factorial = range.reduce((a, c) => a * c, 1) - return `The factorial of ${num} is ${factorial}` + return factorial } } diff --git a/Maths/test/Factorial.test.js b/Maths/test/Factorial.test.js index a065194774..1f5da42bb6 100644 --- a/Maths/test/Factorial.test.js +++ b/Maths/test/Factorial.test.js @@ -2,30 +2,20 @@ import { calcFactorial } from '../Factorial' describe('calcFactorial', () => { it('should return a statement for value "0"', () => { - expect(calcFactorial(0)).toBe('The factorial of 0 is 1.') + expect(calcFactorial(0)).toBe(1) }) - it('should return a statement for "null" and "undefined"', () => { - const nullFactorial = calcFactorial(null) - const undefinedFactorial = calcFactorial(undefined) - - expect(nullFactorial).toBe( - 'Sorry, factorial does not exist for null or undefined numbers.' - ) - expect(undefinedFactorial).toBe( - 'Sorry, factorial does not exist for null or undefined numbers.' - ) + it('should throw error for "null" and "undefined"', () => { + expect(() => { calcFactorial(null) }).toThrow(Error) + expect(() => { calcFactorial(undefined) }).toThrow(Error) }) - it('should not support negative numbers', () => { - const negativeFactorial = calcFactorial(-5) - expect(negativeFactorial).toBe( - 'Sorry, factorial does not exist for negative numbers.' - ) + it('should throw error for negative numbers', () => { + expect(() => { calcFactorial(-1) }).toThrow(Error) }) it('should return the factorial of a positive number', () => { const positiveFactorial = calcFactorial(3) - expect(positiveFactorial).toBe('The factorial of 3 is 6') + expect(positiveFactorial).toBe(6) }) })