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) } } }