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)); }
private void PassForthAndBack(PlainBlockSource Source, PlainBlockSink Sink) { var blocks = Source.TakeAll().ToList(); var randomizedBlocks = Randomize(blocks); foreach (var block in randomizedBlocks) { Sink.Put(block); } }