github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/pkg/utils/dateutils_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 utils 18 19 import ( 20 "testing" 21 22 "github.com/stretchr/testify/assert" 23 ) 24 25 func Test_SanitizeHistogramInterval(t *testing.T) { 26 27 // check for 1m interval 28 startEpoch := uint64(0) 29 endEpoch := uint64(3600_000) 30 interval := uint64(1) 31 expected := uint64(60_000) // 1m 32 actual, err := SanitizeHistogramInterval(startEpoch, endEpoch, interval) 33 assert.Nil(t, err) 34 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 35 36 // check for 5m interval 37 startEpoch = uint64(0) 38 endEpoch = uint64(3600_000 * 2) 39 interval = uint64(1) 40 expected = uint64(300_000) 41 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 42 assert.Nil(t, err) 43 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 44 45 // check for 10m interval 46 startEpoch = uint64(0) 47 endEpoch = uint64(3600_000 * 9) 48 interval = uint64(1) 49 expected = uint64(600_000) 50 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 51 assert.Nil(t, err) 52 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 53 54 // check for 30m interval 55 startEpoch = uint64(0) 56 endEpoch = uint64(3600_000 * 17) 57 interval = uint64(1) 58 expected = uint64(1800_000) 59 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 60 assert.Nil(t, err) 61 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 62 63 // check for 1h interval 64 startEpoch = uint64(0) 65 endEpoch = uint64(86400_000 * 2) 66 interval = uint64(1) 67 expected = uint64(3600_000) 68 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 69 assert.Nil(t, err) 70 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 71 72 // check for 1h interval 73 startEpoch = uint64(0) 74 endEpoch = uint64(86400_000 * 2) 75 interval = uint64(1) 76 expected = uint64(3600_000) 77 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 78 assert.Nil(t, err) 79 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 80 81 // check for 3h interval 82 startEpoch = uint64(0) 83 endEpoch = uint64(86400_000 * 8) 84 interval = uint64(1) 85 expected = uint64(10800_000) 86 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 87 assert.Nil(t, err) 88 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 89 90 // check for 12h interval 91 startEpoch = uint64(0) 92 endEpoch = uint64(86400_000 * 12) 93 interval = uint64(1) 94 expected = uint64(43200_000) 95 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 96 assert.Nil(t, err) 97 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 98 99 // check for 1d interval 100 startEpoch = uint64(0) 101 endEpoch = uint64(86400_000 * 50) 102 interval = uint64(1) 103 expected = uint64(86400_000) 104 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 105 assert.Nil(t, err) 106 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 107 108 // check for 7d interval 109 startEpoch = uint64(0) 110 endEpoch = uint64(86400_000 * 100) 111 interval = uint64(1) 112 expected = uint64(604800_000) 113 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 114 assert.Nil(t, err) 115 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 116 117 // check for 30d interval 118 startEpoch = uint64(0) 119 endEpoch = uint64(86400_000 * 365 * 2) 120 interval = uint64(1) 121 expected = uint64(2592000_000) 122 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 123 assert.Nil(t, err) 124 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 125 126 // check for 90d interval 127 startEpoch = uint64(0) 128 endEpoch = uint64(86400_000 * 365 * 12) 129 interval = uint64(1) 130 expected = uint64(7776000_000) 131 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 132 assert.Nil(t, err) 133 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 134 135 // check for 1y interval 136 startEpoch = uint64(0) 137 endEpoch = uint64(86400_000 * 365 * 50) 138 interval = uint64(1) 139 expected = uint64(31536000_000) 140 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 141 assert.Nil(t, err) 142 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 143 144 // check for 1y interval 145 startEpoch = uint64(0) 146 endEpoch = uint64(86400_000 * 365 * 50) 147 interval = uint64(1) 148 expected = uint64(31536000_000) 149 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 150 assert.Nil(t, err) 151 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 152 153 // check for 10y interval 154 startEpoch = uint64(0) 155 endEpoch = uint64(86400_000 * 365 * 100) 156 interval = uint64(1) 157 expected = uint64(315360000_000) 158 actual, err = SanitizeHistogramInterval(startEpoch, endEpoch, interval) 159 assert.Nil(t, err) 160 assert.Equal(t, expected, actual, "expected %v, actual %v", expected, actual) 161 162 }