/* * Copyright (c) 2014 Brocade Communications Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.yangtools.util; import static org.junit.Assert.assertEquals; import org.junit.Test; /** * Unit tests for DurationStatsTracker. * * @author Thomas Pantelis */ public class DurationStatisticsTrackerTest { @Test public void test() { DurationStatisticsTracker tracker = DurationStatisticsTracker.createConcurrent(); tracker.addDuration(10000); assertEquals("getTotalDurations", 1, tracker.getTotalDurations()); assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1); assertEquals("getLongestDuration", 10000, tracker.getLongestDuration()); assertEquals("getShortestDuration", 10000, tracker.getShortestDuration()); tracker.addDuration(30000); assertEquals("getTotalDurations", 2, tracker.getTotalDurations()); assertEquals("getAverageDuration", 20000.0, tracker.getAverageDuration(), 0.1); assertEquals("getLongestDuration", 30000, tracker.getLongestDuration()); assertEquals("getShortestDuration", 10000, tracker.getShortestDuration()); verifyDisplayableString("getDisplayableAverageDuration", tracker.getDisplayableAverageDuration(), "20.0"); verifyDisplayableString("getDisplayableLongestDuration", tracker.getDisplayableLongestDuration(), "30.0"); verifyDisplayableString("getDisplayableShortestDuration", tracker.getDisplayableShortestDuration(), "10.0"); tracker.addDuration(10000); assertEquals("getTotalDurations", 3, tracker.getTotalDurations()); assertEquals("getAverageDuration", 16666.0, tracker.getAverageDuration(), 1.0); assertEquals("getLongestDuration", 30000, tracker.getLongestDuration()); assertEquals("getShortestDuration", 10000, tracker.getShortestDuration()); tracker.addDuration(5000); assertEquals("getTotalDurations", 4, tracker.getTotalDurations()); assertEquals("getAverageDuration", 13750.0, tracker.getAverageDuration(), 1.0); assertEquals("getLongestDuration", 30000, tracker.getLongestDuration()); assertEquals("getShortestDuration", 5000, tracker.getShortestDuration()); tracker.reset(); assertEquals("getTotalDurations", 0, tracker.getTotalDurations()); assertEquals("getAverageDuration", 0.0, tracker.getAverageDuration(), 0.1); assertEquals("getLongestDuration", 0, tracker.getLongestDuration()); assertEquals("getShortestDuration", 0, tracker.getShortestDuration()); tracker.addDuration(10000); assertEquals("getTotalDurations", 1, tracker.getTotalDurations()); assertEquals("getAverageDuration", 10000.0, tracker.getAverageDuration(), 0.1); assertEquals("getLongestDuration", 10000, tracker.getLongestDuration()); assertEquals("getShortestDuration", 10000, tracker.getShortestDuration()); } private static void verifyDisplayableString(final String name, final String actual, final String expPrefix) { assertEquals(name + " starts with " + expPrefix + ". Actual: " + actual, true, actual.startsWith(expPrefix)); } }