public void TestDeleteLastTaskIfStart()
        {
            // case 1: only start
            runtime.taskList.Clear();
            Task task = new Task();

            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            runtime.DeleteLastTaskIfStart();
            Assert.AreEqual(0, runtime.taskList.Count);
            // case 2: stop start start
            runtime.taskList.Clear();
            task         = new Task();
            task.isStart = false;
            task.isStop  = true;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            runtime.DeleteLastTaskIfStart();
            Assert.AreEqual(1, runtime.taskList.Count);
            Assert.IsTrue(runtime.taskList[0].isStop);
            // case 3: start start stop
            runtime.taskList.Clear();
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = false;
            task.isStop  = true;
            runtime.taskList.Add(task);
            runtime.DeleteLastTaskIfStart();
            Assert.AreEqual(3, runtime.taskList.Count);
            Assert.IsTrue(runtime.taskList[0].isStart);
            Assert.IsTrue(runtime.taskList[1].isStart);
            Assert.IsTrue(runtime.taskList[2].isStop);
            // case 4: start start stop start
            runtime.taskList.Clear();
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = false;
            task.isStop  = true;
            runtime.taskList.Add(task);
            task         = new Task();
            task.isStart = true;
            task.isStop  = false;
            runtime.taskList.Add(task);
            runtime.DeleteLastTaskIfStart();
            Assert.AreEqual(3, runtime.taskList.Count);
            Assert.IsTrue(runtime.taskList[0].isStart);
            Assert.IsTrue(runtime.taskList[1].isStart);
            Assert.IsTrue(runtime.taskList[2].isStop);
        }