Ignore nulls unless 'null as zero' for series.stats.avg

pull/3252/head
Alec Henninger 10 years ago
parent 305f8d6982
commit 2a600b25e7
  1. 4
      public/app/core/time_series.ts
  2. 11
      public/test/core/time_series_specs.js

@ -98,6 +98,7 @@ class TimeSeries {
var nullAsZero = fillStyle === 'null as zero';
var currentTime;
var currentValue;
var nonNulls = 0;
for (var i = 0; i < this.datapoints.length; i++) {
currentValue = this.datapoints[i][0];
@ -114,6 +115,7 @@ class TimeSeries {
if (_.isNumber(currentValue)) {
this.stats.total += currentValue;
this.allIsNull = false;
nonNulls++;
}
if (currentValue > this.stats.max) {
@ -136,7 +138,7 @@ class TimeSeries {
if (this.stats.min === Number.MAX_VALUE) { this.stats.min = null; }
if (result.length) {
this.stats.avg = (this.stats.total / result.length);
this.stats.avg = (this.stats.total / nonNulls);
this.stats.current = result[result.length-1][1];
if (this.stats.current === null && result.length > 1) {
this.stats.current = result[result.length-2][1];

@ -43,6 +43,17 @@ define([
expect(series.stats.max).to.be(-4);
});
it('average value should ignore nulls', function() {
series = new TimeSeries(testData);
series.getFlotPairs('null', yAxisFormats);
expect(series.stats.avg).to.be(6.333333333333333);
});
it('with null as zero style, average value should treat nulls as 0', function() {
series = new TimeSeries(testData);
series.getFlotPairs('null as zero', yAxisFormats);
expect(series.stats.avg).to.be(4.75);
});
});
describe('series overrides', function() {

Loading…
Cancel
Save