private static boolean testCircle() {
    boolean pass = true;
    int test = 1;
    Circle circle;

    System.out.println("Circle tests...");

    circle = new Circle(5.6789, new Point(-99, 66), Color.cyan, false);
    pass &= test(approx(circle.getArea(), Math.PI * 5.6789 * 5.6789, 0.000001), test++);
    pass &= test(circle.getColor().equals(Color.cyan), test++);

    circle.setColor(Color.black);
    pass &= test(circle.getColor().equals(Color.black), test++);
    pass &= test(!circle.getFilled(), test++);

    circle.setFilled(true);
    pass &= test(circle.getFilled(), test++);
    pass &= test(circle.getRadius() == 5.6789, test++);

    circle.setRadius(4.321);
    pass &= test(circle.getRadius() == 4.321, 7);
    pass &= test(approx(circle.getArea(), Math.PI * 4.321 * 4.321, 0.000001), test++);
    pass &= test(circle.getPosition().equals(new Point(-99, 66)), test++);

    circle.move(new Point(-5, -7));
    pass &= test(circle.getPosition().equals(new Point(-104, 59)), test++);

    Circle circle2 = new Circle(4.321, new Point(-104, 59), Color.black, true);
    pass &= test(circle.equals(circle2), test++);

    Circle circle3 = new Circle(4.3219, new Point(-104, 59), Color.black, false);
    pass &= test(!circle2.equals(circle3), test++);

    circle3 = new Circle(4.321, new Point(-104, 59), Color.red, false);
    pass &= test(!circle2.equals(circle3), test++);

    circle3 = new Circle(4.321, new Point(104, 59), Color.black, false);
    pass &= test(!circle2.equals(circle3), test++);

    pass &= test(!circle2.equals(null), test++);
    pass &= test(!circle2.equals(new String("Whatever")), test++);

    return pass;
  }