Vec2 { public double magnitudeSquared() { return this.x * this.x + this.y * this.y; } Vec2();  Vec2(double x, double y);  Vec2(Vec2 vector); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); float[] toArray(float[] result, int offset); double magnitude(); double magnitudeSquared(); double distanceTo(Vec2 vector); double distanceToSquared(Vec2 vector); Vec2 set(double x, double y); Vec2 set(Vec2 vector); Vec2 swap(Vec2 vector); Vec2 add(Vec2 vector); Vec2 subtract(Vec2 vector); Vec2 multiply(double scalar); Vec2 multiplyByMatrix(Matrix3 matrix); Vec2 divide(double divisor); Vec2 negate(); Vec2 normalize(); double dot(Vec2 vector); Vec2 mix(Vec2 vector, double weight); public double x; public double y; }
@Test public void testMagnitudeSquared() throws Exception { Vec2 u = new Vec2(3, 4); double magnitudeSquared = u.magnitudeSquared(); assertEquals("3,4,5 hypotenuse squared", 25d, magnitudeSquared, Double.MIN_VALUE); }
@Test public void testMagnitudeSquared_NaN() throws Exception { Vec2 u = new Vec2(3d, Double.NaN); Vec2 v = new Vec2(Double.NaN, 4d); double uMagnitudeSquared = u.magnitudeSquared(); double vMagnitudeSquared = v.magnitudeSquared(); assertTrue("u NaN", Double.isNaN(uMagnitudeSquared)); assertTrue("v NaN", Double.isNaN(vMagnitudeSquared)); }