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
        }