rolling-average
Version:
A simple rolling average calculator
44 lines (40 loc) • 1.49 kB
Markdown
# 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
```ts
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.
```ts
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.
```ts
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
```