### Question:
XYShapeRenderer extends AbstractXYItemRenderer implements XYItemRenderer, Cloneable, Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof XYShapeRenderer)) { return false; } XYShapeRenderer that = (XYShapeRenderer) obj; if (!this.paintScale.equals(that.paintScale)) { return false; } if (this.drawOutlines != that.drawOutlines) { return false; } if (this.useOutlinePaint != that.useOutlinePaint) { return false; } if (this.useFillPaint != that.useFillPaint) { return false; } if (this.guideLinesVisible != that.guideLinesVisible) { return false; } if (!this.guideLinePaint.equals(that.guideLinePaint)) { return false; } if (!this.guideLineStroke.equals(that.guideLineStroke)) { return false; } return super.equals(obj); } XYShapeRenderer(); PaintScale getPaintScale(); void setPaintScale(PaintScale scale); boolean getDrawOutlines(); void setDrawOutlines(boolean flag); boolean getUseFillPaint(); void setUseFillPaint(boolean flag); boolean getUseOutlinePaint(); void setUseOutlinePaint(boolean use); boolean isGuideLinesVisible(); void setGuideLinesVisible(boolean visible); Paint getGuideLinePaint(); void setGuideLinePaint(Paint paint); Stroke getGuideLineStroke(); void setGuideLineStroke(Stroke stroke); @Override Range findDomainBounds(XYDataset dataset); @Override Range findRangeBounds(XYDataset dataset); Range findZBounds(XYZDataset dataset); @Override int getPassCount(); @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() { XYShapeRenderer r1 = new XYShapeRenderer(); XYShapeRenderer r2 = new XYShapeRenderer(); assertEquals(r1, r2); assertEquals(r2, r1); r1.setPaintScale(new LookupPaintScale(1.0, 2.0, Color.WHITE)); assertFalse(r1.equals(r2)); r2.setPaintScale(new LookupPaintScale(1.0, 2.0, Color.WHITE)); assertEquals(r1, r2); r1.setDrawOutlines(true); assertFalse(r1.equals(r2)); r2.setDrawOutlines(true); assertEquals(r1, r2); r1.setUseOutlinePaint(false); assertFalse(r1.equals(r2)); r2.setUseOutlinePaint(false); assertEquals(r1, r2); r1.setUseFillPaint(true); assertFalse(r1.equals(r2)); r2.setUseFillPaint(true); assertEquals(r1, r2); r1.setGuideLinesVisible(true); assertFalse(r1.equals(r2)); r2.setGuideLinesVisible(true); assertEquals(r1, r2); r1.setGuideLinePaint(Color.RED); assertFalse(r1.equals(r2)); r2.setGuideLinePaint(Color.RED); assertEquals(r1, r2); }