public void testTail() {
   ObjectTimeSeries<E, T> dts = createStandardTimeSeries();
   ObjectTimeSeries<E, T> tail5 = (ObjectTimeSeries<E, T>) dts.tail(5);
   Iterator<Entry<E, T>> iterator = tail5.iterator();
   for (int i = 1; i < 6; i++) {
     Entry<E, T> entry = iterator.next();
     assertEquals(testTimes()[i], entry.getKey());
     assertEquals(testValues()[i], entry.getValue());
   }
   assertEquals(dts.tail(0), createEmptyTimeSeries());
   assertEquals(createEmptyTimeSeries().tail(0), createEmptyTimeSeries());
 }
 public void testHead() {
   ObjectTimeSeries<E, T> dts = createStandardTimeSeries();
   ObjectTimeSeries<E, T> head5 = (ObjectTimeSeries<E, T>) dts.head(5);
   Iterator<Entry<E, T>> iterator = head5.iterator();
   for (int i = 0; i < 5; i++) {
     Entry<E, T> entry = iterator.next();
     assertEquals(testTimes()[i], entry.getKey());
     assertEquals(testValues()[i], entry.getValue());
   }
   assertEquals(dts.head(0), createEmptyTimeSeries());
   assertEquals(createEmptyTimeSeries().head(0), createEmptyTimeSeries());
 }
 @SuppressWarnings("cast")
 public void testSubSeriesInstantProviderInstantProvider() {
   ObjectTimeSeries<E, T> emptyTS = createEmptyTimeSeries();
   ObjectTimeSeries<E, T> dts = createStandardTimeSeries();
   E[] testDates = testTimes();
   T[] testValues = testValues();
   ObjectTimeSeries<E, T> threeToFive = dts.subSeries(testDates[3], testDates[5]);
   assertEquals(2, threeToFive.size());
   Iterator<Entry<E, T>> iterator = threeToFive.iterator();
   for (int i = 3; i < 5; i++) {
     Entry<E, T> item = iterator.next();
     assertEquals(testDates[i], item.getKey());
     assertEquals(testValues[i], item.getValue());
   }
   assertEquals(4, dts.subSeries(testDates[0], testDates[4]).size());
   assertEquals(5, dts.subSeries(testDates[0], true, testDates[4], true).size());
   assertEquals(1, dts.subSeries(testDates[4], testDates[5]).size());
   assertEquals(0, dts.subSeries(testDates[4], false, testDates[5], false).size());
   assertEquals(emptyTS, emptyTS.subSeries(testDates[1], testDates[1]));
 }