+const { randomInt } = require('crypto')
const { expect } = require('expect')
const {
CircularArray,
const {
availableParallelism,
average,
+ exponentialDelay,
isAsyncFunction,
isKillBehavior,
isPlainObject,
median,
round,
+ secureRandom,
+ sleep,
updateMeasurementStatistics
} = require('../lib/utils')
const { KillBehaviors } = require('../lib/worker/worker-options')
expect(Number.isSafeInteger(availableParallelism())).toBe(true)
})
+ it.skip('Verify sleep() behavior', async () => {
+ const start = performance.now()
+ await sleep(1000)
+ const elapsed = performance.now() - start
+ expect(elapsed).toBeGreaterThanOrEqual(1000)
+ })
+
+ it('Verify exponentialDelay() behavior', () => {
+ const delay = exponentialDelay(randomInt(1000))
+ expect(typeof delay === 'number').toBe(true)
+ expect(delay).toBeGreaterThanOrEqual(Number.MIN_VALUE)
+ expect(delay).toBeLessThanOrEqual(Number.MAX_VALUE)
+ })
+
it('Verify average() computation', () => {
expect(average([])).toBe(0)
expect(average([0.08])).toBe(0.08)
history: new CircularArray(DEFAULT_CIRCULAR_ARRAY_SIZE, 0.001, 0.003)
})
})
+
+ it('Verify secureRandom() behavior', () => {
+ const randomNumber = secureRandom()
+ expect(typeof randomNumber === 'number').toBe(true)
+ expect(randomNumber).toBeGreaterThanOrEqual(0)
+ expect(randomNumber).toBeLessThan(1)
+ })
})