public void ManyToOneDependencyComplex_ReturnSequenceList() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => b => a c => a d => j e => b f => c g => c h => d i => f j => a"; var result = tasks.Sequence(strTasks); Assert.AreEqual(10, result.Count); Assert.AreEqual("a", result[0]); Assert.AreEqual("b", result[1]); Assert.AreEqual("e", result[2]); Assert.AreEqual("c", result[3]); Assert.AreEqual("g", result[4]); Assert.AreEqual("j", result[5]); Assert.AreEqual("d", result[6]); Assert.AreEqual("h", result[7]); Assert.AreEqual("f", result[8]); Assert.AreEqual("i", result[9]); }
public void EmptyCase_ReturnEmptyList() { TasksPlanner tasks = new TasksPlanner(); var result = tasks.Sequence(string.Empty); Assert.AreEqual(0, result.Count); }
public void SimpleCase_ReturnSequenceList() { TasksPlanner tasks = new TasksPlanner(); var result = tasks.Sequence("a =>"); Assert.AreEqual(1, result.Count); Assert.AreEqual("a", result[0]); }
public void SelfDependency_ReturnError() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => b => c => c"; tasks.Sequence(strTasks); }
public void OneToManyCircularDependency_ReturnError() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => d a => c b => a c => b d => c"; tasks.Sequence(strTasks); }
public void CircularDependency_ReturnError() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => b => c c => f d => a e => f => b"; tasks.Sequence(strTasks); }
public void DependentCase_ReturnSequenceList() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => b => c c =>"; var result = tasks.Sequence(strTasks); Assert.AreEqual(3, result.Count); Assert.AreEqual("a", result[0]); Assert.AreEqual("c", result[1]); Assert.AreEqual("b", result[2]); }
public void OneToManyDependencyComplex_ReturnSequenceList() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => d a => b a => c b => c => b d =>"; var result = tasks.Sequence(strTasks); Assert.AreEqual(4, result.Count); Assert.AreEqual("d", result[0]); Assert.AreEqual("b", result[1]); Assert.AreEqual("c", result[2]); Assert.AreEqual("a", result[3]); }
public void ManyToOneDependencySimple_ReturnSequenceList() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => b => a c => a d => a e => a f => a"; var result = tasks.Sequence(strTasks); Assert.AreEqual(6, result.Count); Assert.AreEqual("a", result[0]); Assert.AreEqual("b", result[1]); Assert.AreEqual("c", result[2]); Assert.AreEqual("d", result[3]); Assert.AreEqual("e", result[4]); Assert.AreEqual("f", result[5]); }
public void DependentCase2_ReturnSequenceList() { TasksPlanner tasks = new TasksPlanner(); string strTasks = @"a => b => c c => f d => a e => b f =>"; var result = tasks.Sequence(strTasks); Assert.AreEqual(6, result.Count); Assert.AreEqual("a", result[0]); Assert.AreEqual("d", result[1]); Assert.AreEqual("f", result[2]); Assert.AreEqual("c", result[3]); Assert.AreEqual("b", result[4]); Assert.AreEqual("e", result[5]); }
static void Main(string[] args) { List <MyTaskClass> tasks = new List <MyTaskClass>(); TasksPlanner TPlanner = new TasksPlanner(tasks); TasksSaver ts = new TasksSaver(TPlanner.Tasks, "planner.dat"); char menuOption = ' '; while (menuOption != '0') { Console.Clear(); Console.WriteLine("Выберете пункт меню:"); Console.WriteLine("1. Просмотр списка задач"); Console.WriteLine("2. Добавление задачи"); Console.WriteLine("3. Удаление задачи"); Console.WriteLine("4. Редактирование задачи"); Console.WriteLine("5. Сохранение списка задач"); Console.WriteLine("6. Загрузка списка задач из файла"); Console.WriteLine("0. Выход"); try { menuOption = Convert.ToChar(Console.ReadLine()); } catch (System.FormatException e) { if (e.Source != null) { Console.WriteLine("Выберете пункт меню с 0 по 6"); } } switch (menuOption) { case '1': Console.Clear(); bool taskIsPresent = false; foreach (MyTaskClass task in TPlanner.Tasks) { Console.WriteLine("*************************"); Console.WriteLine(task); taskIsPresent = true; } if (taskIsPresent == false) { Console.WriteLine("У вас еще нет задач"); } Console.ReadLine(); break; case '2': Console.Clear(); TPlanner.AddTask(); break; case '3': Console.Clear(); Console.WriteLine("Введите номер удаляемой задачи"); int removeNumber = Convert.ToInt32(Console.ReadLine()); TPlanner.DeleteTask(removeNumber); break; case '4': Console.Clear(); Console.WriteLine("Введите номер задачи для редактирования"); int editNumber = Convert.ToInt32(Console.ReadLine()); TPlanner.SearchAndEditTask(editNumber); break; case '5': Console.Clear(); ts.Tasks = TPlanner.Tasks; ts.SavingToFile(); break; case '6': Console.Clear(); TPlanner.Tasks = ts.DownloadFromFile(); TPlanner.Tasks = TPlanner.Tasks.Where(x => x.CompletionDateTime > DateTime.Now).ToList(); try { TPlanner.lastId = TPlanner.Tasks.Last().Id; } catch (System.InvalidOperationException) { TPlanner.lastId = 0; } break; } if (menuOption == '0') { Console.Clear(); Console.Write("Сохранить изменения перед выходом?(Д/Н)"); char saveOption = Convert.ToChar(Console.ReadLine()); if (saveOption == 'Д') { ts.Tasks = TPlanner.Tasks; ts.SavingToFile(); } } } }