From aa418e7875a766560efdb187c86052df0d1df250 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Mon, 24 Oct 2022 15:40:53 +0200 Subject: [PATCH] Move random generator inputs check at the right place MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- benchmark-utils.js | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/benchmark-utils.js b/benchmark-utils.js index 678a2b3..35b47f9 100644 --- a/benchmark-utils.js +++ b/benchmark-utils.js @@ -15,20 +15,33 @@ function secureRandom () { * @returns */ function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) { - if (max < 0) { + if (max < min || max < 0 || min < 0) { throw new RangeError('Invalid interval') } max = Math.floor(max) if (min != null && min !== 0) { - if (max < min || min < 0) { - throw new RangeError('Invalid interval') - } min = Math.ceil(min) return Math.floor(secureRandom() * (max - min + 1)) + min } return Math.floor(secureRandom() * (max + 1)) } +/** + * + * @param max + * @param min + * @param negative + * @returns + */ +function generateRandomFloat (max = Number.MAX_VALUE, min = 0, negative = true) { + if (max < min || max < 0 || min < 0) { + throw new RangeError('Invalid interval') + } + const randomPositiveFloat = crypto.randomBytes(4).readUInt32LE() / 0xffffffff + const sign = negative && randomPositiveFloat < 0.5 ? -1 : 1 + return sign * (randomPositiveFloat * (max - min) + min) +} + /** * * @param size @@ -48,22 +61,6 @@ function generateRandomNumberArray ( return array } -/** - * - * @param max - * @param min - * @param negative - * @returns - */ -function generateRandomFloat (max = Number.MAX_VALUE, min = 0, negative = true) { - if (max < min || min < 0 || max < 0) { - throw new RangeError('Invalid interval') - } - const randomPositiveFloat = crypto.randomBytes(4).readUInt32LE() / 0xffffffff - const sign = negative && randomPositiveFloat < 0.5 ? -1 : 1 - return sign * (randomPositiveFloat * (max - min) + min) -} - /** * @param ms * @returns -- 2.34.1