View Javadoc

1   package de.jaret.test.timebars;
2   
3   import java.util.Random;
4   
5   import org.junit.Test;
6   
7   import de.jaret.util.date.IntervalImpl;
8   import de.jaret.util.date.JaretDate;
9   import de.jaret.util.ui.timebars.TimeBarViewerDelegate;
10  import de.jaret.util.ui.timebars.model.DefaultTimeBarModel;
11  import de.jaret.util.ui.timebars.model.DefaultTimeBarRowModel;
12  import de.jaret.util.ui.timebars.model.TimeBarModel;
13  import de.jaret.util.ui.timebars.strategy.DefaultOverlapStrategy;
14  
15  public class OverlapTest {
16  
17      @Test
18      public void testUpdateOICache() {
19          int count = 10000;
20          boolean assumeSorted = true;
21          TimeBarModel model = createModel(count);
22          TimeBarViewerDelegate delegate = new TimeBarViewerDelegate(null);
23          delegate.setModel(model);
24          DefaultOverlapStrategy strategy = new DefaultOverlapStrategy(delegate);
25          strategy.setAssumeSortedIntervals(assumeSorted);
26          
27          delegate.setOverlapStrategy(strategy);
28          long time = System.currentTimeMillis();
29          strategy.updateOICache(model.getRow(0));
30          System.out.println("Overlapping "+count+" intervals "+(System.currentTimeMillis()-time)+"ms assumeSorted: "+assumeSorted);
31  
32          count = 10000;
33          assumeSorted = false;
34          model = createModel(count);
35          delegate = new TimeBarViewerDelegate(null);
36          delegate.setModel(model);
37          strategy = new DefaultOverlapStrategy(delegate);
38          strategy.setAssumeSortedIntervals(assumeSorted);
39          
40          delegate.setOverlapStrategy(strategy);
41          time = System.currentTimeMillis();
42          strategy.updateOICache(model.getRow(0));
43          System.out.println("Overlapping "+count+" intervals "+(System.currentTimeMillis()-time)+"ms assumeSorted: "+assumeSorted);
44  
45      }
46  
47      DefaultTimeBarModel createModel(int count) {
48          long time = System.currentTimeMillis();
49          DefaultTimeBarModel model = new DefaultTimeBarModel();
50          DefaultTimeBarRowModel row = new DefaultTimeBarRowModel();
51          model.addRow(row);
52          
53          Random rnd = new Random(1);
54          
55          JaretDate start = new JaretDate();
56          
57          for(int i=0;i<count;i++) {
58              start.advanceMinutes(rnd.nextDouble()*30);
59              JaretDate end = start.copy().advanceMinutes(rnd.nextDouble()*30);
60              IntervalImpl interval = new IntervalImpl(start, end);
61              row.addInterval(interval);
62          }
63          
64          System.out.println("create model "+count+ " "+(System.currentTimeMillis()-time)+"ms");
65          
66          return model;
67          
68      }
69      
70  }