call method

List<T> call(
  1. List<T> data
)

Invoke the configured MovingAverage calculator on data.

Implementation

List<T> call(List<T> data) {
  final result = <T>[];
  num Function(List<num>) averageFunc;

  switch (averageType) {
    case AverageType.simple:
    case AverageType.weighted:
      averageFunc =
          (averageType == AverageType.simple) ? _mean : _weightedMean;
      final subLists = _window(data, windowSize, partialStart: partialStart);
      for (final l in subLists) {
        final values = l.map(getValue).toList();
        final average = averageFunc(values);
        final temp = add(l, average);
        result.add(temp);
      }
      break;

    case AverageType.exponential:
      result.addAll(_exponential(data, factor));
      break;
  }

  return result;
}