private static void EmptySourceTest(int bufSize)
 {
     var data = new byte[0];
     var strm = new MemoryStream (data);
     var src = new StreamBufferedSource (strm, new byte[bufSize]);
     Assert.AreEqual (0, src.FillBuffer ());
     Assert.AreEqual (0, src.TrySkip (1));
     Assert.AreEqual (0, src.FillBuffer ());
     Assert.IsTrue (src.IsExhausted);
     Assert.AreEqual (0, src.Count);
 }
        private static void OneByteSourceTest(int bufSize)
        {
            byte nnn = 123;
            var data = new byte[] { nnn };
            var strm = new MemoryStream (data);

            var src = new StreamBufferedSource (strm, new byte[bufSize]);
            src.EnsureBuffer (1);
            Assert.AreEqual (nnn, src.Buffer[src.Offset]);
            src.SkipBuffer (1);
            Assert.AreEqual (0, src.FillBuffer ());
            Assert.IsTrue (src.IsExhausted);
            Assert.AreEqual (0, src.Count);

            strm.Seek (0, SeekOrigin.Begin);
            src = new StreamBufferedSource (strm, new byte[bufSize]);
            Assert.AreEqual (1, src.FillBuffer ());
            Assert.AreEqual (nnn, src.Buffer[src.Offset]);
            Assert.AreEqual (1, src.TrySkip (bufSize));
            Assert.AreEqual (0, src.FillBuffer ());
            Assert.IsTrue (src.IsExhausted);
            Assert.AreEqual (0, src.Count);
        }