public void Day9_Part1() { string decompressed = new DataDecompressor().Decompress(Utils.ReadLines("day9_data.txt").First()); Assert.That(decompressed.Length, Is.EqualTo(110346)); }
public void Day9_Part2() { long length = new DataDecompressor().FullyDecompressedLength(Utils.ReadLines("day9_data.txt").First()); Assert.That(length, Is.EqualTo(10774309173)); }
static void Main(string[] args) { bool result; Options.Options options = new Options.Options(); Console.WriteLine(options.GetUsage()); do { result = false; try { // если запускаем .exe, а не из коммандной строки if (args == null || args.Length == 0) { string program = Path.GetFileNameWithoutExtension(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName).Split('.')[0]; //получаем имя программы Console.Write("\nВведите команду: "); args = Regex.Split(Console.ReadLine(), @"\s+"); if (args[0].ToLower() == program.ToLower()) { string[] arguments = new string[args.Length - 1]; Array.Copy(args, 1, arguments, 0, arguments.Length); // копируем аргументы командной строки if (CommandLine.Parser.Default.ParseArguments(arguments, options)) { OptionsModel model = new OptionsModel(options); if (model.IsValid()) { if (model.CommandName == "compress") { DataCompressor compressor = new DataCompressor(model.InputPath, model.OutputPath); result = compressor.RunArchive(); } else { DataDecompressor decompressor = new DataDecompressor(model.InputPath, model.OutputPath); result = decompressor.RunUnarchive(); } } else { Console.WriteLine("Входные параметры не действительны! Попробуйте ввести команду заново: "); } } } } else { if (CommandLine.Parser.Default.ParseArguments(args, options)) { OptionsModel model = new OptionsModel(options); if (model.IsValid()) { if (model.CommandName == "compress") { DataCompressor compressor = new DataCompressor(model.InputPath, model.OutputPath); result = compressor.RunArchive(); } else { DataDecompressor decompressor = new DataDecompressor(model.InputPath, model.OutputPath); result = decompressor.RunUnarchive(); } } else { Console.WriteLine("Входные параметры не действительны! Попробуйте ввести команду заново: "); } } } } catch (ArgumentException) { Console.WriteLine("Один или несколько входных параметров не действительны: "); } finally { if (result == true) { Console.WriteLine("Операция успешно выполнена!"); } else { Console.WriteLine("Операция не выполнена"); } options = new Options.Options(); args = null; Console.WriteLine("Нажмите 'Esc' для выхода или любую клавишу для продолжения... : "); } }while (Console.ReadKey().KeyChar != 0x1B); // пока не нажали кнопку "esc"; }