fix: handle empty data set in median computation
authorJérôme Benoit <jerome.benoit@sap.com>
Mon, 8 May 2023 22:26:57 +0000 (00:26 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Mon, 8 May 2023 22:26:57 +0000 (00:26 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/utils.ts
tests/utils.test.js

index c6e78ab5e873801f11d5508c658170a860e20ac5..403fed951bb21f7af0474b65cc8a02fbec6d5a78 100644 (file)
@@ -22,6 +22,9 @@ export const DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS: WorkerChoiceStrategyOptions
  * @returns The median of the given data set.
  */
 export const median = (dataSet: number[]): number => {
+  if (Array.isArray(dataSet) && dataSet.length === 0) {
+    return 0
+  }
   if (Array.isArray(dataSet) && dataSet.length === 1) {
     return dataSet[0]
   }
index eb0e7b1530a29a5195b21a292c6210856a47acb1..21a6a7c4aac6d07d8e1ec215ff8df9703a30f1f2 100644 (file)
@@ -3,6 +3,7 @@ const { isPlainObject, median } = require('../lib/utils')
 
 describe('Utils test suite', () => {
   it('Verify median computation', () => {
+    expect(median([])).toBe(0)
     const array0 = [0.08]
     expect(median(array0)).toBe(0.08)
     const array1 = [0.25, 4.75, 3.05, 6.04, 1.01, 2.02, 5.03]