### Question:
DefaultBoxAndWhiskerCategoryDataset extends AbstractDataset implements BoxAndWhiskerCategoryDataset, RangeInfo, PublicCloneable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof DefaultBoxAndWhiskerCategoryDataset) { DefaultBoxAndWhiskerCategoryDataset dataset = (DefaultBoxAndWhiskerCategoryDataset) obj; return ObjectUtils.equal(this.data, dataset.data); } return false; } DefaultBoxAndWhiskerCategoryDataset(); void add(List<Number> list, Comparable rowKey, Comparable columnKey); void add(BoxAndWhiskerItem item, Comparable rowKey,
            Comparable columnKey); void remove(Comparable rowKey, Comparable columnKey); void removeRow(int rowIndex); void removeRow(Comparable rowKey); void removeColumn(int columnIndex); void removeColumn(Comparable columnKey); void clear(); BoxAndWhiskerItem getItem(int row, int column); @Override Number getValue(int row, int column); @Override Number getValue(Comparable rowKey, Comparable columnKey); @Override Number getMeanValue(int row, int column); @Override Number getMeanValue(Comparable rowKey, Comparable columnKey); @Override Number getMedianValue(int row, int column); @Override Number getMedianValue(Comparable rowKey, Comparable columnKey); @Override Number getQ1Value(int row, int column); @Override Number getQ1Value(Comparable rowKey, Comparable columnKey); @Override Number getQ3Value(int row, int column); @Override Number getQ3Value(Comparable rowKey, Comparable columnKey); @Override int getColumnIndex(Comparable key); @Override Comparable getColumnKey(int column); @Override List<Comparable> getColumnKeys(); @Override int getRowIndex(Comparable key); @Override Comparable getRowKey(int row); @Override List<Comparable> getRowKeys(); @Override int getRowCount(); @Override int getColumnCount(); @Override double getRangeLowerBound(boolean includeInterval); @Override double getRangeUpperBound(boolean includeInterval); @Override Range getRangeBounds(boolean includeInterval); @Override Number getMinRegularValue(int row, int column); @Override Number getMinRegularValue(Comparable rowKey, Comparable columnKey); @Override Number getMaxRegularValue(int row, int column); @Override Number getMaxRegularValue(Comparable rowKey, Comparable columnKey); @Override Number getMinOutlier(int row, int column); @Override Number getMinOutlier(Comparable rowKey, Comparable columnKey); @Override Number getMaxOutlier(int row, int column); @Override Number getMaxOutlier(Comparable rowKey, Comparable columnKey); @Override List<Number> getOutliers(int row, int column); @Override List<Number> getOutliers(Comparable rowKey, Comparable columnKey); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testEquals() { DefaultBoxAndWhiskerCategoryDataset d1 = new DefaultBoxAndWhiskerCategoryDataset(); d1.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, new ArrayList()), "ROW1", "COLUMN1"); DefaultBoxAndWhiskerCategoryDataset d2 = new DefaultBoxAndWhiskerCategoryDataset(); d2.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, new ArrayList()), "ROW1", "COLUMN1"); assertEquals(d1, d2); assertEquals(d2, d1); }