public void TestCompressDecompress() { byte[] f1compressed = BWCompression.Compress(F1); byte[] f1decompressed = BWCompression.Decompress(f1compressed); CollectionAssert.AreEqual(F1, f1decompressed); byte[] f2compressed = BWCompression.Compress(F2); byte[] f2decompressed = BWCompression.Decompress(f2compressed); CollectionAssert.AreEqual(F2, f2decompressed); }
static void Main(string[] args) { Options options = new Options(); if (CommandLine.Parser.Default.ParseArguments(args, options)) { Stopwatch stopWatch = Stopwatch.StartNew(); if (options.AddToArchive) { string filePath = options.Files.First(); byte[] fileData = File.ReadAllBytes(filePath); Console.WriteLine("{0} bytes read.", fileData.Length); byte[] compressedFileData = BWCompression.Compress(fileData); File.WriteAllBytes(options.ArchivePath, compressedFileData); Console.WriteLine("{0} bytes compressed into {1} bytes.", fileData.Length, compressedFileData.Length); Console.WriteLine("Compression ratio = {0}%.", (float)compressedFileData.Length / fileData.Length); Console.WriteLine("Compression Time = {0}ms.", stopWatch.ElapsedMilliseconds); } else if (options.ExtractFromArchive) { byte[] archiveData = File.ReadAllBytes(options.ArchivePath); Console.WriteLine("{0} bytes read.", archiveData.Length); byte[] decompressedFileData = BWCompression.Decompress(archiveData); string filePath = options.Files.First(); File.WriteAllBytes(filePath, decompressedFileData); Console.WriteLine("Decompression Time = {0}ms.", stopWatch.ElapsedMilliseconds); } else { Console.WriteLine(options.GetUsage()); } } #if DEBUG Console.Write("Press any key to continue..."); Console.ReadKey(); #endif }