1 /*******************************************************************************
2 * Copyright (c) 2015 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *******************************************************************************/
10 package org
.eclipse
.tracecompass
.segmentstore
.core
.tests
.treemap
;
12 import static org
.junit
.Assert
.assertEquals
;
14 import java
.util
.List
;
16 import org
.eclipse
.tracecompass
.common
.core
.NonNullUtils
;
17 import org
.eclipse
.tracecompass
.segmentstore
.core
.BasicSegment
;
18 import org
.eclipse
.tracecompass
.segmentstore
.core
.ISegment
;
19 import org
.eclipse
.tracecompass
.segmentstore
.core
.treemap
.TreeMapStore
;
20 import org
.junit
.After
;
21 import org
.junit
.Before
;
22 import org
.junit
.Test
;
24 import com
.google
.common
.collect
.ImmutableList
;
25 import com
.google
.common
.collect
.Iterables
;
28 * Unit tests for intersecting elements in a TreeMapStore
30 * @author France Lapointe Nguyen
32 public class TreeMapStoreTest
{
34 private TreeMapStore
<ISegment
> fSegmentStore
;
36 private static final ISegment SEGMENT_2_4
= new BasicSegment(2, 4);
37 private static final ISegment SEGMENT_6_8
= new BasicSegment(6, 8);
38 private static final ISegment SEGMENT_10_14
= new BasicSegment(10, 14);
40 private static final List
<ISegment
> SEGMENTS
= ImmutableList
.of(SEGMENT_2_4
, SEGMENT_6_8
, SEGMENT_10_14
);
43 * Initialize data (test vector) that will be tested
47 fSegmentStore
= new TreeMapStore
<>();
48 for (int i
= 0; i
< SEGMENTS
.size(); i
++) {
49 fSegmentStore
.addElement(NonNullUtils
.checkNotNull(SEGMENTS
.get(i
)));
54 * Dispose of the segment store
57 public void teardown() {
58 fSegmentStore
.dispose();
62 * Testing method getNbElements
65 public void testGetNbElements() {
66 assertEquals(SEGMENTS
.size(), fSegmentStore
.getNbElements());
70 * Testing method getElementAtIndex
73 public void testGetElementAtIndex() {
74 for (int i
= 0; i
< SEGMENTS
.size(); i
++) {
75 assertEquals(SEGMENTS
.get(i
), fSegmentStore
.getElementAtIndex(i
));
80 * Testing method getIntersectingElements(long start, long end)
83 public void testGetIntersectingElementsRange() {
85 Iterable
<ISegment
> intersectingElements
;
88 * Range that does not include any segment
90 intersectingElements
= fSegmentStore
.getIntersectingElements(16, 20);
91 assertEquals(0, Iterables
.size(intersectingElements
));
94 * Range start time : Before first segment start time Range end time :
95 * After last segment end time
97 intersectingElements
= fSegmentStore
.getIntersectingElements(1, 15);
98 assertEquals(3, Iterables
.size(intersectingElements
));
101 * Range start time : On first segment start time Range end time : On
102 * last segment end time
104 intersectingElements
= fSegmentStore
.getIntersectingElements(2, 14);
105 assertEquals(3, Iterables
.size(intersectingElements
));
108 * Range start time : After one segment start time Range end time :
109 * Before one segment end time
111 intersectingElements
= fSegmentStore
.getIntersectingElements(11, 13);
112 assertEquals(1, Iterables
.size(intersectingElements
));
113 assert (SEGMENT_10_14
.equals(intersectingElements
));
116 * Range start time : On one segment start time Range end time : On one
119 intersectingElements
= fSegmentStore
.getIntersectingElements(6, 8);
120 assertEquals(1, Iterables
.size(intersectingElements
));
121 assert (SEGMENT_6_8
.equals(intersectingElements
));
124 * Range start time : On last segment end time Range end time : After
125 * last segment end time
127 intersectingElements
= fSegmentStore
.getIntersectingElements(14, 18);
128 assertEquals(1, Iterables
.size(intersectingElements
));
129 assert (SEGMENT_10_14
.equals(intersectingElements
));
132 * Range start time : Before first segment start time Range end time :
133 * On first segment start time
135 intersectingElements
= fSegmentStore
.getIntersectingElements(1, 2);
136 assertEquals(1, Iterables
.size(intersectingElements
));
137 assert (SEGMENT_2_4
.equals(intersectingElements
));
141 * Testing method getIntersectingElements(long start, long end)
144 public void testGetIntersectingElementsTime() {
146 Iterable
<ISegment
> intersectingElements
;
149 * Time between segment start time and end time
151 intersectingElements
= fSegmentStore
.getIntersectingElements(3);
152 assertEquals(1, Iterables
.size(intersectingElements
));
153 assert (SEGMENT_2_4
.equals(intersectingElements
));
156 * Time on segment start time
158 intersectingElements
= fSegmentStore
.getIntersectingElements(2);
159 assertEquals(1, Iterables
.size(intersectingElements
));
160 assert (SEGMENT_2_4
.equals(intersectingElements
));
163 * Time on segment end time
165 intersectingElements
= fSegmentStore
.getIntersectingElements(4);
166 assertEquals(1, Iterables
.size(intersectingElements
));
167 assert (SEGMENT_2_4
.equals(intersectingElements
));
170 * Time before all segment start time
172 intersectingElements
= fSegmentStore
.getIntersectingElements(1);
173 assertEquals(0, Iterables
.size(intersectingElements
));
176 * Time after all segment end time
178 intersectingElements
= fSegmentStore
.getIntersectingElements(15);
179 assertEquals(0, Iterables
.size(intersectingElements
));
183 * Testing method getIntersectingElements(long start, long end)
186 public void testDispose() {
187 TreeMapStore
<ISegment
> store
= new TreeMapStore
<>();
188 store
.addElement(NonNullUtils
.checkNotNull(SEGMENT_2_4
));
190 assertEquals(0, store
.getNbElements());
This page took 0.040594 seconds and 6 git commands to generate.