-const { randomInt } = require('crypto')
-const { Worker } = require('worker_threads')
-const cluster = require('cluster')
-const os = require('os')
+const { randomInt } = require('node:crypto')
+const { Worker } = require('node:worker_threads')
+const cluster = require('node:cluster')
+const os = require('node:os')
const { expect } = require('expect')
-const {
- CircularArray,
- DEFAULT_CIRCULAR_ARRAY_SIZE
-} = require('../lib/circular-array')
const {
DEFAULT_MEASUREMENT_STATISTICS_REQUIREMENTS,
DEFAULT_TASK_NAME,
isAsyncFunction,
isKillBehavior,
isPlainObject,
+ max,
median,
+ min,
round,
secureRandom,
- sleep,
- updateMeasurementStatistics
+ sleep
} = require('../lib/utils')
const { KillBehaviors, WorkerTypes } = require('../lib')
it('Verify availableParallelism() behavior', () => {
const parallelism = availableParallelism()
expect(typeof parallelism === 'number').toBe(true)
+ expect(Number.isSafeInteger(parallelism)).toBe(true)
let expectedParallelism = 1
try {
expectedParallelism = os.availableParallelism()
expectedParallelism = os.cpus().length
}
expect(parallelism).toBe(expectedParallelism)
- expect(Number.isSafeInteger(parallelism)).toBe(true)
})
it('Verify getWorkerType() behavior', () => {
expect(isAsyncFunction(async function named () {})).toBe(true)
})
- it('Verify updateMeasurementStatistics() behavior', () => {
- const measurementStatistics = {
- history: new CircularArray()
- }
- updateMeasurementStatistics(
- measurementStatistics,
- { aggregate: true, average: false, median: false },
- 0.01
- )
- expect(measurementStatistics).toStrictEqual({
- aggregate: 0.01,
- maximum: 0.01,
- minimum: 0.01,
- history: new CircularArray()
- })
- updateMeasurementStatistics(
- measurementStatistics,
- { aggregate: true, average: false, median: false },
- 0.02
- )
- expect(measurementStatistics).toStrictEqual({
- aggregate: 0.03,
- maximum: 0.02,
- minimum: 0.01,
- history: new CircularArray()
- })
- updateMeasurementStatistics(
- measurementStatistics,
- { aggregate: true, average: true, median: false },
- 0.001
- )
- expect(measurementStatistics).toStrictEqual({
- aggregate: 0.031,
- maximum: 0.02,
- minimum: 0.001,
- average: 0.001,
- history: new CircularArray(DEFAULT_CIRCULAR_ARRAY_SIZE, 0.001)
- })
- updateMeasurementStatistics(
- measurementStatistics,
- { aggregate: true, average: true, median: false },
- 0.003
- )
- expect(measurementStatistics).toStrictEqual({
- aggregate: 0.034,
- maximum: 0.02,
- minimum: 0.001,
- average: 0.002,
- history: new CircularArray(DEFAULT_CIRCULAR_ARRAY_SIZE, 0.001, 0.003)
- })
- updateMeasurementStatistics(
- measurementStatistics,
- { aggregate: true, average: false, median: true },
- 0.006
- )
- expect(measurementStatistics).toStrictEqual({
- aggregate: 0.04,
- maximum: 0.02,
- minimum: 0.001,
- median: 0.003,
- history: new CircularArray(
- DEFAULT_CIRCULAR_ARRAY_SIZE,
- 0.001,
- 0.003,
- 0.006
- )
- })
- updateMeasurementStatistics(
- measurementStatistics,
- { aggregate: true, average: true, median: false },
- 0.01
- )
- expect(measurementStatistics).toStrictEqual({
- aggregate: 0.05,
- maximum: 0.02,
- minimum: 0.001,
- average: 0.005,
- history: new CircularArray(
- DEFAULT_CIRCULAR_ARRAY_SIZE,
- 0.001,
- 0.003,
- 0.006,
- 0.01
- )
- })
- })
-
it('Verify secureRandom() behavior', () => {
const randomNumber = secureRandom()
expect(typeof randomNumber === 'number').toBe(true)
expect(randomNumber).toBeGreaterThanOrEqual(0)
expect(randomNumber).toBeLessThan(1)
})
+
+ it('Verify min() behavior', () => {
+ expect(min()).toBe(Infinity)
+ expect(min(1, 2)).toBe(1)
+ expect(min(2, 1)).toBe(1)
+ expect(min(1, 1)).toBe(1)
+ })
+
+ it('Verify max() behavior', () => {
+ expect(max()).toBe(-Infinity)
+ expect(max(1, 2)).toBe(2)
+ expect(max(2, 1)).toBe(2)
+ expect(max(1, 1)).toBe(1)
+ })
})