### Question:
TaskSeriesCollection extends AbstractSeriesDataset implements GanttCategoryDataset, Cloneable, PublicCloneable,
                   Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof TaskSeriesCollection)) { return false; } TaskSeriesCollection that = (TaskSeriesCollection) obj; if (!ObjectUtils.equal(this.data, that.data)) { return false; } return true; } TaskSeriesCollection(); TaskSeries getSeries(Comparable key); TaskSeries getSeries(int series); @Override int getSeriesCount(); @Override Comparable getSeriesKey(int series); @Override int getRowCount(); @Override List getRowKeys(); @Override int getColumnCount(); @Override List<Comparable> getColumnKeys(); @Override Comparable getColumnKey(int index); @Override int getColumnIndex(Comparable columnKey); @Override int getRowIndex(Comparable rowKey); @Override Comparable getRowKey(int index); void add(TaskSeries series); void remove(TaskSeries series); void remove(int series); void removeAll(); @Override Number getValue(Comparable rowKey, Comparable columnKey); @Override Number getValue(int row, int column); @Override Number getStartValue(Comparable rowKey, Comparable columnKey); @Override Number getStartValue(int row, int column); @Override Number getEndValue(Comparable rowKey, Comparable columnKey); @Override Number getEndValue(int row, int column); @Override Number getPercentComplete(int row, int column); @Override Number getPercentComplete(Comparable rowKey, Comparable columnKey); @Override int getSubIntervalCount(int row, int column); @Override int getSubIntervalCount(Comparable rowKey, Comparable columnKey); @Override Number getStartValue(int row, int column, int subinterval); @Override Number getStartValue(Comparable rowKey, Comparable columnKey,
                                int subinterval); @Override Number getEndValue(int row, int column, int subinterval); @Override Number getEndValue(Comparable rowKey, Comparable columnKey,
                              int subinterval); @Override Number getPercentComplete(int row, int column, int subinterval); @Override Number getPercentComplete(Comparable rowKey, Comparable columnKey,
                                     int subinterval); @Override void seriesChanged(SeriesChangeEvent event); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testEquals() { TaskSeries s1 = new TaskSeries("S"); s1.add(new Task("T1", new Date(1), new Date(2))); s1.add(new Task("T2", new Date(11), new Date(22))); TaskSeries s2 = new TaskSeries("S"); s2.add(new Task("T1", new Date(1), new Date(2))); s2.add(new Task("T2", new Date(11), new Date(22))); TaskSeriesCollection c1 = new TaskSeriesCollection(); c1.add(s1); c1.add(s2); TaskSeries s1b = new TaskSeries("S"); s1b.add(new Task("T1", new Date(1), new Date(2))); s1b.add(new Task("T2", new Date(11), new Date(22))); TaskSeries s2b = new TaskSeries("S"); s2b.add(new Task("T1", new Date(1), new Date(2))); s2b.add(new Task("T2", new Date(11), new Date(22))); TaskSeriesCollection c2 = new TaskSeriesCollection(); c2.add(s1b); c2.add(s2b); assertEquals(c1, c2); assertEquals(c2, c1); }