Example #1
0
 public void GZipStream_Decompressor_2()
 {
     byte[] input       = new byte[] { 0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x73, 0x74, 0x72, 0x76, 0x71, 0x75, 0x03, 0x00, 0x69, 0xFE, 0x76, 0xBB, 0x06, 0x00, 0x00, 0x00 };
     byte[] plaintext   = Encoding.UTF8.GetBytes("ABCDEF");
     byte[] decompBytes = GZipCompressor.Decompress(input);
     Assert.IsTrue(decompBytes.SequenceEqual(plaintext));
 }
Example #2
0
        public void Decompress()
        {
            var    TestObject = new GZipCompressor();
            string Data       = "This is a bit of data that I want to compress";

            Assert.Equal("This is a bit of data that I want to compress", TestObject.Decompress(TestObject.Compress(Data.ToByteArray())).ToString(null));
        }
Example #3
0
        public void CompressionTest()
        {
            AutoResetEvent waitHandle = new AutoResetEvent(false);

            compressor = new GZipCompressor(waitHandle);
            //startFileName = @"video.avi";
            string decompressedFileName = @"Decompressed_" + startFileName;

            compressor.OnCompressionComplete += compressor_OnCompressionComplete;
            compressor.Compress(startFileName, endFileName);
            waitHandle.WaitOne();
            string startFileHash        = "";
            string decompressedFileHash = "";

            MD5 md5hash = MD5.Create();

            compressor.Decompress(endFileName, decompressedFileName);
            waitHandle.WaitOne();

            using (Stream startFileStream = File.OpenRead(startFileName))
                using (Stream decompressedFIleStream = File.OpenRead(decompressedFileName))
                {
                    startFileHash        = Encoding.Default.GetString(md5hash.ComputeHash(startFileStream));
                    decompressedFileHash = Encoding.Default.GetString(md5hash.ComputeHash(decompressedFIleStream));
                }
            Assert.AreEqual(startFileHash, decompressedFileHash);
        }
Example #4
0
        public void Compressor_CanDecompressIonic()
        {
            ICompressor compressor = new GZipCompressor();
            string      file       = compressor.Decompress(compressor.Compress(TestFilePath));

            Assert.IsTrue(File.Exists(file));
            Assert.AreEqual(TestFilePath, file);
        }
Example #5
0
        public void TestDecompress_NullBytes()
        {
            GZipCompressor c = new GZipCompressor();

            byte[] decompressed = c.Decompress(null);
            Assert.IsNotNull(decompressed);
            Assert.AreEqual(0, decompressed.Length);
        }
Example #6
0
        public void Compressor_CanDecompressIonic()
        {
            ICompressor compressor = new GZipCompressor();
            string file = compressor.Decompress(compressor.Compress(TestFilePath));

            Assert.IsTrue(File.Exists(file));
            Assert.AreEqual(TestFilePath, file);
        }
Example #7
0
        public void TestCompressDecompressSomeByteArray()
        {
            ICompressor compressor = new GZipCompressor();

            var originalBytes     = Encoding.UTF8.GetBytes("Hello, World!");
            var compressedBytes   = compressor.Compress(originalBytes);
            var decompressedBytes = compressor.Decompress(compressedBytes);

            CollectionAssert.AreEqual(originalBytes, decompressedBytes);
        }
Example #8
0
        public void TestCompressDecompressEmptyByteArray()
        {
            ICompressor compressor = new GZipCompressor();

            var originalBytes     = new byte[0];
            var compressedBytes   = compressor.Compress(originalBytes);
            var decompressedBytes = compressor.Decompress(compressedBytes);

            CollectionAssert.AreEqual(originalBytes, decompressedBytes);
        }
Example #9
0
        public void TestDecompress_CompressedBytes()
        {
            GZipCompressor c   = new GZipCompressor();
            string         str = "Hello";

            byte[] strBytes        = System.Text.Encoding.UTF8.GetBytes(str);
            byte[] compressed      = c.Compress(strBytes);
            byte[] decompressed    = c.Decompress(compressed);
            string strDecompressed = System.Text.Encoding.Default.GetString(decompressed);

            Assert.AreEqual(str, strDecompressed);
        }
