public async Task CompressDecompressString()
        {
            //ARRANGE
            var str        = "String to compress";
            var compressor = new DeflateCompressor();

            //ACT
            var strArr = Encoding.UTF8.GetBytes(str);
            var source = new MemoryStream(strArr);

            source.Position = 0;
            var compressed = new MemoryStream();
            await compressor.Compress(source, compressed);

            compressed.Position = 0;

            var decompressed = new MemoryStream();
            await compressor.Decompress(compressed, decompressed);

            decompressed.Position = 0;
            var result = new StreamReader(decompressed).ReadToEnd();

            //ASSERT
            Assert.AreEqual(str, result);
        }
Exemplo n.º 2
0
        public void CompressTest()
        {
            DeflateCompressor target = new DeflateCompressor(); // TODO: Initialize to an appropriate value

            byte[] content = Encoding.ASCII.GetBytes("Hello World");
            using (Stream requestStream = new MemoryStream())
            {
                target.Compress(content, requestStream);
            }
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }
Exemplo n.º 3
0
        public void Compress_StackallocWhenPossible()
        {
            byte[]? compressedBuffer = null;
            var payload = GetPayload(Size);

            try
            {
                var compressedPayload = payload.Length + 32 > Constants.MaxStackallocBytes
                                                                ? (compressedBuffer = ArrayPool <byte> .Shared.Rent(payload.Length + 32))
                                                                : stackalloc byte[payload.Length + 32];
                int payloadLength = _compressor.Compress(payload, compressedPayload);
                compressedPayload = compressedPayload.Slice(payloadLength);
            }
            finally
            {
                if (compressedBuffer != null)
                {
                    ArrayPool <byte> .Shared.Return(compressedBuffer);
                }
            }
        }
Exemplo n.º 4
0
        public void DeflateCompressorStringExtesionWorks()
        {
            var compressor = new DeflateCompressor();
            var compressed = compressor.Compress("test");

            Assert.IsNotNull(compressed);
            var decompressor = new DeflateDecompressor();
            var decompressed = decompressor.Decompress(compressed);

            Assert.IsNotNull(decompressed);
            Assert.AreEqual("test", Encoding.UTF8.GetString(decompressed));
        }
Exemplo n.º 5
0
        public void DeflateCompressorStringExtesionWorks()
        {
            var compressor = new DeflateCompressor();
            var compressed = compressor.Compress("test");

            compressed.Should().NotBeNull();
            var decompressor = new DeflateDecompressor();
            var decompressed = decompressor.Decompress(compressed);

            decompressed.Should().NotBeNull();
            Encoding.UTF8.GetString(decompressed).Should().Be("test");
        }
Exemplo n.º 6
0
        public void DeflateStream_Compressor_2()
        {
            byte[] input = Encoding.UTF8.GetBytes("ABCDEF");

            // Compress first,
            // 73-74-72-76-71-75-03-00
            byte[] compBytes = DeflateCompressor.Compress(input);

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

            // Comprare SHA256 Digest
            byte[] inputDigest  = TestSetup.SHA256Digest(input);
            byte[] decompDigest = TestSetup.SHA256Digest(decompBytes);
            Assert.IsTrue(decompDigest.SequenceEqual(inputDigest));
        }
Exemplo n.º 7
0
        public void DeflateStream_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 = DeflateCompressor.Compress(fs))
                        using (MemoryStream decompMs = DeflateCompressor.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);
        }
Exemplo n.º 8
0
        public void DeflateICompressorIDecompressorWorks()
        {
            var compressor = new DeflateCompressor();
            var data       = Encoding.UTF8.GetBytes("test");

            byte[] compressed;
            using (var inputStream = new MemoryStream(data))
            {
                compressed = compressor.Compress(inputStream);
            }
            Console.WriteLine(compressed.Length);
            Assert.IsNotNull(compressed);
            var decompressor = new DeflateDecompressor();

            byte[] decompressed;
            using (var inputStream = new MemoryStream(compressed))
            {
                decompressed = decompressor.Decompress(inputStream);
            }
            Assert.IsNotNull(decompressed);
            Assert.AreEqual("test", Encoding.UTF8.GetString(decompressed));
        }
Exemplo n.º 9
0
        public void DeflateICompressorIDecompressorWorks()
        {
            var compressor = new DeflateCompressor();
            var data       = Encoding.UTF8.GetBytes("test");

            byte[] compressed;
            using (var inputStream = new MemoryStream(data))
            {
                compressed = compressor.Compress(inputStream);
            }
            Console.WriteLine(compressed.Length);
            compressed.Should().NotBeNull();
            var decompressor = new DeflateDecompressor();

            byte[] decompressed;
            using (var inputStream = new MemoryStream(compressed))
            {
                decompressed = decompressor.Decompress(inputStream);
            }
            decompressed.Should().NotBeNull();
            Encoding.UTF8.GetString(decompressed).Should().Be("test");
        }
Exemplo n.º 10
0
        public void Decompress()
        {
            var    TestObject = new DeflateCompressor();
            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));
        }
Exemplo n.º 11
0
        public void Compress()
        {
            var    TestObject = new DeflateCompressor();
            string Data       = "This is a bit of data that I want to compress";

            Assert.Equal("CsnILFYAokSFpMwShfw0hZTEkkSFkozEEgVPhfLEvBKFknyF5PzcgqLU4mIAAAAA//8=", Convert.ToBase64String(TestObject.Compress(Data.ToByteArray())));
        }