### Question:
DefaultIntervalCategoryDataset extends AbstractSeriesDataset implements IntervalCategoryDataset { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof DefaultIntervalCategoryDataset)) { return false; } DefaultIntervalCategoryDataset that = (DefaultIntervalCategoryDataset) obj; if (!Arrays.equals(this.seriesKeys, that.seriesKeys)) { return false; } if (!Arrays.equals(this.categoryKeys, that.categoryKeys)) { return false; } if (!equal(this.startData, that.startData)) { return false; } if (!equal(this.endData, that.endData)) { return false; } return true; } DefaultIntervalCategoryDataset(double[][] starts, double[][] ends);  DefaultIntervalCategoryDataset(Number[][] starts, Number[][] ends);  DefaultIntervalCategoryDataset(String[] seriesNames,
                                          Number[][] starts,
                                          Number[][] ends);  DefaultIntervalCategoryDataset(Comparable[] seriesKeys,
                                          Comparable[] categoryKeys,
                                          Number[][] starts,
                                          Number[][] ends); @Override int getSeriesCount(); int getSeriesIndex(Comparable seriesKey); @Override Comparable getSeriesKey(int series); void setSeriesKeys(Comparable[] seriesKeys); int getCategoryCount(); @Override List<Comparable> getColumnKeys(); void setCategoryKeys(Comparable[] categoryKeys); @Override Number getValue(Comparable series, Comparable category); @Override Number getValue(int series, int category); @Override Number getStartValue(Comparable series, Comparable category); @Override Number getStartValue(int series, int category); @Override Number getEndValue(Comparable series, Comparable category); @Override Number getEndValue(int series, int category); void setStartValue(int series, Comparable category, Number value); void setEndValue(int series, Comparable category, Number value); int getCategoryIndex(Comparable category); @Override Comparable getColumnKey(int column); @Override int getColumnIndex(Comparable columnKey); @Override int getRowIndex(Comparable rowKey); @Override List<Comparable> getRowKeys(); @Override Comparable getRowKey(int row); @Override int getColumnCount(); @Override int getRowCount(); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testEquals() { double[] starts_S1A = new double[] {0.1, 0.2, 0.3}; double[] starts_S2A = new double[] {0.3, 0.4, 0.5}; double[] ends_S1A = new double[] {0.5, 0.6, 0.7}; double[] ends_S2A = new double[] {0.7, 0.8, 0.9}; double[][] startsA = new double[][] {starts_S1A, starts_S2A}; double[][] endsA = new double[][] {ends_S1A, ends_S2A}; DefaultIntervalCategoryDataset dA = new DefaultIntervalCategoryDataset(startsA, endsA); double[] starts_S1B = new double[] {0.1, 0.2, 0.3}; double[] starts_S2B = new double[] {0.3, 0.4, 0.5}; double[] ends_S1B = new double[] {0.5, 0.6, 0.7}; double[] ends_S2B = new double[] {0.7, 0.8, 0.9}; double[][] startsB = new double[][] {starts_S1B, starts_S2B}; double[][] endsB = new double[][] {ends_S1B, ends_S2B}; DefaultIntervalCategoryDataset dB = new DefaultIntervalCategoryDataset(startsB, endsB); assertEquals(dA, dB); assertEquals(dB, dA); DefaultIntervalCategoryDataset empty1 = new DefaultIntervalCategoryDataset(new double[0][0], new double[0][0]); DefaultIntervalCategoryDataset empty2 = new DefaultIntervalCategoryDataset(new double[0][0], new double[0][0]); assertEquals(empty1, empty2); }