X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fselection-strategies%2Fweighted-round-robin-worker-choice-strategy.test.mjs;h=b3ea806ef68ac2b4a57bed494209618ab449346a;hb=b947a3c07cfccf3bbb1a8a52ac0274bbd3084e6a;hp=25c262fde5ea946a1a1de8b2a18ca8417636a02d;hpb=cd424e3162f5ae6be04dc156cdc8562dae16c33f;p=poolifier.git diff --git a/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs b/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs index 25c262fd..b3ea806e 100644 --- a/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs +++ b/tests/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.test.mjs @@ -1,7 +1,10 @@ +import { randomInt } from 'node:crypto' + import { expect } from 'expect' -import { FixedThreadPool } from '../../../lib/index.js' -import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.js' -import { generateRandomInteger } from '../../test-utils.js' + +import { FixedThreadPool } from '../../../lib/index.cjs' +import { InterleavedWeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy.cjs' +import { WeightedRoundRobinWorkerChoiceStrategy } from '../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy.cjs' describe('Weighted round robin strategy worker choice strategy test suite', () => { // const min = 1 @@ -19,16 +22,37 @@ describe('Weighted round robin strategy worker choice strategy test suite', () = await pool.destroy() }) - it('Verify that reset() resets internals', () => { + it('Verify that WRR reset() resets internals', () => { const strategy = new WeightedRoundRobinWorkerChoiceStrategy(pool) - strategy.currentWorkerId = generateRandomInteger(Number.MAX_SAFE_INTEGER, 1) - strategy.workerVirtualTaskRunTime = generateRandomInteger( - Number.MAX_SAFE_INTEGER, - 1 - ) + strategy.nextWorkerNodeKey = randomInt(1, 281474976710656) + strategy.previousWorkerNodeKey = randomInt(1, 281474976710656) + strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656) + expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0) + expect(strategy.reset()).toBe(true) + expect(strategy.nextWorkerNodeKey).toBe(0) + expect(strategy.previousWorkerNodeKey).toBe(0) + expect(strategy.workerNodeVirtualTaskExecutionTime).toBe(0) + }) + + it('Verify that IWRR reset() resets internals', () => { + const strategy = new InterleavedWeightedRoundRobinWorkerChoiceStrategy(pool) + strategy.nextWorkerNodeKey = randomInt(1, 281474976710656) + strategy.previousWorkerNodeKey = randomInt(1, 281474976710656) + strategy.roundId = randomInt(1, 281474976710656) + strategy.workerNodeId = randomInt(1, 281474976710656) + strategy.workerNodeVirtualTaskRunTime = randomInt(1, 281474976710656) + expect(strategy.nextWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.previousWorkerNodeKey).toBeGreaterThan(0) + expect(strategy.roundId).toBeGreaterThan(0) + expect(strategy.workerNodeId).toBeGreaterThan(0) + expect(strategy.workerNodeVirtualTaskRunTime).toBeGreaterThan(0) expect(strategy.reset()).toBe(true) expect(strategy.nextWorkerNodeKey).toBe(0) expect(strategy.previousWorkerNodeKey).toBe(0) - expect(strategy.workerNodeVirtualTaskRunTime).toBe(0) + expect(strategy.roundId).toBe(0) + expect(strategy.workerNodeId).toBe(0) + expect(strategy.workerNodeVirtualTaskExecutionTime).toBe(0) }) })