import tester.*; /** * Test cases for Posn rewritten using Viera's tester library. * * @author Stephen Bloch * @version 9 (Feb. 10, 2009) */ public class Examples { Posn origin = new Posn(0.,0.); Posn p1 = new Posn(0.,3.); Posn p2 = new Posn(-4.2,0.); Posn p2flipped = new Posn(4.2,0.); Posn p3 = new Posn(3.,-4.); Posn p4 = new Posn(-7.1, -9.7); public static void testEverything() { Tester.run (new Examples()); // Automatically runs all non-static methods in Examples whose names // start with "test", e.g. testBasics, testDistanceToOrigin, // testSwapCoords, etc. } /** * testBasics: make sure constructor and fields work. * * @param t the Tester to use * No return value; either succeeds or fails. */ public void testBasics (Tester t) { t.checkExpect(origin.x, 0.); t.checkExpect(origin.y, 0.); t.checkExpect(p1.x, 0.); t.checkExpect(p1.y, 3.); t.checkExpect(p3.x, 3.); t.checkExpect(p3.y, -4.); } /** * testDistanceToOrigin: make sure distance to (0,0) works. * * @param t the Tester to use * No return value; either succeeds or fails. */ public void testDistanceToOrigin (Tester t) { t.checkExpect(origin.distanceToOrigin(), 0.); t.checkExpect(p1.distanceToOrigin(), 3.); t.checkExpect(p2.distanceToOrigin(), 4.2); t.checkExpect(p2flipped.distanceToOrigin(), 4.2); t.checkExpect(p3.distanceToOrigin(), 5.); t.setTolerance (0.1); t.checkExpect(p4.distanceToOrigin(), 12.); // fails if you ask for exact equality } /** * testCoordDifference: similar; fill it in for yourself. */ /** * testToString: make sure toString works. * * @param t the Tester to use * No return value; either succeeds or fails. */ public void testToString (Tester t) { t.checkExpect(origin.toString(), "Posn(0.0, 0.0)"); t.checkExpect(p1.toString(), "Posn(0.0, 3.0)"); t.checkExpect(p2.toString(), "Posn(-4.2, 0.0)"); t.checkExpect(p3.toString(), "Posn(3.0, -4.0)"); t.checkExpect(p4.toString(), "Posn(-7.1, -9.7)"); } /** * testSwapCoords: make sure swapCoords works. * * @param t the Tester to use * No return value; either succeeds or fails. * * Note: since swapCoords returns a Posn, it's MUCH easier to * test using the tester library than using JUnit. */ public void testSwapCoords (Tester t) { t.checkExpect (origin.swapCoords(), origin); t.checkExpect (p1.swapCoords(), new Posn(3., 0.)); t.checkExpect (p2.swapCoords(), new Posn(0., -4.2)); t.checkExpect (p3.swapCoords(), new Posn(-4., 3.)); t.checkExpect (p4.swapCoords(), new Posn(-9.7, -7.1)); t.checkExpect (p4.swapCoords(), p3); // should fail } }