### Question:
HighLowItemLabelGenerator implements XYItemLabelGenerator,
        XYToolTipGenerator, Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { HighLowItemLabelGenerator clone = (HighLowItemLabelGenerator) super.clone(); if (this.dateFormatter != null) { clone.dateFormatter = (DateFormat) this.dateFormatter.clone(); } if (this.numberFormatter != null) { clone.numberFormatter = (NumberFormat) this.numberFormatter.clone(); } return clone; } HighLowItemLabelGenerator();  HighLowItemLabelGenerator(DateFormat dateFormatter,
                                     NumberFormat numberFormatter); @Override String generateToolTip(XYDataset dataset, int series, int item); @Override String generateLabel(XYDataset dataset, int series, int category); @Override Object clone(); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { HighLowItemLabelGenerator g1 = new HighLowItemLabelGenerator(); HighLowItemLabelGenerator g2 = (HighLowItemLabelGenerator) g1.clone(); assertNotSame(g1, g2); assertSame(g1.getClass(), g2.getClass()); assertEquals(g1, g2); }