### Question:
ArcDialFrame extends AbstractDialLayer implements DialFrame,
        Cloneable, PublicCloneable, Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof ArcDialFrame)) { return false; } ArcDialFrame that = (ArcDialFrame) obj; if (!PaintUtilities.equal(this.backgroundPaint, that.backgroundPaint)) { return false; } if (!PaintUtilities.equal(this.foregroundPaint, that.foregroundPaint)) { return false; } if (this.startAngle != that.startAngle) { return false; } if (this.extent != that.extent) { return false; } if (this.innerRadius != that.innerRadius) { return false; } if (this.outerRadius != that.outerRadius) { return false; } if (!this.stroke.equals(that.stroke)) { return false; } return super.equals(obj); } ArcDialFrame();  ArcDialFrame(double startAngle, double extent); Paint getBackgroundPaint(); void setBackgroundPaint(Paint paint); Paint getForegroundPaint(); void setForegroundPaint(Paint paint); Stroke getStroke(); void setStroke(Stroke stroke); double getInnerRadius(); void setInnerRadius(double radius); double getOuterRadius(); void setOuterRadius(double radius); double getStartAngle(); void setStartAngle(double angle); double getExtent(); void setExtent(double extent); @Override Shape getWindow(Rectangle2D frame); @Override void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame,
            Rectangle2D view); @Override boolean isClippedToWindow(); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone();  }### Answer:
@Test public void testEquals() { ArcDialFrame f1 = new ArcDialFrame(); ArcDialFrame f2 = new ArcDialFrame(); assertEquals(f1, f2); f1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.yellow)); assertFalse(f1.equals(f2)); f2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.yellow)); assertEquals(f1, f2); f1.setForegroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.yellow)); assertFalse(f1.equals(f2)); f2.setForegroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.yellow)); assertEquals(f1, f2); f1.setStroke(new BasicStroke(1.1f)); assertFalse(f1.equals(f2)); f2.setStroke(new BasicStroke(1.1f)); assertEquals(f1, f2); f1.setInnerRadius(0.11); assertFalse(f1.equals(f2)); f2.setInnerRadius(0.11); assertEquals(f1, f2); f1.setOuterRadius(0.88); assertFalse(f1.equals(f2)); f2.setOuterRadius(0.88); assertEquals(f1, f2); f1.setStartAngle(99); assertFalse(f1.equals(f2)); f2.setStartAngle(99); assertEquals(f1, f2); f1.setExtent(33); assertFalse(f1.equals(f2)); f2.setExtent(33); assertEquals(f1, f2); f1.setVisible(false); assertFalse(f1.equals(f2)); f2.setVisible(false); assertEquals(f1, f2); }