|
|
|
|
@ -20,6 +20,7 @@ import ( |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func TestMemoizedSeriesIterator(t *testing.T) { |
|
|
|
|
// TODO(beorn7): Include histograms in testing.
|
|
|
|
|
var it *MemoizedSeriesIterator |
|
|
|
|
|
|
|
|
|
sampleEq := func(ets int64, ev float64) { |
|
|
|
|
@ -28,7 +29,7 @@ func TestMemoizedSeriesIterator(t *testing.T) { |
|
|
|
|
require.Equal(t, ev, v, "value mismatch") |
|
|
|
|
} |
|
|
|
|
prevSampleEq := func(ets int64, ev float64, eok bool) { |
|
|
|
|
ts, v, ok := it.PeekPrev() |
|
|
|
|
ts, v, _, ok := it.PeekPrev() |
|
|
|
|
require.Equal(t, eok, ok, "exist mismatch") |
|
|
|
|
require.Equal(t, ets, ts, "timestamp mismatch") |
|
|
|
|
require.Equal(t, ev, v, "value mismatch") |
|
|
|
|
@ -45,29 +46,29 @@ func TestMemoizedSeriesIterator(t *testing.T) { |
|
|
|
|
sample{t: 101, v: 10}, |
|
|
|
|
}), 2) |
|
|
|
|
|
|
|
|
|
require.True(t, it.Seek(-123), "seek failed") |
|
|
|
|
require.Equal(t, it.Seek(-123), ValFloat, "seek failed") |
|
|
|
|
sampleEq(1, 2) |
|
|
|
|
prevSampleEq(0, 0, false) |
|
|
|
|
|
|
|
|
|
require.True(t, it.Next(), "next failed") |
|
|
|
|
require.Equal(t, it.Next(), ValFloat, "next failed") |
|
|
|
|
sampleEq(2, 3) |
|
|
|
|
prevSampleEq(1, 2, true) |
|
|
|
|
|
|
|
|
|
require.True(t, it.Next(), "next failed") |
|
|
|
|
require.True(t, it.Next(), "next failed") |
|
|
|
|
require.True(t, it.Next(), "next failed") |
|
|
|
|
require.Equal(t, it.Next(), ValFloat, "next failed") |
|
|
|
|
require.Equal(t, it.Next(), ValFloat, "next failed") |
|
|
|
|
require.Equal(t, it.Next(), ValFloat, "next failed") |
|
|
|
|
sampleEq(5, 6) |
|
|
|
|
prevSampleEq(4, 5, true) |
|
|
|
|
|
|
|
|
|
require.True(t, it.Seek(5), "seek failed") |
|
|
|
|
require.Equal(t, it.Seek(5), ValFloat, "seek failed") |
|
|
|
|
sampleEq(5, 6) |
|
|
|
|
prevSampleEq(4, 5, true) |
|
|
|
|
|
|
|
|
|
require.True(t, it.Seek(101), "seek failed") |
|
|
|
|
require.Equal(t, it.Seek(101), ValFloat, "seek failed") |
|
|
|
|
sampleEq(101, 10) |
|
|
|
|
prevSampleEq(100, 9, true) |
|
|
|
|
|
|
|
|
|
require.False(t, it.Next(), "next succeeded unexpectedly") |
|
|
|
|
require.Equal(t, it.Next(), ValNone, "next succeeded unexpectedly") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func BenchmarkMemoizedSeriesIterator(b *testing.B) { |
|
|
|
|
@ -78,7 +79,7 @@ func BenchmarkMemoizedSeriesIterator(b *testing.B) { |
|
|
|
|
b.ReportAllocs() |
|
|
|
|
b.ResetTimer() |
|
|
|
|
|
|
|
|
|
for it.Next() { |
|
|
|
|
for it.Next() != ValNone { |
|
|
|
|
// scan everything
|
|
|
|
|
} |
|
|
|
|
require.NoError(b, it.Err()) |
|
|
|
|
|