average and sum: fix for null values

This commit is contained in:
Alexander Zobnin
2017-07-03 12:36:39 +03:00
parent badc5e4cb9
commit ea67c3bc2f
4 changed files with 76 additions and 40 deletions

View File

@@ -209,24 +209,36 @@ System.register(['lodash', './utils'], function (_export, _context) {
return newSeries;
}
function SUM(values) {
var sum = 0;
_.each(values, function (value) {
sum += value;
});
return sum;
}
function COUNT(values) {
return values.length;
}
function SUM(values) {
var sum = null;
for (var i = 0; i < values.length; i++) {
if (values[i] !== null) {
sum += values[i];
}
}
return sum;
}
function AVERAGE(values) {
var sum = 0;
_.each(values, function (value) {
sum += value;
});
return sum / values.length;
var values_non_null = getNonNullValues(values);
if (values_non_null.length === 0) {
return null;
}
return SUM(values_non_null) / values_non_null.length;
}
function getNonNullValues(values) {
var values_non_null = [];
for (var i = 0; i < values.length; i++) {
if (values[i] !== null) {
values_non_null.push(values[i]);
}
}
return values_non_null;
}
function MIN(values) {

File diff suppressed because one or more lines are too long

View File

@@ -234,24 +234,36 @@ function rate(datapoints) {
return newSeries;
}
function SUM(values) {
var sum = 0;
_lodash2.default.each(values, function (value) {
sum += value;
});
return sum;
}
function COUNT(values) {
return values.length;
}
function SUM(values) {
var sum = null;
for (var i = 0; i < values.length; i++) {
if (values[i] !== null) {
sum += values[i];
}
}
return sum;
}
function AVERAGE(values) {
var sum = 0;
_lodash2.default.each(values, function (value) {
sum += value;
});
return sum / values.length;
var values_non_null = getNonNullValues(values);
if (values_non_null.length === 0) {
return null;
}
return SUM(values_non_null) / values_non_null.length;
}
function getNonNullValues(values) {
var values_non_null = [];
for (var i = 0; i < values.length; i++) {
if (values[i] !== null) {
values_non_null.push(values[i]);
}
}
return values_non_null;
}
function MIN(values) {