catapult: Fix off-by-one error computing meanlogs
IN-199
Change-Id: I3210842bae2ddafb57aaedf6a8d87e878a67800e
diff --git a/catapult/histogram.go b/catapult/histogram.go
index 7b24014..fcb6fff 100644
--- a/catapult/histogram.go
+++ b/catapult/histogram.go
@@ -131,7 +131,7 @@
sum += v
// Compute meanlogs as a cumulative moving average:
// https://en.wikipedia.org/wiki/Moving_average
- meanlogs += (math.Log10(math.Abs(v)) - meanlogs) / float64(i)
+ meanlogs += (math.Log10(math.Abs(v)) - meanlogs) / float64(i+1)
}
mean := stat.Mean(values, nil)
diff --git a/catapult/histogram_test.go b/catapult/histogram_test.go
index 168b773..524948b 100644
--- a/catapult/histogram_test.go
+++ b/catapult/histogram_test.go
@@ -5,9 +5,8 @@
import (
"encoding/json"
- "testing"
-
"reflect"
+ "testing"
. "fuchsia.googlesource.com/testing/catapult"
schema "fuchsia.googlesource.com/testing/perf/schema/v1"
@@ -67,10 +66,11 @@
})
assert.Equal(s.T(), histogram.MaxNumSampleValues, 5)
assert.Equal(s.T(), histogram.NumNans, 0)
+
assert.ElementsMatch(s.T(), histogram.Running, []float64{
- 5, // count
- 5e-05, // max
- 0, // meanlogs
+ 5, // count
+ 5e-05, // max
+ -4.5841637507904744, // meanlogs
3.0000000000000004e-05, //mean
1e-5, // min
1.5000000000000001e-4, //sum