### Question:
CategoryTextAnnotation extends TextAnnotation implements CategoryAnnotation, Cloneable, PublicCloneable,
                   Serializable { @Override public int hashCode() { int result = super.hashCode(); result = 37 * result + this.category.hashCode(); result = 37 * result + this.categoryAnchor.hashCode(); long temp = Double.doubleToLongBits(this.value); result = 37 * result + (int) (temp ^ (temp >>> 32)); return result; } CategoryTextAnnotation(String text, Comparable category, 
            double value); Comparable getCategory(); void setCategory(Comparable category); CategoryAnchor getCategoryAnchor(); void setCategoryAnchor(CategoryAnchor anchor); double getValue(); void setValue(double value); @Override void draw(Graphics2D g2, CategoryPlot plot, Rectangle2D dataArea,
                     CategoryAxis domainAxis, ValueAxis rangeAxis); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone();  }### Answer:
@Test public void testHashcode() { CategoryTextAnnotation a1 = new CategoryTextAnnotation("Test", "Category", 1.0); CategoryTextAnnotation a2 = new CategoryTextAnnotation("Test", "Category", 1.0); assertEquals(a1, a2); int h1 = a1.hashCode(); int h2 = a2.hashCode(); assertEquals(h1, h2); }