public void AddRepeated()
        {
            CompressingTreeList <int> list = new CompressingTreeList <int>((a, b) => a == b);

            list.Add(42);
            list.Add(42);
            list.Add(42);
            list.Insert(0, 42);
            list.Insert(1, 42);
            Assert.AreEqual(new[] { 42, 42, 42, 42, 42 }, list.ToArray());
        }
        public void RemoveRange()
        {
            CompressingTreeList <int> list = new CompressingTreeList <int>((a, b) => a == b);

            for (int i = 1; i <= 3; i++)
            {
                list.InsertRange(list.Count, 2, i);
            }
            Assert.AreEqual(new[] { 1, 1, 2, 2, 3, 3 }, list.ToArray());
            list.RemoveRange(1, 4);
            Assert.AreEqual(new[] { 1, 3 }, list.ToArray());
            list.Insert(1, 1);
            list.InsertRange(2, 2, 2);
            list.Insert(4, 1);
            Assert.AreEqual(new[] { 1, 1, 2, 2, 1, 3 }, list.ToArray());
            list.RemoveRange(2, 2);
            Assert.AreEqual(new[] { 1, 1, 1, 3 }, list.ToArray());
        }