X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fselection-strategies-utils.ts;h=6e63f781dd0da7b1d0185dda8aa2b2243c451dc7;hb=763abb1c8e61ceb4f69c3488839a95d056cb84f0;hp=777be6e4d4a2be104afd7986bd835e7e04312e96;hpb=2717674c56c2caae531507e7d4e0068f4d4c8918;p=poolifier.git diff --git a/src/pools/selection-strategies/selection-strategies-utils.ts b/src/pools/selection-strategies/selection-strategies-utils.ts index 777be6e4..6e63f781 100644 --- a/src/pools/selection-strategies/selection-strategies-utils.ts +++ b/src/pools/selection-strategies/selection-strategies-utils.ts @@ -10,6 +10,7 @@ import { LeastUsedWorkerChoiceStrategy } from './least-used-worker-choice-strate import { RoundRobinWorkerChoiceStrategy } from './round-robin-worker-choice-strategy.js' import { type IWorkerChoiceStrategy, + type MeasurementStatisticsRequirements, type StrategyPolicy, type TaskStatisticsRequirements, WorkerChoiceStrategies, @@ -100,6 +101,20 @@ export const buildWorkerChoiceStrategyOptions = < } } +export const toggleMedianMeasurementStatisticsRequirements = ( + measurementStatisticsRequirements: MeasurementStatisticsRequirements, + toggleMedian: boolean +): void => { + if (measurementStatisticsRequirements.average && toggleMedian) { + measurementStatisticsRequirements.average = false + measurementStatisticsRequirements.median = toggleMedian + } + if (measurementStatisticsRequirements.median && !toggleMedian) { + measurementStatisticsRequirements.average = true + measurementStatisticsRequirements.median = toggleMedian + } +} + export const buildWorkerChoiceStrategiesPolicy = ( workerChoiceStrategies: Map ): StrategyPolicy => {