### Question:
DialPointer extends AbstractDialLayer implements DialLayer, Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } protected  DialPointer(); protected  DialPointer(int datasetIndex); int getDatasetIndex(); void setDatasetIndex(int index); double getRadius(); void setRadius(double radius); @Override boolean isClippedToWindow(); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone();  }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { DialPointer i1 = new DialPointer.Pin(1); DialPointer i2 = (DialPointer) 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)); }