@Test public void testMoveIntInt() throws PolygonShapeException { // Mehrere Punkte erstellen ArrayList<Point> points = new ArrayList<Point>(); for (int i = 0; i < 20; ++i) points.add(new Point(i, 2 * i)); poly.setPoints(points); // Polygon verschieben poly.move(5, 7); assertThat(points, not(equalTo(poly.getPoints()))); // Punkte auch verschieben, sollte wieder gleich sein for (Point p : points) p.move(5, 7); assertThat(points, equalTo(poly.getPoints())); }
/** * equalsRelative testen * * @throws PolygonShapeException */ @Test public void testEqualsRelative() throws PolygonShapeException { Point move = new Point(0, 0); assertFalse(poly.equalsRelative(null, move)); assertFalse(poly.equalsRelative(new Circle(50, move), move)); // Leeres Polygon assertTrue(poly.equalsRelative(poly, move)); assertFalse(poly.equalsRelative(poly, move.copy().move(2, 1))); // Punkte hinzufügen ArrayList<Point> points = new ArrayList<Point>(); for (int i = 0; i < 20; ++i) points.add(new Point(i, i)); poly.setPoints(points); // Andres Polygon - leer, also sollte nicht gleich sein Polygon poly2 = new Polygon(); assertFalse(poly.equalsRelative(poly2, move)); // Test mit gleichen Punkten poly2.setPoints(points); assertTrue(poly.equalsRelative(poly2, move)); // Alle Punkte verschieben move = new Point(3, 5); for (Point p : points) p.move(move.getX(), move.getY()); poly2.setPoints(points); // Kein Verschiebungsvektor: ungleich assertFalse(poly.equalsRelative(poly2, new Point(0, 0))); // mit Verschiebungsvektor assertTrue(poly.equalsRelative(poly2, move)); // Andere Farben poly.setColor(Color.black); poly2.setColor(Color.green); assertFalse(poly.equalsRelative(poly2, move)); poly2.setColor(poly.getColor()); assertTrue(poly.equalsRelative(poly2, move)); // Verschiedene 'solid' parameter for (int i = 0; i < 4; ++i) { // alle möglichen Werte durchprobieren boolean a = i >= 2; boolean b = i % 2 == 0; poly.setSolid(a); poly2.setSolid(b); // Wenn solid gleich ist, sollte das Polygon auch gleich sein assertThat(a == b, is(equalTo(poly.equalsRelative(poly2, move)))); } }