From de2708990d24ee972f05bc94872a8c5be9b5c372 Mon Sep 17 00:00:00 2001 From: YATIN KATHURIA <47096348+Yatin-kathuria@users.noreply.github.com> Date: Fri, 26 Nov 2021 22:12:30 +0530 Subject: [PATCH] merge: Add FindMin (#849) --- Maths/FindMin.js | 23 +++++++++++++++++++++++ Maths/test/FindMin.test.js | 18 ++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 Maths/FindMin.js create mode 100644 Maths/test/FindMin.test.js diff --git a/Maths/FindMin.js b/Maths/FindMin.js new file mode 100644 index 000000000..9eee78dc7 --- /dev/null +++ b/Maths/FindMin.js @@ -0,0 +1,23 @@ +/** + * @function FindMin + * @description Function to find the minimum number given in an array of integers. + * @param {Integer[]} nums - Array of Integers + * @return {Integer} - The minimum number of the array. + */ + +const findMin = (...nums) => { + if (nums.length === 0) { + throw new TypeError('Array is empty') + } + + let min = nums[0] + for (let i = 1; i < nums.length; i++) { + if (nums[i] < min) { + min = nums[i] + } + } + + return min +} + +export { findMin } diff --git a/Maths/test/FindMin.test.js b/Maths/test/FindMin.test.js new file mode 100644 index 000000000..85381f80e --- /dev/null +++ b/Maths/test/FindMin.test.js @@ -0,0 +1,18 @@ +import { findMin } from '../FindMin' + +describe('FindMin', () => { + test('Should return the minimum number in the array', () => { + const min = findMin(2, 5, 1, 12, 43, 1, 9) + expect(min).toBe(1) + }) + + test('Should return the minimum number in the array', () => { + const min = findMin(21, 513, 6) + expect(min).toBe(6) + }) + + test('Should throw error', () => { + const min = () => findMin() + expect(min).toThrow('Array is empty') + }) +})