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 static org.junit.Assert.assertTrue;
14 import org.junit.Test;
17 * Unit tests for DurationStatsTracker.
19 * @author Thomas Pantelis
21 public class DurationStatisticsTrackerTest {
26 DurationStatisticsTracker tracker = DurationStatisticsTracker.createConcurrent();
28 tracker.addDuration(10000);
29 assertEquals("getTotalDurations", 1, tracker.getTotalDurations());
30 assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1);
31 assertEquals("getLongestDuration", 10000, tracker.getLongestDuration());
32 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
34 tracker.addDuration(30000);
35 assertEquals("getTotalDurations", 2, tracker.getTotalDurations());
36 assertEquals("getAverageDuration", 20000.0, tracker.getAverageDuration(), 0.1);
37 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
38 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
40 verifyDisplayableString("getDisplayableAverageDuration",
41 tracker.getDisplayableAverageDuration(), "20.0");
42 verifyDisplayableString("getDisplayableLongestDuration",
43 tracker.getDisplayableLongestDuration(), "30.0");
44 verifyDisplayableString("getDisplayableShortestDuration",
45 tracker.getDisplayableShortestDuration(), "10.0");
47 tracker.addDuration(10000);
48 assertEquals("getTotalDurations", 3, tracker.getTotalDurations());
49 assertEquals("getAverageDuration", 16666.0, tracker.getAverageDuration(), 1.0);
50 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
51 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
53 tracker.addDuration(5000);
54 assertEquals("getTotalDurations", 4, tracker.getTotalDurations());
55 assertEquals("getAverageDuration", 13750.0, tracker.getAverageDuration(), 1.0);
56 assertEquals("getLongestDuration", 30000, tracker.getLongestDuration());
57 assertEquals("getShortestDuration", 5000, tracker.getShortestDuration());
60 assertEquals("getTotalDurations", 0, tracker.getTotalDurations());
61 assertEquals("getAverageDuration", 0.0, tracker.getAverageDuration(), 0.1);
62 assertEquals("getLongestDuration", 0, tracker.getLongestDuration());
63 assertEquals("getShortestDuration", 0, tracker.getShortestDuration());
65 tracker.addDuration(10000);
66 assertEquals("getTotalDurations", 1, tracker.getTotalDurations());
67 assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1);
68 assertEquals("getLongestDuration", 10000, tracker.getLongestDuration());
69 assertEquals("getShortestDuration", 10000, tracker.getShortestDuration());
72 private static void verifyDisplayableString(final String name, final String actual, final String expPrefix) {
73 assertTrue(name + " starts with " + expPrefix + ". Actual: " + actual,
74 actual.startsWith(expPrefix));