### Question:
ClusteredXYBarRenderer extends XYBarRenderer implements Cloneable, PublicCloneable, Serializable { @Override public Range findDomainBounds(XYDataset dataset) { if (dataset == null) { return null; } if (this.centerBarAtStartValue) { return findDomainBoundsWithOffset((IntervalXYDataset) dataset); } else { return super.findDomainBounds(dataset); } } ClusteredXYBarRenderer();  ClusteredXYBarRenderer(double margin,
                                  boolean centerBarAtStartValue); @Override int getPassCount(); @Override Range findDomainBounds(XYDataset dataset); @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 testFindDomainBounds() { AbstractXYItemRenderer renderer = new ClusteredXYBarRenderer(); XYDataset dataset = createSampleDataset1(); Range r = renderer.findDomainBounds(dataset); assertEquals(0.9, r.getLowerBound(), EPSILON); assertEquals(13.1, r.getUpperBound(), EPSILON); renderer = new ClusteredXYBarRenderer(0.0, true); r = renderer.findDomainBounds(dataset); assertEquals(0.8, r.getLowerBound(), EPSILON); assertEquals(13.0, r.getUpperBound(), EPSILON); assertNull(renderer.findDomainBounds(null)); }