fix: fix median and percentile calculation
authorJérôme Benoit <jerome.benoit@sap.com>
Sat, 6 May 2023 17:55:36 +0000 (19:55 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sat, 6 May 2023 17:55:36 +0000 (19:55 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/performance/PerformanceStatistics.ts

index a4dfd0b35c86ee26d178498f8a21814f3cee683e..ecd6b3ab72a8cbf5b2e31865d4e18fc5d91c5131 100644 (file)
@@ -191,7 +191,7 @@ export class PerformanceStatistics {
     const sortedDataSet = dataSet.slice().sort((a, b) => a - b);
     const middleIndex = Math.floor(sortedDataSet.length / 2);
     if (sortedDataSet.length % 2 === 0) {
-      return sortedDataSet[middleIndex / 2];
+      return sortedDataSet[middleIndex];
     }
     return (sortedDataSet[middleIndex - 1] + sortedDataSet[middleIndex]) / 2;
   }
@@ -215,7 +215,7 @@ export class PerformanceStatistics {
     if (Number.isInteger(percentileIndex)) {
       return (sortedDataSet[percentileIndex] + sortedDataSet[percentileIndex + 1]) / 2;
     }
-    return sortedDataSet[Math.round(percentileIndex)];
+    return sortedDataSet[Math.floor(percentileIndex)];
   }
 
   private stdDeviation(dataSet: number[]): number {