Home Identifier Source

src/functions.js

import _ from "underscore";

export default {
    sum: function (index, values) {
        return _.reduce(values, (a, b) => { return a + b; }, 0);
    },
    avg: function (index, values) {
        var sum = _.reduce(values, (a, b) => { return a + b; }, 0);
        return sum / values.length;
    },
    max: function (index, values) {
        return _.max(values);
    },
    min: function (index, values) {
        return _.min(values);
    },
    count: function (index, values) {
        return values.length;
    },
    first: function (index, values) {
        return values.length ? values[0] : undefined;
    },
    last: function (index, values) {
        return values.length ? values[values.length - 1] : undefined;
    },
    difference: function (index, values) {
        return _.max(values) - _.min(values);
    },
    derivative: function (index, values) {
        return values.length ?
            (values[values.length - 1] - values[0]) /
                (index.asTimerange().duration() / 1000) : undefined;
    }
};