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;
13 import org.junit.Test;
16 * Unit tests for DurationStatsTracker.
18 * @author Thomas Pantelis
20 public class DurationStatisticsTrackerTest {
25 DurationStatisticsTracker tracker = DurationStatisticsTracker.createConcurrent();
27 tracker.addDuration(10000);
28 assertEquals("getTotalDurations", 1, tracker.getTotalDurations());
29 assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1);
30 assertEquals("getLongestDuration", 10000, tracker.getLongestDuration());
31 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
33 tracker.addDuration(30000);
34 assertEquals("getTotalDurations", 2, tracker.getTotalDurations());
35 assertEquals("getAverageDuration", 20000.0, tracker.getAverageDuration(), 0.1);
36 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
37 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
39 verifyDisplayableString("getDisplayableAverageDuration",
40 tracker.getDisplayableAverageDuration(), "20.0");
41 verifyDisplayableString("getDisplayableLongestDuration",
42 tracker.getDisplayableLongestDuration(), "30.0");
43 verifyDisplayableString("getDisplayableShortestDuration",
44 tracker.getDisplayableShortestDuration(), "10.0");
46 tracker.addDuration(10000);
47 assertEquals("getTotalDurations", 3, tracker.getTotalDurations());
48 assertEquals("getAverageDuration", 16666.0, tracker.getAverageDuration(), 1.0);
49 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
50 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
52 tracker.addDuration(5000);
53 assertEquals("getTotalDurations", 4, tracker.getTotalDurations());
54 assertEquals("getAverageDuration", 13750.0, tracker.getAverageDuration(), 1.0);
55 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
56 assertEquals("getShortestDuration", 5000, tracker.getShortestDuration());
59 assertEquals("getTotalDurations", 0, tracker.getTotalDurations());
60 assertEquals("getAverageDuration", 0.0, tracker.getAverageDuration(), 0.1);
61 assertEquals("getLongestDuration", 0, tracker.getLongestDuration());
62 assertEquals("getShortestDuration", 0, tracker.getShortestDuration());
64 tracker.addDuration(10000);
65 assertEquals("getTotalDurations", 1, tracker.getTotalDurations());
66 assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1);
67 assertEquals("getLongestDuration", 10000, tracker.getLongestDuration());
68 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
71 private static void verifyDisplayableString(final String name, final String actual, final String expPrefix) {
72 assertEquals(name + " starts with " + expPrefix + ". Actual: " + actual,
73 true, actual.startsWith(expPrefix));