/** * */ package fr.inria.soctrace.framesoc.ui.eventtable.view; import fr.inria.soctrace.framesoc.ui.eventtable.model.EventTableRow; import fr.inria.soctrace.framesoc.ui.model.TimeInterval; import fr.inria.soctrace.lib.utils.DeltaManager; /** * @author "Generoso Pagano <generoso.pagano@inria.fr>" */ public class CacheTest { public static void main(String[] args) { EventTableCache cache = new EventTableCache(); int N = 4; DeltaManager dm = new DeltaManager(); System.out.println("Loading " + N + " elements"); dm.start(); for (int i = 0; i < N; i++) { EventTableRow r1 = new EventTableRow(); r1.setTimestamp(i); cache.put(r1); EventTableRow r2 = new EventTableRow(); r2.setTimestamp(i); cache.put(r2); } cache.setRequestedInterval(new TimeInterval(0, 2 * N - 1)); dm.end("load"); print(cache, cache.getIndexedRowCount()); System.out.println("Sub interval: " + 1 + ", " + ((2 * N - 1) / 2)); dm.start(); TimeInterval interval = new TimeInterval(1, (2 * N - 1) / 2); if (!cache.contains(interval)) { System.out.println("Interval not contained"); return; } cache.index(interval); dm.end("reindex"); print(cache, cache.getIndexedRowCount()); System.out.println("Filtering all even lines"); dm.start(); int activeRows = cache.getIndexedRowCount(); int matched = 0; for (int i = 0; i < activeRows; i++) { EventTableRow r = cache.get(i); if (r.getTimestamp() % 2 == 0) { cache.remap(r, matched++); } } cache.cleanIndex(matched); dm.end("filter"); print(cache, matched); } private static void print(EventTableCache cache, int n) { for (int i = 0; i < n; i++) { EventTableRow r = cache.get(i); System.out.println("r[" + i + "] = " + r.getTimestamp() + ", " + r); } } }