go-libp2p-peerstore/metrics_test.go

41 lines
647 B
Go
Raw Normal View History

2015-10-01 06:42:55 +08:00
package peer_test
import (
"fmt"
"math/rand"
"testing"
"time"
2016-04-16 13:56:37 +08:00
peer "github.com/ipfs/go-libp2p-peer"
testutil "github.com/ipfs/go-libp2p-peer/test"
2015-10-01 06:42:55 +08:00
)
func TestLatencyEWMAFun(t *testing.T) {
t.Skip("run it for fun")
m := peer.NewMetrics()
id, err := testutil.RandPeerID()
if err != nil {
t.Fatal(err)
}
mu := 100.0
sig := 10.0
next := func() time.Duration {
mu = (rand.NormFloat64() * sig) + mu
return time.Duration(mu)
}
print := func() {
fmt.Printf("%3.f %3.f --> %d\n", sig, mu, m.LatencyEWMA(id))
}
for {
select {
case <-time.After(200 * time.Millisecond):
m.RecordLatency(id, next())
print()
}
}
}