repositories
/
benchmarks-js.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Apply dependencies update
[benchmarks-js.git]
/
benchmark-utils.js
diff --git
a/benchmark-utils.js
b/benchmark-utils.js
index 9c82d8438c1df329ceed3a4317ba2db9a3f0370f..a9dd58713e5edc4ae244a4098219660032d79e16 100644
(file)
--- a/
benchmark-utils.js
+++ b/
benchmark-utils.js
@@
-2,13
+2,20
@@
const crypto = require('crypto')
/**
* Generate a cryptographically secure random number in the [0,1[ range
/**
* Generate a cryptographically secure random number in the [0,1[ range
- *
* @returns
*/
function secureRandom () {
return crypto.randomBytes(4).readUInt32LE() / 0x100000000
}
* @returns
*/
function secureRandom () {
return crypto.randomBytes(4).readUInt32LE() / 0x100000000
}
+/**
+ * Generate a cryptographically secure random number in the [0,1[ range
+ * @returns
+ */
+function secureRandomWithRandomValues () {
+ return crypto.getRandomValues(new Uint32Array(1))[0] / 0x100000000
+}
+
/**
* @param max
* @param min
/**
* @param max
* @param min
@@
-30,16
+37,16
@@
function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) {
*
* @param max
* @param min
*
* @param max
* @param min
- * @param negative
* @returns
*/
* @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')
}
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
}
/**
}
/**
@@
-78,7
+85,7
@@
function generateRandomObject (
for (let i = 0; i < size; i++) {
object[i.toString()] = numberGenerator(numberMax)
}
for (let i = 0; i < size; i++) {
object[i.toString()] = numberGenerator(numberMax)
}
- return
{ object, size }
+ return
object
}
/**
}
/**
@@
-95,5
+102,6
@@
module.exports = {
generateRandomNumberArray,
generateRandomObject,
sleep,
generateRandomNumberArray,
generateRandomObject,
sleep,
- secureRandom
+ secureRandom,
+ secureRandomWithRandomValues
}
}