From 17dd217a4659e396235ce4be1a599e3240484bd2 Mon Sep 17 00:00:00 2001 From: Yurii Kozlov Date: Fri, 29 Aug 2025 22:15:08 +0300 Subject: [PATCH 1/2] Refactor tests for splitInteger function to improve clarity and consistency --- src/splitInteger.test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/splitInteger.test.js b/src/splitInteger.test.js index a610317d..f3b0d6b0 100644 --- a/src/splitInteger.test.js +++ b/src/splitInteger.test.js @@ -4,18 +4,18 @@ const splitInteger = require('./splitInteger'); test(`should split a number into equal parts if a value is divisible by a numberOfParts`, () => { - + expect(splitInteger(6, 2)).toEqual([3, 3]); }); test(`should return a part equals to a value when splitting into 1 part`, () => { - + expect(splitInteger(8, 1)).toEqual([8]); }); test('should sort parts ascending if they are not equal', () => { - + expect(splitInteger(20, 6)).toEqual([3, 3, 3, 3, 4, 4]); }); test('should add zeros if value < numberOfParts', () => { - + expect(splitInteger(3, 5)).toEqual([0, 0, 1, 1, 1]); }); From 0521898c5573817993ac1a1181e60b91e3b1bd76 Mon Sep 17 00:00:00 2001 From: Yurii Kozlov Date: Fri, 29 Aug 2025 22:23:06 +0300 Subject: [PATCH 2/2] Enhance splitInteger tests with additional assertions and a new test case for splitting 17 into 4 parts --- src/splitInteger.test.js | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/src/splitInteger.test.js b/src/splitInteger.test.js index f3b0d6b0..ff30dc2b 100644 --- a/src/splitInteger.test.js +++ b/src/splitInteger.test.js @@ -4,18 +4,46 @@ const splitInteger = require('./splitInteger'); test(`should split a number into equal parts if a value is divisible by a numberOfParts`, () => { - expect(splitInteger(6, 2)).toEqual([3, 3]); + const result = splitInteger(6, 2); + + expect(result).toEqual([3, 3]); + expect(result).toHaveLength(2); + expect(result.every(Number.isInteger)).toBe(true); + expect(result.reduce((a, b) => a + b, 0)).toBe(6); + expect([...result].sort((a, b) => a - b)).toEqual(result); + expect(Math.max(...result) - Math.min(...result)).toBeLessThanOrEqual(1); }); test(`should return a part equals to a value when splitting into 1 part`, () => { - expect(splitInteger(8, 1)).toEqual([8]); + const result = splitInteger(8, 1); + + expect(result).toEqual([8]); + expect(result).toHaveLength(1); + expect(result.every(Number.isInteger)).toBe(true); + expect(result.reduce((a, b) => a + b, 0)).toBe(8); + expect([...result].sort((a, b) => a - b)).toEqual(result); + expect(Math.max(...result) - Math.min(...result)).toBeLessThanOrEqual(1); }); test('should sort parts ascending if they are not equal', () => { - expect(splitInteger(20, 6)).toEqual([3, 3, 3, 3, 4, 4]); + const result = splitInteger(20, 6); + + expect(result).toEqual([3, 3, 3, 3, 4, 4]); + expect(result).toHaveLength(6); + expect(result.every(Number.isInteger)).toBe(true); + expect(result.reduce((a, b) => a + b, 0)).toBe(20); + expect([...result].sort((a, b) => a - b)).toEqual(result); + expect(Math.max(...result) - Math.min(...result)).toBeLessThanOrEqual(1); }); -test('should add zeros if value < numberOfParts', () => { - expect(splitInteger(3, 5)).toEqual([0, 0, 1, 1, 1]); +test('should handle splitting 17 into 4 parts', () => { + const result = splitInteger(17, 4); + + expect(result).toEqual([4, 4, 4, 5]); + expect(result).toHaveLength(4); + expect(result.every(Number.isInteger)).toBe(true); + expect(result.reduce((a, b) => a + b, 0)).toBe(17); + expect([...result].sort((a, b) => a - b)).toEqual(result); + expect(Math.max(...result) - Math.min(...result)).toBeLessThanOrEqual(1); });