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