const {
LeastBusyWorkerChoiceStrategy
} = require('../../../lib/pools/selection-strategies/least-busy-worker-choice-strategy')
+const {
+ LeastEluWorkerChoiceStrategy
+} = require('../../../lib/pools/selection-strategies/least-elu-worker-choice-strategy')
const {
FairShareWorkerChoiceStrategy
} = require('../../../lib/pools/selection-strategies/fair-share-worker-choice-strategy')
)
})
+ it('Verify that setWorkerChoiceStrategy() works with LEAST_ELU and fixed pool', () => {
+ const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_ELU
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ fixedPool
+ )
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ workerChoiceStrategy
+ )
+ ).toBeInstanceOf(LeastEluWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
+ workerChoiceStrategy
+ )
+ })
+
+ it('Verify that setWorkerChoiceStrategy() works with LEAST_ELU and dynamic pool', () => {
+ const workerChoiceStrategy = WorkerChoiceStrategies.LEAST_ELU
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ dynamicPool
+ )
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ workerChoiceStrategy
+ )
+ ).toBeInstanceOf(LeastEluWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
+ workerChoiceStrategy
+ )
+ })
+
it('Verify that setWorkerChoiceStrategy() works with FAIR_SHARE and fixed pool', () => {
const workerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool,
wwrWorkerChoiceStrategy,
{
- medRunTime: true
- }
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
- false
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
- true
- )
- workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- dynamicPool,
- wwrWorkerChoiceStrategy,
- {
- medRunTime: true
- }
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
- false
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
- true
- )
- const fsWorkerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
- workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool,
- fsWorkerChoiceStrategy,
- {
- medRunTime: true
- }
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
- false
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
- true
- )
- workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- dynamicPool,
- fsWorkerChoiceStrategy,
- {
- medRunTime: true
- }
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
- false
- )
- expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
- true
- )
- })
-
- it('Verify that worker choice strategy options enable median wait time pool statistics', () => {
- const wwrWorkerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
- let workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool,
- wwrWorkerChoiceStrategy,
- {
- medWaitTime: true
+ runTime: { median: true }
}
)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().avgWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime
+ .average
).toBe(false)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().medWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime.median
).toBe(true)
workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool,
wwrWorkerChoiceStrategy,
{
- medWaitTime: true
+ runTime: { median: true }
}
)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().avgWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime
+ .average
).toBe(false)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().medWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime.median
).toBe(true)
const fsWorkerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool,
fsWorkerChoiceStrategy,
{
- medWaitTime: true
+ runTime: { median: true }
}
)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().avgWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime
+ .average
).toBe(false)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().medWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime.median
).toBe(true)
workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool,
fsWorkerChoiceStrategy,
{
- medWaitTime: true
+ runTime: { median: true }
}
)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().avgWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime
+ .average
).toBe(false)
expect(
- workerChoiceStrategyContext.getRequiredStatistics().medWaitTime
+ workerChoiceStrategyContext.getTaskStatisticsRequirements().runTime.median
).toBe(true)
})
})