Migrate common/util to JUnit5
[yangtools.git] / common / util / src / test / java / org / opendaylight / yangtools / util / DurationStatisticsTrackerTest.java
1 /*
2  * Copyright (c) 2014 Brocade Communications Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.util;
9
10 import static org.hamcrest.CoreMatchers.startsWith;
11 import static org.hamcrest.MatcherAssert.assertThat;
12 import static org.junit.jupiter.api.Assertions.assertEquals;
13
14 import org.junit.jupiter.api.Test;
15
16 /**
17  * Unit tests for DurationStatsTracker.
18  *
19  * @author Thomas Pantelis
20  */
21 class DurationStatisticsTrackerTest {
22     @Test
23     void test() {
24         final var tracker = DurationStatisticsTracker.createConcurrent();
25
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");
31
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");
37
38         verifyDisplayableString("getDisplayableAverageDuration",
39                 tracker.getDisplayableAverageDuration(), "20.0");
40         verifyDisplayableString("getDisplayableLongestDuration",
41                 tracker.getDisplayableLongestDuration(), "30.0");
42         verifyDisplayableString("getDisplayableShortestDuration",
43                 tracker.getDisplayableShortestDuration(), "10.0");
44
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");
50
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");
56
57         tracker.reset();
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");
62
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");
68     }
69
70     private static void verifyDisplayableString(final String name, final String actual, final String expPrefix) {
71         assertThat(actual, startsWith(expPrefix));
72     }
73 }