github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/pkg/querier/batch/merge_test.go (about) 1 package batch 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/prometheus/common/model" 8 9 "github.com/cortexproject/cortex/pkg/chunk/encoding" 10 ) 11 12 func TestMergeIter(t *testing.T) { 13 forEncodings(t, func(t *testing.T, enc encoding.Encoding) { 14 chunk1 := mkGenericChunk(t, 0, 100, enc) 15 chunk2 := mkGenericChunk(t, model.TimeFromUnix(25), 100, enc) 16 chunk3 := mkGenericChunk(t, model.TimeFromUnix(50), 100, enc) 17 chunk4 := mkGenericChunk(t, model.TimeFromUnix(75), 100, enc) 18 chunk5 := mkGenericChunk(t, model.TimeFromUnix(100), 100, enc) 19 20 iter := newMergeIterator([]GenericChunk{chunk1, chunk2, chunk3, chunk4, chunk5}) 21 testIter(t, 200, newIteratorAdapter(iter)) 22 23 iter = newMergeIterator([]GenericChunk{chunk1, chunk2, chunk3, chunk4, chunk5}) 24 testSeek(t, 200, newIteratorAdapter(iter)) 25 }) 26 } 27 28 func TestMergeHarder(t *testing.T) { 29 forEncodings(t, func(t *testing.T, enc encoding.Encoding) { 30 var ( 31 numChunks = 24 * 15 32 chunks = make([]GenericChunk, 0, numChunks) 33 from = model.Time(0) 34 offset = 30 35 samples = 100 36 ) 37 for i := 0; i < numChunks; i++ { 38 chunks = append(chunks, mkGenericChunk(t, from, samples, enc)) 39 from = from.Add(time.Duration(offset) * time.Second) 40 } 41 iter := newMergeIterator(chunks) 42 testIter(t, offset*numChunks+samples-offset, newIteratorAdapter(iter)) 43 44 iter = newMergeIterator(chunks) 45 testSeek(t, offset*numChunks+samples-offset, newIteratorAdapter(iter)) 46 }) 47 }