github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/pkg/segment/reader/segread/rollupreader_test.go (about) 1 /* 2 Copyright 2023. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package segread 18 19 import ( 20 "os" 21 "testing" 22 23 "github.com/siglens/siglens/pkg/segment/writer" 24 "github.com/stretchr/testify/assert" 25 ) 26 27 func TestTimestampRollupReads(t *testing.T) { 28 segkey := "data/rollup-readtest" 29 err := writer.WriteMockTsRollup(segkey) 30 assert.Nil(t, err) 31 32 rur, err := InitNewRollupReader(segkey, "timestamp", 24) 33 assert.Nil(t, err) 34 defer rur.Close() 35 36 // verify day rollups 37 dayMapBlks, err := rur.GetDayRollups() 38 assert.Nil(t, err) 39 40 expectedData := make(map[uint64]uint16) 41 expectedData[1652227200000] = 412 42 expectedData[1652140800000] = 588 43 blkZeroMap := dayMapBlks[0] // get blkNum 0 44 assert.Equal(t, len(expectedData), len(blkZeroMap)) 45 for bkey, brup := range blkZeroMap { 46 actualmrcount := uint16(brup.MatchedRes.GetNumberOfSetBits()) 47 expectedmrcount := expectedData[bkey] 48 assert.Equal(t, expectedmrcount, actualmrcount, "expectedmrcount=%v, actualmrcount=%v, bkey=%v", 49 expectedmrcount, actualmrcount, bkey) 50 } 51 52 // verify hour rollups 53 hourMapBlks, err := rur.GetHourRollups() 54 assert.Nil(t, err) 55 56 expectedData = make(map[uint64]uint16) 57 expectedData[1652220000000] = 88 58 expectedData[1652223600000] = 500 59 expectedData[1652227200000] = 412 60 61 blkZeroMap = hourMapBlks[0] // get blkNum 0 62 assert.Equal(t, len(expectedData), len(blkZeroMap)) 63 for bkey, brup := range blkZeroMap { 64 actualmrcount := uint16(brup.MatchedRes.GetNumberOfSetBits()) 65 expectedmrcount := expectedData[bkey] 66 assert.Equal(t, expectedmrcount, actualmrcount, "expectedmrcount=%v, actualmrcount=%v, bkey=%v", 67 expectedmrcount, actualmrcount, bkey) 68 } 69 70 // verify min rollups 71 minMapBlks, err := rur.GetMinRollups() 72 assert.Nil(t, err) 73 assert.Equal(t, 1, len(minMapBlks)) 74 75 // top-of-min validations 76 expectedData = make(map[uint64]uint16) 77 expectedData[1652224380000] = 8 78 expectedData[1652226300000] = 9 79 expectedData[1652226480000] = 9 80 expectedData[1652227140000] = 8 81 expectedData[1652227440000] = 8 82 expectedData[1652230020000] = 8 83 expectedData[1652223780000] = 9 84 expectedData[1652226060000] = 8 85 expectedData[1652228700000] = 8 86 expectedData[1652225220000] = 9 87 expectedData[1652227260000] = 8 88 expectedData[1652223240000] = 9 89 expectedData[1652225760000] = 9 90 expectedData[1652226120000] = 9 91 expectedData[1652227620000] = 8 92 expectedData[1652229900000] = 9 93 expectedData[1652225820000] = 8 94 expectedData[1652225880000] = 8 95 expectedData[1652226840000] = 9 96 expectedData[1652226900000] = 8 97 expectedData[1652227020000] = 9 98 expectedData[1652229960000] = 8 99 expectedData[1652227740000] = 9 100 expectedData[1652224440000] = 8 101 expectedData[1652226180000] = 8 102 expectedData[1652228340000] = 8 103 expectedData[1652229780000] = 8 104 expectedData[1652223540000] = 8 105 expectedData[1652223720000] = 8 106 expectedData[1652227680000] = 8 107 expectedData[1652228520000] = 8 108 expectedData[1652228640000] = 9 109 expectedData[1652227500000] = 8 110 expectedData[1652229600000] = 8 111 expectedData[1652224200000] = 8 112 expectedData[1652227080000] = 8 113 expectedData[1652227380000] = 9 114 expectedData[1652228220000] = 8 115 expectedData[1652228460000] = 9 116 expectedData[1652228820000] = 9 117 expectedData[1652222940000] = 5 118 expectedData[1652223000000] = 8 119 expectedData[1652224740000] = 8 120 expectedData[1652225700000] = 8 121 expectedData[1652228160000] = 8 122 expectedData[1652229360000] = 9 123 expectedData[1652224620000] = 8 124 expectedData[1652227980000] = 8 125 expectedData[1652228100000] = 9 126 expectedData[1652228940000] = 8 127 expectedData[1652229660000] = 8 128 expectedData[1652227920000] = 9 129 expectedData[1652224800000] = 8 130 expectedData[1652225460000] = 8 131 expectedData[1652225940000] = 9 132 expectedData[1652227320000] = 8 133 expectedData[1652229120000] = 8 134 expectedData[1652229300000] = 8 135 expectedData[1652224140000] = 9 136 expectedData[1652224260000] = 8 137 expectedData[1652225040000] = 9 138 expectedData[1652225520000] = 8 139 expectedData[1652226720000] = 8 140 expectedData[1652229240000] = 8 141 expectedData[1652224080000] = 8 142 expectedData[1652228760000] = 8 143 expectedData[1652229060000] = 8 144 expectedData[1652230080000] = 9 145 expectedData[1652224920000] = 8 146 expectedData[1652223120000] = 8 147 expectedData[1652224560000] = 8 148 expectedData[1652226660000] = 9 149 expectedData[1652230140000] = 3 150 expectedData[1652229420000] = 8 151 expectedData[1652224320000] = 9 152 expectedData[1652226360000] = 8 153 expectedData[1652226540000] = 8 154 expectedData[1652226780000] = 8 155 expectedData[1652227200000] = 9 156 expectedData[1652227560000] = 9 157 expectedData[1652226960000] = 8 158 expectedData[1652223480000] = 8 159 expectedData[1652223660000] = 8 160 expectedData[1652224860000] = 9 161 expectedData[1652225280000] = 8 162 expectedData[1652225340000] = 8 163 expectedData[1652226000000] = 8 164 expectedData[1652224020000] = 8 165 expectedData[1652228400000] = 8 166 expectedData[1652228580000] = 8 167 expectedData[1652229000000] = 9 168 expectedData[1652223840000] = 8 169 expectedData[1652224500000] = 9 170 expectedData[1652225100000] = 8 171 expectedData[1652223900000] = 8 172 expectedData[1652226240000] = 8 173 expectedData[1652225580000] = 9 174 expectedData[1652225640000] = 8 175 expectedData[1652227800000] = 8 176 expectedData[1652227860000] = 8 177 expectedData[1652228880000] = 8 178 expectedData[1652229840000] = 8 179 expectedData[1652223600000] = 9 180 expectedData[1652225400000] = 9 181 expectedData[1652226420000] = 8 182 expectedData[1652223180000] = 8 183 expectedData[1652226600000] = 8 184 expectedData[1652229480000] = 8 185 expectedData[1652229720000] = 9 186 expectedData[1652223360000] = 8 187 expectedData[1652224680000] = 9 188 expectedData[1652224980000] = 8 189 expectedData[1652225160000] = 8 190 expectedData[1652228040000] = 8 191 expectedData[1652229540000] = 9 192 expectedData[1652223060000] = 9 193 expectedData[1652223300000] = 8 194 expectedData[1652223420000] = 9 195 expectedData[1652223960000] = 9 196 expectedData[1652228280000] = 9 197 expectedData[1652229180000] = 9 198 199 blkZeroMap = minMapBlks[0] 200 201 assert.Equal(t, len(expectedData), len(blkZeroMap)) 202 for bkey, brup := range blkZeroMap { 203 actualmrcount := uint16(brup.MatchedRes.GetNumberOfSetBits()) 204 expectedmrcount := expectedData[bkey] 205 assert.Equal(t, expectedmrcount, actualmrcount, "expectedmrcount=%v, actualmrcount=%v, bkey=%v", 206 expectedmrcount, actualmrcount, bkey) 207 } 208 209 os.RemoveAll(segkey) 210 }