2 * Copyright (c) 2014 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.yangtools.util;
11 import static org.junit.Assert.assertEquals;
12 import org.junit.Test;
15 * Unit tests for DurationStatsTracker.
17 * @author Thomas Pantelis
19 public class DurationStatisticsTrackerTest {
24 DurationStatisticsTracker tracker = DurationStatisticsTracker.createConcurrent();
26 tracker.addDuration(10000);
27 assertEquals("getTotalDurations", 1, tracker.getTotalDurations());
28 assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1);
29 assertEquals("getLongestDuration", 10000, tracker.getLongestDuration());
30 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
32 tracker.addDuration(30000);
33 assertEquals("getTotalDurations", 2, tracker.getTotalDurations());
34 assertEquals("getAverageDuration", 20000.0, tracker.getAverageDuration(), 0.1);
35 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
36 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
38 verifyDisplayableString("getDisplayableAverageDuration",
39 tracker.getDisplayableAverageDuration(), "20.0");
40 verifyDisplayableString("getDisplayableLongestDuration",
41 tracker.getDisplayableLongestDuration(), "30.0");
42 verifyDisplayableString("getDisplayableShortestDuration",
43 tracker.getDisplayableShortestDuration(), "10.0");
45 tracker.addDuration(10000);
46 assertEquals("getTotalDurations", 3, tracker.getTotalDurations());
47 assertEquals("getAverageDuration", 16666.0, tracker.getAverageDuration(), 1.0);
48 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
49 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
51 tracker.addDuration(5000);
52 assertEquals("getTotalDurations", 4, tracker.getTotalDurations());
53 assertEquals("getAverageDuration", 13750.0, tracker.getAverageDuration(), 1.0);
54 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
55 assertEquals("getShortestDuration", 5000, tracker.getShortestDuration());
58 assertEquals("getTotalDurations", 0, tracker.getTotalDurations());
59 assertEquals("getAverageDuration", 0.0, tracker.getAverageDuration(), 0.1);
60 assertEquals("getLongestDuration", 0, tracker.getLongestDuration());
61 assertEquals("getShortestDuration", 0, tracker.getShortestDuration());
63 tracker.addDuration(10000);
64 assertEquals("getTotalDurations", 1, tracker.getTotalDurations());
65 assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1);
66 assertEquals("getLongestDuration", 10000, tracker.getLongestDuration());
67 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
70 private static void verifyDisplayableString(final String name, final String actual, final String expPrefix) {
71 assertEquals(name + " starts with " + expPrefix + ". Actual: " + actual,
72 true, actual.startsWith(expPrefix));