added method to determine distance between points

should be valuable to know what distance between two points is. Also
added testing
This commit is contained in:
Derek McQuay 2016-08-26 11:37:18 -07:00
parent b5a9726d2d
commit b9bc23566f
2 changed files with 35 additions and 0 deletions

View File

@ -1,5 +1,11 @@
package rect
import "math"
type Point struct {
X, Y float64
}
func distance(p1, p2 Point) float64 {
return math.Sqrt(math.Pow((p1.X-p2.X), 2) + math.Pow((p1.Y-p2.Y), 2))
}

29
point_test.go Normal file
View File

@ -0,0 +1,29 @@
package rect
import (
"math"
"testing"
)
func TestDistance(t *testing.T) {
var distanceTest = []struct {
p []Point
expected float64
}{
{[]Point{Point{1, 1}, Point{4, 5}}, 5},
{[]Point{Point{-1, -1}, Point{2, 3}}, 5},
{[]Point{Point{1, 1}, Point{2, 2}}, math.Sqrt(2)},
{[]Point{Point{1, 1}, Point{40, 20}}, math.Sqrt(1882)},
}
for _, rt := range distanceTest {
actual := distance(rt.p[0], rt.p[1])
if actual != rt.expected {
t.Errorf(
"failed spiral:\n\texpected: %d\n\t actual: %d",
rt.expected,
actual,
)
}
}
}