RandomKinematicAlgorithm implements RandomMotionAlgorithm, Serializable, Cloneable { @Override public AgentMotion calculate(Point2D<?, ?> position, Vector2D<?, ?> orientation, double linearSpeed, double maxLinearSpeed, double angularSpeed, double maxAngularSpeed) { final Vector2D<?, ?> v = orientation.toColinearVector(maxLinearSpeed); final double rotation = this.random.nextGaussian() * maxAngularSpeed; return new AgentMotion(v, rotation); }  @Pure @Override RandomKinematicAlgorithm clone(); @Override AgentMotion calculate(Point2D<?, ?> position, Vector2D<?, ?> orientation, double linearSpeed,
			double maxLinearSpeed, double angularSpeed, double maxAngularSpeed);  }
@Test public void calculate() { AgentMotion m = this.random.calculate(new Point2d(1, 2), new Vector2d(3, 4), 5, 6, 7, 8); assertNotNull(m); assertFpVectorEquals(3.6, 4.8, m.getLinear()); }