k9s/internal/tchart/series_test.go

71 lines
980 B
Go

package tchart_test
import (
"testing"
"time"
"github.com/derailed/k9s/internal/tchart"
"github.com/stretchr/testify/assert"
)
func TestSeriesAdd(t *testing.T) {
type tuple struct {
time.Time
float64
}
uu := map[string]struct {
tt []tuple
e int
}{
"one": {
tt: []tuple{
{time.Now(), 1000},
},
e: 6,
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
ss := makeSeries()
for _, tu := range u.tt {
ss.Add(tu.Time, tu.float64)
}
assert.Len(t, ss, u.e)
})
}
}
func TestSeriesTruncate(t *testing.T) {
uu := map[string]struct {
n, e int
}{
"one": {
n: 1,
e: 4,
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
ss := makeSeries()
ss.Truncate(u.n)
assert.Len(t, ss, u.e)
})
}
}
// Helpers...
func makeSeries() tchart.MetricSeries {
return tchart.MetricSeries{
time.Now(): -100,
time.Now(): 0,
time.Now(): 100,
time.Now(): 50,
time.Now(): 10,
}
}