### Question:
CategoryPointerAnnotation extends CategoryTextAnnotation implements Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } CategoryPointerAnnotation(String label, Comparable key, double value,
            double angle); double getAngle(); void setAngle(double angle); double getTipRadius(); void setTipRadius(double radius); double getBaseRadius(); void setBaseRadius(double radius); double getLabelOffset(); void setLabelOffset(double offset); double getArrowLength(); void setArrowLength(double length); double getArrowWidth(); void setArrowWidth(double width); Stroke getArrowStroke(); void setArrowStroke(Stroke stroke); Paint getArrowPaint(); void setArrowPaint(Paint paint); @Override void draw(Graphics2D g2, CategoryPlot plot, Rectangle2D dataArea,
            CategoryAxis domainAxis, ValueAxis rangeAxis); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone(); static final double DEFAULT_TIP_RADIUS; static final double DEFAULT_BASE_RADIUS; static final double DEFAULT_LABEL_OFFSET; static final double DEFAULT_ARROW_LENGTH; static final double DEFAULT_ARROW_WIDTH; }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { CategoryPointerAnnotation a1 = new CategoryPointerAnnotation("Label", "A", 20.0, Math.PI); CategoryPointerAnnotation a2 = (CategoryPointerAnnotation) a1.clone(); assertNotSame(a1, a2); assertSame(a1.getClass(), a2.getClass()); assertEquals(a1, a2); }