public void GapBuffer_RemoveTest()
        {
            GapBuffer <int> buf = CreateTestGapBuffer();

            Assert.IsFalse(buf.Remove(0));

            Assert.AreEqual(16, buf.IndexOf(999));
            Assert.IsTrue(buf.Remove(999));
            Assert.AreEqual(-1, buf.IndexOf(999));

            buf.RemoveAt(1);
            Assert.AreEqual(1, buf.Gap);

            buf.RemoveAt(0);
            Assert.AreEqual(23, buf.Count);
            Assert.AreEqual(0, buf.Gap);
            Assert.AreEqual(9, buf.GapCount);
            Assert.AreEqual(9, buf.AfterGap);

            buf.RemoveAt(21);
            Assert.AreEqual(21, buf.Gap);

            buf.RemoveAt(21);
            Assert.AreEqual(21, buf.Count);
            Assert.AreEqual(21, buf.Gap);
            Assert.AreEqual(11, buf.GapCount);
            Assert.AreEqual(32, buf.AfterGap);

            for (int i = 0; i < buf.Count; i++)
            {
                Assert.AreEqual(102 + i, buf[i]);
            }
        }