### Question:
XYAreaRenderer2 extends AbstractXYItemRenderer implements XYItemRenderer, PublicCloneable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof XYAreaRenderer2)) { return false; } XYAreaRenderer2 that = (XYAreaRenderer2) obj; if (this.showOutline != that.showOutline) { return false; } if (!ShapeUtils.equal(this.legendArea, that.legendArea)) { return false; } return super.equals(obj); } XYAreaRenderer2();  XYAreaRenderer2(XYToolTipGenerator labelGenerator,
                           XYURLGenerator urlGenerator); boolean isOutline(); void setOutline(boolean show); Shape getLegendArea(); void setLegendArea(Shape area); @Override LegendItem getLegendItem(int datasetIndex, int series); @Override void drawItem(Graphics2D g2,
                         XYItemRendererState state,
                         Rectangle2D dataArea,
                         PlotRenderingInfo info,
                         XYPlot plot,
                         ValueAxis domainAxis,
                         ValueAxis rangeAxis,
                         XYDataset dataset,
                         int series,
                         int item,
                         CrosshairState crosshairState,
                         int pass); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testEquals() { XYAreaRenderer2 r1 = new XYAreaRenderer2(); XYAreaRenderer2 r2 = new XYAreaRenderer2(); assertEquals(r1, r2); r1.setOutline(!r1.isOutline()); assertFalse(r1.equals(r2)); r2.setOutline(r1.isOutline()); assertEquals(r1, r2); r1.setLegendArea(new Rectangle(1, 2, 3, 4)); assertFalse(r1.equals(r2)); r2.setLegendArea(new Rectangle(1, 2, 3, 4)); assertEquals(r1, r2); }