### Question:
TimestampIndexImpl extends TimeIndexImpl<T, Double, TimestampSet, TimestampMap<?>> { @Override public double getMaxTimestamp() { if (mainIndex) { Double2IntSortedMap sortedMap = (Double2IntSortedMap) timestampIndexStore.timeSortedMap; if (!sortedMap.isEmpty()) { return sortedMap.lastDoubleKey(); } } else { Double2IntSortedMap sortedMap = (Double2IntSortedMap) timestampIndexStore.timeSortedMap; if (!sortedMap.isEmpty()) { ObjectBidirectionalIterator<Double2IntMap.Entry> bi = sortedMap.double2IntEntrySet().iterator(sortedMap .double2IntEntrySet().last()); while (bi.hasPrevious()) { Double2IntMap.Entry entry = bi.previous(); double timestamp = entry.getDoubleKey(); int index = entry.getIntValue(); if (index < timestamps.length) { TimeIndexEntry timestampEntry = timestamps[index]; if (timestampEntry != null) { return timestamp; } } } } } return Double.POSITIVE_INFINITY; } TimestampIndexImpl(TimeIndexStore<T, Double, TimestampSet, TimestampMap<?>> store, boolean main); @Override double getMinTimestamp(); @Override double getMaxTimestamp(); @Override ElementIterable get(double timestamp); @Override ElementIterable get(Interval interval);  }### Answer:
@Test public void testGetMax() { TimeStore timestampStore = new TimeStore(null, null, true); TimestampIndexStore store = (TimestampIndexStore) timestampStore.nodeIndexStore; Assert.assertEquals(store.mainIndex.getMaxTimestamp(), Double.POSITIVE_INFINITY); store.add(1.0); Assert.assertEquals(store.mainIndex.getMaxTimestamp(), 1.0); store.add(2.0); Assert.assertEquals(store.mainIndex.getMaxTimestamp(), 2.0); store.remove(2.0); Assert.assertEquals(store.mainIndex.getMaxTimestamp(), 1.0); }