func (s *StatsTestSuite) TestProtocolStats() {
	if testing.Short() {
		s.T().Skip("skipping protocol stats test in short mode")
	}
	s.cluster.Add(s.testNode.node)
	time.Sleep(6 * time.Second)
	stats := s.testNode.node.ProtocolStats()
	s.NotEmpty(stats.Timing.Type)
	s.NotZero(stats.Timing.Min)
	s.NotZero(stats.Timing.Max)
	s.NotZero(stats.Timing.Sum)
	s.NotZero(stats.Timing.Variance)
	s.NotZero(stats.Timing.Mean)
	s.NotZero(stats.Timing.StdDev)
	s.NotZero(stats.Timing.Count)
	s.NotZero(stats.Timing.Median)
	s.NotZero(stats.Timing.P75)
	s.NotZero(stats.Timing.P95)
	s.NotZero(stats.Timing.P99)
	s.NotZero(stats.Timing.P999)
	s.NotZero(stats.ServerRate)
	s.NotZero(stats.TotalRate)
}
TestProtocolStats tests that the returned struct has non-zero values for all
fields.
package swim
import (
	"sort"
	"testing"
	"time"
	"github.com/stretchr/testify/suite"
)
type StatsTestSuite struct {
	suite.Suite
	testNode *testNode
	cluster *swimCluster
}
func (s *StatsTestSuite) SetupTest() {
	s.testNode = newChannelNode(s.T())
	s.cluster = newSwimCluster(4)
	s.cluster.Bootstrap()
}
func (s *StatsTestSuite) TearDownTest() {
	if s.cluster != nil {
		s.cluster.Destroy()
	}
}
func (s *StatsTestSuite) TestUptime() {
	s.cluster.Add(s.testNode.node)
	s.True(s.testNode.node.Uptime() > 0, "expected uptime to be greater than zero")
}