### Question:
StackedBarRenderer3D extends BarRenderer3D implements Cloneable, PublicCloneable, Serializable { @Override public Range findRangeBounds(CategoryDataset dataset) { if (dataset == null) { return null; } if (this.renderAsPercentages) { return new Range(0.0, 1.0); } else { return DatasetUtilities.findStackedRangeBounds(dataset); } } StackedBarRenderer3D();  StackedBarRenderer3D(double xOffset, double yOffset);  StackedBarRenderer3D(boolean renderAsPercentages);  StackedBarRenderer3D(double xOffset, double yOffset,
            boolean renderAsPercentages); boolean getRenderAsPercentages(); void setRenderAsPercentages(boolean asPercentages); boolean getIgnoreZeroValues(); void setIgnoreZeroValues(boolean ignore); @Override Range findRangeBounds(CategoryDataset dataset); @Override void drawItem(Graphics2D g2, CategoryItemRendererState state,
            Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis,
            ValueAxis rangeAxis, CategoryDataset dataset, int row, int column,
            int pass); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testFindRangeBounds() { StackedBarRenderer3D r = new StackedBarRenderer3D(); assertNull(r.findRangeBounds(null)); DefaultCategoryDataset dataset = new DefaultCategoryDataset(); assertNull(r.findRangeBounds(dataset)); dataset.addValue(1.0, "R1", "C1"); assertEquals(new Range(0.0, 1.0), r.findRangeBounds(dataset)); dataset.addValue(-2.0, "R1", "C2"); assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset)); dataset.addValue(null, "R1", "C3"); assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset)); dataset.addValue(2.0, "R2", "C1"); assertEquals(new Range(-2.0, 3.0), r.findRangeBounds(dataset)); dataset.addValue(null, "R2", "C2"); assertEquals(new Range(-2.0, 3.0), r.findRangeBounds(dataset)); }