### Question:
XYStepAreaRenderer extends AbstractXYItemRenderer implements XYItemRenderer, Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } XYStepAreaRenderer();  XYStepAreaRenderer(int type);  XYStepAreaRenderer(int type,
                              XYToolTipGenerator toolTipGenerator,
                              XYURLGenerator urlGenerator); boolean isOutline(); void setOutline(boolean show); boolean getShapesVisible(); void setShapesVisible(boolean flag); boolean isShapesFilled(); void setShapesFilled(boolean filled); boolean getPlotArea(); void setPlotArea(boolean flag); double getRangeBase(); void setRangeBase(double val); double getStepPoint(); void setStepPoint(double stepPoint); @Override XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea,
            XYPlot plot, XYDataset data, PlotRenderingInfo info); @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(); static final int SHAPES; static final int AREA; static final int AREA_AND_SHAPES; }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { XYStepAreaRenderer r1 = new XYStepAreaRenderer(); XYStepAreaRenderer r2 = (XYStepAreaRenderer) r1.clone(); assertNotSame(r1, r2); assertSame(r1.getClass(), r2.getClass()); assertEquals(r1, r2); }