X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmark-utils.js;h=678a2b3b80ae28a7367ade71a1993ee77b45d640;hb=47006ddf6055b02dd084ae91269f12b44ce8225d;hp=1e7914f95b78ec72175f5d5827bebd28980f1038;hpb=ed40d2b012a740d121f1951b9be91df341d6eaf3;p=benchmarks-js.git diff --git a/benchmark-utils.js b/benchmark-utils.js index 1e7914f..678a2b3 100644 --- a/benchmark-utils.js +++ b/benchmark-utils.js @@ -14,12 +14,12 @@ function secureRandom () { * @param min * @returns */ -function generateRandomInteger (max, min = 0) { +function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) { if (max < 0) { throw new RangeError('Invalid interval') } max = Math.floor(max) - if (min) { + if (min != null && min !== 0) { if (max < min || min < 0) { throw new RangeError('Invalid interval') } @@ -33,13 +33,35 @@ function generateRandomInteger (max, min = 0) { * * @param size * @param max + * @param numberGenerator + * @returns */ -function generateRandomIntegerArray (size, max = Number.MAX_SAFE_INTEGER) { - const integerArray = [] +function generateRandomNumberArray ( + size, + max = Number.MAX_VALUE, + numberGenerator = generateRandomFloat +) { + const array = [] for (let i = 0; i < size; i++) { - integerArray.push(generateRandomInteger(max)) + array.push(numberGenerator(max)) + } + 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') } - return integerArray + const randomPositiveFloat = crypto.randomBytes(4).readUInt32LE() / 0xffffffff + const sign = negative && randomPositiveFloat < 0.5 ? -1 : 1 + return sign * (randomPositiveFloat * (max - min) + min) } /** @@ -57,7 +79,8 @@ const LIST_FORMATTER = new Intl.ListFormat('en-US', { module.exports = { generateRandomInteger, - generateRandomIntegerArray, + generateRandomFloat, + generateRandomNumberArray, sleep, secureRandom, LIST_FORMATTER