Refactor generateRandomFloat() helper
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 10 Feb 2023 16:10:55 +0000 (17:10 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 10 Feb 2023 16:10:55 +0000 (17:10 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
benchmark-utils.js

index e39708b7cf3cfe1cf18b92e25bd1994567f01e26..c12324396345ccee7e4da71d6898798c5c555077 100644 (file)
@@ -39,16 +39,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
 }
 
 /**