Skip to content

Commit

Permalink
fix flaky EWMA test (#205)
Browse files Browse the repository at this point in the history
  • Loading branch information
marten-seemann authored Aug 12, 2022
1 parent 29bf33f commit 9161f4a
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions p2p/host/peerstore/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package peerstore

import (
"fmt"
"math"
"math/rand"
"testing"
"time"
Expand Down Expand Up @@ -44,21 +43,21 @@ func TestLatencyEWMA(t *testing.T) {
t.Fatal(err)
}

exp := 100.0
mu := exp
sig := 10.0
next := func() time.Duration {
mu := (rand.NormFloat64() * sig) + mu
return time.Duration(mu)
}
const exp = 100
const mu = exp
const sig = 10
next := func() time.Duration { return time.Duration(rand.Intn(20) - 10 + mu) }

for i := 0; i < 10; i++ {
time.Sleep(200 * time.Millisecond)
m.RecordLatency(id, next())
}

lat := m.LatencyEWMA(id)
if math.Abs(exp-float64(lat)) > sig {
t.Fatal("latency outside of expected range: ", exp, lat, sig)
diff := exp - lat
if diff < 0 {
diff = -diff
}
if diff > sig {
t.Fatalf("latency outside of expected range. expected %d ± %d, got %d", exp, sig, lat)
}
}

0 comments on commit 9161f4a

Please sign in to comment.