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
8 package org.opendaylight.yangtools.util;
10 import static org.hamcrest.CoreMatchers.startsWith;
11 import static org.hamcrest.MatcherAssert.assertThat;
12 import static org.junit.jupiter.api.Assertions.assertEquals;
14 import org.junit.jupiter.api.Test;
17 * Unit tests for DurationStatsTracker.
19 * @author Thomas Pantelis
21 class DurationStatisticsTrackerTest {
24 final var tracker = DurationStatisticsTracker.createConcurrent();
26 tracker.addDuration(10000);
27 assertEquals(1, tracker.getTotalDurations(), "getTotalDurations");
28 assertEquals(10000.0, tracker.getAverageDuration(), 0.1, "getAverageDuration");
29 assertEquals(10000, tracker.getLongestDuration(), "getLongestDuration");
30 assertEquals(10000, tracker.getShortestDuration(), "getShortestDuration");
32 tracker.addDuration(30000);
33 assertEquals(2, tracker.getTotalDurations(), "getTotalDurations");
34 assertEquals(20000.0, tracker.getAverageDuration(), 0.1, "getAverageDuration");
35 assertEquals(30000, tracker.getLongestDuration(), "getLongestDuration");
36 assertEquals(10000, tracker.getShortestDuration(), "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(3, tracker.getTotalDurations(), "getTotalDurations");
47 assertEquals(16666.0, tracker.getAverageDuration(), 1.0, "getAverageDuration");
48 assertEquals(30000, tracker.getLongestDuration(), "getLongestDuration");
49 assertEquals(10000, tracker.getShortestDuration(), "getShortestDuration");
51 tracker.addDuration(5000);
52 assertEquals(4, tracker.getTotalDurations(), "getTotalDurations");
53 assertEquals(13750.0, tracker.getAverageDuration(), 1.0, "getAverageDuration");
54 assertEquals(30000, tracker.getLongestDuration(), "getLongestDuration");
55 assertEquals(5000, tracker.getShortestDuration(), "getShortestDuration");
58 assertEquals(0, tracker.getTotalDurations(), "getTotalDurations");
59 assertEquals(0.0, tracker.getAverageDuration(), 0.1, "getAverageDuration");
60 assertEquals(0, tracker.getLongestDuration(), "getLongestDuration");
61 assertEquals(0, tracker.getShortestDuration(), "getShortestDuration");
63 tracker.addDuration(10000);
64 assertEquals(1, tracker.getTotalDurations(), "getTotalDurations");
65 assertEquals(10000.0, tracker.getAverageDuration(), 0.1, "getAverageDuration");
66 assertEquals(10000, tracker.getLongestDuration(), "getLongestDuration");
67 assertEquals(10000, tracker.getShortestDuration(), "getShortestDuration");
70 private static void verifyDisplayableString(final String name, final String actual, final String expPrefix) {
71 assertThat(actual, startsWith(expPrefix));