tmf: Move plugins to their own sub-directory
[deliverable/tracecompass.git] / tmf / 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 // ------------------------------------------------------------------------
73 // hashCode
74 // ------------------------------------------------------------------------
75
76 @Test
77 public void testHashCode() {
78 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
79 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
80 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
81 final TmfTimeRange range1b =new TmfTimeRange(ts1, ts2);
82 final TmfTimeRange range2 = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
83 final TmfTimeRange range2b = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
84
85 assertTrue("hashCode", range1.hashCode() == range1b.hashCode());
86 assertTrue("hashCode", range2.hashCode() == range2b.hashCode());
87
88 assertTrue("hashCode", range1.hashCode() != range2.hashCode());
89 }
90
91 // ------------------------------------------------------------------------
92 // equals
93 // ------------------------------------------------------------------------
94
95 @Test
96 public void testEqualsReflexivity() {
97 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
98 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
99 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
100 final TmfTimeRange range2 = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
101
102 assertTrue("equals", range1.equals(range1));
103 assertTrue("equals", range2.equals(range2));
104
105 assertTrue("equals", !range1.equals(range2));
106 assertTrue("equals", !range2.equals(range1));
107 }
108
109 @Test
110 public void testEqualsSymmetry() {
111 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
112 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
113 final TmfTimeRange range1a = new TmfTimeRange(ts1, ts2);
114 final TmfTimeRange range1b = new TmfTimeRange(ts1, ts2);
115
116 final TmfTimeRange range2a = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
117 final TmfTimeRange range2b = new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_CRUNCH);
118
119 assertTrue("equals", range1a.equals(range1b));
120 assertTrue("equals", range1b.equals(range1a));
121
122 assertTrue("equals", range2a.equals(range2b));
123 assertTrue("equals", range2b.equals(range2a));
124 }
125
126 @Test
127 public void testEqualsTransivity() {
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 final TmfTimeRange range1c = new TmfTimeRange(ts1, ts2);
133
134 assertTrue("equals", range1a.equals(range1b));
135 assertTrue("equals", range1b.equals(range1c));
136 assertTrue("equals", range1a.equals(range1c));
137 }
138
139 @Test
140 public void testEqualsNull() {
141 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
142 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
143 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
144
145 assertTrue("equals", !range1.equals(null));
146 }
147
148 @Test
149 public void testEqualsBadType() {
150 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
151 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
152 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
153
154 assertTrue("equals", !range1.equals(ts1));
155 }
156
157 @Test
158 public void testEqualStartTime() {
159 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
160 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
161 final ITmfTimestamp ts3 = new TmfTimestamp(12355);
162
163 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts3);
164 final TmfTimeRange range2 = new TmfTimeRange(ts2, ts3);
165 final TmfTimeRange range3 = new TmfTimeRange(ts1, ts2);
166
167 assertTrue("equals", !range1.equals(range2));
168 assertTrue("equals", !range1.equals(range3));
169 }
170
171 @Test
172 public void testEqualsEndTime() {
173 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
174 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
175 final ITmfTimestamp ts3 = new TmfTimestamp(12355);
176
177 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
178 final TmfTimeRange range2 = new TmfTimeRange(ts1, ts3);
179 final TmfTimeRange range3 = new TmfTimeRange(ts2, ts3);
180
181 assertTrue("equals", !range1.equals(range2));
182 assertTrue("equals", !range1.equals(range3));
183 }
184
185 // ------------------------------------------------------------------------
186 // toString
187 // ------------------------------------------------------------------------
188
189 @Test
190 public void testToString() {
191 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
192 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
193 final TmfTimeRange range = new TmfTimeRange(ts1, ts2);
194
195 final String expected = "TmfTimeRange [fStartTime=" + ts1 + ", fEndTime=" + ts2 + "]";
196 assertEquals("toString", expected, range.toString());
197 }
198
199 // ------------------------------------------------------------------------
200 // contains
201 // ------------------------------------------------------------------------
202
203 @Test
204 public void testContainsTimestamp() {
205 final ITmfTimestamp ts1 = new TmfTimestamp(12345);
206 final ITmfTimestamp ts2 = new TmfTimestamp(12350);
207 final TmfTimeRange range = new TmfTimeRange(ts1, ts2);
208
209 assertTrue("contains (lower bound)", range.contains(new TmfTimestamp(12345)));
210 assertTrue("contains (higher bound)", range.contains(new TmfTimestamp(12350)));
211 assertTrue("contains (within bounds)", range.contains(new TmfTimestamp(12346)));
212
213 assertFalse("contains (low value)", range.contains(new TmfTimestamp(12340)));
214 assertFalse("contains (high value)", range.contains(new TmfTimestamp(12351)));
215 }
216
217 @Test
218 public void testContainsRange() {
219 final ITmfTimestamp ts1 = new TmfTimestamp(10);
220 final ITmfTimestamp ts2 = new TmfTimestamp(20);
221 final ITmfTimestamp ts3 = new TmfTimestamp(30);
222 final ITmfTimestamp ts4 = new TmfTimestamp(40);
223 final ITmfTimestamp ts5 = new TmfTimestamp(50);
224 final ITmfTimestamp ts6 = new TmfTimestamp(60);
225 final ITmfTimestamp ts7 = new TmfTimestamp(70);
226 final ITmfTimestamp ts8 = new TmfTimestamp(80);
227
228 // Reference range
229 final TmfTimeRange range0 = new TmfTimeRange(ts3, ts6);
230
231 // Start time below range
232 final TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
233 final TmfTimeRange range2 = new TmfTimeRange(ts2, ts3);
234 final TmfTimeRange range3 = new TmfTimeRange(ts2, ts4);
235 final TmfTimeRange range4 = new TmfTimeRange(ts2, ts6);
236 final TmfTimeRange range5 = new TmfTimeRange(ts2, ts7);
237
238 assertFalse("contains", range0.contains(range1));
239 assertFalse("contains", range0.contains(range2));
240 assertFalse("contains", range0.contains(range3));
241 assertFalse("contains", range0.contains(range4));
242 assertFalse("contains", range0.contains(range5));
243
244 // End time above range
245 final TmfTimeRange range6 = new TmfTimeRange(ts3, ts7);
246 final TmfTimeRange range7 = new TmfTimeRange(ts4, ts7);
247 final TmfTimeRange range8 = new TmfTimeRange(ts6, ts7);
248 final TmfTimeRange range9 = new TmfTimeRange(ts7, ts8);
249
250 assertFalse("contains", range0.contains(range6));
251 assertFalse("contains", range0.contains(range7));
252 assertFalse("contains", range0.contains(range8));
253 assertFalse("contains", range0.contains(range9));
254
255 // Within range
256 final TmfTimeRange range10 = new TmfTimeRange(ts3, ts4);
257 final TmfTimeRange range11 = new TmfTimeRange(ts3, ts6);
258 final TmfTimeRange range12 = new TmfTimeRange(ts4, ts5);
259 final TmfTimeRange range13 = new TmfTimeRange(ts4, ts6);
260
261 assertTrue("contains", range0.contains(range10));
262 assertTrue("contains", range0.contains(range11));
263 assertTrue("contains", range0.contains(range12));
264 assertTrue("contains", range0.contains(range13));
265 }
266
267 // ------------------------------------------------------------------------
268 // getIntersection
269 // ------------------------------------------------------------------------
270
271 @Test
272 public void testGetIntersection() {
273
274 final ITmfTimestamp ts1a = new TmfTimestamp(1000);
275 final ITmfTimestamp ts1b = new TmfTimestamp(2000);
276 final TmfTimeRange range1 = new TmfTimeRange(ts1a, ts1b);
277
278 final ITmfTimestamp ts2a = new TmfTimestamp(2000);
279 final ITmfTimestamp ts2b = new TmfTimestamp(3000);
280 final TmfTimeRange range2 = new TmfTimeRange(ts2a, ts2b);
281
282 final ITmfTimestamp ts3a = new TmfTimestamp(3000);
283 final ITmfTimestamp ts3b = new TmfTimestamp(4000);
284 final TmfTimeRange range3 = new TmfTimeRange(ts3a, ts3b);
285
286 final ITmfTimestamp ts4a = new TmfTimestamp(1500);
287 final ITmfTimestamp ts4b = new TmfTimestamp(2500);
288 final TmfTimeRange range4 = new TmfTimeRange(ts4a, ts4b);
289
290 final ITmfTimestamp ts5a = new TmfTimestamp(1500);
291 final ITmfTimestamp ts5b = new TmfTimestamp(2000);
292 final TmfTimeRange range5 = new TmfTimeRange(ts5a, ts5b);
293
294 final ITmfTimestamp ts6a = new TmfTimestamp(2000);
295 final ITmfTimestamp ts6b = new TmfTimestamp(2500);
296 final TmfTimeRange range6 = new TmfTimeRange(ts6a, ts6b);
297
298 final ITmfTimestamp ts7a = new TmfTimestamp(1500);
299 final ITmfTimestamp ts7b = new TmfTimestamp(3500);
300 final TmfTimeRange range7 = new TmfTimeRange(ts7a, ts7b);
301
302 final ITmfTimestamp ts8a = new TmfTimestamp(2250);
303 final ITmfTimestamp ts8b = new TmfTimestamp(2750);
304 final TmfTimeRange range8 = new TmfTimeRange(ts8a, ts8b);
305
306 assertEquals("getIntersection (below - not contiguous)", null, range1.getIntersection(range3));
307 assertEquals("getIntersection (above - not contiguous)", null, range3.getIntersection(range1));
308
309 assertEquals("getIntersection (below - contiguous)", new TmfTimeRange(ts1b, ts1b), range1.getIntersection(range2));
310 assertEquals("getIntersection (above - contiguous)", new TmfTimeRange(ts3a, ts3a), range3.getIntersection(range2));
311
312 assertEquals("getIntersection (below - overlap)", new TmfTimeRange(ts2a, ts4b), range2.getIntersection(range4));
313 assertEquals("getIntersection (above - overlap)", new TmfTimeRange(ts2a, ts4b), range4.getIntersection(range2));
314
315 assertEquals("getIntersection (within - overlap1)", range6, range2.getIntersection(range6));
316 assertEquals("getIntersection (within - overlap2)", range6, range6.getIntersection(range2));
317
318 assertEquals("getIntersection (within - overlap3)", range5, range1.getIntersection(range5));
319 assertEquals("getIntersection (within - overlap4)", range5, range5.getIntersection(range1));
320
321 assertEquals("getIntersection (within - overlap5)", range8, range2.getIntersection(range8));
322 assertEquals("getIntersection (within - overlap6)", range8, range8.getIntersection(range2));
323
324 assertEquals("getIntersection (accross1)", range2, range2.getIntersection(range7));
325 assertEquals("getIntersection (accross2)", range2, range7.getIntersection(range2));
326 }
327
328 }
This page took 0.038139 seconds and 5 git commands to generate.