@@ -1499,3 +1499,34 @@ func BenchmarkFindBucketNone(b *testing.B) {
1499
1499
resultFindBucket = h .findBucket (v )
1500
1500
}
1501
1501
}
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