public void TestGetStandardCost()
        {
            // case 1: only one task
            ResetRuntime();
            runtime.taskList.Clear();
            runtime.runTime = 0.0;
            Assert.AreEqual(0.0, runtime.runTime);
            Assert.AreEqual(1, runtime.startTime.Year);
            Assert.AreEqual(1, runtime.stopTime.Year);
            Task task = new Task();

            task.taskTime = new DateTime(2013, 9, 3, 1, 45, 0);
            runtime.taskList.Add(task);
            runtime.GetStandardCost();
            Assert.AreEqual(runtime.runTime, runtime.stdTime);
            Assert.AreEqual(new DateTime(2013, 9, 3, 1, 45, 0), runtime.startTime);
            Assert.AreEqual(1, runtime.stopTime.Year);
            // case 2: duplicated tasks within std run time
            ResetRuntime();
            runtime.taskList.Clear();
            runtime.runTime = 0.0;
            Assert.AreEqual(0.0, runtime.runTime);
            Assert.AreEqual(1, runtime.startTime.Year);
            Assert.AreEqual(1, runtime.stopTime.Year);
            task          = new Task();
            task.taskTime = new DateTime(2013, 9, 3, 1, 45, 0);
            runtime.taskList.Add(task);
            task          = new Task();
            task.taskTime = new DateTime(2013, 9, 3, 1, 45, 1);
            runtime.taskList.Add(task);
            task          = new Task();
            task.taskTime = new DateTime(2013, 9, 3, 1, 45, 2);
            runtime.taskList.Add(task);
            runtime.GetStandardCost();
            Assert.AreEqual(runtime.runTime, runtime.stdTime);
            Assert.AreEqual(new DateTime(2013, 9, 3, 1, 45, 0), runtime.startTime);
            Assert.AreEqual(1, runtime.stopTime.Year);
            // case 3: duplicated tasks
            ResetRuntime();
            runtime.taskList.Clear();
            runtime.runTime = 0.0;
            Assert.AreEqual(0.0, runtime.runTime);
            Assert.AreEqual(1, runtime.startTime.Year);
            Assert.AreEqual(1, runtime.stopTime.Year);
            task          = new Task();
            task.taskTime = new DateTime(2013, 9, 3, 1, 45, 0);
            runtime.taskList.Add(task);
            task          = new Task();
            task.taskTime = new DateTime(2013, 9, 3, 1, 45, 1);
            runtime.taskList.Add(task);
            task          = new Task();
            task.taskTime = new DateTime(2013, 9, 3, 2, 45, 0);
            runtime.taskList.Add(task);
            runtime.GetStandardCost();
            Assert.AreEqual(runtime.runTime, runtime.stdTime * 2.0);
            Assert.AreEqual(new DateTime(2013, 9, 3, 1, 45, 0), runtime.startTime);
            Assert.AreEqual(1, runtime.stopTime.Year);
        }