Merge branch 'master' into elu-strategy
[poolifier.git] / tests / pools / selection-strategies / worker-choice-strategy-context.test.js
index b36ec277d03f1c6728949f16981dd1252029a77b..5e202039f67ba4872c594294d480ed8cecb90da6 100644 (file)
@@ -23,6 +23,9 @@ const {
 const {
   WeightedRoundRobinWorkerChoiceStrategy
 } = require('../../../lib/pools/selection-strategies/weighted-round-robin-worker-choice-strategy')
+const {
+  InterleavedWeightedRoundRobinWorkerChoiceStrategy
+} = require('../../../lib/pools/selection-strategies/interleaved-weighted-round-robin-worker-choice-strategy')
 
 describe('Worker choice strategy context test suite', () => {
   const min = 1
@@ -322,6 +325,40 @@ describe('Worker choice strategy context test suite', () => {
     )
   })
 
+  it('Verify that setWorkerChoiceStrategy() works with INTERLEAVED_WEIGHTED_ROUND_ROBIN and fixed pool', () => {
+    const workerChoiceStrategy =
+      WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
+    const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+      fixedPool
+    )
+    workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
+    expect(
+      workerChoiceStrategyContext.workerChoiceStrategies.get(
+        workerChoiceStrategy
+      )
+    ).toBeInstanceOf(InterleavedWeightedRoundRobinWorkerChoiceStrategy)
+    expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
+      workerChoiceStrategy
+    )
+  })
+
+  it('Verify that setWorkerChoiceStrategy() works with INTERLEAVED_WEIGHTED_ROUND_ROBIN and dynamic pool', () => {
+    const workerChoiceStrategy =
+      WorkerChoiceStrategies.INTERLEAVED_WEIGHTED_ROUND_ROBIN
+    const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+      dynamicPool
+    )
+    workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
+    expect(
+      workerChoiceStrategyContext.workerChoiceStrategies.get(
+        workerChoiceStrategy
+      )
+    ).toBeInstanceOf(InterleavedWeightedRoundRobinWorkerChoiceStrategy)
+    expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
+      workerChoiceStrategy
+    )
+  })
+
   it('Verify that worker choice strategy options enable median runtime pool statistics', () => {
     const wwrWorkerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
     let workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
@@ -331,10 +368,10 @@ describe('Worker choice strategy context test suite', () => {
         medRunTime: true
       }
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().avgRunTime).toBe(
       false
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().medRunTime).toBe(
       true
     )
     workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
@@ -344,10 +381,10 @@ describe('Worker choice strategy context test suite', () => {
         medRunTime: true
       }
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().avgRunTime).toBe(
       false
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().medRunTime).toBe(
       true
     )
     const fsWorkerChoiceStrategy = WorkerChoiceStrategies.FAIR_SHARE
@@ -358,10 +395,10 @@ describe('Worker choice strategy context test suite', () => {
         medRunTime: true
       }
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().avgRunTime).toBe(
       false
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().medRunTime).toBe(
       true
     )
     workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
@@ -371,10 +408,10 @@ describe('Worker choice strategy context test suite', () => {
         medRunTime: true
       }
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().avgRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().avgRunTime).toBe(
       false
     )
-    expect(workerChoiceStrategyContext.getRequiredStatistics().medRunTime).toBe(
+    expect(workerChoiceStrategyContext.getTaskStatistics().medRunTime).toBe(
       true
     )
   })