public void TestStartStop() { // case 1: only start 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.isStart = true; task.isStop = false; runtime.taskList.Add(task); runtime.CalculateStartStop(Database.DECADE_MARKHAM); Assert.AreEqual(0.0, runtime.runTime); Assert.AreEqual(1, runtime.startTime.Year); Assert.AreEqual(1, runtime.stopTime.Year); Assert.AreEqual(0, runtime.taskList.Count); // case 2: only stop 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.isStart = false; task.isStop = true; task.station = "NP"; task.taskTime = new DateTime(2013, 9, 3, 21, 45, 0); runtime.taskList.Add(task); runtime.CalculateStartStop(Database.DECADE_MARKHAM); Assert.IsTrue(Math.Abs(runtime.runTime - 2.76583) < 0.001); Assert.AreEqual(new DateTime(2013, 9, 3, 18, 59, 3), runtime.startTime); Assert.AreEqual(task.taskTime, runtime.stopTime); // case 3: start start stop start runtime.taskList.Clear(); runtime.runTime = 0.0; task = new Task(); task.isStart = true; task.isStop = false; task.taskTime = new DateTime(2013, 9, 3, 21, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = true; task.isStop = false; task.taskTime = new DateTime(2013, 9, 3, 22, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = false; task.isStop = true; task.taskTime = new DateTime(2013, 9, 3, 23, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = true; task.isStop = false; task.taskTime = new DateTime(2013, 9, 4, 0, 45, 0); runtime.taskList.Add(task); runtime.CalculateStartStop(Database.DECADE_MARKHAM); Assert.IsTrue(Math.Abs(runtime.runTime - 2.0) < 0.001); Assert.AreEqual(new DateTime(2013, 9, 3, 21, 45, 0), runtime.startTime); Assert.AreEqual(new DateTime(2013, 9, 3, 23, 45, 0), runtime.stopTime); Assert.AreEqual(3, runtime.taskList.Count); // case 4: start stop start stop runtime.taskList.Clear(); runtime.runTime = 0.0; task = new Task(); task.isStart = true; task.isStop = false; task.taskTime = new DateTime(2013, 9, 3, 21, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = false; task.isStop = true; task.taskTime = new DateTime(2013, 9, 3, 22, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = true; task.isStop = false; task.taskTime = new DateTime(2013, 9, 3, 23, 45, 0); runtime.taskList.Add(task); runtime.CalculateStartStop(Database.DECADE_MARKHAM); Assert.IsTrue(Math.Abs(runtime.runTime - 1.0) < 0.001); Assert.AreEqual(new DateTime(2013, 9, 3, 21, 45, 0), runtime.startTime); Assert.AreEqual(new DateTime(2013, 9, 3, 22, 45, 0), runtime.stopTime); Assert.AreEqual(2, runtime.taskList.Count); Assert.AreEqual(new DateTime(2013, 9, 3, 21, 45, 0), runtime.taskList[0].taskTime); Assert.AreEqual(new DateTime(2013, 9, 3, 22, 45, 0), runtime.taskList[1].taskTime); // case 5: start stop stop runtime.taskList.Clear(); runtime.runTime = 0.0; task = new Task(); task.isStart = true; task.isStop = false; task.taskTime = new DateTime(2013, 9, 3, 21, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = false; task.isStop = true; task.taskTime = new DateTime(2013, 9, 3, 22, 45, 0); runtime.taskList.Add(task); task = new Task(); task.isStart = false; task.isStop = true; task.taskTime = new DateTime(2013, 9, 3, 23, 45, 0); runtime.taskList.Add(task); runtime.CalculateStartStop(Database.DECADE_MARKHAM); Assert.IsTrue(Math.Abs(runtime.runTime - 2.0) < 0.001); Assert.AreEqual(new DateTime(2013, 9, 3, 21, 45, 0), runtime.startTime); Assert.AreEqual(new DateTime(2013, 9, 3, 23, 45, 0), runtime.stopTime); Assert.AreEqual(3, runtime.taskList.Count); }