mirror of https://github.com/hashicorp/consul
55 lines
956 B
Go
55 lines
956 B
Go
|
package lib
|
||
|
|
||
|
import (
|
||
|
"math"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"github.com/hashicorp/serf/coordinate"
|
||
|
)
|
||
|
|
||
|
func TestRTT(t *testing.T) {
|
||
|
cases := []struct {
|
||
|
a *coordinate.Coordinate
|
||
|
b *coordinate.Coordinate
|
||
|
dist float64
|
||
|
}{
|
||
|
{
|
||
|
GenerateCoordinate(0),
|
||
|
GenerateCoordinate(10 * time.Millisecond),
|
||
|
0.010,
|
||
|
},
|
||
|
{
|
||
|
GenerateCoordinate(10 * time.Millisecond),
|
||
|
GenerateCoordinate(10 * time.Millisecond),
|
||
|
0.0,
|
||
|
},
|
||
|
{
|
||
|
GenerateCoordinate(8 * time.Millisecond),
|
||
|
GenerateCoordinate(10 * time.Millisecond),
|
||
|
0.002,
|
||
|
},
|
||
|
{
|
||
|
GenerateCoordinate(10 * time.Millisecond),
|
||
|
GenerateCoordinate(8 * time.Millisecond),
|
||
|
0.002,
|
||
|
},
|
||
|
{
|
||
|
nil,
|
||
|
GenerateCoordinate(8 * time.Millisecond),
|
||
|
math.Inf(1.0),
|
||
|
},
|
||
|
{
|
||
|
GenerateCoordinate(8 * time.Millisecond),
|
||
|
nil,
|
||
|
math.Inf(1.0),
|
||
|
},
|
||
|
}
|
||
|
for i, c := range cases {
|
||
|
dist := ComputeDistance(c.a, c.b)
|
||
|
if c.dist != dist {
|
||
|
t.Fatalf("bad (%d): %9.6f != %9.6f", i, c.dist, dist)
|
||
|
}
|
||
|
}
|
||
|
}
|