diff --git a/src/lib/utils/fillSpace.ts b/src/lib/utils/fillSpace.ts index 6b7b4c2..463cc06 100644 --- a/src/lib/utils/fillSpace.ts +++ b/src/lib/utils/fillSpace.ts @@ -27,6 +27,14 @@ function fillSpace(availableSpace: number, items: { min: number, max: number }[] function buildRanges(items: { min: number, max: number }[]) { const landmarks = buildLandmarks(items); + if (landmarks.length === 1) { + return [{ + start: landmarks[0].value, + end: landmarks[0].value, + n: items.length, + }]; + } + const ranges: Range[] = []; let n = 0; for (let i = 1; i < landmarks.length; i++) { diff --git a/src/tests/units/utils/fillSpace.ts b/src/tests/units/utils/fillSpace.ts index cce16d7..797cae7 100644 --- a/src/tests/units/utils/fillSpace.ts +++ b/src/tests/units/utils/fillSpace.ts @@ -17,6 +17,23 @@ tests.register("fillSpace", 1, () => { ], expected: [300, 300], }, + { + availableSpace: 700, + items: [ + { min: 300, max: 300 }, + { min: 300, max: 300 }, + ], + expected: [300, 300], + }, + { + availableSpace: 700, + items: [ + { min: 300, max: 300 }, + { min: 300, max: 300 }, + { min: 10, max: 900 }, + ], + expected: [300, 300, 100], + }, { availableSpace: 600, items: [