- When bucketForPercentile was re-written and replaced with bucketForPercentile2,
the original and deprecated function was never deleted and migrated. This has been done. - Update associated tests, which were originally inaccurate, to correct expectations!
This commit is contained in:
parent
5a56c47909
commit
4d91ee5f5c
|
@ -110,56 +110,6 @@ func (h *Histogram) Humanize() string {
|
|||
return string(stringBuffer.Bytes())
|
||||
}
|
||||
|
||||
// Find what bucket and element index contains a given percentile value.
|
||||
// If a percentile is requested that results in a corresponding index that is no
|
||||
// longer contained by the bucket, the index of the last item is returned. This
|
||||
// may occur if the underlying bucket catalogs values and employs an eviction
|
||||
// strategy.
|
||||
func (h *Histogram) bucketForPercentile(percentile float64) (bucket *Bucket, index int) {
|
||||
var totalObservations int = 0
|
||||
|
||||
for _, bucket := range h.buckets {
|
||||
totalObservations += bucket.Observations()
|
||||
}
|
||||
|
||||
expectedIndex := int(math.Floor(percentile * float64(totalObservations)))
|
||||
|
||||
var accumulatedObservations int = 0
|
||||
var lastBucket Bucket = nil
|
||||
var lastAccumulatedObservations int = 0
|
||||
for _, bucket := range h.buckets {
|
||||
if lastBucket == nil {
|
||||
lastBucket = bucket
|
||||
}
|
||||
|
||||
observations := bucket.Observations()
|
||||
accumulatedObservations += observations
|
||||
|
||||
if observations == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
if accumulatedObservations > expectedIndex {
|
||||
break
|
||||
} else if accumulatedObservations == expectedIndex {
|
||||
lastBucket = bucket
|
||||
break
|
||||
}
|
||||
|
||||
lastAccumulatedObservations = accumulatedObservations
|
||||
lastBucket = bucket
|
||||
}
|
||||
|
||||
var offset int
|
||||
offset = int(expectedIndex - lastAccumulatedObservations)
|
||||
|
||||
if offset > 0 {
|
||||
offset--
|
||||
}
|
||||
|
||||
return &lastBucket, offset
|
||||
}
|
||||
|
||||
func previousCumulativeObservations(cumulativeObservations []int, bucketIndex int) int {
|
||||
if bucketIndex == 0 {
|
||||
return 0
|
||||
|
@ -172,7 +122,12 @@ func prospectiveIndexForPercentile(percentile float64, totalObservations int) in
|
|||
return int(math.Floor(percentile * float64(totalObservations)))
|
||||
}
|
||||
|
||||
func (h *Histogram) bucketForPercentile2(percentile float64) (bucket *Bucket, index int) {
|
||||
// Find what bucket and element index contains a given percentile value.
|
||||
// If a percentile is requested that results in a corresponding index that is no
|
||||
// longer contained by the bucket, the index of the last item is returned. This
|
||||
// may occur if the underlying bucket catalogs values and employs an eviction
|
||||
// strategy.
|
||||
func (h *Histogram) bucketForPercentile(percentile float64) (bucket *Bucket, index int) {
|
||||
bucketCount := len(h.buckets)
|
||||
|
||||
observationsByBucket := make([]int, bucketCount)
|
||||
|
@ -217,7 +172,7 @@ func (h *Histogram) bucketForPercentile2(percentile float64) (bucket *Bucket, in
|
|||
// collected samples. The requested percentile is expected to be a real
|
||||
// value within (0, 1.0].
|
||||
func (h *Histogram) Percentile(percentile float64) float64 {
|
||||
bucket, index := h.bucketForPercentile2(percentile)
|
||||
bucket, index := h.bucketForPercentile(percentile)
|
||||
|
||||
return (*bucket).ValueForIndex(index)
|
||||
}
|
||||
|
|
|
@ -86,13 +86,13 @@ func (s *S) TestBucketForPercentile(c *C) {
|
|||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
|
@ -124,7 +124,7 @@ func (s *S) TestBucketForPercentile(c *C) {
|
|||
bucket, subindex = h.bucketForPercentile(0.51)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 51)
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ func (s *S) TestBucketForPercentileSingleton(c *C) {
|
|||
var subindex int = 0
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -150,19 +150,19 @@ func (s *S) TestBucketForPercentileSingleton(c *C) {
|
|||
|
||||
h.Add(0.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -173,7 +173,7 @@ func (s *S) TestBucketForPercentileSingleton(c *C) {
|
|||
c.Assert(h, Not(IsNil))
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -181,19 +181,19 @@ func (s *S) TestBucketForPercentileSingleton(c *C) {
|
|||
|
||||
h.Add(1.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -212,19 +212,19 @@ func (s *S) TestBucketForPercentileSingleton(c *C) {
|
|||
|
||||
h.Add(2.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -245,7 +245,7 @@ func (s *S) TestBucketForPercentileDoubleInSingleBucket(c *C) {
|
|||
var subindex int = 0
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -254,19 +254,19 @@ func (s *S) TestBucketForPercentileDoubleInSingleBucket(c *C) {
|
|||
h.Add(0.0)
|
||||
h.Add(0.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -277,7 +277,7 @@ func (s *S) TestBucketForPercentileDoubleInSingleBucket(c *C) {
|
|||
c.Assert(h, Not(IsNil))
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -286,19 +286,19 @@ func (s *S) TestBucketForPercentileDoubleInSingleBucket(c *C) {
|
|||
h.Add(1.0)
|
||||
h.Add(1.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -318,19 +318,19 @@ func (s *S) TestBucketForPercentileDoubleInSingleBucket(c *C) {
|
|||
h.Add(2.0)
|
||||
h.Add(2.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -351,7 +351,7 @@ func (s *S) TestBucketForPercentileTripleInSingleBucket(c *C) {
|
|||
var subindex int = 0
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -361,37 +361,37 @@ func (s *S) TestBucketForPercentileTripleInSingleBucket(c *C) {
|
|||
h.Add(0.0)
|
||||
h.Add(0.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -403,37 +403,37 @@ func (s *S) TestBucketForPercentileTripleInSingleBucket(c *C) {
|
|||
h.Add(1.0)
|
||||
h.Add(1.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -445,37 +445,37 @@ func (s *S) TestBucketForPercentileTripleInSingleBucket(c *C) {
|
|||
h.Add(2.0)
|
||||
h.Add(2.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 2)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 3)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -496,7 +496,7 @@ func (s *S) TestBucketForPercentileTwoEqualAdjacencies(c *C) {
|
|||
var subindex int = 0
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -505,37 +505,37 @@ func (s *S) TestBucketForPercentileTwoEqualAdjacencies(c *C) {
|
|||
h.Add(0.0)
|
||||
h.Add(1.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -546,37 +546,37 @@ func (s *S) TestBucketForPercentileTwoEqualAdjacencies(c *C) {
|
|||
h.Add(1.0)
|
||||
h.Add(2.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -597,7 +597,7 @@ func (s *S) TestBucketForPercentileTwoAdjacenciesUnequal(c *C) {
|
|||
var subindex int = 0
|
||||
|
||||
for i := 0.0; i < 1.0; i += 0.01 {
|
||||
bucket, subindex := h.bucketForPercentile2(i)
|
||||
bucket, subindex := h.bucketForPercentile(i)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -607,37 +607,37 @@ func (s *S) TestBucketForPercentileTwoAdjacenciesUnequal(c *C) {
|
|||
h.Add(0.0)
|
||||
h.Add(1.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -649,37 +649,37 @@ func (s *S) TestBucketForPercentileTwoAdjacenciesUnequal(c *C) {
|
|||
h.Add(1.0)
|
||||
h.Add(1.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -691,37 +691,37 @@ func (s *S) TestBucketForPercentileTwoAdjacenciesUnequal(c *C) {
|
|||
h.Add(1.0)
|
||||
h.Add(2.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
@ -733,37 +733,37 @@ func (s *S) TestBucketForPercentileTwoAdjacenciesUnequal(c *C) {
|
|||
h.Add(2.0)
|
||||
h.Add(2.0)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.67)
|
||||
bucket, subindex = h.bucketForPercentile(0.67)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(2.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(2.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 1)
|
||||
c.Check((*bucket).Observations(), Equals, 2)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.5)
|
||||
bucket, subindex = h.bucketForPercentile(0.5)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(1.0 / 3.0)
|
||||
bucket, subindex = h.bucketForPercentile(1.0 / 3.0)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
c.Check((*bucket).Observations(), Equals, 1)
|
||||
|
||||
bucket, subindex = h.bucketForPercentile2(0.01)
|
||||
bucket, subindex = h.bucketForPercentile(0.01)
|
||||
|
||||
c.Assert(*bucket, Not(IsNil))
|
||||
c.Check(subindex, Equals, 0)
|
||||
|
|
Loading…
Reference in New Issue