diff --git a/govector_test.go b/govector_test.go index 9937070..d38e232 100644 --- a/govector_test.go +++ b/govector_test.go @@ -9,13 +9,13 @@ func TestSubMag(t *testing.T) { p1 := Point2d{10, 10} p2 := Point2d{7, 6} - v := p1.sub(p2) + v := p1.Sub(p2) if v != (Vector2d{3, 4}) { t.Errorf("Sub Error") } - m := v.mag() + m := v.Mag() if m != 5 { t.Errorf("Mag Error") @@ -24,17 +24,17 @@ func TestSubMag(t *testing.T) { func TestScale(t *testing.T) { v := Vector2d{3, 4} - m := v.mag() + m := v.Mag() if m != 5 { t.Errorf("Mag Error") } - m2 := v.scale(2) + m2 := v.Scale(2) fmt.Printf("%v\n", m2) - if m2.mag() != 10 { + if m2.Mag() != 10 { t.Errorf("Mag Error") } } @@ -42,7 +42,7 @@ func TestScale(t *testing.T) { func TestAdd(t *testing.T) { p := Point2d{10, 10} v := Vector2d{3, 4} - m := p.add(v) + m := p.Add(v) fmt.Printf("%v\n", m) @@ -50,3 +50,12 @@ func TestAdd(t *testing.T) { t.Errorf("Add Error") } } + +func TestNormalize(t *testing.T) { + v := Vector2d{3, 4} + vn := v.Normalize() + + if vn.Mag() != 1 { + t.Errorf("Normalize Error") + } +} diff --git a/vectorpoint.go b/vectorpoint.go index f069a15..60b84fc 100644 --- a/vectorpoint.go +++ b/vectorpoint.go @@ -42,3 +42,8 @@ func (v Vector2d) PopPop() float64 { func (v Vector2d) Scale(s float64) Vector2d { return Vector2d{v.X * s, v.Y * s} } + +func (v Vector2d) Normalize() Vector2d { + m := v.Mag() + return Vector2d{v.X / m, v.Y / m} +}