public void TestReadAfterShift()
{
short[] buffer1 = { 1, 2, 3, 4, 5 };
short[] buffer2 = { 6, 7, 8 };
short[] tmp = new short[10];
CombinedBuffer buffer = new CombinedBuffer(buffer1, 5, buffer2, 3);
// Offset 2
buffer.Shift(2);
int size = buffer.Read(tmp, 0, 4);
Assert.AreEqual(2, buffer.Offset);
Assert.AreEqual(4, size);
for (int i = 0; i < size; i++)
{
Assert.AreEqual(3 + i, tmp[i]);
}
// Offset 4
buffer.Shift(2);
size = buffer.Read(tmp, 0, 4);
Assert.AreEqual(4, buffer.Offset);
Assert.AreEqual(4, size);
for (int i = 0; i < size; i++)
{
Assert.AreEqual(5 + i, tmp[i]);
}
// Offset 6
buffer.Shift(2);
size = buffer.Read(tmp, 0, 4);
Assert.AreEqual(6, buffer.Offset);
Assert.AreEqual(2, size);
for (int i = 0; i < size; i++)
{
Assert.AreEqual(7 + i, tmp[i]);
}
}
}