public void TestBufferReuse() { // 16 cap var ringBuffer = new RingBufferStream(12); var expected = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; ringBuffer.Write(expected, 0, expected.Length); Read(ringBuffer); ringBuffer.Write(expected, 0, expected.Length); var read = Read(ringBuffer); CollectionAssert.AreEqual(expected, read); }
public void TestCanRead() { var ringBuffer = new RingBufferStream(); var data = new byte[] { 1, 2, 3, 4, 5 }; ringBuffer.Write(data, 0, data.Length); Assert.IsTrue(ringBuffer.ReadableCount >= 4); Assert.IsTrue(ringBuffer.ReadableCount >= 5); Assert.IsFalse(ringBuffer.ReadableCount >= 6); ringBuffer.Write(data, 0, data.Length); Assert.IsTrue(ringBuffer.ReadableCount >= 9); Assert.IsTrue(ringBuffer.ReadableCount >= 10); Assert.IsFalse(ringBuffer.ReadableCount >= 11); }
public void TestReadWrite() { var ringBuffer = new RingBufferStream(); ringBuffer.Write(new byte[] { 1, 2, 4, 5 }, 1, 2); var read = Read(ringBuffer); CollectionAssert.AreEqual( new byte[] { 2, 4, }, read); ringBuffer = new RingBufferStream(); ringBuffer.Write(new byte[] { 1, 2, 3, 4, 5 }, 2, 3); var actual = new byte[5]; var count = ringBuffer.Read(actual, 2, actual.Length - 2); Assert.AreEqual(3, count); CollectionAssert.AreEqual( new byte[] { 0, 0, 3, 4, 5, }, actual); }
public void TestCanWrite() { // 16 cap var ringBuffer = new RingBufferStream(12); Assert.IsTrue(ringBuffer.WriteableCount >= 15); Assert.IsTrue(ringBuffer.WriteableCount >= 16); Assert.IsFalse(ringBuffer.WriteableCount >= 17); ringBuffer.Write(new byte[] { 1, 2, 3, 4, 5 }, 0, 5); Assert.IsTrue(ringBuffer.WriteableCount >= 10); Assert.IsTrue(ringBuffer.WriteableCount >= 11); Assert.IsFalse(ringBuffer.WriteableCount >= 12); ringBuffer.Write(new byte[] { 1, 2, 3, 4, 5 }, 3, 2); Assert.IsTrue(ringBuffer.WriteableCount >= 8); Assert.IsTrue(ringBuffer.WriteableCount >= 9); Assert.IsFalse(ringBuffer.WriteableCount >= 10); }
public void TestOutOffset() { var ringBuffer = new RingBufferStream(4); var buffer = new byte[5]; Assert.ThrowsException <ArgumentOutOfRangeException>(() => { ringBuffer.Read(buffer, 2, 10); }); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { ringBuffer.Write(buffer, 2, 10); }); }
public void TestClear() { // 32 cap var ringBuffer = new RingBufferStream(18); var data = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; ringBuffer.Write(data, 0, data.Length); ringBuffer.Clear(); Assert.AreEqual(0, ringBuffer.ReadableCount); Assert.AreEqual(32, ringBuffer.WriteableCount); using (ringBuffer = new RingBufferStream(18)) { ringBuffer.Write(data, 0, data.Length); } Assert.AreEqual(0, ringBuffer.ReadableCount); Assert.AreEqual(32, ringBuffer.WriteableCount); }
public void TestPeek() { // 16 cap var ringBuffer = new RingBufferStream(12); var buffer = new byte[] { 1, 2, 3, 4, 5 }; ringBuffer.Write(buffer, 0, buffer.Length); Assert.AreEqual(11, ringBuffer.WriteableCount); Assert.AreEqual(5, ringBuffer.ReadableCount); CollectionAssert.AreEqual( new byte[] { 1, 2, 3, 4, 5, }, Peek(ringBuffer)); var actual = new byte[5]; var read = ringBuffer.Peek(actual, 3, actual.Length - 3); Assert.AreEqual(2, read); CollectionAssert.AreEqual( new byte[] { 0, 0, 0, 1, 2, }, actual); read = ringBuffer.Peek(actual, 0, actual.Length); Assert.AreEqual(5, read); CollectionAssert.AreEqual( new byte[] { 1, 2, 3, 4, 5, }, actual); Assert.AreEqual(11, ringBuffer.WriteableCount); Assert.AreEqual(5, ringBuffer.ReadableCount); Read(ringBuffer); Assert.AreEqual(16, ringBuffer.WriteableCount); Assert.AreEqual(0, ringBuffer.ReadableCount); }
public void TestFullBuffer() { var ringBuffer = new RingBufferStream(4); ringBuffer.Write(new byte[] { 1, 2, 3, 4, 5 }, 0, 5); }