Ejemplo n.º 1
0
        public void LegoParserCrossCheck()
        {
            const int blockSize = 500;

            var rawStream = new MemoryStream(_testData);
            var output    = new MemoryStream();

            var plainSource = new PlainBlockSource(rawStream, blockSize);
            var blocks      = Randomize(plainSource.TakeAll()).ToList();

            var legoStream = new MemoryStream();
            var legoSink   = new LegoBlockSink(legoStream);

            legoStream.Seek(0, SeekOrigin.Begin);
            foreach (var block in blocks)
            {
                legoSink.Put(block);
            }

            legoStream.Seek(0, SeekOrigin.Begin);
            var legoSource = new LegoBlockSource(legoStream);

            var afterLegoBlocks = legoSource.TakeAll().ToList();
            var plainSink       = new PlainBlockSink(output);

            foreach (var block in afterLegoBlocks)
            {
                plainSink.Put(block);
            }

            Assert.That(output.ToArray(), Is.EqualTo(_testData));
        }
Ejemplo n.º 2
0
        private void PassForthAndBack(PlainBlockSource Source, PlainBlockSink Sink)
        {
            var blocks           = Source.TakeAll().ToList();
            var randomizedBlocks = Randomize(blocks);

            foreach (var block in randomizedBlocks)
            {
                Sink.Put(block);
            }
        }
Ejemplo n.º 3
0
        public void PlainParserForthAndBack()
        {
            const int blockSize = 500;

            var input  = new MemoryStream(_testData);
            var output = new MemoryStream();

            var sink   = new PlainBlockSink(output);
            var source = new PlainBlockSource(input, blockSize);

            PassForthAndBack(source, sink);

            Assert.That(output.ToArray(), Is.EqualTo(_testData));
        }
Ejemplo n.º 4
0
 /// <summary>Создаёт <see cref="WorkerBuilder" />, настроенный для поблочного сжатия входного файла</summary>
 /// <param name="BlockSize">Размер блока</param>
 public static WorkerBuilder Compressor(int BlockSize)
 {
     return(new(PlainBlockSource.Factory(BlockSize),
                LegoBlockSink.Factory,
                new GzipPackProcessor()));
 }