From fa53e1527311ea3a839768f586ed473e67982c17 Mon Sep 17 00:00:00 2001 From: Vyacheslav Kokayko Date: Wed, 28 Oct 2026 05:13:00 +0100 Subject: [PATCH] Solution --- src/splitInteger.test.js | 44 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/splitInteger.test.js b/src/splitInteger.test.js index 24003dd5..de31b7b5 100644 --- a/src/splitInteger.test.js +++ b/src/splitInteger.test.js @@ -3,11 +3,47 @@ const splitInteger = require('./splitInteger'); test(`should split a number into equal parts - if a value is divisible by a numberOfParts`, () => {}); + if a value is divisible by a numberOfParts`, () => { + expect(splitInteger(6, 2)).toEqual([3, 3]); + expect(splitInteger(10, 5)).toEqual([2, 2, 2, 2, 2]); + expect(splitInteger(8, 4)).toEqual([2, 2, 2, 2]); +}); test(`should return a part equals to a value - when splitting into 1 part`, () => {}); + when splitting into 1 part`, () => { + expect(splitInteger(8, 1)).toEqual([8]); + expect(splitInteger(32, 1)).toEqual([32]); + expect(splitInteger(1, 1)).toEqual([1]); +}); -test('should sort parts ascending if they are not equal', () => {}); +test('should sort parts ascending if they are not equal', () => { + expect(splitInteger(17, 4)).toEqual([4, 4, 4, 5]); + expect(splitInteger(32, 6)).toEqual([5, 5, 5, 5, 6, 6]); + expect(splitInteger(11, 3)).toEqual([3, 4, 4]); +}); -test('should add zeros if value < numberOfParts', () => {}); +test('should add zeros if value < numberOfParts', () => { + expect(splitInteger(2, 5)).toEqual([0, 0, 0, 1, 1]); + expect(splitInteger(3, 4)).toEqual([0, 1, 1, 1]); + expect(splitInteger(1, 3)).toEqual([0, 0, 1]); +}); + +test('should return exactly numberOfParts elements', () => { + expect(splitInteger(17, 4)).toHaveLength(4); + expect(splitInteger(2, 5)).toHaveLength(5); + expect(splitInteger(8, 1)).toHaveLength(1); +}); + +test('should return parts that sum up to the value', () => { + const sum = (arr) => arr.reduce((acc, item) => acc + item, 0); + + expect(sum(splitInteger(17, 4))).toBe(17); + expect(sum(splitInteger(32, 6))).toBe(32); + expect(sum(splitInteger(2, 5))).toBe(2); +}); + +test('should return parts whose max and min differ by at most 1', () => { + const result = splitInteger(32, 6); + + expect(Math.max(...result) - Math.min(...result)).toBeLessThanOrEqual(1); +});