### Question:
DialValueIndicator extends AbstractDialLayer implements DialLayer,
        Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } DialValueIndicator();  DialValueIndicator(int datasetIndex); int getDatasetIndex(); void setDatasetIndex(int index); double getAngle(); void setAngle(double angle); double getRadius(); void setRadius(double radius); RectangleAnchor getFrameAnchor(); void setFrameAnchor(RectangleAnchor anchor); Number getTemplateValue(); void setTemplateValue(Number value); Number getMaxTemplateValue(); void setMaxTemplateValue(Number value); NumberFormat getNumberFormat(); void setNumberFormat(NumberFormat formatter); Font getFont(); void setFont(Font font); Paint getPaint(); void setPaint(Paint paint); Paint getBackgroundPaint(); void setBackgroundPaint(Paint paint); Stroke getOutlineStroke(); void setOutlineStroke(Stroke stroke); Paint getOutlinePaint(); void setOutlinePaint(Paint paint); RectangleInsets getInsets(); void setInsets(RectangleInsets insets); RectangleAnchor getValueAnchor(); void setValueAnchor(RectangleAnchor anchor); TextAnchor getTextAnchor(); void setTextAnchor(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 { DialValueIndicator i1 = new DialValueIndicator(0); DialValueIndicator i2 = (DialValueIndicator) i1.clone(); assertNotSame(i1, i2); assertSame(i1.getClass(), i2.getClass()); assertEquals(i1, i2); MyDialLayerChangeListener l1 = new MyDialLayerChangeListener(); i1.addChangeListener(l1); assertTrue(i1.hasListener(l1)); assertFalse(i2.hasListener(l1)); }