@@ -1499,3 +1499,34 @@ func BenchmarkFindBucketNone(b *testing.B) {
14991499 resultFindBucket = h .findBucket (v )
15001500 }
15011501}
1502+
1503+ func TestFindBucket (t * testing.T ) {
1504+ smallHistogram := & histogram {upperBounds : []float64 {1 , 2 , 3 , 4 , 5 }}
1505+ largeHistogram := & histogram {upperBounds : make ([]float64 , 50 )}
1506+ for i := range largeHistogram .upperBounds {
1507+ largeHistogram .upperBounds [i ] = float64 (i )
1508+ }
1509+
1510+ tests := []struct {
1511+ h * histogram
1512+ v float64
1513+ expected int
1514+ }{
1515+ {smallHistogram , - 1 , 0 },
1516+ {smallHistogram , 0.5 , 0 },
1517+ {smallHistogram , 2.5 , 2 },
1518+ {smallHistogram , 5.5 , 5 },
1519+ {largeHistogram , - 1 , 0 },
1520+ {largeHistogram , 25.5 , 26 },
1521+ {largeHistogram , 49.5 , 50 },
1522+ {largeHistogram , 50.5 , 50 },
1523+ {largeHistogram , 5000.5 , 50 },
1524+ }
1525+
1526+ for _ , tt := range tests {
1527+ result := tt .h .findBucket (tt .v )
1528+ if result != tt .expected {
1529+ t .Errorf ("findBucket(%v) = %d; expected %d" , tt .v , result , tt .expected )
1530+ }
1531+ }
1532+ }
0 commit comments