Skip to content

ChapterSevenSeeds/rolling-average

Repository files navigation

Rolling Average

By Tyson Jones

A zero-dependency package that helps to calculate various types of numerical averages.

Installation

npm install rolling-average or pnpm install rolling-average

Usage

There are three average calculators that can be constructed with the RollingAverageFactory class.

1. Fixed Window - Calculates the average of a fixed number of samples

import { RollingAverageFactory } from "rolling-average";
const fixedWindow = RollingAverageFactory.fixedWindow(3);
fixedWindow.addSample(1);
fixedWindow.addSample(2);
fixedWindow.addSample(3);
fixedWindow.addSample(4);
console.log(fixedWindow.getAverage()); // Prints out 3

2. Time Window - Calculates the average of the samples added during a rolling time window specified in milliseconds.

import { RollingAverageFactory } from "rolling-average";
const fixedWindow = RollingAverageFactory.timeWindow(1000);
fixedWindow.addSample(1);
// Sleep for 200 ms
fixedWindow.addSample(2);
// Sleep for 200 ms
fixedWindow.addSample(3);
// Sleep for 200 ms
fixedWindow.addSample(4);
// Sleep for 600 ms
console.log(fixedWindow.getAverage()); // Prints out 3

3. Regular - Calculates the average of all samples.

import { RollingAverageFactory } from "rolling-average";
const regular = RollingAverageFactory.regular(3);
regular.addSample(1);
regular.addSample(2);
regular.addSample(3);
console.log(regular.getAverage()); // Prints out 2

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published