Пример #1
0
        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);
        }