### Question:
XYShapeRenderer extends AbstractXYItemRenderer implements XYItemRenderer, Cloneable, Serializable { public Range findZBounds(XYZDataset dataset) { if (dataset != null) { return DatasetUtilities.findZBounds(dataset); } else { return null; } } 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 testFindZBounds() { XYShapeRenderer r = new XYShapeRenderer(); assertNull(r.findZBounds(null)); DefaultXYZDataset dataset = new DefaultXYZDataset(); Range range; double data1[][] = { {1,1,1}, {1,1,1}, {1,2,3} }; dataset.addSeries("series1", data1); range = r.findZBounds(dataset); assertNotNull(range); assertEquals(1d, range.getLowerBound(), EPSILON); assertEquals(3d, range.getUpperBound(), EPSILON); double data2[][] = { {1,1,1}, {1,1,1}, {-1,-2,-3} }; dataset.removeSeries("series1"); dataset.addSeries("series2", data2); range = r.findZBounds(dataset); assertNotNull(range); assertEquals(-3d, range.getLowerBound(), EPSILON); assertEquals(-1d, range.getUpperBound(), EPSILON); double data3[][] = { {1,1,1}, {1,1,1}, {-1.2,2.9,3.8} }; dataset.removeSeries("series2"); dataset.addSeries("series3", data3); range = r.findZBounds(dataset); assertNotNull(range); assertEquals(-1.2d, range.getLowerBound(), EPSILON); assertEquals(3.8d, range.getUpperBound(), EPSILON); }