Exemplo n.º 1
0
        public void Can_remove_item_at_index()
        {
            var z = ImZipper.Zip(15, 10, 5, 1);

            z = z.RemoveAt(2);
            CollectionAssert.AreEqual(new[] { 15, 10, 1 }, z.ToArray());

            z = z.RemoveAt(2);
            CollectionAssert.AreEqual(new[] { 15, 10 }, z.ToArray());

            z = z.RemoveAt(0);
            CollectionAssert.AreEqual(new[] { 10 }, z.ToArray());

            var z1 = z.RemoveAt(5);

            Assert.AreSame(z, z1);

            var z2 = z.RemoveAt(-5);

            Assert.AreSame(z, z2);

            z = z.RemoveAt(0);
            CollectionAssert.AreEqual(new int[] {}, z.ToArray());

            var z3 = z.RemoveAt(0);

            Assert.AreSame(z, z3);
        }
Exemplo n.º 2
0
        public void Can_efficiently_update_at_specific_index()
        {
            var z = ImZipper.Zip(1, 5, 10, 15);

            z = z.UpdateAt(1, n => n + 1);
            var s = z.ToString();

            CollectionAssert.AreEqual(new[] { 1, 6, 10, 15 }, z.ToArray());

            z = z.UpdateAt(0, i => i + 1);
            CollectionAssert.AreEqual(new[] { 2, 6, 10, 15 }, z.ToArray());

            z = z.UpdateAt(3, i => i + 1);
            CollectionAssert.AreEqual(new[] { 2, 6, 10, 16 }, z.ToArray());

            var z1 = z.UpdateAt(-5, i => i + 1);

            Assert.AreSame(z, z1);

            var z2 = z1.UpdateAt(5, i => i + 1);

            Assert.AreSame(z1, z2);

            var newList = z.UpdateAt(1, i => i);

            Assert.AreNotSame(z, newList);
            CollectionAssert.AreEqual(new[] { 2, 6, 10, 16 }, z.ToArray());
        }
Exemplo n.º 3
0
        public void Map_x()
        {
            var l = ImList.List(5, 6, 7);

            var ml = l.Map((_, i) => i);

            CollectionAssert.AreEqual(new[] { 0, 1, 2 }, ml.ToArray());

            var z  = ImZipper.Zip(5, 6, 7);
            var mz = z.Map((_, i) => i);

            CollectionAssert.AreEqual(new[] { 0, 1, 2 }, mz.ToArray());
        }