Tuple2D extends Point2D.Double implements ILocated2D { public Tuple2D normalize() { double len = length(); return new Tuple2D(x / len, y / len); } Tuple2D(double x, double y); boolean isZero(); double length(); Tuple2D normalize(); double angle(); Tuple2D midpoint(Tuple2D position); Tuple2D add(Tuple2D position); Tuple2D sub(ILocated2D rhs); Tuple2D mult(double i); Tuple2D div(double i); Tuple2D getPosition(); Tuple2D rotate(double radians); double distance(ILocated2D other); @Override String toString(); double angleBetweenTargets(ILocated2D a, ILocated2D b);  }
@Test public void testNormalize() { Tuple2D test = new Tuple2D(3, 4); double testX = 3.0 / 5; double testY = 4.0 / 5; test = test.normalize(); assertEquals(testX, test.x, ERROR); assertEquals(testY, test.y, ERROR); }