package rebelsky.vec; import junit.framework.TestCase; import junit.framework.TestSuite; /** * A simple test of two-dimensional vectors (vectors in two-space), * intended primarily to help SamR think about the use of JUnit with * interfaces. * * Note that you do not use this TestCase directly. Rather, you * subclass it and (1) override the coords2point method and (2) * add a suite() method. * * @author Samuel A. Rebelsky * @version 1.0 of September 2004 */ public abstract class Vec2DTest extends TestCase { protected Vec2D[] vecs; public abstract Vec2D coords2point(double _x, double _y); public void setUp() { vecs = new Vec2D[]{ // Origin coords2point(0, 0), // Along each axis coords2point(3, 0), coords2point(0, 3), coords2point(-3, 0), coords2point(0, -3), // A few in the first quadrant coords2point(1, 3), coords2point(2, 2), coords2point(3, 1), // A few in the second quadrant coords2point(-1, 3), coords2point(-2, 2), coords2point(-3, 1), // A few in the third quadrant coords2point(-1, -3), coords2point(-2, -2), coords2point(-3, -1), // A few in the fourth quadrant coords2point(1, -3), coords2point(2, -2), coords2point(3, -1), }; } // setup() public void xtestPrint() { for (int i = 0; i < vecs.length; i++) { System.out.println(vecs[i]); } } // testPrint() public void testEquals() { for (int i = 0; i < vecs.length; i++) { assertEquals(vecs[i],vecs[i]); } } // testEquals() public void testRotate() { for (int i = 0; i < vecs.length; i++) { // Rotation by 0 Vec2D rot = vecs[i].rotate(0); assertEquals(rot.getX(), vecs[i].getX(), 0.0); assertEquals(rot.getY(), vecs[i].getY(), 0.0); assertEquals(rot.getAngle(), vecs[i].getAngle(), 0.0); assertEquals(rot.getRadius(), vecs[i].getRadius(), 0.0); // Rotation by 2pi = identity rot = vecs[i].rotate(2*Math.PI); assertEquals(rot.getX(), vecs[i].getX(), 0.0001); assertEquals(rot.getY(), vecs[i].getY(), 0.0001); assertEquals(rot.getAngle(), vecs[i].getAngle(), 0.0001); assertEquals(rot.getRadius(), vecs[i].getRadius(), 0.0001); } // for } // testRotate() } // Vec2DTest