### Question:
ArcDialFrame extends AbstractDialLayer implements DialFrame,
        Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } 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 testCloning() throws CloneNotSupportedException { ArcDialFrame f1 = new ArcDialFrame(); ArcDialFrame f2 = (ArcDialFrame) f1.clone(); assertNotSame(f1, f2); assertSame(f1.getClass(), f2.getClass()); assertEquals(f1, f2); MyDialLayerChangeListener l1 = new MyDialLayerChangeListener(); f1.addChangeListener(l1); assertTrue(f1.hasListener(l1)); assertFalse(f2.hasListener(l1)); }