Move alltests plugin to the Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / event / TmfSimpleTimestampTest.java
CommitLineData
7656d70a 1/*******************************************************************************
6e1886bc 2 * Copyright (c) 2012, 2013 Ericsson
54a7a54c 3 *
7656d70a
FC
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
54a7a54c 8 *
7656d70a
FC
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
6e1886bc 11 * Alexandre Montplaisir - Port to JUnit4
7656d70a
FC
12 *******************************************************************************/
13
14package org.eclipse.linuxtools.tmf.core.tests.event;
15
6e1886bc
AM
16import static org.junit.Assert.assertEquals;
17import static org.junit.Assert.assertFalse;
18import static org.junit.Assert.assertTrue;
19import static org.junit.Assert.fail;
20
0b47ff0e
MK
21import java.text.DateFormat;
22import java.text.SimpleDateFormat;
23import java.util.Date;
24
3bd46eef
AM
25import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
26import org.eclipse.linuxtools.tmf.core.timestamp.TmfSimpleTimestamp;
27import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
6e1886bc 28import org.junit.Test;
7656d70a
FC
29
30/**
7656d70a
FC
31 * Test suite for the TmfSimpleTimestampTest class.
32 */
cad06250 33@SuppressWarnings("javadoc")
6e1886bc 34public class TmfSimpleTimestampTest {
7656d70a 35
085d898f
FC
36 // ------------------------------------------------------------------------
37 // Variables
38 // ------------------------------------------------------------------------
7656d70a 39
085d898f
FC
40 private final ITmfTimestamp ts0 = new TmfSimpleTimestamp();
41 private final ITmfTimestamp ts1 = new TmfSimpleTimestamp(12345);
7656d70a
FC
42 private final ITmfTimestamp ts2 = new TmfSimpleTimestamp(-1234);
43
085d898f
FC
44 // ------------------------------------------------------------------------
45 // Constructors
46 // ------------------------------------------------------------------------
7656d70a 47
6e1886bc 48 @Test
54a7a54c 49 public void testDefaultConstructor() {
7656d70a
FC
50 assertEquals("getValue", 0, ts0.getValue());
51 assertEquals("getscale", 0, ts0.getScale());
52 assertEquals("getPrecision", 0, ts0.getPrecision());
53 }
54
6e1886bc 55 @Test
54a7a54c 56 public void testFullConstructor() {
7656d70a
FC
57 assertEquals("getValue", 12345, ts1.getValue());
58 assertEquals("getscale", 0, ts1.getScale());
59 assertEquals("getPrecision", 0, ts1.getPrecision());
60 }
61
6e1886bc 62 @Test
54a7a54c 63 public void testCopyConstructor() {
085d898f 64 final ITmfTimestamp copy = new TmfSimpleTimestamp(ts1);
7656d70a
FC
65
66 assertEquals("getValue", ts1.getValue(), copy.getValue());
67 assertEquals("getscale", ts1.getScale(), copy.getScale());
68 assertEquals("getPrecision", ts1.getPrecision(), copy.getPrecision());
69
70 assertEquals("getValue", 12345, copy.getValue());
71 assertEquals("getscale", 0, copy.getScale());
72 assertEquals("getPrecision", 0, copy.getPrecision());
73 }
74
6e1886bc 75 @Test
54a7a54c 76 public void testCopyBadTimestamp() {
7656d70a 77 try {
6e85c58d 78 new TmfSimpleTimestamp(null);
75d42a16 79 fail("TmfSimpleTimestamp: null argument");
4593bd5b 80 } catch (final NullPointerException e) {
9ee9135e 81 }
9ee9135e
FC
82 }
83
7656d70a
FC
84 // ------------------------------------------------------------------------
85 // equals
86 // ------------------------------------------------------------------------
87
6e1886bc 88 @Test
54a7a54c 89 public void testEqualsReflexivity() {
7656d70a
FC
90 assertTrue("equals", ts0.equals(ts0));
91 assertTrue("equals", ts1.equals(ts1));
92 assertTrue("equals", ts2.equals(ts2));
93
94 assertTrue("equals", !ts0.equals(ts1));
95 assertTrue("equals", !ts0.equals(ts2));
96
97 assertTrue("equals", !ts1.equals(ts0));
98 assertTrue("equals", !ts1.equals(ts2));
99
100 assertTrue("equals", !ts2.equals(ts0));
101 assertTrue("equals", !ts2.equals(ts1));
102 }
103
6e1886bc 104 @Test
54a7a54c 105 public void testEqualsSymmetry() {
085d898f 106 final ITmfTimestamp ts0copy = new TmfSimpleTimestamp(ts0);
7656d70a
FC
107 assertTrue("equals", ts0.equals(ts0copy));
108 assertTrue("equals", ts0copy.equals(ts0));
109
085d898f 110 final ITmfTimestamp ts1copy = new TmfSimpleTimestamp(ts1);
7656d70a
FC
111 assertTrue("equals", ts1.equals(ts1copy));
112 assertTrue("equals", ts1copy.equals(ts1));
113 }
114
6e1886bc 115 @Test
54a7a54c 116 public void testEqualsTransivity() {
085d898f
FC
117 final ITmfTimestamp ts0copy1 = new TmfSimpleTimestamp(ts0);
118 final ITmfTimestamp ts0copy2 = new TmfSimpleTimestamp(ts0copy1);
7656d70a
FC
119 assertTrue("equals", ts0.equals(ts0copy1));
120 assertTrue("equals", ts0copy1.equals(ts0copy2));
121 assertTrue("equals", ts0.equals(ts0copy2));
122
085d898f
FC
123 final ITmfTimestamp ts1copy1 = new TmfSimpleTimestamp(ts1);
124 final ITmfTimestamp ts1copy2 = new TmfSimpleTimestamp(ts1copy1);
7656d70a
FC
125 assertTrue("equals", ts1.equals(ts1copy1));
126 assertTrue("equals", ts1copy1.equals(ts1copy2));
127 assertTrue("equals", ts1.equals(ts1copy2));
128 }
129
6e1886bc 130 @Test
54a7a54c 131 public void testEqualsNull() {
7656d70a
FC
132 assertTrue("equals", !ts0.equals(null));
133 assertTrue("equals", !ts1.equals(null));
134 assertTrue("equals", !ts2.equals(null));
135 }
136
6e1886bc 137 @Test
54a7a54c 138 public void testEqualsNonTimestamp() {
7656d70a
FC
139 assertFalse("equals", ts0.equals(ts0.toString()));
140 }
141
7656d70a
FC
142 // ------------------------------------------------------------------------
143 // toString
144 // ------------------------------------------------------------------------
145
6e1886bc 146 @Test
54a7a54c 147 public void testToString() {
0b47ff0e
MK
148 DateFormat df = new SimpleDateFormat("HH:mm:ss.SSS");
149 Date d0 = new Date(ts0.getValue()*1000);
150 Date d1 = new Date(ts1.getValue()*1000);
151 Date d2 = new Date(ts2.getValue()*1000);
152 assertEquals("toString", df.format(d0) + " 000 000", ts0.toString());
153 assertEquals("toString", df.format(d1) + " 000 000", ts1.toString());
154 assertEquals("toString", df.format(d2) + " 000 000", ts2.toString());
7656d70a
FC
155 }
156
157 // ------------------------------------------------------------------------
158 // hashCode
159 // ------------------------------------------------------------------------
160
6e1886bc 161 @Test
54a7a54c 162 public void testHashCode() {
085d898f
FC
163 final ITmfTimestamp ts0copy = new TmfTimestamp(ts0);
164 final ITmfTimestamp ts1copy = new TmfTimestamp(ts1);
165 final ITmfTimestamp ts2copy = new TmfTimestamp(ts2);
7656d70a
FC
166
167 assertTrue("hashCode", ts0.hashCode() == ts0copy.hashCode());
168 assertTrue("hashCode", ts1.hashCode() == ts1copy.hashCode());
169 assertTrue("hashCode", ts2.hashCode() == ts2copy.hashCode());
170
171 assertTrue("hashCode", ts0.hashCode() != ts1.hashCode());
172 }
173
174 // ------------------------------------------------------------------------
175 // normalize
176 // ------------------------------------------------------------------------
177
6e1886bc 178 @Test
54a7a54c 179 public void testNormalizeScale0() {
7656d70a
FC
180 ITmfTimestamp ts = ts0.normalize(0, 0);
181 assertEquals("getValue", 0, ts.getValue());
182 assertEquals("getscale", 0, ts.getScale());
183 assertEquals("getPrecision", 0, ts.getPrecision());
184
185 ts = ts0.normalize(12345, 0);
186 assertEquals("getValue", 12345, ts.getValue());
187 assertEquals("getscale", 0, ts.getScale());
188 assertEquals("getPrecision", 0, ts.getPrecision());
189
190 ts = ts0.normalize(10, 0);
191 assertEquals("getValue", 10, ts.getValue());
192 assertEquals("getscale", 0, ts.getScale());
193 assertEquals("getPrecision", 0, ts.getPrecision());
194
195 ts = ts0.normalize(-10, 0);
196 assertEquals("getValue", -10, ts.getValue());
197 assertEquals("getscale", 0, ts.getScale());
198 assertEquals("getPrecision", 0, ts.getPrecision());
199 }
200
6e1886bc 201 @Test
54a7a54c 202 public void testNormalizeScaleNot0() {
7656d70a
FC
203 ITmfTimestamp ts = ts0.normalize(0, 1);
204 assertEquals("getValue", 0, ts.getValue());
205 assertEquals("getscale", 1, ts.getScale());
206 assertEquals("getPrecision", 0, ts.getPrecision());
207
208 ts = ts0.normalize(12345, 1);
209 assertEquals("getValue", 12345, ts.getValue());
210 assertEquals("getscale", 1, ts.getScale());
211 assertEquals("getPrecision", 0, ts.getPrecision());
212
213 ts = ts0.normalize(10, 1);
214 assertEquals("getValue", 10, ts.getValue());
215 assertEquals("getscale", 1, ts.getScale());
216 assertEquals("getPrecision", 0, ts.getPrecision());
217
218 ts = ts0.normalize(-10, 1);
219 assertEquals("getValue", -10, ts.getValue());
220 assertEquals("getscale", 1, ts.getScale());
221 assertEquals("getPrecision", 0, ts.getPrecision());
222 }
223
224 // ------------------------------------------------------------------------
225 // compareTo
226 // ------------------------------------------------------------------------
227
6e1886bc 228 @Test
54a7a54c
FC
229 public void testBasicCompareTo() {
230 final ITmfTimestamp tstamp1 = new TmfSimpleTimestamp(900);
231 final ITmfTimestamp tstamp2 = new TmfSimpleTimestamp(1000);
232 final ITmfTimestamp tstamp3 = new TmfSimpleTimestamp(1100);
7656d70a 233
54a7a54c 234 assertTrue(tstamp1.compareTo(tstamp1) == 0);
7656d70a 235
54a7a54c
FC
236 assertTrue("CompareTo", tstamp1.compareTo(tstamp2) < 0);
237 assertTrue("CompareTo", tstamp1.compareTo(tstamp3) < 0);
7656d70a 238
54a7a54c
FC
239 assertTrue("CompareTo", tstamp2.compareTo(tstamp1) > 0);
240 assertTrue("CompareTo", tstamp2.compareTo(tstamp3) < 0);
7656d70a 241
54a7a54c
FC
242 assertTrue("CompareTo", tstamp3.compareTo(tstamp1) > 0);
243 assertTrue("CompareTo", tstamp3.compareTo(tstamp2) > 0);
7656d70a
FC
244 }
245
6e1886bc 246 @Test
54a7a54c 247 public void testCompareTo() {
085d898f
FC
248 final ITmfTimestamp ts0a = new TmfTimestamp(0, 2, 0);
249 final ITmfTimestamp ts1a = new TmfTimestamp(123450, -1);
250 final ITmfTimestamp ts2a = new TmfTimestamp(-12340, -1);
7656d70a
FC
251
252 assertTrue(ts1.compareTo(ts1) == 0);
253
254 assertTrue("CompareTo", ts0.compareTo(ts0a) == 0);
255 assertTrue("CompareTo", ts1.compareTo(ts1a) == 0);
256 assertTrue("CompareTo", ts2.compareTo(ts2a) == 0);
257 }
258
259 // ------------------------------------------------------------------------
260 // getDelta
261 // ------------------------------------------------------------------------
085d898f 262
6e1886bc 263 @Test
54a7a54c 264 public void testDelta() {
7656d70a 265 // Delta for same scale and precision (delta > 0)
54a7a54c
FC
266 TmfTimestamp tstamp0 = new TmfSimpleTimestamp(10);
267 TmfTimestamp tstamp1 = new TmfSimpleTimestamp(5);
268 TmfTimestamp expectd = new TmfSimpleTimestamp(5);
7656d70a 269
54a7a54c
FC
270 ITmfTimestamp delta = tstamp0.getDelta(tstamp1);
271 assertEquals("getDelta", 0, delta.compareTo(expectd, false));
7656d70a
FC
272
273 // Delta for same scale and precision (delta < 0)
54a7a54c
FC
274 tstamp0 = new TmfTimestamp(5);
275 tstamp1 = new TmfTimestamp(10);
276 expectd = new TmfTimestamp(-5);
7656d70a 277
54a7a54c
FC
278 delta = tstamp0.getDelta(tstamp1);
279 assertEquals("getDelta", 0, delta.compareTo(expectd, false));
7656d70a
FC
280 }
281
6e1886bc 282 @Test
54a7a54c 283 public void testDelta2() {
7656d70a 284 // Delta for different scale and same precision (delta > 0)
54a7a54c
FC
285 final TmfTimestamp tstamp0 = new TmfSimpleTimestamp(10);
286 final TmfTimestamp tstamp1 = new TmfTimestamp(1, 1);
287 final TmfTimestamp expectd = new TmfTimestamp(0, 0);
7656d70a 288
54a7a54c
FC
289 final ITmfTimestamp delta = tstamp0.getDelta(tstamp1);
290 assertEquals("getDelta", 0, delta.compareTo(expectd, false));
7656d70a
FC
291 }
292
293}
This page took 0.079175 seconds and 5 git commands to generate.