package org.iplantc.phyloviewer.shared.math; import org.junit.Test; import junit.framework.TestCase; public class TestVector2 extends TestCase { double delta = 10E-14; @Test public void testSubtract() { Vector2 v0 = new Vector2(1.0, 1.0); Vector2 v1 = new Vector2(0.5, 0.5); Vector2 answer = v0.subtract(v1); assertEquals(answer.getX(), 0.5, delta); assertEquals(answer.getY(), 0.5, delta); } @Test public void testAdd() { Vector2 v0 = new Vector2(1.0, 1.0); Vector2 v1 = new Vector2(0.5, 0.5); Vector2 answer = v0.add(v1); assertEquals(answer.getX(), 1.5, delta); assertEquals(answer.getY(), 1.5, delta); } @Test public void testRotate() { Vector2 v0 = new Vector2(1.0, 0.0); Vector2 answer = v0.rotate(Math.PI / 2.0); assertEquals(0.0, answer.getX(), delta); assertEquals(1.0, answer.getY(), delta); } @Test public void testDistance() { Vector2 v0 = new Vector2(0.0, 0.0); Vector2 v1 = new Vector2(1.0, 1.0); assertEquals(Math.sqrt(2.0), v0.distance(v1), delta); assertEquals(Math.sqrt(2.0), v1.distance(v0), delta); Vector2 v2 = new Vector2(2.0, 3.0); assertEquals(Math.sqrt(5.0), v1.distance(v2), delta); assertEquals(Math.sqrt(5.0), v2.distance(v1), delta); } @Test public void testDistanceSquared() { Vector2 v0 = new Vector2(0.0, 0.0); Vector2 v1 = new Vector2(1.0, 1.0); assertEquals(2.0, v0.distanceSquared(v1), delta); assertEquals(2.0, v1.distanceSquared(v0), delta); Vector2 v2 = new Vector2(2.0, 3.0); assertEquals(5.0, v1.distanceSquared(v2), delta); assertEquals(5.0, v2.distanceSquared(v1), delta); } @Test public void testDot() { Vector2 v0 = new Vector2(4, 2); Vector2 v1 = new Vector2(7, -3); assertEquals(22, v0.dot(v1), delta); } }