Move random generator inputs check at the right place
[benchmarks-js.git] / benchmark-utils.js
index 678a2b3b80ae28a7367ade71a1993ee77b45d640..35b47f9c456b1f9cfee33a445d8ddfc9f848adee 100644 (file)
@@ -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