public void CircularBuffer_ReadBlock() { CircularBuffer<byte> cb = new CircularBuffer<byte>(50); // Move the pointer to the middle cb.Produce(25); cb.Consume(25); // Now allocate all space cb.Produce(25); cb.Produce(25); Assert.AreEqual(25, cb.ReadLength); Assert.AreEqual(25, cb.GetReadBlock(0)); Assert.AreEqual(20, cb.GetReadBlock(5)); Assert.AreEqual(1, cb.GetReadBlock(24)); Assert.AreEqual(25, cb.GetReadBlock(25)); Assert.AreEqual(20, cb.GetReadBlock(30)); Assert.AreEqual(1, cb.GetReadBlock(49)); Assert.AreEqual(0, cb.GetReadBlock(50)); }