private static void PrintResultToConsole(AlgorithmResult algorithmResult) { var separator = new string('-', 80); Console.WriteLine(separator); Console.WriteLine($"Name:\t\t{algorithmResult.Name}"); Console.WriteLine($"Penalty:\t{algorithmResult.Penalty}"); Console.WriteLine($"Feasibility:\t{(algorithmResult.Feasible ? "feasible" : "INFEASIBLE")}"); if (algorithmResult.Duration != default) { Console.WriteLine($"Duration:\t{algorithmResult.Duration}"); } Console.WriteLine(); algorithmResult.Result.PrintToConsole(); Console.WriteLine(); if (algorithmResult.FeasibilityMessages?.Count > 0) { Console.WriteLine(); foreach (var message in algorithmResult.FeasibilityMessages) { Console.WriteLine(message); } } Console.WriteLine(separator); }
private static void SaveAlgorithmResult(AlgorithmResult algorithmResult) { var originalName = algorithmResult.Name; algorithmResult.Name = "Baseline"; BaselineStore.Save(InstanceNumber, algorithmResult); algorithmResult.Name = originalName; Console.WriteLine("Baseline saved"); }
public static void Save(int instanceNumber, AlgorithmResult algorithmResult) { EnsureBaselineDirExists(); var filePath = Path.Combine(_baselinesDirPath, string.Format(FileNameTemplate, instanceNumber)); using (var stream = File.Create(filePath)) using (var writer = new StreamWriter(stream)) { _serializer.Serialize(writer, algorithmResult); } }
private static void DisplayBaseline(AlgorithmResult algorithmResult) { if (!_displayingBase) { var baseline = BaselineStore.Get(InstanceNumber); Console.Clear(); PrintResultToConsole(baseline); } else { Console.Clear(); PrintResultToConsole(algorithmResult); } _displayingBase = !_displayingBase; }
private static void OnKeyDown(AlgorithmResult algorithmResult) { var key = Console.ReadKey(); switch (key.Key) { case ConsoleKey.B: DisplayBaseline(algorithmResult); OnKeyDown(algorithmResult); break; case ConsoleKey.S: SaveAlgorithmResult(algorithmResult); OnKeyDown(algorithmResult); break; default: break; } }