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");
        }
Beispiel #3
0
        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;
            }
        }