Commit | Line | Data |
---|---|---|
f10b1da0 JB |
1 | const Benchmark = require('benny') |
2 | const { secureRandom } = require('./benchmark-utils') | |
aa697b2f | 3 | |
f10b1da0 | 4 | const maximum = Number.MAX_SAFE_INTEGER |
aa697b2f | 5 | |
aa697b2f JB |
6 | /** |
7 | * @param max | |
8 | * @param min | |
7fd91296 | 9 | * @returns |
aa697b2f | 10 | */ |
f10b1da0 | 11 | function getSecureRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) { |
aa697b2f JB |
12 | max = Math.floor(max) |
13 | if (min) { | |
14 | min = Math.ceil(min) | |
15 | return Math.floor(secureRandom() * (max - min + 1)) + min | |
16 | } | |
17 | return Math.floor(secureRandom() * (max + 1)) | |
18 | } | |
19 | ||
20 | /** | |
21 | * @param max | |
22 | * @param min | |
7fd91296 | 23 | * @returns |
aa697b2f | 24 | */ |
f10b1da0 | 25 | function getRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) { |
aa697b2f JB |
26 | max = Math.floor(max) |
27 | if (min) { | |
28 | min = Math.ceil(min) | |
29 | return Math.floor(Math.random() * (max - min + 1)) + min | |
30 | } | |
31 | return Math.floor(Math.random() * (max + 1)) | |
32 | } | |
33 | ||
f10b1da0 JB |
34 | Benchmark.suite( |
35 | 'Random Integer Generator', | |
36 | Benchmark.add('Secure random integer generator', function () { | |
aa697b2f | 37 | getSecureRandomInteger(maximum) |
f10b1da0 JB |
38 | }), |
39 | Benchmark.add('Random integer generator', function () { | |
aa697b2f | 40 | getRandomInteger(maximum) |
f10b1da0 JB |
41 | }), |
42 | Benchmark.cycle(), | |
43 | Benchmark.complete(), | |
44 | Benchmark.save({ file: 'random-integer-generator', format: 'chart.html' }), | |
45 | Benchmark.save({ file: 'random-integer-generator', format: 'table.html' }) | |
46 | ) |