// Copyright (c) 2006 Dustin Sallings <dustin@spy.net> package net.spy.util; import junit.framework.TestCase; public class ProgressStatsTest extends TestCase { private TimeKeeper tk=null; @Override protected void setUp() { tk=new TimeKeeper(); } public void testSimple() throws Exception { tk.t=1146460996000L; ProgressStats tps=new TestProgressStats(5, tk); String[] msgs={ "4 remaining. Avg=15s, Estimate=60s (Sun Apr30 22:24:47)", "3 remaining. Avg=20s, Estimate=60s (Sun Apr30 22:25:17)", "2 remaining. Avg=22.5s, Estimate=45s (Sun Apr30 22:25:32)", "1 remaining. Avg=24s, Estimate=24s (Sun Apr30 22:25:41)", "0 remaining. Avg=25s, Estimate=0s (Sun Apr30 22:25:47)", }; tps.start(); tk.t+=30000; tps.stop(); tk.t+=1190; assertEquals(msgs[0], tps.toString()); assertEquals(60.0d, tps.getEstimatedTimeRemaining()); assertEquals(15.0d, tps.getRunningAverage()); assertEquals(30.0d, tps.getOverallAverage()); assertEquals(30000L, tps.getLastProcessTime()); for(int i=1; i<5; i++) { tps.start(); tk.t+=30000; tps.stop(); tk.t+=138; assertEquals(msgs[i], tps.toString()); } } static class TestProgressStats extends ProgressStats { private TimeKeeper tk=null; public TestProgressStats(int size, TimeKeeper t) { super(size); tk=t; } @Override protected long getTime() { return tk.t; } } static class TimeKeeper { long t=0; } }