コード例 #1
0
ファイル: TestVirtualList.cs プロジェクト: filmackay/live
        public void TestVirtualListSimple5()
        {
            var v = new VirtualList<int>(false);

            v.Insert(0, 1);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 1 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 1 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));

            v.Insert(1, 2);
            v.Check();
            v.RemoveAt(0);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 2 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 2 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));

            v[0] = 3;
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 3 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 3 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));
        }
コード例 #2
0
ファイル: TestVirtualList.cs プロジェクト: filmackay/live
        public void TestVirtualListSimple4()
        {
            var v = new VirtualList<int>(false);

            v.Add(0);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));

            v.RemoveAt(0);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new int[0]));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new int[0]));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new int[0]));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new int[0]));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new int[0]));
        }
コード例 #3
0
ファイル: TestVirtualList.cs プロジェクト: filmackay/live
        public void TestVirtualListSimple2()
        {
            var v = new VirtualList<int>(false);

            v.Insert(2, 100);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0, 0, 100 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 100 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 2 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));

            v.Insert(2, 200);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0, 0, 200, 100 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 200, 100 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2, 3 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 2, 3 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0, 1 }));

            v.RemoveAt(2);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0, 0, 100 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 100 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 2 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));

            v.RemoveAt(0);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0, 100 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 100 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 1 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0 }));
        }
コード例 #4
0
ファイル: TestVirtualList.cs プロジェクト: filmackay/live
        public void TestVirtualListSimple3()
        {
            var v = new VirtualList<int>(false, new[] { 1, 2, 3 });

            v.Add(0);

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 1, 2, 3, 0 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 1, 2, 3, 0 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2, 3 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2, 3 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0, 1, 2, 3 }));

            v.Remove(2);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 1, 3, 0 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 1, 3, 0 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0, 1, 2 }));
        }
コード例 #5
0
ファイル: TestVirtualList.cs プロジェクト: filmackay/live
        public void TestVirtualListSimple1()
        {
            var v = new VirtualList<int>(false);

            v.Insert(0, 0);
            v.Check();
            v.Insert(5, 1);
            v.Check();
            v.Insert(10, 2);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 0, 1, 2 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 5, 10 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0, 1, 2 }));

            v.Insert(2, 3);
            v.Check();

            Assert.IsTrue(v.ToArray().SequenceEqual(new[] { 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 2 }));
            Assert.IsTrue(v.Dense.ToArray().SequenceEqual(new[] { 0, 3, 1, 2 }));
            Assert.IsTrue(v.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.Index).SequenceEqual(new[] { 0, 2, 6, 11 }));
            Assert.IsTrue(v.Dense.Nodes.Select(n => n.DenseIndex).SequenceEqual(new[] { 0, 1, 2, 3 }));
        }