From 579aa5bd0da2971c57a8f26be4a425e78f5ad040 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 28 May 2024 20:14:09 +0200 Subject: [PATCH] refactor: refine priority queue bucket size validation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- src/priority-queue.ts | 8 +++++--- tests/priority-queue.test.mjs | 7 ++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/priority-queue.ts b/src/priority-queue.ts index ed4d63f5..142fa5e8 100644 --- a/src/priority-queue.ts +++ b/src/priority-queue.ts @@ -37,10 +37,12 @@ export class PriorityQueue { */ public constructor (bucketSize: number = defaultBucketSize) { if (!Number.isSafeInteger(bucketSize)) { - throw new TypeError('bucketSize must be an integer') + throw new TypeError( + `Invalid bucket size: '${bucketSize}' is not an integer` + ) } - if (bucketSize < 1) { - throw new RangeError('bucketSize must be greater than or equal to 1') + if (bucketSize < 0) { + throw new RangeError(`Invalid bucket size: ${bucketSize} < 0`) } this.bucketSize = bucketSize this.clear() diff --git a/tests/priority-queue.test.mjs b/tests/priority-queue.test.mjs index bcd3cf0a..ddc8c09d 100644 --- a/tests/priority-queue.test.mjs +++ b/tests/priority-queue.test.mjs @@ -6,13 +6,10 @@ import { defaultBucketSize, PriorityQueue } from '../lib/priority-queue.cjs' describe('Priority queue test suite', () => { it('Verify constructor() behavior', () => { expect(() => new PriorityQueue('')).toThrow( - new TypeError('bucketSize must be an integer') + new TypeError("Invalid bucket size: '' is not an integer") ) expect(() => new PriorityQueue(-1)).toThrow( - new RangeError('bucketSize must be greater than or equal to 1') - ) - expect(() => new PriorityQueue(0)).toThrow( - new RangeError('bucketSize must be greater than or equal to 1') + new RangeError('Invalid bucket size: -1 < 0') ) let priorityQueue = new PriorityQueue() expect(priorityQueue.bucketSize).toBe(defaultBucketSize) -- 2.34.1