UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

44 lines 1.71 kB
import { calculateStdDev, calculateMedian, calculatePercentile, calculateAdvancedStats, calculateAllStats } from "./statistics"; describe("Statistics helpers", function () { var testData = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; it("calculates standard deviation correctly", function () { var result = calculateStdDev(testData); expect(result).toBeCloseTo(2.87, 1); }); it("calculates median correctly", function () { expect(calculateMedian(testData)).toBe(5.5); expect(calculateMedian([1, 2, 3])).toBe(2); }); it("calculates percentiles correctly", function () { expect(calculatePercentile(testData, 50)).toBe(5.5); expect(calculatePercentile(testData, 95)).toBeCloseTo(9.55, 1); }); it("calculates advanced stats", function () { var basicStats = { avg: 5.5 }; var result = calculateAdvancedStats(testData, basicStats); expect(result.median).toBe(5.5); expect(result.stddev).toBeCloseTo(2.87, 1); expect(result.p95).toBeCloseTo(9.55, 1); expect(result.range).toBe(9); expect(result.count).toBe(10); expect(result.volume).toBe(55); }); it("calculates all stats", function () { var result = calculateAllStats(testData); expect(result.min).toBe(1); expect(result.max).toBe(10); expect(result.avg).toBe(5.5); expect(result.median).toBe(5.5); expect(result.count).toBe(10); expect(result.volume).toBe(55); }); it("handles empty arrays", function () { expect(calculateStdDev([])).toBeNull(); expect(calculateMedian([])).toBeNull(); expect(calculatePercentile([], 50)).toBeNull(); expect(calculateAdvancedStats([])).toEqual({}); expect(calculateAllStats([])).toEqual({}); }); });