Fix tabs/spaces for ITmfEvent
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / event / TmfSimpleTimestampTest.java
CommitLineData
7656d70a
FC
1/*******************************************************************************
2 * Copyright (c) 2012 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 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.core.tests.event;
14
15import junit.framework.TestCase;
16
17import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
18import org.eclipse.linuxtools.tmf.core.event.TmfSimpleTimestamp;
19import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
20
21/**
22 * <b><u>TmfSimpleTimestampTest</u></b>
23 * <p>
24 * Test suite for the TmfSimpleTimestampTest class.
25 */
26@SuppressWarnings("nls")
27public class TmfSimpleTimestampTest extends TestCase {
28
085d898f
FC
29 // ------------------------------------------------------------------------
30 // Variables
31 // ------------------------------------------------------------------------
7656d70a 32
085d898f
FC
33 private final ITmfTimestamp ts0 = new TmfSimpleTimestamp();
34 private final ITmfTimestamp ts1 = new TmfSimpleTimestamp(12345);
7656d70a
FC
35 private final ITmfTimestamp ts2 = new TmfSimpleTimestamp(-1234);
36
085d898f
FC
37 // ------------------------------------------------------------------------
38 // Housekeping
39 // ------------------------------------------------------------------------
7656d70a 40
085d898f
FC
41 /**
42 * @param name the test name
43 */
44 public TmfSimpleTimestampTest(final String name) {
45 super(name);
46 }
7656d70a 47
085d898f
FC
48 @Override
49 protected void setUp() throws Exception {
50 super.setUp();
51 }
7656d70a 52
085d898f
FC
53 @Override
54 protected void tearDown() throws Exception {
55 super.tearDown();
56 }
7656d70a 57
085d898f
FC
58 // ------------------------------------------------------------------------
59 // Constructors
60 // ------------------------------------------------------------------------
7656d70a
FC
61
62 public void testDefaultConstructor() throws Exception {
63 assertEquals("getValue", 0, ts0.getValue());
64 assertEquals("getscale", 0, ts0.getScale());
65 assertEquals("getPrecision", 0, ts0.getPrecision());
66 }
67
68 public void testFullConstructor() throws Exception {
69 assertEquals("getValue", 12345, ts1.getValue());
70 assertEquals("getscale", 0, ts1.getScale());
71 assertEquals("getPrecision", 0, ts1.getPrecision());
72 }
73
74 public void testCopyConstructor() throws Exception {
085d898f 75 final ITmfTimestamp copy = new TmfSimpleTimestamp(ts1);
7656d70a
FC
76
77 assertEquals("getValue", ts1.getValue(), copy.getValue());
78 assertEquals("getscale", ts1.getScale(), copy.getScale());
79 assertEquals("getPrecision", ts1.getPrecision(), copy.getPrecision());
80
81 assertEquals("getValue", 12345, copy.getValue());
82 assertEquals("getscale", 0, copy.getScale());
83 assertEquals("getPrecision", 0, copy.getPrecision());
84 }
85
86 public void testCopyBadTimestamp() throws Exception {
085d898f
FC
87 final ITmfTimestamp ts0a = new TmfTimestamp(0, 1, 0);
88 final ITmfTimestamp ts0b = new TmfTimestamp(0, 0, 1);
7656d70a
FC
89
90 try {
6e85c58d 91 new TmfSimpleTimestamp(null);
75d42a16 92 fail("TmfSimpleTimestamp: null argument");
085d898f 93 } catch (final IllegalArgumentException e) {
7656d70a
FC
94 }
95
96 try {
6e85c58d 97 new TmfSimpleTimestamp(ts0a);
75d42a16 98 fail("TmfSimpleTimestamp: bad scale");
085d898f 99 } catch (final IllegalArgumentException e) {
7656d70a
FC
100 }
101
102 try {
6e85c58d 103 new TmfSimpleTimestamp(ts0b);
75d42a16 104 fail("TmfSimpleTimestamp: bad precision");
085d898f 105 } catch (final IllegalArgumentException e) {
7656d70a
FC
106 }
107 }
108
9ee9135e
FC
109 // ------------------------------------------------------------------------
110 // clone
111 // ------------------------------------------------------------------------
112
ea2b103b 113 public static class MyTimestamp extends TmfSimpleTimestamp {
9ee9135e
FC
114
115 @Override
085d898f 116 public boolean equals(final Object other) {
9ee9135e
FC
117 return super.equals(other);
118 }
119
120 @Override
121 public MyTimestamp clone() {
122 return (MyTimestamp) super.clone();
123 }
124 }
125
126 public void testClone() throws Exception {
085d898f 127 final ITmfTimestamp clone = ts0.clone();
de126dbb
FC
128
129 assertTrue("clone", ts0.clone().equals(ts0));
130 assertTrue("clone", clone.clone().equals(clone));
131
132 assertEquals("clone", clone, ts0);
133 assertEquals("clone", ts0, clone);
9ee9135e
FC
134 }
135
136 public void testClone2() throws Exception {
085d898f
FC
137 final MyTimestamp timestamp = new MyTimestamp();
138 final MyTimestamp clone = timestamp.clone();
de126dbb
FC
139
140 assertTrue("clone", timestamp.clone().equals(timestamp));
141 assertTrue("clone", clone.clone().equals(clone));
142
9ee9135e 143 assertEquals("clone", clone, timestamp);
de126dbb 144 assertEquals("clone", timestamp, clone);
9ee9135e
FC
145 }
146
7656d70a
FC
147 // ------------------------------------------------------------------------
148 // equals
149 // ------------------------------------------------------------------------
150
151 public void testEqualsReflexivity() throws Exception {
152 assertTrue("equals", ts0.equals(ts0));
153 assertTrue("equals", ts1.equals(ts1));
154 assertTrue("equals", ts2.equals(ts2));
155
156 assertTrue("equals", !ts0.equals(ts1));
157 assertTrue("equals", !ts0.equals(ts2));
158
159 assertTrue("equals", !ts1.equals(ts0));
160 assertTrue("equals", !ts1.equals(ts2));
161
162 assertTrue("equals", !ts2.equals(ts0));
163 assertTrue("equals", !ts2.equals(ts1));
164 }
165
166 public void testEqualsSymmetry() throws Exception {
085d898f 167 final ITmfTimestamp ts0copy = new TmfSimpleTimestamp(ts0);
7656d70a
FC
168 assertTrue("equals", ts0.equals(ts0copy));
169 assertTrue("equals", ts0copy.equals(ts0));
170
085d898f 171 final ITmfTimestamp ts1copy = new TmfSimpleTimestamp(ts1);
7656d70a
FC
172 assertTrue("equals", ts1.equals(ts1copy));
173 assertTrue("equals", ts1copy.equals(ts1));
174 }
175
176 public void testEqualsTransivity() throws Exception {
085d898f
FC
177 final ITmfTimestamp ts0copy1 = new TmfSimpleTimestamp(ts0);
178 final ITmfTimestamp ts0copy2 = new TmfSimpleTimestamp(ts0copy1);
7656d70a
FC
179 assertTrue("equals", ts0.equals(ts0copy1));
180 assertTrue("equals", ts0copy1.equals(ts0copy2));
181 assertTrue("equals", ts0.equals(ts0copy2));
182
085d898f
FC
183 final ITmfTimestamp ts1copy1 = new TmfSimpleTimestamp(ts1);
184 final ITmfTimestamp ts1copy2 = new TmfSimpleTimestamp(ts1copy1);
7656d70a
FC
185 assertTrue("equals", ts1.equals(ts1copy1));
186 assertTrue("equals", ts1copy1.equals(ts1copy2));
187 assertTrue("equals", ts1.equals(ts1copy2));
188 }
189
190 public void testEqualsNull() throws Exception {
191 assertTrue("equals", !ts0.equals(null));
192 assertTrue("equals", !ts1.equals(null));
193 assertTrue("equals", !ts2.equals(null));
194 }
195
196 public void testEqualsNonTimestamp() throws Exception {
197 assertFalse("equals", ts0.equals(ts0.toString()));
198 }
199
7656d70a
FC
200 // ------------------------------------------------------------------------
201 // toString
202 // ------------------------------------------------------------------------
203
204 public void testToString() throws Exception {
205 assertEquals("toString", "TmfSimpleTimestamp [fValue=0]", ts0.toString());
206 assertEquals("toString", "TmfSimpleTimestamp [fValue=12345]", ts1.toString());
207 assertEquals("toString", "TmfSimpleTimestamp [fValue=-1234]", ts2.toString());
208 }
209
210 // ------------------------------------------------------------------------
211 // hashCode
212 // ------------------------------------------------------------------------
213
214 public void testHashCode() throws Exception {
085d898f
FC
215 final ITmfTimestamp ts0copy = new TmfTimestamp(ts0);
216 final ITmfTimestamp ts1copy = new TmfTimestamp(ts1);
217 final ITmfTimestamp ts2copy = new TmfTimestamp(ts2);
7656d70a
FC
218
219 assertTrue("hashCode", ts0.hashCode() == ts0copy.hashCode());
220 assertTrue("hashCode", ts1.hashCode() == ts1copy.hashCode());
221 assertTrue("hashCode", ts2.hashCode() == ts2copy.hashCode());
222
223 assertTrue("hashCode", ts0.hashCode() != ts1.hashCode());
224 }
225
226 // ------------------------------------------------------------------------
227 // normalize
228 // ------------------------------------------------------------------------
229
230 public void testNormalizeScale0() throws Exception {
231 ITmfTimestamp ts = ts0.normalize(0, 0);
232 assertEquals("getValue", 0, ts.getValue());
233 assertEquals("getscale", 0, ts.getScale());
234 assertEquals("getPrecision", 0, ts.getPrecision());
235
236 ts = ts0.normalize(12345, 0);
237 assertEquals("getValue", 12345, ts.getValue());
238 assertEquals("getscale", 0, ts.getScale());
239 assertEquals("getPrecision", 0, ts.getPrecision());
240
241 ts = ts0.normalize(10, 0);
242 assertEquals("getValue", 10, ts.getValue());
243 assertEquals("getscale", 0, ts.getScale());
244 assertEquals("getPrecision", 0, ts.getPrecision());
245
246 ts = ts0.normalize(-10, 0);
247 assertEquals("getValue", -10, ts.getValue());
248 assertEquals("getscale", 0, ts.getScale());
249 assertEquals("getPrecision", 0, ts.getPrecision());
250 }
251
252 public void testNormalizeScaleNot0() throws Exception {
253 ITmfTimestamp ts = ts0.normalize(0, 1);
254 assertEquals("getValue", 0, ts.getValue());
255 assertEquals("getscale", 1, ts.getScale());
256 assertEquals("getPrecision", 0, ts.getPrecision());
257
258 ts = ts0.normalize(12345, 1);
259 assertEquals("getValue", 12345, ts.getValue());
260 assertEquals("getscale", 1, ts.getScale());
261 assertEquals("getPrecision", 0, ts.getPrecision());
262
263 ts = ts0.normalize(10, 1);
264 assertEquals("getValue", 10, ts.getValue());
265 assertEquals("getscale", 1, ts.getScale());
266 assertEquals("getPrecision", 0, ts.getPrecision());
267
268 ts = ts0.normalize(-10, 1);
269 assertEquals("getValue", -10, ts.getValue());
270 assertEquals("getscale", 1, ts.getScale());
271 assertEquals("getPrecision", 0, ts.getPrecision());
272 }
273
274 // ------------------------------------------------------------------------
275 // compareTo
276 // ------------------------------------------------------------------------
277
278 public void testBasicCompareTo() throws Exception {
085d898f
FC
279 final ITmfTimestamp ts1 = new TmfSimpleTimestamp(900);
280 final ITmfTimestamp ts2 = new TmfSimpleTimestamp(1000);
281 final ITmfTimestamp ts3 = new TmfSimpleTimestamp(1100);
7656d70a
FC
282
283 assertTrue(ts1.compareTo(ts1) == 0);
284
285 assertTrue("CompareTo", ts1.compareTo(ts2) < 0);
286 assertTrue("CompareTo", ts1.compareTo(ts3) < 0);
287
288 assertTrue("CompareTo", ts2.compareTo(ts1) > 0);
289 assertTrue("CompareTo", ts2.compareTo(ts3) < 0);
290
291 assertTrue("CompareTo", ts3.compareTo(ts1) > 0);
292 assertTrue("CompareTo", ts3.compareTo(ts2) > 0);
293 }
294
295 public void testCompareTo() throws Exception {
085d898f
FC
296 final ITmfTimestamp ts0a = new TmfTimestamp(0, 2, 0);
297 final ITmfTimestamp ts1a = new TmfTimestamp(123450, -1);
298 final ITmfTimestamp ts2a = new TmfTimestamp(-12340, -1);
7656d70a
FC
299
300 assertTrue(ts1.compareTo(ts1) == 0);
301
302 assertTrue("CompareTo", ts0.compareTo(ts0a) == 0);
303 assertTrue("CompareTo", ts1.compareTo(ts1a) == 0);
304 assertTrue("CompareTo", ts2.compareTo(ts2a) == 0);
305 }
306
307 // ------------------------------------------------------------------------
308 // getDelta
309 // ------------------------------------------------------------------------
085d898f 310
7656d70a
FC
311 public void testDelta() throws Exception {
312 // Delta for same scale and precision (delta > 0)
313 TmfTimestamp ts0 = new TmfSimpleTimestamp(10);
314 TmfTimestamp ts1 = new TmfSimpleTimestamp(5);
315 TmfTimestamp exp = new TmfSimpleTimestamp(5);
316
317 ITmfTimestamp delta = ts0.getDelta(ts1);
318 assertEquals("getDelta", 0, delta.compareTo(exp, false));
319
320 // Delta for same scale and precision (delta < 0)
321 ts0 = new TmfTimestamp(5);
322 ts1 = new TmfTimestamp(10);
323 exp = new TmfTimestamp(-5);
324
325 delta = ts0.getDelta(ts1);
326 assertEquals("getDelta", 0, delta.compareTo(exp, false));
327 }
328
329 public void testDelta2() throws Exception {
330 // Delta for different scale and same precision (delta > 0)
085d898f
FC
331 final TmfTimestamp ts0 = new TmfSimpleTimestamp(10);
332 final TmfTimestamp ts1 = new TmfTimestamp(1, 1);
333 final TmfTimestamp exp = new TmfTimestamp(0, 0);
7656d70a 334
085d898f 335 final ITmfTimestamp delta = ts0.getDelta(ts1);
7656d70a
FC
336 assertEquals("getDelta", 0, delta.compareTo(exp, false));
337 }
338
339}
This page took 0.052142 seconds and 5 git commands to generate.