Example #1
0
  @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()));
  }
Example #2
0
  /**
   * 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))));
    }
  }