Pin volta pnpm version
[benchmarks-js.git] / benchmark-utils.js
index e39708b7cf3cfe1cf18b92e25bd1994567f01e26..a9dd58713e5edc4ae244a4098219660032d79e16 100644 (file)
@@ -2,7 +2,6 @@ const crypto = require('crypto')
 
 /**
  * Generate a cryptographically secure random number in the [0,1[ range
- *
  * @returns
  */
 function secureRandom () {
@@ -11,7 +10,6 @@ function secureRandom () {
 
 /**
  *  Generate a cryptographically secure random number in the [0,1[ range
- *
  * @returns
  */
 function secureRandomWithRandomValues () {
@@ -39,16 +37,16 @@ function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) {
  *
  * @param max
  * @param min
- * @param negative
  * @returns
  */
-function generateRandomFloat (max = Number.MAX_VALUE, min = 0, negative = true) {
-  if (max < min || max < 0 || min < 0) {
+function generateRandomFloat (max = Number.MAX_VALUE, min = 0) {
+  if (max < min) {
+    throw new RangeError('Invalid interval')
+  }
+  if (max - min === Infinity) {
     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)
+  return (crypto.randomBytes(4).readUInt32LE() / 0xffffffff) * (max - min) + min
 }
 
 /**