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

            list.AddRange(new[] { 0, 1, 1, 1, 0, 0 });
            list.TransformRange(2, 3, i => 0);
            Assert.AreEqual(new[] { 0, 1, 0, 0, 0, 0 }, list.ToArray());
        }
        public void Transform()
        {
            CompressingTreeList <int> list = new CompressingTreeList <int>((a, b) => a == b);

            list.AddRange(new[] { 0, 1, 1, 0 });
            int calls = 0;

            list.Transform(i => { calls++; return(i + 1); });
            Assert.AreEqual(3, calls);
            Assert.AreEqual(new[] { 1, 2, 2, 1 }, list.ToArray());
        }