Skip to content

Latest commit

 

History

History
33 lines (22 loc) · 752 Bytes

README.md

File metadata and controls

33 lines (22 loc) · 752 Bytes

go-sliding-window

A simple sliding window implementation intended for calculating moving averages.

  • Synchronized, a.k.a. thread-safe, if you want it to be.
  • Supports calculation of weighted averages

Usage

go get github.com/florianloch/go-sliding-window
import slidingwindow "github.com/florianloch/go-sliding-window"

Example

window := slidingwindow.New(3, true)

window.Add(1.0).AddInt(2)  

require.Equal(2, window.Count())
require.Equal(3, window.Size())

require.Equal(3.0, window.Sum())
require.Equal(1.5, window.Avg())

// Custom functions can be used to adjust the weights
r.Equal(5.0/3.0, window.WeightedAvg(slidingwindow.PositionalWeight))