private void RenderAfterFinish(TaskManager tm, EventMonitor <TaskManager> tmMon, TaskGraphMonitor tgMon, string fileName) { Console.WriteLine("Rendering the task graph processing animation"); TaskGraphRenderer.RenderTaskGraphAnimation(tgMon.Tasks, tgMon, System.IO.Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), fileName + ".avi"), maxWidth: 1024, format: TaskGraphRenderer.VideoFormat.AviMjpeg, fps: 3.333f); tgMon.AssertTaskEventsRespectDependencies(); }
private void GeneralTasksAfterFinish(TaskManager tm, EventMonitor <TaskManager> tmMon, TaskGraphMonitor tgMon) { var queueTags = tm.WorkingLines.Select(wl => wl.QueueTag).ToArray(); AssertState(tm, isDisposed: false, isRunning: false); tmMon.History.AssertSender(tm); tmMon.FilterHistory(ByPropertyChanges <bool>(nameof(TaskManager.IsRunning))) .AssertPropertyValues(true, false); var labels = tgMon.Tasks.Select(t => t.Label).ToList(); var beginLabels = tmMon.FilterHistory(ByEventName(nameof(TaskManager.TaskBegin))) .Select(e => ((TestTask)((TaskEventArgs)e.EventArgs).Task).Label).ToList(); var unstartedLabels = labels.Except(beginLabels).ToList(); if (unstartedLabels.Count > 0) { Debug.WriteLine("Task without begin event: " + string.Join(", ", unstartedLabels)); Assert.Fail("The following tasks did not fire a begin event: " + string.Join(", ", unstartedLabels)); } var endLabels = tmMon.FilterHistory(ByEventName(nameof(TaskManager.TaskEnd))) .Select(e => ((TestTask)((TaskEventArgs)e.EventArgs).Task).Label).ToList(); var unfinishedLabels = labels.Except(endLabels).ToList(); if (unfinishedLabels.Count > 0) { Debug.WriteLine("Task without end event: " + string.Join(", ", unfinishedLabels)); Assert.Fail("The following tasks did not fire an end event: " + string.Join(", ", unfinishedLabels)); } foreach (var taskMon in tgMon.TaskMonitors) { taskMon.History.AssertSender(taskMon.Target); taskMon.FilterHistory(ByPropertyChanges <TaskState>(nameof(ITask.State))) .AssertPropertyValues( TaskState.InProgress, TaskState.CleaningUp, TaskState.Succeeded); } tgMon.AssertTaskEventsRespectDependencies(); }