1 /*******************************************************************************
2 * Copyright (c) 2011, 2013 Ericsson
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
10 * Francois Chouinard - Initial API and implementation
11 * Bernd Hufmann - Adapt to junit.framework.TestCase
12 * Alexandre Montplaisir - Port to JUnit4
13 *******************************************************************************/
15 package org
.eclipse
.linuxtools
.tmf
.ui
.tests
.histogram
;
17 import static org
.junit
.Assert
.assertEquals
;
18 import static org
.junit
.Assert
.assertTrue
;
19 import static org
.junit
.Assert
.fail
;
21 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.histogram
.HistogramDataModel
;
22 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.histogram
.HistogramScaledData
;
23 import org
.eclipse
.linuxtools
.tmf
.ui
.views
.histogram
.IHistogramModelListener
;
24 import org
.junit
.Test
;
27 * Unit tests for the HistogramDataModel class.
29 public class HistogramDataModelTest
{
31 private static final double DELTA
= 1e-15;
34 * Test method for {@link HistogramDataModel#HistogramDataModel()}.
37 public void testHistogramDataModel() {
38 HistogramDataModel model
= new HistogramDataModel();
39 assertTrue(model
.getNbBuckets() == HistogramDataModel
.DEFAULT_NUMBER_OF_BUCKETS
);
40 assertTrue(model
.getNbEvents() == 0);
41 assertTrue(model
.getBucketDuration() == 1);
42 assertTrue(model
.getFirstBucketTime() == 0);
43 assertTrue(model
.getStartTime() == 0);
44 assertTrue(model
.getEndTime() == 0);
45 assertTrue(model
.getTimeLimit() == HistogramDataModel
.DEFAULT_NUMBER_OF_BUCKETS
);
49 * Test method for {@link HistogramDataModel#HistogramDataModel(int)}.
52 public void testHistogramDataModelInt() {
53 final int nbBuckets
= 5 * 1000;
54 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
55 assertTrue(model
.getNbEvents() == 0);
56 assertTrue(model
.getNbBuckets() == nbBuckets
);
57 assertTrue(model
.getBucketDuration() == 1);
58 assertTrue(model
.getFirstBucketTime() == 0);
59 assertTrue(model
.getStartTime() == 0);
60 assertTrue(model
.getEndTime() == 0);
61 assertTrue(model
.getTimeLimit() == nbBuckets
);
65 * Test methods for {@link HistogramDataModel#countEvent(long,long)}.
68 public void testClear() {
69 final int nbBuckets
= 100;
70 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
71 model
.countEvent(0, -1);
73 assertTrue(model
.getNbEvents() == 0);
74 assertTrue(model
.getNbBuckets() == nbBuckets
);
75 assertTrue(model
.getBucketDuration() == 1);
76 assertTrue(model
.getFirstBucketTime() == 0);
77 assertTrue(model
.getStartTime() == 0);
78 assertTrue(model
.getEndTime() == 0);
79 assertTrue(model
.getTimeLimit() == nbBuckets
);
83 * Test methods for {@link HistogramDataModel#countEvent(long,long)}.
86 public void testCountEvent_0() {
87 final int nbBuckets
= 100;
88 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
89 model
.countEvent(0, -1);
91 assertTrue(model
.getNbEvents() == 0);
92 assertTrue(model
.getNbBuckets() == nbBuckets
);
93 assertTrue(model
.getBucketDuration() == 1);
94 assertTrue(model
.getFirstBucketTime() == 0);
95 assertTrue(model
.getStartTime() == 0);
96 assertTrue(model
.getEndTime() == 0);
97 assertTrue(model
.getTimeLimit() == nbBuckets
);
101 * Test methods for {@link HistogramDataModel#countEvent(long,long)} and
102 * {@link HistogramDataModel#scaleTo(int,int,int)}.
105 public void testCountEvent_1() {
106 final int nbBuckets
= 100;
107 final int maxHeight
= 10;
109 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
111 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
112 for (int i
= 0; i
< result
.fData
.length
; i
++) {
113 assertTrue(result
.fData
[i
] == 0);
116 assertTrue(model
.getNbEvents() == 0);
117 assertTrue(model
.getNbBuckets() == nbBuckets
);
118 assertTrue(model
.getBucketDuration() == 1);
119 assertTrue(model
.getFirstBucketTime() == 0);
120 assertTrue(model
.getStartTime() == 0);
121 assertTrue(model
.getEndTime() == 0);
122 assertTrue(model
.getTimeLimit() == nbBuckets
);
126 * Test methods for {@link HistogramDataModel#countEvent(long,long)} and
127 * {@link HistogramDataModel#scaleTo(int,int,int)}.
130 public void testCountEvent_2() {
131 final int nbBuckets
= 100;
132 final int maxHeight
= 10;
134 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
135 model
.countEvent(0, 1);
137 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
138 assertTrue(result
.fData
[0] == 1);
139 for (int i
= 1; i
< result
.fData
.length
; i
++) {
140 assertTrue(result
.fData
[i
] == 0);
143 assertTrue(model
.getNbEvents() == 1);
144 assertTrue(model
.getNbBuckets() == nbBuckets
);
145 assertTrue(model
.getBucketDuration() == 1);
146 assertTrue(model
.getFirstBucketTime() == 1);
147 assertTrue(model
.getStartTime() == 1);
148 assertTrue(model
.getEndTime() == 1);
149 assertTrue(model
.getTimeLimit() == nbBuckets
+ 1);
153 * Test methods for {@link HistogramDataModel#countEvent(long,long)} and
154 * {@link HistogramDataModel#scaleTo(int,int,int)}.
157 public void testCountEvent_3() {
158 final int nbBuckets
= 100;
159 final int maxHeight
= 10;
161 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
162 for (int i
= 0; i
< nbBuckets
; i
++) {
163 model
.countEvent(i
, i
);
166 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
167 for (int i
= 0; i
< result
.fData
.length
; i
++) {
168 assertTrue(result
.fData
[i
] == 1);
171 assertTrue(model
.getNbEvents() == nbBuckets
);
172 assertTrue(model
.getNbBuckets() == nbBuckets
);
173 assertTrue(model
.getBucketDuration() == 1);
174 assertTrue(model
.getFirstBucketTime() == 0);
175 assertTrue(model
.getStartTime() == 0);
176 assertTrue(model
.getEndTime() == nbBuckets
- 1);
177 assertTrue(model
.getTimeLimit() == nbBuckets
);
181 * Test methods for {@link HistogramDataModel#countEvent(long,long)} and
182 * {@link HistogramDataModel#scaleTo(int,int,int)}.
185 public void testCountEvent_4() {
186 final int nbBuckets
= 100;
187 final int maxHeight
= 10;
189 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
190 for (int i
= 0; i
< nbBuckets
; i
++) {
191 model
.countEvent(i
, i
);
192 model
.countEvent(i
+1, i
);
195 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
196 for (int i
= 0; i
< result
.fData
.length
; i
++) {
197 assertTrue(result
.fData
[i
] == 2);
200 assertTrue(model
.getNbEvents() == 2 * nbBuckets
);
201 assertTrue(model
.getNbBuckets() == nbBuckets
);
202 assertTrue(model
.getBucketDuration() == 1);
203 assertTrue(model
.getFirstBucketTime() == 0);
204 assertTrue(model
.getStartTime() == 0);
205 assertTrue(model
.getEndTime() == nbBuckets
- 1);
206 assertTrue(model
.getTimeLimit() == nbBuckets
);
210 * Test methods for {@link HistogramDataModel#countEvent(long,long)} and
211 * {@link HistogramDataModel#scaleTo(int,int,int)}.
214 public void testCountEvent_5() {
215 final int nbBuckets
= 100;
216 final int startTime
= 25;
217 final int maxHeight
= 10;
219 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
220 for (int i
= startTime
; i
< startTime
+ nbBuckets
; i
++) {
221 model
.countEvent(i
, i
);
224 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
225 for (int i
= 0; i
< result
.fData
.length
; i
++) {
226 assertTrue(result
.fData
[i
] == 1);
229 assertTrue(model
.getNbEvents() == nbBuckets
);
230 assertTrue(model
.getNbBuckets() == nbBuckets
);
231 assertTrue(model
.getBucketDuration() == 1);
232 assertTrue(model
.getFirstBucketTime() == startTime
);
233 assertTrue(model
.getStartTime() == startTime
);
234 assertTrue(model
.getEndTime() == startTime
+ nbBuckets
- 1);
235 assertTrue(model
.getTimeLimit() == startTime
+ nbBuckets
);
239 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
242 public void testScaleTo_0() {
243 HistogramDataModel model
= new HistogramDataModel(10);
245 model
.scaleTo(10, 0, 1);
247 catch (AssertionError e1
) {
249 model
.scaleTo(0, 10, 1);
251 catch (AssertionError e2
) {
253 model
.scaleTo(0, 0, 1);
255 catch (AssertionError e3
) {
260 fail("Uncaught assertion error"); //$NON-NLS-1$
264 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
267 public void testScaleTo_1() {
268 final int nbBuckets
= 10;
269 final int maxHeight
= 10;
270 final int nbEvents
= nbBuckets
/ 2;
271 final int[] expectedResult
= new int[] { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
273 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
274 for (int i
= 0; i
< nbEvents
; i
++) {
275 model
.countEvent(i
, i
);
278 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
279 for (int i
= 0; i
< result
.fData
.length
; i
++) {
280 assertTrue(result
.fData
[i
] == expectedResult
[i
]);
283 assertTrue(model
.getNbEvents() == nbEvents
);
284 assertTrue(model
.getNbBuckets() == nbBuckets
);
285 assertTrue(model
.getBucketDuration() == 1);
286 assertTrue(model
.getFirstBucketTime() == 0);
287 assertTrue(model
.getStartTime() == 0);
288 assertTrue(model
.getEndTime() == nbEvents
- 1);
289 assertTrue(model
.getTimeLimit() == nbBuckets
);
293 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
296 public void testScaleTo_2() {
297 final int nbBuckets
= 10;
298 final int maxHeight
= 10;
299 final int nbEvents
= nbBuckets
;
300 final int[] expectedResult
= new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
302 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
303 for (int i
= 0; i
< nbEvents
; i
++) {
304 model
.countEvent(i
, i
);
307 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
308 for (int i
= 0; i
< result
.fData
.length
; i
++) {
309 assertTrue(result
.fData
[i
] == expectedResult
[i
]);
312 assertTrue(model
.getNbEvents() == nbEvents
);
313 assertTrue(model
.getNbBuckets() == nbBuckets
);
314 assertTrue(model
.getBucketDuration() == 1);
315 assertTrue(model
.getFirstBucketTime() == 0);
316 assertTrue(model
.getStartTime() == 0);
317 assertTrue(model
.getEndTime() == nbEvents
- 1);
318 assertTrue(model
.getTimeLimit() == nbBuckets
);
322 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
325 public void testScaleTo_3() {
326 final int nbBuckets
= 10;
327 final int maxHeight
= 10;
328 final int nbEvents
= 2 * nbBuckets
;
329 final int[] expectedResult
= new int[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
331 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
332 for (int i
= 0; i
< nbEvents
; i
++) {
333 model
.countEvent(i
, i
);
336 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
337 for (int i
= 0; i
< result
.fData
.length
; i
++) {
338 assertTrue(result
.fData
[i
] == expectedResult
[i
]);
341 assertTrue(model
.getNbEvents() == nbEvents
);
342 assertTrue(model
.getNbBuckets() == nbBuckets
);
343 assertTrue(model
.getBucketDuration() == 2);
344 assertTrue(model
.getFirstBucketTime() == 0);
345 assertTrue(model
.getStartTime() == 0);
346 assertTrue(model
.getEndTime() == nbEvents
- 1);
347 assertTrue(model
.getTimeLimit() == 2 * nbBuckets
);
351 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
354 public void testScaleTo_4() {
355 final int nbBuckets
= 10;
356 final int maxHeight
= 10;
357 final int nbEvents
= 3 * nbBuckets
;
358 final int[] expectedResult
= new int[] { 4, 4, 4, 4, 4, 4, 4, 2, 0, 0 };
360 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
361 for (int i
= 0; i
< nbEvents
; i
++) {
362 model
.countEvent(i
, i
);
365 HistogramScaledData result
= model
.scaleTo(nbBuckets
, maxHeight
, 1);
366 for (int i
= 0; i
< result
.fData
.length
; i
++) {
367 assertTrue(result
.fData
[i
] == expectedResult
[i
]);
370 assertTrue(model
.getNbEvents() == nbEvents
);
371 assertTrue(model
.getNbBuckets() == nbBuckets
);
372 assertTrue(model
.getBucketDuration() == 4);
373 assertTrue(model
.getFirstBucketTime() == 0);
374 assertTrue(model
.getStartTime() == 0);
375 assertTrue(model
.getEndTime() == nbEvents
- 1);
376 assertTrue(model
.getTimeLimit() == 4 * nbBuckets
);
380 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
383 public void testScaleTo_5() {
384 final int nbBuckets
= 100;
385 final int maxHeight
= 20;
386 final int nbEvents
= 2 * nbBuckets
;
387 final int[] expectedResult
= new int[] { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 };
389 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
390 for (int i
= 0; i
< nbEvents
; i
++) {
391 model
.countEvent(i
, i
);
394 HistogramScaledData result
= model
.scaleTo(10, maxHeight
, 1);
395 for (int i
= 0; i
< result
.fData
.length
; i
++) {
396 assertTrue(result
.fData
[i
] == expectedResult
[i
]);
399 assertTrue(model
.getNbEvents() == nbEvents
);
400 assertTrue(model
.getNbBuckets() == nbBuckets
);
401 assertTrue(model
.getBucketDuration() == 2);
402 assertTrue(model
.getFirstBucketTime() == 0);
403 assertTrue(model
.getEndTime() == nbEvents
- 1);
404 assertTrue(model
.getTimeLimit() == 2 * nbBuckets
);
408 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
411 public void testScaleTo_6() {
412 final int nbBuckets
= 100;
413 final int maxHeight
= 24;
414 final int nbEvents
= 2 * nbBuckets
+ 1;
415 final int[] expectedResult
= new int[] { 24, 24, 24, 24, 24, 24, 24, 24, 9, 0 };
417 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
418 for (int i
= 0; i
< nbEvents
; i
++) {
419 model
.countEvent(i
, i
);
422 HistogramScaledData result
= model
.scaleTo(10, maxHeight
, 1);
423 for (int i
= 0; i
< result
.fData
.length
; i
++) {
424 assertTrue(result
.fData
[i
] == expectedResult
[i
]);
427 assertTrue(model
.getNbEvents() == nbEvents
);
428 assertTrue(model
.getNbBuckets() == nbBuckets
);
429 assertTrue(model
.getBucketDuration() == 4);
430 assertTrue(model
.getFirstBucketTime() == 0);
431 assertTrue(model
.getStartTime() == 0);
432 assertTrue(model
.getEndTime() == nbEvents
- 1);
433 assertTrue(model
.getTimeLimit() == 4 * nbBuckets
);
437 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
440 public void testScaleTo_7() {
441 // verify scaleTo with barWidth > 1
442 final int nbBuckets
= 100;
443 final int maxHeight
= 24;
444 final int width
= 10;
445 final int barWidth
= 4;
446 final int nbEvents
= 2 * nbBuckets
+ 1;
448 // (int)(width / barWith) = 2
449 // -> 2 bars -> expected result needs two buckets (scaled data)
451 // buckets (in model) per bar = last bucket id / nbBars + 1 (plus 1 to cover all used buckets)
452 // -> buckets per bar = 50 / 2 + 1 = 26
453 // -> first entry in expected result is 26 * 4 = 104
454 // -> second entry in expected result is 22 * 4 + 9 = 97
455 final int[] expectedResult
= new int[] { 104, 97 };
457 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
458 for (int i
= 0; i
< nbEvents
; i
++) {
459 model
.countEvent(i
, i
);
462 // verify scaled data
463 HistogramScaledData result
= model
.scaleTo(width
, maxHeight
, barWidth
);
465 assertEquals(4 * 26, result
.fBucketDuration
);
466 assertEquals(0, result
.fCurrentBucket
);
467 assertEquals(0, result
.fFirstBucketTime
);
468 assertEquals(0, result
.fFirstEventTime
);
469 assertEquals(1, result
.fLastBucket
);
470 assertEquals(104, result
.fMaxValue
);
471 assertEquals((double)maxHeight
/104, result
.fScalingFactor
, DELTA
);
472 assertEquals(maxHeight
, result
.fHeight
);
473 assertEquals(width
, result
.fWidth
);
474 assertEquals(barWidth
, result
.fBarWidth
);
476 for (int i
= 0; i
< result
.fData
.length
; i
++) {
477 assertEquals(expectedResult
[i
], result
.fData
[i
]);
481 assertEquals(nbEvents
, model
.getNbEvents());
482 assertEquals(nbBuckets
, model
.getNbBuckets());
483 assertEquals(4, model
.getBucketDuration());
484 assertEquals(0, model
.getFirstBucketTime());
485 assertEquals(0, model
.getStartTime());
486 assertEquals(nbEvents
- 1, model
.getEndTime());
487 assertEquals(4 * nbBuckets
, model
.getTimeLimit());
491 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
494 public void testScaleToReverse_1() {
495 final int nbBuckets
= 100;
496 final int maxHeight
= 24;
497 final int width
= 10;
498 final int barWidth
= 1;
499 final int nbEvents
= 2 * nbBuckets
+ 1;
501 // (int)(width / barWith) = 10
502 // -> 10 bars -> expected result needs 10 buckets (scaled data)
504 // buckets in (model) per bar = last bucket id / nbBars + 1 (plus 1 to cover all used buckets)
505 // -> buckets per bar = 50 / 10 + 1 = 6
506 final int[] expectedResult
= new int[] { 21, 24, 24, 24, 24, 24, 24, 24, 12, 0 };
508 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
509 for (int i
= nbEvents
- 1; i
>= 0; i
--) {
510 model
.countEvent(i
, i
);
513 // verify scaled data
514 HistogramScaledData result
= model
.scaleTo(width
, maxHeight
, barWidth
);
516 assertEquals(4 * 6, result
.fBucketDuration
);
517 assertEquals(0, result
.fCurrentBucket
);
518 assertEquals(-3, result
.fFirstBucketTime
); // negative is correct, can happen when reverse
519 assertEquals(0, result
.fFirstEventTime
);
520 assertEquals(9, result
.fLastBucket
);
521 assertEquals(24, result
.fMaxValue
);
522 assertEquals((double)maxHeight
/24, result
.fScalingFactor
, DELTA
);
523 assertEquals(maxHeight
, result
.fHeight
);
524 assertEquals(width
, result
.fWidth
);
525 assertEquals(barWidth
, result
.fBarWidth
);
527 for (int i
= 0; i
< result
.fData
.length
; i
++) {
528 assertEquals(expectedResult
[i
], result
.fData
[i
]);
532 assertEquals(nbEvents
, model
.getNbEvents());
533 assertEquals(nbBuckets
, model
.getNbBuckets());
534 assertEquals(4, model
.getBucketDuration());
535 assertEquals(-3, model
.getFirstBucketTime());
536 assertEquals(0, model
.getStartTime());
537 assertEquals(nbEvents
- 1, model
.getEndTime());
538 assertEquals(-3 + 4 * nbBuckets
, model
.getTimeLimit());
542 * Test method for {@link HistogramDataModel#scaleTo(int,int,int)}.
545 public void testScaleToReverse_2() {
546 final int nbBuckets
= 100;
547 final int maxHeight
= 24;
548 final int width
= 10;
549 final int barWidth
= 1;
551 final int nbEvents
= 2 * nbBuckets
;
553 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
554 for (int i
= 0; i
< nbEvents
; i
++) {
555 model
.countEvent(i
, i
);
558 HistogramScaledData result
= model
.scaleTo(width
, maxHeight
, barWidth
);
562 for (int i
= nbEvents
-1; i
>= 0; i
--) {
563 model
.countEvent(i
, i
);
566 HistogramScaledData revResult
= model
.scaleTo(width
, maxHeight
, barWidth
);
568 assertEquals(nbEvents
, model
.getNbEvents());
569 assertEquals(nbBuckets
, model
.getNbBuckets());
570 assertEquals(2, model
.getBucketDuration());
571 assertEquals(0, model
.getFirstBucketTime());
572 assertEquals(0, model
.getStartTime());
573 assertEquals(nbEvents
- 1, model
.getEndTime());
574 assertEquals(2 * nbBuckets
, model
.getTimeLimit());
576 // For the above number of events, result and revResult are exactly the same.
577 assertEquals(result
.fBucketDuration
, revResult
.fBucketDuration
);
578 assertEquals(result
.fCurrentBucket
, revResult
.fCurrentBucket
);
579 assertEquals(result
.fFirstBucketTime
, revResult
.fFirstBucketTime
);
580 assertEquals(result
.fMaxValue
, revResult
.fMaxValue
);
581 assertEquals(result
.fScalingFactor
, revResult
.fScalingFactor
, DELTA
);
582 assertEquals(result
.fLastBucket
, revResult
.fLastBucket
);
583 assertEquals(result
.getBucketEndTime(0), revResult
.getBucketEndTime(0));
584 assertEquals(result
.getBucketStartTime(0), revResult
.getBucketStartTime(0));
586 for (int i
= 0; i
< result
.fData
.length
; i
++) {
587 assertTrue(result
.fData
[i
] == revResult
.fData
[i
]);
592 * Test method for testing model listener.
595 public void testModelListener() {
596 final int nbBuckets
= 2000;
597 final int nbEvents
= 10 * nbBuckets
+ 256;
598 final int[] count
= new int[1];
601 // Test add listener and call of listener
602 IHistogramModelListener listener
= new IHistogramModelListener() {
604 public void modelUpdated() {
609 // Test that the listener interface is called every 16000 events.
610 HistogramDataModel model
= new HistogramDataModel(nbBuckets
);
611 model
.addHistogramListener(listener
);
612 for (int i
= 0; i
< nbEvents
; i
++) {
613 model
.countEvent(i
+1, i
);
616 assertTrue(count
[0] == 1);
618 // Test that the listener interface is called when complete is called.
620 assertTrue(count
[0] == 2);
622 // Test that clear triggers call of listener interface
624 assertTrue(count
[0] == 3);
626 // Test remove listener
628 model
.removeHistogramListener(listener
);
630 for (int i
= 0; i
< nbEvents
; i
++) {
631 model
.countEvent(i
, i
);
634 assertTrue(count
[0] == 0);