Example #10
0
        public void GZipStream_Compressor_2()
        {
            byte[] input = Encoding.UTF8.GetBytes("ABCDEF");

            // Compress first,
            // 1F-8B-08-00-00-00-00-00-00-0A-73-74-72-76-71-75-03-00-69-FE-76-BB-06-00-00-00
            byte[] compBytes = GZipCompressor.Compress(input);

            // then Decompress
            byte[] decompBytes = GZipCompressor.Decompress(compBytes);

            // Comprare SHA256 Digest
            byte[] inputDigest  = TestSetup.SHA256Digest(input);
            byte[] decompDigest = TestSetup.SHA256Digest(decompBytes);
            Assert.IsTrue(decompDigest.SequenceEqual(inputDigest));
        }
        public void CompressDecompressTest()
        {
            GZipCompressor target     = new GZipCompressor();
            string         strContent = "Hello World";

            byte[] content = Encoding.ASCII.GetBytes(strContent);
            using (Stream requestStream = new MemoryStream())
            {
                var compressedStream = new GZipStream(requestStream, CompressionMode.Compress);
                compressedStream.Write(content, 0, content.Length);
                Stream actual = target.Decompress(requestStream);
                Assert.IsNotNull(actual);
                actual.Read(content, 0, content.Length);
                string dString = Encoding.ASCII.GetString(content);
                Assert.IsTrue(string.Compare(strContent, dString, false) == 0);
            }
        }
        public void TestExecuteDecompressionTaskOnWholeFile()
        {
            var inputFile  = new FileInfo("input.txt.gz");
            var outputFile = new FileInfo("output.txt");

            File.Delete(outputFile.Name);

            var inputHolder  = new FileChunkHolder();
            var outputHolder = new FileChunkHolder();
            var compressor   = new GZipCompressor();

            var task = new DecompressionTask(0, inputHolder, outputHolder, compressor,
                                             inputFile.Name, 0, (int)inputFile.Length, outputFile.Name);

            task.Start();

            Assert.AreEqual(0, inputHolder.Count());
            Assert.AreEqual(0, outputHolder.Count());
            CollectionAssert.AreEqual(compressor.Decompress(File.ReadAllBytes(inputFile.Name)), File.ReadAllBytes(outputFile.Name));
        }
Example #13
0
        public void GZipStream_Decompressor_1()
        {
            void Template(string fileName)
            {
                string compPath   = Path.Combine(TestSetup.SampleDir, fileName + ".gz");
                string decompPath = Path.Combine(TestSetup.SampleDir, fileName);

                using (FileStream decompFs = new FileStream(decompPath, FileMode.Open, FileAccess.Read, FileShare.Read))
                    using (FileStream compFs = new FileStream(compPath, FileMode.Open, FileAccess.Read, FileShare.Read))
                        using (MemoryStream decompMs = GZipCompressor.Decompress(compFs))
                        {
                            // Compare SHA256 Digest
                            byte[] fileDigest   = TestSetup.SHA256Digest(decompFs);
                            byte[] decompDigest = TestSetup.SHA256Digest(decompMs);
                            Assert.IsTrue(decompDigest.SequenceEqual(fileDigest));
                        }
            }

            Template("ex1.jpg");
            Template("ex2.jpg");
            Template("ex3.jpg");
        }
Example #14
0
        public void GZipStream_Compressor_1()
        {
            void Template(string fileName, ZLibCompLevel level)
            {
                string filePath = Path.Combine(TestSetup.SampleDir, fileName);

                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                    using (MemoryStream compMs = GZipCompressor.Compress(fs))
                        using (MemoryStream decompMs = GZipCompressor.Decompress(compMs))
                        {
                            // Compare SHA256 Digest
                            fs.Position = 0;
                            byte[] fileDigest   = TestSetup.SHA256Digest(fs);
                            byte[] decompDigest = TestSetup.SHA256Digest(decompMs);
                            Assert.IsTrue(decompDigest.SequenceEqual(fileDigest));
                        }
            }

            Template("ex1.jpg", ZLibCompLevel.Default);
            Template("ex2.jpg", ZLibCompLevel.BestCompression);
            Template("ex3.jpg", ZLibCompLevel.BestSpeed);
        }
Example #15
0
        public void LZ4_Read_Write_Faster_Than_GZip()
        {
            var gzipCompressor = new GZipCompressor();
            var lz4Compressor  = new LZ4Compressor();

            double gzipSeconds = 0;
            double lz4Seconds  = 0;

            Stopwatch watch = new Stopwatch();

            watch.Start();

            for (int i = 0; i < 1000; i++)
            {
                byte[] data       = TestHelper.GetRandomByteArray(10);
                byte[] compressed = gzipCompressor.Compress(data);
                byte[] deflated   = gzipCompressor.Decompress(compressed);
                Assert.IsTrue(data.SequenceEqual(deflated));
            }

            watch.Stop();
            gzipSeconds = watch.Elapsed.TotalSeconds;

            watch = new Stopwatch();
            watch.Start();

            for (int i = 0; i < 1000; i++)
            {
                byte[] data       = TestHelper.GetRandomByteArray(10);
                byte[] compressed = lz4Compressor.Compress(data);
                byte[] deflated   = lz4Compressor.Decompress(compressed);
                Assert.IsTrue(data.SequenceEqual(deflated));
            }

            watch.Stop();
            lz4Seconds = watch.Elapsed.TotalSeconds;

            Assert.IsTrue(lz4Seconds < gzipSeconds);
        }
Example #16
0
        public void MustPerformCorrectly()
        {
            var data       = Encoding.UTF8.GetBytes(String.Join(" ", Enumerable.Repeat("A comparatively easy text to compress.", 100)));
            var compressed = sut.Compress(new MemoryStream(data));

            compressed.Seek(0, SeekOrigin.Begin);

            Assert.AreEqual(ID1, compressed.ReadByte());
            Assert.AreEqual(ID2, compressed.ReadByte());
            Assert.AreEqual(CM, compressed.ReadByte());
            Assert.IsTrue(compressed.Length < data.Length);

            var decompressed = sut.Decompress(compressed);

            decompressed.Seek(0, SeekOrigin.Begin);

            foreach (var item in data)
            {
                Assert.AreEqual(item, decompressed.ReadByte());
            }

            Assert.IsTrue(decompressed.Length == data.Length);
        }