28 lines
631 B
Lua
28 lines
631 B
Lua
local running_average = {
|
|
trackers = {}
|
|
}
|
|
|
|
local trackers = running_average.trackers
|
|
|
|
running_average.track = function(name, value)
|
|
if not trackers[name] then
|
|
trackers[name] = { running_total = 0, count = 0, }
|
|
end
|
|
local track = trackers[name]
|
|
|
|
track.running_total = track.running_total + value
|
|
track.count = track.count + 1
|
|
|
|
return track.running_total / track.count
|
|
end
|
|
|
|
running_average.average = function(name)
|
|
return trackers[name] and trackers[name].running_total / trackers[name].count
|
|
end
|
|
|
|
running_average.count = function(name)
|
|
return trackers[name] and trackers[name].count
|
|
end
|
|
|
|
return running_average
|