diff --git a/point.go b/point.go index e0b5e15..9a8a5d1 100644 --- a/point.go +++ b/point.go @@ -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)) +} diff --git a/point_test.go b/point_test.go new file mode 100644 index 0000000..53afb67 --- /dev/null +++ b/point_test.go @@ -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, + ) + } + + } +}