### Question:
DialTextAnnotation extends AbstractDialLayer implements DialLayer,
        Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } DialTextAnnotation(String label); String getLabel(); void setLabel(String label); Font getFont(); void setFont(Font font); Paint getPaint(); void setPaint(Paint paint); double getAngle(); void setAngle(double angle); double getRadius(); void setRadius(double radius); TextAnchor getAnchor(); void setAnchor(TextAnchor anchor); @Override boolean isClippedToWindow(); @Override void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame,
            Rectangle2D view); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone();  }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { DialTextAnnotation a1 = new DialTextAnnotation("A1"); DialTextAnnotation a2 = (DialTextAnnotation) a1.clone(); assertNotSame(a1, a2); assertSame(a1.getClass(), a2.getClass()); assertEquals(a1, a2); MyDialLayerChangeListener l1 = new MyDialLayerChangeListener(); a1.addChangeListener(l1); assertTrue(a1.hasListener(l1)); assertFalse(a2.hasListener(l1)); }