From: <am...@us...> - 2006-03-19 23:14:12
|
Revision: 96 Author: amooy Date: 2006-03-19 15:14:00 -0800 (Sun, 19 Mar 2006) ViewCVS: http://svn.sourceforge.net/sensor/?rev=96&view=rev Log Message: ----------- Reimplemented the reset() functionality. The runtime now has a reset() method and statistics do not. Resetting a TimerData now gets rid of all child instances. Performance improvements to TimerData implementation by moving calculation of standard deviation and average to the refreshStatistics method. Renamed test classes to be consistent with the classes they test Misc cleanups Added Paths: ----------- trunk/sensor-core/test/java/net/sf/sensor/timer/DefaultTimerStatisticsTest.java Removed Paths: ------------- trunk/sensor-core/test/java/net/sf/sensor/timer/TimerStatisticsTest.java Added: trunk/sensor-core/test/java/net/sf/sensor/timer/DefaultTimerStatisticsTest.java =================================================================== --- trunk/sensor-core/test/java/net/sf/sensor/timer/DefaultTimerStatisticsTest.java (rev 0) +++ trunk/sensor-core/test/java/net/sf/sensor/timer/DefaultTimerStatisticsTest.java 2006-03-19 23:14:00 UTC (rev 96) @@ -0,0 +1,203 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.sf.sensor.timer; + +import java.util.Collections; + +import junit.framework.TestCase; + +/** + * + * + * @author Age Mooy + */ +public class DefaultTimerStatisticsTest extends TestCase { + + /** + * Test method for 'net.sf.sensor.TimerStatistics.BasicTimerStatistics(TimerData)' + */ + public void testConstructionBasicPropertiesAndRefresh() { + TimerData timerData = new TimerData("A"); + TimerStatistics statistics = timerData.getStatistics(); + + assertNotNull(statistics); + assertFalse(statistics.hasChildren()); + assertEquals(0, statistics.getChildren().size()); + assertEquals(timerData.toString(), statistics.toString()); + + assertEquals(0L, statistics.getNumberOfHits()); + assertEquals(0L, statistics.getTotalTime()); + assertEquals(0L, statistics.getAverageTime()); + assertEquals(0L, statistics.getMinimumTime()); + assertEquals(0L, statistics.getMaximumTime()); + assertEquals(0L, statistics.getStandardDeviation()); + assertEquals(0L, statistics.getSumOfSquaresOfTimes()); + assertEquals(0L, statistics.getTimeOfFirstUpdate().getTime()); + assertEquals(0L, statistics.getTimeOfLastUpdate().getTime()); + + long timestampBeforeUpdate = System.currentTimeMillis(); + + timerData.updateFromTimer(10L); + + long timestampAfterUpdate = System.currentTimeMillis(); + + assertEquals(0L, statistics.getNumberOfHits()); + assertEquals(0L, statistics.getTotalTime()); + assertEquals(0L, statistics.getAverageTime()); + assertEquals(0L, statistics.getMinimumTime()); + assertEquals(0L, statistics.getMaximumTime()); + assertEquals(0L, statistics.getStandardDeviation()); + assertEquals(0L, statistics.getSumOfSquaresOfTimes()); + assertEquals(0L, statistics.getTimeOfFirstUpdate().getTime()); + assertEquals(0L, statistics.getTimeOfLastUpdate().getTime()); + + statistics.refresh(); + + assertEquals(1L, statistics.getNumberOfHits()); + assertEquals(10L, statistics.getTotalTime()); + assertEquals(10L, statistics.getAverageTime()); + assertEquals(10L, statistics.getMinimumTime()); + assertEquals(10L, statistics.getMaximumTime()); + assertEquals(0L, statistics.getStandardDeviation()); + assertEquals(100L, statistics.getSumOfSquaresOfTimes()); + + assertEquals(statistics.getTimeOfFirstUpdate(), statistics.getTimeOfLastUpdate()); + assertTrue(statistics.getTimeOfFirstUpdate().getTime() >= timestampBeforeUpdate); + assertTrue(statistics.getTimeOfFirstUpdate().getTime() <= timestampAfterUpdate); + +// statistics.reset(); +// +// assertEquals(0L, statistics.getNumberOfHits()); +// assertEquals(0L, statistics.getTotalTime()); +// assertEquals(0L, statistics.getAverageTime()); +// assertEquals(0L, statistics.getMinimumTime()); +// assertEquals(0L, statistics.getMaximumTime()); +// assertEquals(0L, statistics.getStandardDeviation()); +// assertEquals(0L, statistics.getSumOfSquaresOfTimes()); +// assertEquals(0L, statistics.getTimeOfFirstUpdate().getTime()); +// assertEquals(0L, statistics.getTimeOfLastUpdate().getTime()); + } + + /** + * Test method for 'net.sf.sensor.TimerStatistics.BasicTimerStatistics(TimerData)' + */ + public void testBasicHierarchy() { + TimerData timerDataA = new TimerData("A"); + TimerData timerDataB = timerDataA.getOrCreateChild("B"); + TimerData timerDataC = timerDataB.getOrCreateChild("C"); + TimerData timerDataD = timerDataB.getOrCreateChild("D"); + + DefaultTimerStatistics statisticsA = (DefaultTimerStatistics) timerDataA.getStatistics(); + + assertTrue(statisticsA.hasChildren()); + assertNotNull(statisticsA.getChildren()); + assertEquals(1, statisticsA.getChildren().size()); + + TimerStatistics statisticsB = (TimerStatistics) statisticsA.getChildren().get(0); + + assertSame(timerDataB.getStatistics(), statisticsB); + assertEquals("B", statisticsB.getId()); + + assertTrue(statisticsB.hasChildren()); + assertNotNull(statisticsB.getChildren()); + assertEquals(2, statisticsB.getChildren().size()); + + TimerStatistics statisticsC = (TimerStatistics) statisticsB.getChildren().get(0); + TimerStatistics statisticsD = (TimerStatistics) statisticsB.getChildren().get(1); + + assertFalse(statisticsC.hasChildren()); + assertFalse(statisticsD.hasChildren()); + + statisticsA.refreshFromData(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, null); + + assertNotNull(statisticsA); + assertFalse(statisticsA.hasChildren()); + assertEquals(0, statisticsA.getChildren().size()); + assertEquals(Collections.EMPTY_LIST, statisticsA.getChildren()); + } + + /** + * + */ + public void testHierarchicalRefresh() { + TimerData timerDataA = new TimerData("A"); + TimerData timerDataB = timerDataA.getOrCreateChild("B"); + + TimerStatistics statisticsA = timerDataA.getStatistics(); + TimerStatistics statisticsB = timerDataB.getStatistics(); + + timerDataA.updateFromTimer(1000L); + timerDataB.updateFromTimer(1000L); + + assertEquals(0L, statisticsA.getNumberOfHits()); + assertEquals(0L, statisticsA.getTotalTime()); + assertEquals(0L, statisticsA.getAverageTime()); + assertEquals(0L, statisticsA.getMinimumTime()); + assertEquals(0L, statisticsA.getMaximumTime()); + + assertEquals(0L, statisticsB.getNumberOfHits()); + assertEquals(0L, statisticsB.getTotalTime()); + assertEquals(0L, statisticsB.getAverageTime()); + assertEquals(0L, statisticsB.getMinimumTime()); + assertEquals(0L, statisticsB.getMaximumTime()); + + statisticsA.refresh(); + + assertEquals(1L, statisticsA.getNumberOfHits()); + assertEquals(1000L, statisticsA.getTotalTime()); + assertEquals(1000L, statisticsA.getAverageTime()); + assertEquals(1000L, statisticsA.getMinimumTime()); + assertEquals(1000L, statisticsA.getMaximumTime()); + + assertEquals(1L, statisticsB.getNumberOfHits()); + assertEquals(1000L, statisticsB.getTotalTime()); + assertEquals(1000L, statisticsB.getAverageTime()); + assertEquals(1000L, statisticsB.getMinimumTime()); + assertEquals(1000L, statisticsB.getMaximumTime()); + +// statisticsA.reset(); +// +// assertEquals(0L, statisticsA.getNumberOfHits()); +// assertEquals(0L, statisticsA.getTotalTime()); +// assertEquals(0L, statisticsA.getAverageTime()); +// assertEquals(0L, statisticsA.getMinimumTime()); +// assertEquals(0L, statisticsA.getMaximumTime()); +// +// assertEquals(0L, statisticsB.getNumberOfHits()); +// assertEquals(0L, statisticsB.getTotalTime()); +// assertEquals(0L, statisticsB.getAverageTime()); +// assertEquals(0L, statisticsB.getMinimumTime()); +// assertEquals(0L, statisticsB.getMaximumTime()); + } + + /** + * Test method for {@link TimerData#getTreePath()} + */ + public final void testGetTreePath() { + TimerData a = new TimerData("A"); + TimerData b = a.getOrCreateChild("B"); + TimerData c = b.getOrCreateChild("C"); + + DefaultTimerStatistics statisticsA = (DefaultTimerStatistics) a.getStatistics(); + DefaultTimerStatistics statisticsB = (DefaultTimerStatistics) b.getStatistics(); + DefaultTimerStatistics statisticsC = (DefaultTimerStatistics) c.getStatistics(); + + assertEquals("/A", statisticsA.getTreePath()); + assertEquals("/A/B", statisticsB.getTreePath()); + assertEquals("/A/B/C", statisticsC.getTreePath()); + } +} Deleted: trunk/sensor-core/test/java/net/sf/sensor/timer/TimerStatisticsTest.java =================================================================== --- trunk/sensor-core/test/java/net/sf/sensor/timer/TimerStatisticsTest.java 2006-03-19 23:08:44 UTC (rev 95) +++ trunk/sensor-core/test/java/net/sf/sensor/timer/TimerStatisticsTest.java 2006-03-19 23:14:00 UTC (rev 96) @@ -1,203 +0,0 @@ -/* - * Copyright 2005 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.sf.sensor.timer; - -import java.util.Collections; - -import junit.framework.TestCase; - -/** - * - * - * @author Age Mooy - */ -public class TimerStatisticsTest extends TestCase { - - /** - * Test method for 'net.sf.sensor.TimerStatistics.BasicTimerStatistics(TimerData)' - */ - public void testConstructionBasicPropertiesAndRefresh() { - TimerData timerData = new TimerData("A"); - TimerStatistics statistics = timerData.getStatistics(); - - assertNotNull(statistics); - assertFalse(statistics.hasChildren()); - assertEquals(0, statistics.getChildren().size()); - assertEquals(timerData.toString(), statistics.toString()); - - assertEquals(0L, statistics.getNumberOfHits()); - assertEquals(0L, statistics.getTotalTime()); - assertEquals(0L, statistics.getAverageTime()); - assertEquals(0L, statistics.getMinimumTime()); - assertEquals(0L, statistics.getMaximumTime()); - assertEquals(0L, statistics.getStandardDeviation()); - assertEquals(0L, statistics.getSumOfSquaresOfTimes()); - assertEquals(0L, statistics.getTimeOfFirstUpdate().getTime()); - assertEquals(0L, statistics.getTimeOfLastUpdate().getTime()); - - long timestampBeforeUpdate = System.currentTimeMillis(); - - timerData.updateFromTimer(10L); - - long timestampAfterUpdate = System.currentTimeMillis(); - - assertEquals(0L, statistics.getNumberOfHits()); - assertEquals(0L, statistics.getTotalTime()); - assertEquals(0L, statistics.getAverageTime()); - assertEquals(0L, statistics.getMinimumTime()); - assertEquals(0L, statistics.getMaximumTime()); - assertEquals(0L, statistics.getStandardDeviation()); - assertEquals(0L, statistics.getSumOfSquaresOfTimes()); - assertEquals(0L, statistics.getTimeOfFirstUpdate().getTime()); - assertEquals(0L, statistics.getTimeOfLastUpdate().getTime()); - - statistics.refresh(); - - assertEquals(1L, statistics.getNumberOfHits()); - assertEquals(10L, statistics.getTotalTime()); - assertEquals(10L, statistics.getAverageTime()); - assertEquals(10L, statistics.getMinimumTime()); - assertEquals(10L, statistics.getMaximumTime()); - assertEquals(0L, statistics.getStandardDeviation()); - assertEquals(100L, statistics.getSumOfSquaresOfTimes()); - - assertEquals(statistics.getTimeOfFirstUpdate(), statistics.getTimeOfLastUpdate()); - assertTrue(statistics.getTimeOfFirstUpdate().getTime() >= timestampBeforeUpdate); - assertTrue(statistics.getTimeOfFirstUpdate().getTime() <= timestampAfterUpdate); - - statistics.reset(); - - assertEquals(0L, statistics.getNumberOfHits()); - assertEquals(0L, statistics.getTotalTime()); - assertEquals(0L, statistics.getAverageTime()); - assertEquals(0L, statistics.getMinimumTime()); - assertEquals(0L, statistics.getMaximumTime()); - assertEquals(0L, statistics.getStandardDeviation()); - assertEquals(0L, statistics.getSumOfSquaresOfTimes()); - assertEquals(0L, statistics.getTimeOfFirstUpdate().getTime()); - assertEquals(0L, statistics.getTimeOfLastUpdate().getTime()); - } - - /** - * Test method for 'net.sf.sensor.TimerStatistics.BasicTimerStatistics(TimerData)' - */ - public void testBasicHierarchy() { - TimerData timerDataA = new TimerData("A"); - TimerData timerDataB = timerDataA.getOrCreateChild("B"); - TimerData timerDataC = timerDataB.getOrCreateChild("C"); - TimerData timerDataD = timerDataB.getOrCreateChild("D"); - - DefaultTimerStatistics statisticsA = (DefaultTimerStatistics) timerDataA.getStatistics(); - - assertTrue(statisticsA.hasChildren()); - assertNotNull(statisticsA.getChildren()); - assertEquals(1, statisticsA.getChildren().size()); - - TimerStatistics statisticsB = (TimerStatistics) statisticsA.getChildren().get(0); - - assertSame(timerDataB.getStatistics(), statisticsB); - assertEquals("B", statisticsB.getId()); - - assertTrue(statisticsB.hasChildren()); - assertNotNull(statisticsB.getChildren()); - assertEquals(2, statisticsB.getChildren().size()); - - TimerStatistics statisticsC = (TimerStatistics) statisticsB.getChildren().get(0); - TimerStatistics statisticsD = (TimerStatistics) statisticsB.getChildren().get(1); - - assertFalse(statisticsC.hasChildren()); - assertFalse(statisticsD.hasChildren()); - - statisticsA.refreshFromData(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, null); - - assertNotNull(statisticsA); - assertFalse(statisticsA.hasChildren()); - assertEquals(0, statisticsA.getChildren().size()); - assertEquals(Collections.EMPTY_LIST, statisticsA.getChildren()); - } - - /** - * - */ - public void testHierarchicalRefresh() { - TimerData timerDataA = new TimerData("A"); - TimerData timerDataB = timerDataA.getOrCreateChild("B"); - - TimerStatistics statisticsA = timerDataA.getStatistics(); - TimerStatistics statisticsB = timerDataB.getStatistics(); - - timerDataA.updateFromTimer(1000L); - timerDataB.updateFromTimer(1000L); - - assertEquals(0L, statisticsA.getNumberOfHits()); - assertEquals(0L, statisticsA.getTotalTime()); - assertEquals(0L, statisticsA.getAverageTime()); - assertEquals(0L, statisticsA.getMinimumTime()); - assertEquals(0L, statisticsA.getMaximumTime()); - - assertEquals(0L, statisticsB.getNumberOfHits()); - assertEquals(0L, statisticsB.getTotalTime()); - assertEquals(0L, statisticsB.getAverageTime()); - assertEquals(0L, statisticsB.getMinimumTime()); - assertEquals(0L, statisticsB.getMaximumTime()); - - statisticsA.refresh(); - - assertEquals(1L, statisticsA.getNumberOfHits()); - assertEquals(1000L, statisticsA.getTotalTime()); - assertEquals(1000L, statisticsA.getAverageTime()); - assertEquals(1000L, statisticsA.getMinimumTime()); - assertEquals(1000L, statisticsA.getMaximumTime()); - - assertEquals(1L, statisticsB.getNumberOfHits()); - assertEquals(1000L, statisticsB.getTotalTime()); - assertEquals(1000L, statisticsB.getAverageTime()); - assertEquals(1000L, statisticsB.getMinimumTime()); - assertEquals(1000L, statisticsB.getMaximumTime()); - - statisticsA.reset(); - - assertEquals(0L, statisticsA.getNumberOfHits()); - assertEquals(0L, statisticsA.getTotalTime()); - assertEquals(0L, statisticsA.getAverageTime()); - assertEquals(0L, statisticsA.getMinimumTime()); - assertEquals(0L, statisticsA.getMaximumTime()); - - assertEquals(0L, statisticsB.getNumberOfHits()); - assertEquals(0L, statisticsB.getTotalTime()); - assertEquals(0L, statisticsB.getAverageTime()); - assertEquals(0L, statisticsB.getMinimumTime()); - assertEquals(0L, statisticsB.getMaximumTime()); - } - - /** - * Test method for {@link TimerData#getTreePath()} - */ - public final void testGetTreePath() { - TimerData a = new TimerData("A"); - TimerData b = a.getOrCreateChild("B"); - TimerData c = b.getOrCreateChild("C"); - - DefaultTimerStatistics statisticsA = (DefaultTimerStatistics) a.getStatistics(); - DefaultTimerStatistics statisticsB = (DefaultTimerStatistics) b.getStatistics(); - DefaultTimerStatistics statisticsC = (DefaultTimerStatistics) c.getStatistics(); - - assertEquals("/A", statisticsA.getTreePath()); - assertEquals("/A/B", statisticsB.getTreePath()); - assertEquals("/A/B/C", statisticsC.getTreePath()); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |