+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 2, event.getTimestamp().getValue());
+
+ // Position trace at event rank 'cacheSize'
+ tmpContext = fExperiment.seekEvent(cacheSize);
+ context = fExperiment.seekEvent(tmpContext.getLocation());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", cacheSize + 2, event.getTimestamp().getValue());
+
+ // Position trace at event rank 4 * 'cacheSize'
+ tmpContext = fExperiment.seekEvent(4 * cacheSize);
+ context = fExperiment.seekEvent(tmpContext.getLocation());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 4 * cacheSize + 1, event.getTimestamp().getValue());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 4 * cacheSize + 2, event.getTimestamp().getValue());
+ }
+
+ public void testSeekLocationNotOnCacheBoundary() {
+
+ long cacheSize = fExperiment.getCacheSize();
+
+ // Position trace at event 'cacheSize' - 1
+ ITmfContext tmpContext = fExperiment.seekEvent(cacheSize - 1);
+ ITmfContext context = fExperiment.seekEvent(tmpContext.getLocation());
+
+ ITmfEvent event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", cacheSize, event.getTimestamp().getValue());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", cacheSize + 1, event.getTimestamp().getValue());
+
+ // Position trace at event rank 2 * 'cacheSize' - 1
+ tmpContext = fExperiment.seekEvent(2 * cacheSize - 1);
+ context = fExperiment.seekEvent(tmpContext.getLocation());
+ context = fExperiment.seekEvent(2 * cacheSize - 1);
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 2 * cacheSize, event.getTimestamp().getValue());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 2 * cacheSize + 1, event.getTimestamp().getValue());
+
+ // Position trace at event rank 4500
+ tmpContext = fExperiment.seekEvent(4500);
+ context = fExperiment.seekEvent(tmpContext.getLocation());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 4501, event.getTimestamp().getValue());
+
+ event = fExperiment.getNext(context);
+ assertEquals("Event timestamp", 4502, event.getTimestamp().getValue());
+ }
+
+ public void testSeekLocationOutOfScope() {
+
+ // Position trace at beginning
+ ITmfContext context = fExperiment.seekEvent((ITmfLocation) null);
+
+ ITmfEvent event = fExperiment.getNext(context);