// Helper function to test any rectangle covering (0,0) to (2,2) private static void testOverlaps0022(Rectangle r0022) { Rectangle r3 = new CorneredRectangle(0, 2, 4, 4); Rectangle r4 = new CorneredRectangle(-1, 1, 4, 4); Rectangle r5 = new CorneredRectangle(0, 1, 3, 3); assertFalse(r0022.overlaps(r3)); assertFalse(r3.overlaps(r0022)); assertTrue(r0022.overlaps(r4)); assertTrue(r4.overlaps(r0022)); assertTrue(r0022.overlaps(r5)); assertTrue(r5.overlaps(r0022)); }
// Helper function for any rectangle. // Expects the lower left coordinates (llx,lly) // and upper-right coordinates (urx, ury), // even if that's not how the rectangle is // internally represented. private static void testGeometry(Rectangle r, double llx, double lly, double urx, double ury) { // Sanity-check the inputs assertTrue(llx <= urx); assertTrue(lly <= ury); // Check the corners assertTrue(r.lowerLeft().getX() == llx); assertTrue(r.lowerLeft().getY() == lly); assertTrue(r.upperRight().getX() == urx); assertTrue(r.upperRight().getY() == ury); assertTrue(r.lowerRight().getX() == urx); assertTrue(r.lowerRight().getY() == lly); assertTrue(r.upperLeft().getX() == llx); assertTrue(r.upperLeft().getY() == ury); // Check the center assertTrue(r.center().getX() == (llx + urx) / 2.0); assertTrue(r.center().getY() == (lly + ury) / 2.0); // Check the width assertTrue(r.width() == (urx - llx)); assertTrue(r.height() == (ury - lly)); }
// Helper function to test any rectangle private static void testMove(Rectangle r) { Point ll = r.lowerLeft(); Point ur = r.upperRight(); Point c = r.center(); double wd = r.width(); double ht = r.height(); r.move(0., 0.); // Nothing should change assertTrue(r.lowerLeft().equals(ll)); assertTrue(r.upperRight().equals(ur)); assertTrue(r.center().equals(c)); assertTrue(r.width() == wd); assertTrue(r.height() == ht); double dx = 10.0; // how much to move. double dy = -10.0; r.move(dx, dy); Point newll = new Point(ll.getX() + dx, ll.getY() + dy); Point newur = new Point(ur.getX() + dx, ur.getY() + dy); Point newc = new Point(c.getX() + dx, c.getY() + dy); assertTrue(r.lowerLeft().equals(newll)); assertTrue(r.upperRight().equals(newur)); assertTrue(r.center().equals(newc)); assertTrue(r.width() == wd); // no change in size assertTrue(r.height() == ht); }
@Test public void testCorneredRectangle5() { Rectangle cr1 = new CorneredRectangle(0, 0, 2, 2); Rectangle cr2 = new CorneredRectangle(-1, 0.5, 4, 1.5); assertTrue(cr1.overlaps(cr2)); }
// Helper function to test any non-empty rectangle private static void testInterior(Rectangle r) { assertTrue(r.interior(r.center())); assertFalse(r.interior(r.lowerRight())); assertFalse(r.interior(r.upperLeft())); assertFalse(r.interior(r.upperLeft().offset(0, 1))); assertFalse(r.interior(r.lowerLeft().offset(0, -1))); assertFalse(r.interior(r.upperRight().offset(1, 0))); assertFalse(r.interior(r.lowerRight().offset(1, 1))); assertTrue(r.interior(r.lowerLeft().offset(r.width() / 4, r.height() / 10))); }