1 import { Worker as ThreadWorker } from 'node:worker_threads'
2 import { Worker as ClusterWorker } from 'node:cluster'
3 import { expect } from 'expect'
6 DEFAULT_CIRCULAR_ARRAY_SIZE
7 } from '../../lib/circular-array.js'
10 updateMeasurementStatistics
11 } from '../../lib/pools/utils.js'
12 import { WorkerTypes } from '../../lib/index.js'
14 describe('Pool utils test suite', () => {
15 it('Verify updateMeasurementStatistics() behavior', () => {
16 const measurementStatistics = {
17 history: new CircularArray()
19 updateMeasurementStatistics(
20 measurementStatistics,
21 { aggregate: true, average: false, median: false },
24 expect(measurementStatistics).toStrictEqual({
28 history: new CircularArray()
30 updateMeasurementStatistics(
31 measurementStatistics,
32 { aggregate: true, average: false, median: false },
35 expect(measurementStatistics).toStrictEqual({
39 history: new CircularArray()
41 updateMeasurementStatistics(
42 measurementStatistics,
43 { aggregate: true, average: true, median: false },
46 expect(measurementStatistics).toStrictEqual({
51 history: new CircularArray(DEFAULT_CIRCULAR_ARRAY_SIZE, 0.001)
53 updateMeasurementStatistics(
54 measurementStatistics,
55 { aggregate: true, average: true, median: false },
58 expect(measurementStatistics).toStrictEqual({
63 history: new CircularArray(DEFAULT_CIRCULAR_ARRAY_SIZE, 0.001, 0.003)
65 updateMeasurementStatistics(
66 measurementStatistics,
67 { aggregate: true, average: false, median: true },
70 expect(measurementStatistics).toStrictEqual({
75 history: new CircularArray(
76 DEFAULT_CIRCULAR_ARRAY_SIZE,
82 updateMeasurementStatistics(
83 measurementStatistics,
84 { aggregate: true, average: true, median: false },
87 expect(measurementStatistics).toStrictEqual({
92 history: new CircularArray(
93 DEFAULT_CIRCULAR_ARRAY_SIZE,
102 it('Verify createWorker() behavior', () => {
106 './tests/worker-files/thread/testWorker.mjs'
108 ).toBeInstanceOf(ThreadWorker)
112 './tests/worker-files/cluster/testWorker.mjs'
114 ).toBeInstanceOf(ClusterWorker)