1 /*******************************************************************************
2 * Copyright (c) 2009, 2014 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
10 * Francois Chouinard - Initial API and implementation
11 * Francois Chouinard - Adjusted for new Event Model
12 * Alexandre Montplaisir - Port to JUnit4
13 *******************************************************************************/
15 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.event
;
17 import static org
.junit
.Assert
.assertEquals
;
18 import static org
.junit
.Assert
.assertFalse
;
19 import static org
.junit
.Assert
.assertTrue
;
21 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.ITmfTimestamp
;
22 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfTimeRange
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfTimestamp
;
24 import org
.junit
.Test
;
27 * Test suite for the TmfTimeRange class.
29 @SuppressWarnings("javadoc")
30 public class TmfTimeRangeTest
{
32 // ------------------------------------------------------------------------
34 // ------------------------------------------------------------------------
37 public void testConstructor() {
38 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
39 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
40 final TmfTimeRange range
= new TmfTimeRange(ts1
, ts2
);
42 assertEquals("startTime", ts1
, range
.getStartTime());
43 assertEquals("endTime", ts2
, range
.getEndTime());
47 public void testOpenRange1() {
48 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
49 final TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, ts2
);
51 assertEquals("startTime", TmfTimestamp
.BIG_BANG
, range
.getStartTime());
52 assertEquals("endTime", ts2
, range
.getEndTime());
56 public void testOpenRange2() {
57 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
58 final TmfTimeRange range
= new TmfTimeRange(ts1
, TmfTimestamp
.BIG_CRUNCH
);
60 assertEquals("startTime", ts1
, range
.getStartTime());
61 assertEquals("endTime", TmfTimestamp
.BIG_CRUNCH
, range
.getEndTime());
65 public void testOpenRange3() {
66 final TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
68 assertEquals("startTime", TmfTimestamp
.BIG_BANG
, range
.getStartTime());
69 assertEquals("endTime", TmfTimestamp
.BIG_CRUNCH
, range
.getEndTime());
73 public void testCopyConstructor() {
74 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
75 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
76 final TmfTimeRange range0
= new TmfTimeRange(ts1
, ts2
);
77 final TmfTimeRange range1
= new TmfTimeRange(range0
);
79 assertEquals("startTime", ts1
, range1
.getStartTime());
80 assertEquals("endTime", ts2
, range1
.getEndTime());
82 final TmfTimeRange range2
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
83 final TmfTimeRange range3
= new TmfTimeRange(range2
);
85 assertEquals("startTime", TmfTimestamp
.BIG_BANG
, range3
.getStartTime());
86 assertEquals("endTime", TmfTimestamp
.BIG_CRUNCH
, range3
.getEndTime());
89 // ------------------------------------------------------------------------
91 // ------------------------------------------------------------------------
94 public void testHashCode() {
95 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
96 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
97 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts2
);
98 final TmfTimeRange range1b
= new TmfTimeRange(range1
);
99 final TmfTimeRange range2
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
100 final TmfTimeRange range2b
= new TmfTimeRange(range2
);
102 assertTrue("hashCode", range1
.hashCode() == range1b
.hashCode());
103 assertTrue("hashCode", range2
.hashCode() == range2b
.hashCode());
105 assertTrue("hashCode", range1
.hashCode() != range2
.hashCode());
108 // ------------------------------------------------------------------------
110 // ------------------------------------------------------------------------
113 public void testEqualsReflexivity() {
114 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
115 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
116 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts2
);
117 final TmfTimeRange range2
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
119 assertTrue("equals", range1
.equals(range1
));
120 assertTrue("equals", range2
.equals(range2
));
122 assertTrue("equals", !range1
.equals(range2
));
123 assertTrue("equals", !range2
.equals(range1
));
127 public void testEqualsSymmetry() {
128 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
129 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
130 final TmfTimeRange range1a
= new TmfTimeRange(ts1
, ts2
);
131 final TmfTimeRange range1b
= new TmfTimeRange(ts1
, ts2
);
133 final TmfTimeRange range2a
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
134 final TmfTimeRange range2b
= new TmfTimeRange(TmfTimestamp
.BIG_BANG
, TmfTimestamp
.BIG_CRUNCH
);
136 assertTrue("equals", range1a
.equals(range1b
));
137 assertTrue("equals", range1b
.equals(range1a
));
139 assertTrue("equals", range2a
.equals(range2b
));
140 assertTrue("equals", range2b
.equals(range2a
));
144 public void testEqualsTransivity() {
145 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
146 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
147 final TmfTimeRange range1a
= new TmfTimeRange(ts1
, ts2
);
148 final TmfTimeRange range1b
= new TmfTimeRange(ts1
, ts2
);
149 final TmfTimeRange range1c
= new TmfTimeRange(ts1
, ts2
);
151 assertTrue("equals", range1a
.equals(range1b
));
152 assertTrue("equals", range1b
.equals(range1c
));
153 assertTrue("equals", range1a
.equals(range1c
));
157 public void testEqualsNull() {
158 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
159 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
160 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts2
);
162 assertTrue("equals", !range1
.equals(null));
166 public void testEqualsBadType() {
167 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
168 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
169 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts2
);
171 assertTrue("equals", !range1
.equals(ts1
));
175 public void testEqualStartTime() {
176 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
177 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
178 final ITmfTimestamp ts3
= new TmfTimestamp(12355);
180 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts3
);
181 final TmfTimeRange range2
= new TmfTimeRange(ts2
, ts3
);
182 final TmfTimeRange range3
= new TmfTimeRange(ts1
, ts2
);
184 assertTrue("equals", !range1
.equals(range2
));
185 assertTrue("equals", !range1
.equals(range3
));
189 public void testEqualsEndTime() {
190 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
191 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
192 final ITmfTimestamp ts3
= new TmfTimestamp(12355);
194 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts2
);
195 final TmfTimeRange range2
= new TmfTimeRange(ts1
, ts3
);
196 final TmfTimeRange range3
= new TmfTimeRange(ts2
, ts3
);
198 assertTrue("equals", !range1
.equals(range2
));
199 assertTrue("equals", !range1
.equals(range3
));
202 // ------------------------------------------------------------------------
204 // ------------------------------------------------------------------------
207 public void testToString() {
208 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
209 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
210 final TmfTimeRange range
= new TmfTimeRange(ts1
, ts2
);
212 final String expected
= "TmfTimeRange [fStartTime=" + ts1
+ ", fEndTime=" + ts2
+ "]";
213 assertEquals("toString", expected
, range
.toString());
216 // ------------------------------------------------------------------------
218 // ------------------------------------------------------------------------
221 public void testContainsTimestamp() {
222 final ITmfTimestamp ts1
= new TmfTimestamp(12345);
223 final ITmfTimestamp ts2
= new TmfTimestamp(12350);
224 final TmfTimeRange range
= new TmfTimeRange(ts1
, ts2
);
226 assertTrue("contains (lower bound)", range
.contains(new TmfTimestamp(12345)));
227 assertTrue("contains (higher bound)", range
.contains(new TmfTimestamp(12350)));
228 assertTrue("contains (within bounds)", range
.contains(new TmfTimestamp(12346)));
230 assertFalse("contains (low value)", range
.contains(new TmfTimestamp(12340)));
231 assertFalse("contains (high value)", range
.contains(new TmfTimestamp(12351)));
235 public void testContainsRange() {
236 final ITmfTimestamp ts1
= new TmfTimestamp(10);
237 final ITmfTimestamp ts2
= new TmfTimestamp(20);
238 final ITmfTimestamp ts3
= new TmfTimestamp(30);
239 final ITmfTimestamp ts4
= new TmfTimestamp(40);
240 final ITmfTimestamp ts5
= new TmfTimestamp(50);
241 final ITmfTimestamp ts6
= new TmfTimestamp(60);
242 final ITmfTimestamp ts7
= new TmfTimestamp(70);
243 final ITmfTimestamp ts8
= new TmfTimestamp(80);
246 final TmfTimeRange range0
= new TmfTimeRange(ts3
, ts6
);
248 // Start time below range
249 final TmfTimeRange range1
= new TmfTimeRange(ts1
, ts2
);
250 final TmfTimeRange range2
= new TmfTimeRange(ts2
, ts3
);
251 final TmfTimeRange range3
= new TmfTimeRange(ts2
, ts4
);
252 final TmfTimeRange range4
= new TmfTimeRange(ts2
, ts6
);
253 final TmfTimeRange range5
= new TmfTimeRange(ts2
, ts7
);
255 assertFalse("contains", range0
.contains(range1
));
256 assertFalse("contains", range0
.contains(range2
));
257 assertFalse("contains", range0
.contains(range3
));
258 assertFalse("contains", range0
.contains(range4
));
259 assertFalse("contains", range0
.contains(range5
));
261 // End time above range
262 final TmfTimeRange range6
= new TmfTimeRange(ts3
, ts7
);
263 final TmfTimeRange range7
= new TmfTimeRange(ts4
, ts7
);
264 final TmfTimeRange range8
= new TmfTimeRange(ts6
, ts7
);
265 final TmfTimeRange range9
= new TmfTimeRange(ts7
, ts8
);
267 assertFalse("contains", range0
.contains(range6
));
268 assertFalse("contains", range0
.contains(range7
));
269 assertFalse("contains", range0
.contains(range8
));
270 assertFalse("contains", range0
.contains(range9
));
273 final TmfTimeRange range10
= new TmfTimeRange(ts3
, ts4
);
274 final TmfTimeRange range11
= new TmfTimeRange(ts3
, ts6
);
275 final TmfTimeRange range12
= new TmfTimeRange(ts4
, ts5
);
276 final TmfTimeRange range13
= new TmfTimeRange(ts4
, ts6
);
278 assertTrue("contains", range0
.contains(range10
));
279 assertTrue("contains", range0
.contains(range11
));
280 assertTrue("contains", range0
.contains(range12
));
281 assertTrue("contains", range0
.contains(range13
));
284 // ------------------------------------------------------------------------
286 // ------------------------------------------------------------------------
289 public void testGetIntersection() {
291 final ITmfTimestamp ts1a
= new TmfTimestamp(1000);
292 final ITmfTimestamp ts1b
= new TmfTimestamp(2000);
293 final TmfTimeRange range1
= new TmfTimeRange(ts1a
, ts1b
);
295 final ITmfTimestamp ts2a
= new TmfTimestamp(2000);
296 final ITmfTimestamp ts2b
= new TmfTimestamp(3000);
297 final TmfTimeRange range2
= new TmfTimeRange(ts2a
, ts2b
);
299 final ITmfTimestamp ts3a
= new TmfTimestamp(3000);
300 final ITmfTimestamp ts3b
= new TmfTimestamp(4000);
301 final TmfTimeRange range3
= new TmfTimeRange(ts3a
, ts3b
);
303 final ITmfTimestamp ts4a
= new TmfTimestamp(1500);
304 final ITmfTimestamp ts4b
= new TmfTimestamp(2500);
305 final TmfTimeRange range4
= new TmfTimeRange(ts4a
, ts4b
);
307 final ITmfTimestamp ts5a
= new TmfTimestamp(1500);
308 final ITmfTimestamp ts5b
= new TmfTimestamp(2000);
309 final TmfTimeRange range5
= new TmfTimeRange(ts5a
, ts5b
);
311 final ITmfTimestamp ts6a
= new TmfTimestamp(2000);
312 final ITmfTimestamp ts6b
= new TmfTimestamp(2500);
313 final TmfTimeRange range6
= new TmfTimeRange(ts6a
, ts6b
);
315 final ITmfTimestamp ts7a
= new TmfTimestamp(1500);
316 final ITmfTimestamp ts7b
= new TmfTimestamp(3500);
317 final TmfTimeRange range7
= new TmfTimeRange(ts7a
, ts7b
);
319 final ITmfTimestamp ts8a
= new TmfTimestamp(2250);
320 final ITmfTimestamp ts8b
= new TmfTimestamp(2750);
321 final TmfTimeRange range8
= new TmfTimeRange(ts8a
, ts8b
);
323 assertEquals("getIntersection (below - not contiguous)", null, range1
.getIntersection(range3
));
324 assertEquals("getIntersection (above - not contiguous)", null, range3
.getIntersection(range1
));
326 assertEquals("getIntersection (below - contiguous)", new TmfTimeRange(ts1b
, ts1b
), range1
.getIntersection(range2
));
327 assertEquals("getIntersection (above - contiguous)", new TmfTimeRange(ts3a
, ts3a
), range3
.getIntersection(range2
));
329 assertEquals("getIntersection (below - overlap)", new TmfTimeRange(ts2a
, ts4b
), range2
.getIntersection(range4
));
330 assertEquals("getIntersection (above - overlap)", new TmfTimeRange(ts2a
, ts4b
), range4
.getIntersection(range2
));
332 assertEquals("getIntersection (within - overlap1)", range6
, range2
.getIntersection(range6
));
333 assertEquals("getIntersection (within - overlap2)", range6
, range6
.getIntersection(range2
));
335 assertEquals("getIntersection (within - overlap3)", range5
, range1
.getIntersection(range5
));
336 assertEquals("getIntersection (within - overlap4)", range5
, range5
.getIntersection(range1
));
338 assertEquals("getIntersection (within - overlap5)", range8
, range2
.getIntersection(range8
));
339 assertEquals("getIntersection (within - overlap6)", range8
, range8
.getIntersection(range2
));
341 assertEquals("getIntersection (accross1)", range2
, range2
.getIntersection(range7
));
342 assertEquals("getIntersection (accross2)", range2
, range7
.getIntersection(range2
));
This page took 0.039203 seconds and 6 git commands to generate.