2022-07-05 10:18:55 +00:00
|
|
|
package promql
|
|
|
|
|
|
|
|
import (
|
|
|
|
"reflect"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestFixBrokenBuckets(t *testing.T) {
|
|
|
|
f := func(values, expectedResult []float64) {
|
|
|
|
t.Helper()
|
|
|
|
xss := make([]leTimeseries, len(values))
|
|
|
|
for i, v := range values {
|
|
|
|
xss[i].ts = ×eries{
|
|
|
|
Values: []float64{v},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fixBrokenBuckets(0, xss)
|
|
|
|
result := make([]float64, len(values))
|
|
|
|
for i, xs := range xss {
|
|
|
|
result[i] = xs.ts.Values[0]
|
|
|
|
}
|
|
|
|
if !reflect.DeepEqual(result, expectedResult) {
|
|
|
|
t.Fatalf("unexpected result for values=%v\ngot\n%v\nwant\n%v", values, result, expectedResult)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
f(nil, []float64{})
|
|
|
|
f([]float64{1}, []float64{1})
|
2022-07-05 11:35:24 +00:00
|
|
|
f([]float64{1, 2}, []float64{1, 2})
|
|
|
|
f([]float64{2, 1}, []float64{1, 1})
|
|
|
|
f([]float64{1, 2, 3, nan, nan}, []float64{1, 2, 3, 3, 3})
|
|
|
|
f([]float64{5, 1, 2, 3, nan}, []float64{1, 1, 2, 3, 3})
|
|
|
|
f([]float64{1, 5, 2, nan, 6, 3}, []float64{1, 2, 2, 3, 3, 3})
|
|
|
|
f([]float64{5, 10, 4, 3}, []float64{3, 3, 3, 3})
|
2022-07-05 10:18:55 +00:00
|
|
|
}
|