Пример #1
0
        public byte[] DeflateDecompressor_DecompressStream(CompressedSize input)
        {
            using var decompressed = new MemoryStream();
            using var data         = new MemoryStream(input.Data);
            DeflateDecompressor.Decompress(data, decompressed);

            return(decompressed.ToArray());
        }
Пример #2
0
        public void Decompress_Ptt5()
        {
            var corpusItem = new CorpusInfo("ptt5");

            var decompressed = DeflateDecompressor.Decompress(corpusItem.Compressed);

            CollectionAssert.AreEqual(corpusItem.Raw, decompressed);
        }
Пример #3
0
        public byte[] Burnside_Stream(CorpusInfo input)
        {
            using var decompressed = new MemoryStream();
            using var data         = new MemoryStream(input.Data);
            DeflateDecompressor.Decompress(data, decompressed);

            return(decompressed.ToArray());
        }
Пример #4
0
        public void Decompress_Grammar()
        {
            var corpusItem = new CorpusInfo("grammar.lsp");

            var decompressed = DeflateDecompressor.Decompress(corpusItem.Compressed);

            CollectionAssert.AreEqual(corpusItem.Raw, decompressed);
        }
Пример #5
0
        public void Decompress_Kennedy()
        {
            var corpusItem = new CorpusInfo("kennedy.xls");

            var decompressed = DeflateDecompressor.Decompress(corpusItem.Compressed);

            CollectionAssert.AreEqual(corpusItem.Raw, decompressed);
        }
Пример #6
0
        public void Decompress_Lcet10()
        {
            var corpusItem = new CorpusInfo("lcet10.txt");

            var decompressed = DeflateDecompressor.Decompress(corpusItem.Compressed);

            CollectionAssert.AreEqual(corpusItem.Raw, decompressed);
        }
        public void DecompressString()
        {
            var data       = "thisissomestringdatathatwillbeusedtotestthedecompressionofthealgorithm";
            var compressed = Compress(data);

            var decompressed = DeflateDecompressor.Decompress(compressed);

            Assert.AreEqual(data, Encoding.UTF8.GetString(decompressed));
        }
        public void StreamDecompress_Random10MiB()
        {
            using var outStream = new MemoryStream();
            using var inStream  = new MemoryStream(Compressed_10MiB);
            DeflateDecompressor.Decompress(inStream, outStream);

            var decompressed = outStream.ToArray();

            CollectionAssert.AreEqual(UnCompressed_10MiB, decompressed);
        }
Пример #9
0
        public void StreamDecompress_Xargs()
        {
            var corpusItem = new CorpusInfo("xargs.1");

            using var outStream = new MemoryStream();
            using var inStream  = new MemoryStream(corpusItem.Compressed);
            DeflateDecompressor.Decompress(inStream, outStream);

            var decompressed = outStream.ToArray();

            CollectionAssert.AreEqual(corpusItem.Raw, decompressed);
        }
Пример #10
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");
        }
Пример #11
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));
        }
Пример #12
0
        public void StreamDecompress_String()
        {
            var data       = "thisissomestringdatathatwillbeusedtotestthedecompressionofthealgorithm";
            var compressed = Compress(data);

            using var outStream = new MemoryStream();
            using var inStream  = new MemoryStream(compressed);
            DeflateDecompressor.Decompress(inStream, outStream);

            var decompressed = outStream.ToArray();

            Assert.AreEqual(data, Encoding.UTF8.GetString(decompressed));
        }
Пример #13
0
        public bool TrySetFor(MessageHead head)
        {
            ThrowIfEnded();
            BodyType?bodyType = BodyType.TryDetectFor(head);

            if (bodyType == null)
            {
                return(false);
            }

            CompressionType  compression = bodyType.Value.CompressionType;
            TransferEncoding transfer    = bodyType.Value.TransferEncoding;
            int contentLength            = bodyType.Value.ContentLength;

            if (IsSet)
            {
                Reset();
            }
            TransferEncoding = transfer;
            if (transfer == TransferEncoding.Raw)
            {
                ContentLength = contentLength;
                State         = BodyParserState.RawRead;
            }
            else if (transfer == TransferEncoding.Chunked)
            {
                State       = BodyParserState.Chunked_Length;
                StringQueue = new StringQueue();
            }
            if (transfer != TransferEncoding.None)
            {
                CompressionType = compression;
                switch (compression)
                {
                case CompressionType.None: ContentTransform = new RawUnifiedDuplex(); break;

                case CompressionType.Gzip: ContentTransform = new GzipDecompressor(); break;

                case CompressionType.Deflate: ContentTransform = new DeflateDecompressor(); break;

                case CompressionType.Compress: return(false);

                default: return(false);
                }
            }
            IsSet = true;
            return(true);
        }
Пример #14
0
        public static void Decompress(Stream input, Stream output)
        {
            var buffer = new byte[10];

            input.Read(buffer, 0, 10);
            if (buffer[0] != 0x1F || buffer[1] != 0x8B)
            {
                throw new FormatException("Invalid gzip header");
            }
            if (buffer[2] != 8)
            {
                throw new NotSupportedException("Compression method is not deflate");
            }
            int FLG = buffer[3];

            if (FLG != FNAME && FLG != 0)
            {
                throw new NotSupportedException("Only FNAME flag is supported");
            }
            // 4-7: MTIME
            int XFL = buffer[8];

            if (XFL == 2)
            {
                Console.Out.WriteLine("Extra flag: best compression algorithm (XFL = 2)");
            }
            if (XFL == 4)
            {
                Console.Out.WriteLine("Extra flag: fastest compression algorithm (XFL = 4)");
            }
            // 9: OS
            if ((FLG & FNAME) != 0)
            {
                buffer = new byte[256];
                var offset = 0;
                do
                {
                    input.Read(buffer, offset, 1);
                    offset++;
                } while (buffer[offset - 1] != '\0');
                var name = System.Text.Encoding.ASCII.GetString(buffer, 0, offset);
                Console.WriteLine("filename=" + name);
            }
            DeflateDecompressor.Decompress(input, output);
        }
Пример #15
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");
        }
Пример #16
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));
        }
Пример #17
0
 public byte[] Burnside_ByteArray(CorpusInfo input)
 {
     return(DeflateDecompressor.Decompress(input.Data));
 }
Пример #18
0
 public byte[] DeflateDecompressor_Decompress(CompressedSize input)
 {
     return(DeflateDecompressor.Decompress(input.Data));
 }
Пример #19
0
        public void Decompress_Random50MiB()
        {
            var decompressed = DeflateDecompressor.Decompress(Compressed_50MiB);

            CollectionAssert.AreEqual(UnCompressed_50MiB, decompressed);
        }