Content-Length: 2893 | pFad | http://github.com/TheAlgorithms/JavaScript/pull/1752.patch
thub.com
From 053800f3357a278b6c2c4970b049f1f444920d9c Mon Sep 17 00:00:00 2001
From: Hridyanshu7
Date: Fri, 25 Oct 2024 11:07:10 +0530
Subject: [PATCH] feat: added tests for Decimal Isolate function
---
Maths/DecimalIsolate.js | 11 +++++---
Maths/test/DecimalIsolate.test.js | 44 +++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 3 deletions(-)
create mode 100644 Maths/test/DecimalIsolate.test.js
diff --git a/Maths/DecimalIsolate.js b/Maths/DecimalIsolate.js
index ac9f81a076..63af16801a 100644
--- a/Maths/DecimalIsolate.js
+++ b/Maths/DecimalIsolate.js
@@ -1,7 +1,12 @@
/*
- * function isolates the decimal part of a number.
- * Take the number and subtract it from the floored number.
- * Return the result.
+ * This function isolates the decimal part of a number.
+ * - If input is a number or a numeric string, it isolates and returns the decimal part.
+ * - If input is an array:
+ * - It isolates the decimal part of the first element.
+ * - If the array contains more than one element, only the first element is considered.
+ * - If the array is empty, it returns 0.
+ * - If input is not a number, a numeric string, or a valid first element array,
+ * the function returns 0.
*/
export const decimalIsolate = (number) => {
diff --git a/Maths/test/DecimalIsolate.test.js b/Maths/test/DecimalIsolate.test.js
new file mode 100644
index 0000000000..4c021b5d53
--- /dev/null
+++ b/Maths/test/DecimalIsolate.test.js
@@ -0,0 +1,44 @@
+import { decimalIsolate } from '../DecimalIsolate'
+
+const invalidInputs = [
+ { input: NaN, description: 'NaN' },
+ { input: null, description: 'null' },
+ { input: undefined, description: 'undefined' },
+ { input: 'a string', description: 'a string' },
+ { input: { a: 54.34 }, description: 'an object' },
+ {
+ input: ['OneDotTwoThree', 4.56, 7.89],
+ description: 'an array with invalid first element'
+ }
+]
+
+describe('DecimalIsolate', () => {
+ it('should isolate the decimal part of a positive number', () => {
+ expect(decimalIsolate(12.34)).toBe(0.34)
+ })
+
+ it('should isolate the decimal part of a negative number', () => {
+ expect(decimalIsolate(-456.789)).toBe(0.789)
+ })
+
+ it('should return 0 when the number is a whole number', () => {
+ expect(decimalIsolate(100)).toBe(0)
+ })
+
+ it('should isolate the decimal part of a number string', () => {
+ expect(decimalIsolate('12.34')).toBe(0.34)
+ })
+
+ it('should isolate the decimal part of the first element of an array if it is convertible to a number', () => {
+ expect(decimalIsolate([98.76, { a: 76.45 }])).toBe(0.76)
+ })
+
+ describe('Invalid Inputs', () => {
+ it.each(invalidInputs)(
+ 'should return 0 for invalid input when input is $description',
+ ({ input }) => {
+ expect(decimalIsolate(input)).toBe(0)
+ }
+ )
+ })
+})
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/TheAlgorithms/JavaScript/pull/1752.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy