TMF: Add some non null annotations to TmfTimeRange
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / event / TmfTimeRangeTest.java
1 /*******************************************************************************
2 * Copyright (c) 2009, 2014 Ericsson
3 *
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 *
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 * Francois Chouinard - Adjusted for new Event Model
12 * Alexandre Montplaisir - Port to JUnit4
13 *******************************************************************************/
14
15 package org.eclipse.tracecompass.tmf.core.tests.event;
16
17 import static org.junit.Assert.assertEquals;
18 import static org.junit.Assert.assertFalse;
19 import static org.junit.Assert.assertTrue;
20
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;
25
26 /**
27 * Test suite for the TmfTimeRange class.
28 */
29 @SuppressWarnings("javadoc")
30 public class TmfTimeRangeTest {
31
32 // ------------------------------------------------------------------------
33 // Constructors
34 // ------------------------------------------------------------------------
35
36 @Test
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);
41
42 assertEquals("startTime", ts1, range.getStartTime());
43 assertEquals("endTime", ts2, range.getEndTime());
44 }
45
46 @Test
47 public void testOpenRange1() {
48 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
49 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, ts2);
50
51 assertEquals("startTime", TmfTimestamp.BIG_BANG, range.getStartTime());
52 assertEquals("endTime", ts2, range.getEndTime());
53 }
54
55 @Test
56 public void testOpenRange2() {
57 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
58 final TmfTimeRange range = new TmfTimeRange(ts1, TmfTimestamp.BIG_CRUNCH);
59
60 assertEquals("startTime", ts1, range.getStartTime());
61 assertEquals("endTime", TmfTimestamp.BIG_CRUNCH, range.getEndTime());
62 }
63
64 @Test
65 public void testOpenRange3() {
66 final TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
67
68 assertEquals("startTime", TmfTimestamp.BIG_BANG, range.getStartTime());
69 assertEquals("endTime", TmfTimestamp.BIG_CRUNCH, range.getEndTime());
70 }
71
72 @Test
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);
78
79 assertEquals("startTime", ts1, range1.getStartTime());
80 assertEquals("endTime", ts2, range1.getEndTime());
81
82 final TmfTimeRange range2 = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
83 final TmfTimeRange range3 = new TmfTimeRange(range2);
84
85 assertEquals("startTime", TmfTimestamp.BIG_BANG, range3.getStartTime());
86 assertEquals("endTime", TmfTimestamp.BIG_CRUNCH, range3.getEndTime());
87 }
88
89 // ------------------------------------------------------------------------
90 // hashCode
91 // ------------------------------------------------------------------------
92
93 @Test
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);
101
102 assertTrue("hashCode", range1.hashCode() == range1b.hashCode());
103 assertTrue("hashCode", range2.hashCode() == range2b.hashCode());
104
105 assertTrue("hashCode", range1.hashCode() != range2.hashCode());
106 }
107
108 // ------------------------------------------------------------------------
109 // equals
110 // ------------------------------------------------------------------------
111
112 @Test
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);
118
119 assertTrue("equals", range1.equals(range1));
120 assertTrue("equals", range2.equals(range2));
121
122 assertTrue("equals", !range1.equals(range2));
123 assertTrue("equals", !range2.equals(range1));
124 }
125
126 @Test
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);
132
133 final TmfTimeRange range2a = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
134 final TmfTimeRange range2b = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
135
136 assertTrue("equals", range1a.equals(range1b));
137 assertTrue("equals", range1b.equals(range1a));
138
139 assertTrue("equals", range2a.equals(range2b));
140 assertTrue("equals", range2b.equals(range2a));
141 }
142
143 @Test
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);
150
151 assertTrue("equals", range1a.equals(range1b));
152 assertTrue("equals", range1b.equals(range1c));
153 assertTrue("equals", range1a.equals(range1c));
154 }
155
156 @Test
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);
161
162 assertTrue("equals", !range1.equals(null));
163 }
164
165 @Test
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);
170
171 assertTrue("equals", !range1.equals(ts1));
172 }
173
174 @Test
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);
179
180 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts3);
181 final TmfTimeRange range2 = new TmfTimeRange(ts2, ts3);
182 final TmfTimeRange range3 = new TmfTimeRange(ts1, ts2);
183
184 assertTrue("equals", !range1.equals(range2));
185 assertTrue("equals", !range1.equals(range3));
186 }
187
188 @Test
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);
193
194 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
195 final TmfTimeRange range2 = new TmfTimeRange(ts1, ts3);
196 final TmfTimeRange range3 = new TmfTimeRange(ts2, ts3);
197
198 assertTrue("equals", !range1.equals(range2));
199 assertTrue("equals", !range1.equals(range3));
200 }
201
202 // ------------------------------------------------------------------------
203 // toString
204 // ------------------------------------------------------------------------
205
206 @Test
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);
211
212 final String expected = "TmfTimeRange [fStartTime=" + ts1 + ", fEndTime=" + ts2 + "]";
213 assertEquals("toString", expected, range.toString());
214 }
215
216 // ------------------------------------------------------------------------
217 // contains
218 // ------------------------------------------------------------------------
219
220 @Test
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);
225
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)));
229
230 assertFalse("contains (low value)", range.contains(new TmfTimestamp(12340)));
231 assertFalse("contains (high value)", range.contains(new TmfTimestamp(12351)));
232 }
233
234 @Test
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);
244
245 // Reference range
246 final TmfTimeRange range0 = new TmfTimeRange(ts3, ts6);
247
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);
254
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));
260
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);
266
267 assertFalse("contains", range0.contains(range6));
268 assertFalse("contains", range0.contains(range7));
269 assertFalse("contains", range0.contains(range8));
270 assertFalse("contains", range0.contains(range9));
271
272 // Within range
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);
277
278 assertTrue("contains", range0.contains(range10));
279 assertTrue("contains", range0.contains(range11));
280 assertTrue("contains", range0.contains(range12));
281 assertTrue("contains", range0.contains(range13));
282 }
283
284 // ------------------------------------------------------------------------
285 // getIntersection
286 // ------------------------------------------------------------------------
287
288 @Test
289 public void testGetIntersection() {
290
291 final ITmfTimestamp ts1a = new TmfTimestamp(1000);
292 final ITmfTimestamp ts1b = new TmfTimestamp(2000);
293 final TmfTimeRange range1 = new TmfTimeRange(ts1a, ts1b);
294
295 final ITmfTimestamp ts2a = new TmfTimestamp(2000);
296 final ITmfTimestamp ts2b = new TmfTimestamp(3000);
297 final TmfTimeRange range2 = new TmfTimeRange(ts2a, ts2b);
298
299 final ITmfTimestamp ts3a = new TmfTimestamp(3000);
300 final ITmfTimestamp ts3b = new TmfTimestamp(4000);
301 final TmfTimeRange range3 = new TmfTimeRange(ts3a, ts3b);
302
303 final ITmfTimestamp ts4a = new TmfTimestamp(1500);
304 final ITmfTimestamp ts4b = new TmfTimestamp(2500);
305 final TmfTimeRange range4 = new TmfTimeRange(ts4a, ts4b);
306
307 final ITmfTimestamp ts5a = new TmfTimestamp(1500);
308 final ITmfTimestamp ts5b = new TmfTimestamp(2000);
309 final TmfTimeRange range5 = new TmfTimeRange(ts5a, ts5b);
310
311 final ITmfTimestamp ts6a = new TmfTimestamp(2000);
312 final ITmfTimestamp ts6b = new TmfTimestamp(2500);
313 final TmfTimeRange range6 = new TmfTimeRange(ts6a, ts6b);
314
315 final ITmfTimestamp ts7a = new TmfTimestamp(1500);
316 final ITmfTimestamp ts7b = new TmfTimestamp(3500);
317 final TmfTimeRange range7 = new TmfTimeRange(ts7a, ts7b);
318
319 final ITmfTimestamp ts8a = new TmfTimestamp(2250);
320 final ITmfTimestamp ts8b = new TmfTimestamp(2750);
321 final TmfTimeRange range8 = new TmfTimeRange(ts8a, ts8b);
322
323 assertEquals("getIntersection (below - not contiguous)", null, range1.getIntersection(range3));
324 assertEquals("getIntersection (above - not contiguous)", null, range3.getIntersection(range1));
325
326 assertEquals("getIntersection (below - contiguous)", new TmfTimeRange(ts1b, ts1b), range1.getIntersection(range2));
327 assertEquals("getIntersection (above - contiguous)", new TmfTimeRange(ts3a, ts3a), range3.getIntersection(range2));
328
329 assertEquals("getIntersection (below - overlap)", new TmfTimeRange(ts2a, ts4b), range2.getIntersection(range4));
330 assertEquals("getIntersection (above - overlap)", new TmfTimeRange(ts2a, ts4b), range4.getIntersection(range2));
331
332 assertEquals("getIntersection (within - overlap1)", range6, range2.getIntersection(range6));
333 assertEquals("getIntersection (within - overlap2)", range6, range6.getIntersection(range2));
334
335 assertEquals("getIntersection (within - overlap3)", range5, range1.getIntersection(range5));
336 assertEquals("getIntersection (within - overlap4)", range5, range5.getIntersection(range1));
337
338 assertEquals("getIntersection (within - overlap5)", range8, range2.getIntersection(range8));
339 assertEquals("getIntersection (within - overlap6)", range8, range8.getIntersection(range2));
340
341 assertEquals("getIntersection (accross1)", range2, range2.getIntersection(range7));
342 assertEquals("getIntersection (accross2)", range2, range7.getIntersection(range2));
343 }
344
345 }
This page took 0.039203 seconds and 6 git commands to generate.