Merge remote branch 'origin/master'
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui.tests / src / org / eclipse / linuxtools / lttng / ui / tests / histogram / HistogramDataModelTest.java
CommitLineData
c392540b
FC
1/*******************************************************************************
2 * Copyright (c) 2011 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.lttng.ui.tests.histogram;
14
15import static org.junit.Assert.assertTrue;
16
17import org.eclipse.linuxtools.lttng.ui.views.histogram.HistogramDataModel;
18import org.eclipse.linuxtools.lttng.ui.views.histogram.HistogramScaledData;
19import org.junit.After;
20import org.junit.Before;
21import org.junit.Test;
22
23/**
24 * <b><u>HistogramDataModelTest</u></b>
25 * <p>
26 * Unit tests for the HistogramDataModel class.
27 */
28public class HistogramDataModelTest {
29
30 // ------------------------------------------------------------------------
31 // Test data
32 // ------------------------------------------------------------------------
33
34 // ------------------------------------------------------------------------
35 // Housekeeping
36 // ------------------------------------------------------------------------
37
38 @Before
39 public void setUp() throws Exception {
40 }
41
42 @After
43 public void tearDown() throws Exception {
44 }
45
46 // ------------------------------------------------------------------------
47 // Tests
48 // ------------------------------------------------------------------------
49
50 /**
51 * Test method for
52 * {@link org.eclipse.linuxtools.tmf.HistogramDataModel.views.histogram.TmfHistogramDataModel#HistogramDataModel()}
53 * .
54 */
55 @Test
56 public void testHistogramDataModel() {
57 HistogramDataModel model = new HistogramDataModel();
58 assertTrue(model.getNbBuckets() == HistogramDataModel.DEFAULT_NUMBER_OF_BUCKETS);
59 assertTrue(model.getNbEvents() == 0);
60 assertTrue(model.getBucketDuration() == 1);
61 assertTrue(model.getStartTime() == 0);
62 assertTrue(model.getEndTime() == 0);
63 assertTrue(model.getTimeLimit() == HistogramDataModel.DEFAULT_NUMBER_OF_BUCKETS);
64 }
65
66 /**
67 * Test method for
68 * {@link org.eclipse.linuxtools.tmf.HistogramDataModel.views.histogram.TmfHistogramDataModel#HistogramDataModel(int)}
69 * .
70 */
71 @Test
72 public void testHistogramDataModelInt() {
73 final int nbBuckets = 5 * 1000;
74 HistogramDataModel model = new HistogramDataModel(nbBuckets);
75 assertTrue(model.getNbEvents() == 0);
76 assertTrue(model.getNbBuckets() == nbBuckets);
77 assertTrue(model.getBucketDuration() == 1);
78 assertTrue(model.getStartTime() == 0);
79 assertTrue(model.getEndTime() == 0);
80 assertTrue(model.getTimeLimit() == nbBuckets);
81 }
82
83 /**
84 * Test methods for
85 * {@link org.eclipse.linuxtools.tmf.HistogramDataModel.views.histogram.TmfHistogramDataModel#countEvent(long)}
86 * .
87 */
88 @Test
89 public void testClear() {
90 final int nbBuckets = 100;
91 HistogramDataModel model = new HistogramDataModel(nbBuckets);
92 model.countEvent(-1);
93
94 assertTrue(model.getNbEvents() == 0);
95 assertTrue(model.getNbBuckets() == nbBuckets);
96 assertTrue(model.getBucketDuration() == 1);
97 assertTrue(model.getStartTime() == 0);
98 assertTrue(model.getEndTime() == 0);
99 assertTrue(model.getTimeLimit() == nbBuckets);
100 }
101
102 /**
103 * Test methods for
104 * {@link org.eclipse.linuxtools.tmf.HistogramDataModel.views.histogram.TmfHistogramDataModel#countEvent(long)}
105 * .
106 */
107 @Test
108 public void testCountEvent_0() {
109 final int nbBuckets = 100;
110 HistogramDataModel model = new HistogramDataModel(nbBuckets);
111 model.countEvent(-1);
112
113 assertTrue(model.getNbEvents() == 0);
114 assertTrue(model.getNbBuckets() == nbBuckets);
115 assertTrue(model.getBucketDuration() == 1);
116 assertTrue(model.getStartTime() == 0);
117 assertTrue(model.getEndTime() == 0);
118 assertTrue(model.getTimeLimit() == nbBuckets);
119 }
120
121 @Test
122 public void testCountEvent_1() {
123 final int nbBuckets = 100;
124 final int maxHeight = 10;
125
126 HistogramDataModel model = new HistogramDataModel(nbBuckets);
127
128 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
129 for (int i = 0; i < result.fData.length; i++) {
130 assertTrue(result.fData[i] == 0);
131 }
132
133 assertTrue(model.getNbEvents() == 0);
134 assertTrue(model.getNbBuckets() == nbBuckets);
135 assertTrue(model.getBucketDuration() == 1);
136 assertTrue(model.getStartTime() == 0);
137 assertTrue(model.getEndTime() == 0);
138 assertTrue(model.getTimeLimit() == nbBuckets);
139 }
140
141 @Test
142 public void testCountEvent_2() {
143 final int nbBuckets = 100;
144 final int maxHeight = 10;
145
146 HistogramDataModel model = new HistogramDataModel(nbBuckets);
147 model.countEvent(1);
148
149 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
150 assertTrue(result.fData[0] == 1);
151 for (int i = 1; i < result.fData.length; i++) {
152 assertTrue(result.fData[i] == 0);
153 }
154
155 assertTrue(model.getNbEvents() == 1);
156 assertTrue(model.getNbBuckets() == nbBuckets);
157 assertTrue(model.getBucketDuration() == 1);
158 assertTrue(model.getStartTime() == 1);
159 assertTrue(model.getEndTime() == 1);
160 assertTrue(model.getTimeLimit() == nbBuckets + 1);
161 }
162
163 @Test
164 public void testCountEvent_3() {
165 final int nbBuckets = 100;
166 final int maxHeight = 10;
167
168 HistogramDataModel model = new HistogramDataModel(nbBuckets);
169 for (int i = 0; i < nbBuckets; i++) {
170 model.countEvent(i);
171 }
172
173 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
174 for (int i = 0; i < result.fData.length; i++) {
175 assertTrue(result.fData[i] == 1);
176 }
177
178 assertTrue(model.getNbEvents() == nbBuckets);
179 assertTrue(model.getNbBuckets() == nbBuckets);
180 assertTrue(model.getBucketDuration() == 1);
181 assertTrue(model.getStartTime() == 0);
182 assertTrue(model.getEndTime() == nbBuckets - 1);
183 assertTrue(model.getTimeLimit() == nbBuckets);
184 }
185
186 @Test
187 public void testCountEvent_4() {
188 final int nbBuckets = 100;
189 final int maxHeight = 10;
190
191 HistogramDataModel model = new HistogramDataModel(nbBuckets);
192 for (int i = 0; i < nbBuckets; i++) {
193 model.countEvent(i);
194 model.countEvent(i);
195 }
196
197 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
198 for (int i = 0; i < result.fData.length; i++) {
199 assertTrue(result.fData[i] == 2);
200 }
201
202 assertTrue(model.getNbEvents() == 2 * nbBuckets);
203 assertTrue(model.getNbBuckets() == nbBuckets);
204 assertTrue(model.getBucketDuration() == 1);
205 assertTrue(model.getStartTime() == 0);
206 assertTrue(model.getEndTime() == nbBuckets - 1);
207 assertTrue(model.getTimeLimit() == nbBuckets);
208 }
209
210 @Test
211 public void testCountEvent_5() {
212 final int nbBuckets = 100;
213 final int startTime = 25;
214 final int maxHeight = 10;
215
216 HistogramDataModel model = new HistogramDataModel(nbBuckets);
217 for (int i = startTime; i < startTime + nbBuckets; i++) {
218 model.countEvent(i);
219 }
220
221 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
222 for (int i = 0; i < result.fData.length; i++) {
223 assertTrue(result.fData[i] == 1);
224 }
225
226 assertTrue(model.getNbEvents() == nbBuckets);
227 assertTrue(model.getNbBuckets() == nbBuckets);
228 assertTrue(model.getBucketDuration() == 1);
229 assertTrue(model.getStartTime() == startTime);
230 assertTrue(model.getEndTime() == startTime + nbBuckets - 1);
231 assertTrue(model.getTimeLimit() == startTime + nbBuckets);
232 }
233
234 /**
235 * Test method for
236 * {@link org.eclipse.linuxtools.tmf.HistogramDataModel.views.histogram.TmfHistogramDataModel#scaleTo(int,int)}
237 * .
238 */
239 @Test
240 public void testScaleTo_1() {
241 final int nbBuckets = 10;
242 final int maxHeight = 10;
243 final int nbEvents = nbBuckets / 2;
244 final int[] expectedResult = new int[] { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
245
246 HistogramDataModel model = new HistogramDataModel(nbBuckets);
247 for (int i = 0; i < nbEvents; i++) {
248 model.countEvent(i);
249 }
250
251 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
252 for (int i = 0; i < result.fData.length; i++) {
253 assertTrue(result.fData[i] == expectedResult[i]);
254 }
255
256 assertTrue(model.getNbEvents() == nbEvents);
257 assertTrue(model.getNbBuckets() == nbBuckets);
258 assertTrue(model.getBucketDuration() == 1);
259 assertTrue(model.getStartTime() == 0);
260 assertTrue(model.getEndTime() == nbEvents - 1);
261 assertTrue(model.getTimeLimit() == nbBuckets);
262 }
263
264 @Test
265 public void testScaleTo_2() {
266 final int nbBuckets = 10;
267 final int maxHeight = 10;
268 final int nbEvents = nbBuckets;
269 final int[] expectedResult = new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
270
271 HistogramDataModel model = new HistogramDataModel(nbBuckets);
272 for (int i = 0; i < nbEvents; i++) {
273 model.countEvent(i);
274 }
275
276 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
277 for (int i = 0; i < result.fData.length; i++) {
278 assertTrue(result.fData[i] == expectedResult[i]);
279 }
280
281 assertTrue(model.getNbEvents() == nbEvents);
282 assertTrue(model.getNbBuckets() == nbBuckets);
283 assertTrue(model.getBucketDuration() == 1);
284 assertTrue(model.getStartTime() == 0);
285 assertTrue(model.getEndTime() == nbEvents - 1);
286 assertTrue(model.getTimeLimit() == nbBuckets);
287 }
288
289 @Test
290 public void testScaleTo_3() {
291 final int nbBuckets = 10;
292 final int maxHeight = 10;
293 final int nbEvents = 2 * nbBuckets;
294 final int[] expectedResult = new int[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
295
296 HistogramDataModel model = new HistogramDataModel(nbBuckets);
297 for (int i = 0; i < nbEvents; i++) {
298 model.countEvent(i);
299 }
300
301 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
302 for (int i = 0; i < result.fData.length; i++) {
303 assertTrue(result.fData[i] == expectedResult[i]);
304 }
305
306 assertTrue(model.getNbEvents() == nbEvents);
307 assertTrue(model.getNbBuckets() == nbBuckets);
308 assertTrue(model.getBucketDuration() == 2);
309 assertTrue(model.getStartTime() == 0);
310 assertTrue(model.getEndTime() == nbEvents - 1);
311 assertTrue(model.getTimeLimit() == 2 * nbBuckets);
312 }
313
314 @Test
315 public void testScaleTo_4() {
316 final int nbBuckets = 10;
317 final int maxHeight = 10;
318 final int nbEvents = 3 * nbBuckets;
319 final int[] expectedResult = new int[] { 4, 4, 4, 4, 4, 4, 4, 2, 0, 0 };
320
321 HistogramDataModel model = new HistogramDataModel(nbBuckets);
322 for (int i = 0; i < nbEvents; i++) {
323 model.countEvent(i);
324 }
325
326 HistogramScaledData result = model.scaleTo(nbBuckets, maxHeight);
327 for (int i = 0; i < result.fData.length; i++) {
328 assertTrue(result.fData[i] == expectedResult[i]);
329 }
330
331 assertTrue(model.getNbEvents() == nbEvents);
332 assertTrue(model.getNbBuckets() == nbBuckets);
333 assertTrue(model.getBucketDuration() == 4);
334 assertTrue(model.getStartTime() == 0);
335 assertTrue(model.getEndTime() == nbEvents - 1);
336 assertTrue(model.getTimeLimit() == 4 * nbBuckets);
337 }
338
339 @Test
340 public void testScaleTo_5() {
341 final int nbBuckets = 100;
342 final int maxHeight = 20;
343 final int nbEvents = 2 * nbBuckets;
344 final int[] expectedResult = new int[] { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 };
345
346 HistogramDataModel model = new HistogramDataModel(nbBuckets);
347 for (int i = 0; i < nbEvents; i++) {
348 model.countEvent(i);
349 }
350
351 HistogramScaledData result = model.scaleTo(10, maxHeight);
352 for (int i = 0; i < result.fData.length; i++) {
353 assertTrue(result.fData[i] == expectedResult[i]);
354 }
355
356 assertTrue(model.getNbEvents() == nbEvents);
357 assertTrue(model.getNbBuckets() == nbBuckets);
358 assertTrue(model.getBucketDuration() == 2);
359 assertTrue(model.getStartTime() == 0);
360 assertTrue(model.getEndTime() == nbEvents - 1);
361 assertTrue(model.getTimeLimit() == 2 * nbBuckets);
362 }
363
364 @Test
365 public void testScaleTo_6() {
366 final int nbBuckets = 100;
367 final int maxHeight = 24;
368 final int nbEvents = 2 * nbBuckets + 1;
369 final int[] expectedResult = new int[] { 24, 24, 24, 24, 24, 24, 24, 24, 9, 0 };
370
371 HistogramDataModel model = new HistogramDataModel(nbBuckets);
372 for (int i = 0; i < nbEvents; i++) {
373 model.countEvent(i);
374 }
375
376 HistogramScaledData result = model.scaleTo(10, maxHeight);
377 for (int i = 0; i < result.fData.length; i++) {
378 assertTrue(result.fData[i] == expectedResult[i]);
379 }
380
381 assertTrue(model.getNbEvents() == nbEvents);
382 assertTrue(model.getNbBuckets() == nbBuckets);
383 assertTrue(model.getBucketDuration() == 4);
384 assertTrue(model.getStartTime() == 0);
385 assertTrue(model.getEndTime() == nbEvents - 1);
386 assertTrue(model.getTimeLimit() == 4 * nbBuckets);
387 }
388
389}
This page took 0.038723 seconds and 5 git commands to generate.