### Question:
XYSeries extends Series implements Cloneable, Serializable { @Override public int hashCode() { int result = super.hashCode(); int count = getItemCount(); if (count > 0) { XYDataItem item = getRawDataItem(0); result = 29 * result + item.hashCode(); } if (count > 1) { XYDataItem item = getRawDataItem(count - 1); result = 29 * result + item.hashCode(); } if (count > 2) { XYDataItem item = getRawDataItem(count / 2); result = 29 * result + item.hashCode(); } result = 29 * result + this.maximumItemCount; result = 29 * result + (this.autoSort ? 1 : 0); result = 29 * result + (this.allowDuplicateXValues ? 1 : 0); return result; } XYSeries(Comparable key);  XYSeries(Comparable key, boolean autoSort);  XYSeries(Comparable key, boolean autoSort,
            boolean allowDuplicateXValues); double getMinX(); double getMaxX(); double getMinY(); double getMaxY(); boolean getAutoSort(); boolean getAllowDuplicateXValues(); @Override int getItemCount(); List<XYDataItem> getItems(); int getMaximumItemCount(); void setMaximumItemCount(int maximum); void add(XYDataItem item); void add(double x, double y); void add(double x, double y, boolean notify); void add(double x, Number y); void add(double x, Number y, boolean notify); void add(Number x, Number y); void add(Number x, Number y, boolean notify); void add(XYDataItem item, boolean notify); void delete(int start, int end); XYDataItem remove(int index); XYDataItem remove(Number x); void clear(); XYDataItem getDataItem(int index); Number getX(int index); Number getY(int index); void updateByIndex(int index, Number y); void update(Number x, Number y); XYDataItem addOrUpdate(double x, double y); XYDataItem addOrUpdate(Number x, Number y); XYDataItem addOrUpdate(XYDataItem item); int indexOf(Number x); double[][] toArray(); @Override Object clone(); XYSeries createCopy(int start, int end); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testHashCode() { XYSeries s1 = new XYSeries("Test"); XYSeries s2 = new XYSeries("Test"); assertEquals(s1, s2); assertEquals(s1.hashCode(), s2.hashCode()); s1.add(1.0, 500.0); s2.add(1.0, 500.0); assertEquals(s1, s2); assertEquals(s1.hashCode(), s2.hashCode()); s1.add(2.0, null); s2.add(2.0, null); assertEquals(s1, s2); assertEquals(s1.hashCode(), s2.hashCode()); s1.add(5.0, 111.0); s2.add(5.0, 111.0); assertEquals(s1, s2); assertEquals(s1.hashCode(), s2.hashCode()); s1.add(9.0, 1.0); s2.add(9.0, 1.0); assertEquals(s1, s2); assertEquals(s1.hashCode(), s2.hashCode()); }