52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
import _ from 'lodash';
|
|
import dataProcessor from '../dataProcessor';
|
|
|
|
describe('dataProcessor', () => {
|
|
let ctx = {};
|
|
|
|
beforeEach(() => {
|
|
ctx.datapoints = [
|
|
[[10, 1500000000000], [2, 1500000001000], [7, 1500000002000], [1, 1500000003000]],
|
|
[[9, 1500000000000], [3, 1500000001000], [4, 1500000002000], [8, 1500000003000]],
|
|
];
|
|
});
|
|
|
|
describe('When apply groupBy() functions', () => {
|
|
it('should return series average', () => {
|
|
let aggregateBy = dataProcessor.metricFunctions['groupBy'];
|
|
const avg2s = _.map(ctx.datapoints, (dp) => aggregateBy('2s', 'avg', dp));
|
|
expect(avg2s).toEqual([
|
|
[[6, 1500000000000], [4, 1500000002000]],
|
|
[[6, 1500000000000], [6, 1500000002000]],
|
|
]);
|
|
|
|
const avg10s = _.map(ctx.datapoints, (dp) => aggregateBy('10s', 'avg', dp));
|
|
expect(avg10s).toEqual([
|
|
[[5, 1500000000000]],
|
|
[[6, 1500000000000]],
|
|
]);
|
|
|
|
// not aligned
|
|
const dp = [[10, 1500000001000], [2, 1500000002000], [7, 1500000003000], [1, 1500000004000]];
|
|
expect(aggregateBy('2s', 'avg', dp)).toEqual([
|
|
[10, 1500000000000], [4.5, 1500000002000], [1, 1500000004000]
|
|
]);
|
|
});
|
|
});
|
|
|
|
describe('When apply aggregateBy() functions', () => {
|
|
it('should return series average', () => {
|
|
let aggregateBy = dataProcessor.metricFunctions['aggregateBy'];
|
|
const avg1s = aggregateBy('1s', 'avg', ctx.datapoints);
|
|
expect(avg1s).toEqual([
|
|
[9.5, 1500000000000], [2.5, 1500000001000], [5.5, 1500000002000], [4.5, 1500000003000]
|
|
]);
|
|
|
|
const avg10s = aggregateBy('10s', 'avg', ctx.datapoints);
|
|
expect(avg10s).toEqual([
|
|
[5.5, 1500000000000]
|
|
]);
|
|
});
|
|
});
|
|
});
|