UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

46 lines (45 loc) 1.84 kB
"use strict"; var _statistics = require("./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 = (0, _statistics.calculateStdDev)(testData); expect(result).toBeCloseTo(2.87, 1); }); it("calculates median correctly", function () { expect((0, _statistics.calculateMedian)(testData)).toBe(5.5); expect((0, _statistics.calculateMedian)([1, 2, 3])).toBe(2); }); it("calculates percentiles correctly", function () { expect((0, _statistics.calculatePercentile)(testData, 50)).toBe(5.5); expect((0, _statistics.calculatePercentile)(testData, 95)).toBeCloseTo(9.55, 1); }); it("calculates advanced stats", function () { var basicStats = { avg: 5.5 }; var result = (0, _statistics.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 = (0, _statistics.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((0, _statistics.calculateStdDev)([])).toBeNull(); expect((0, _statistics.calculateMedian)([])).toBeNull(); expect((0, _statistics.calculatePercentile)([], 50)).toBeNull(); expect((0, _statistics.calculateAdvancedStats)([])).toEqual({}); expect((0, _statistics.calculateAllStats)([])).toEqual({}); }); });