From 4b3d8e5106438360c540f0d9b25c8000ff385275 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 25 Aug 2021 14:33:46 +0300 Subject: [PATCH] Fix top() function, fixes #1267 --- pkg/timeseries/timeseries.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/timeseries/timeseries.go b/pkg/timeseries/timeseries.go index d479d94..347d820 100644 --- a/pkg/timeseries/timeseries.go +++ b/pkg/timeseries/timeseries.go @@ -1,6 +1,7 @@ package timeseries import ( + "math" "sort" "time" @@ -130,8 +131,9 @@ func (ts TimeSeries) Transform(transformFunc TransformFunc) TimeSeries { func Filter(series []*TimeSeriesData, n int, order string, aggFunc AggFunc) []*TimeSeriesData { SortBy(series, "asc", aggFunc) - filteredSeries := make([]*TimeSeriesData, n) - for i := 0; i < n; i++ { + maxN := int(math.Min(float64(n), float64(len(series)))) + filteredSeries := make([]*TimeSeriesData, maxN) + for i := 0; i < maxN; i++ { if order == "top" { filteredSeries[i] = series[len(series)-1-i] } else if order == "bottom" {