public void TestVirtualListComplex() { var r = new Random(0); var v = new VirtualList<int>(false, Enumerable.Range(1, 10)); v.Check(); for (int i = 11; i < 5000; i++) { switch (r.Next(2)) { case 0: var val = r.Next(v.Count + 1); //Debug.Print("{0}: insert {1} @ {2}", v.Count, val, i); v.Insert(val, i); break; case 1: if (v.Count > 0) { var idx = r.Next(v.Count); //Debug.Print("{0}: delete @ {1}", v.Count, idx); v.RemoveAt(idx); } break; } v.Check(); } }
public void RemoveAt() { VirtualList <int> list = new VirtualList <int>(); List <int> numbers1 = new List <int> { 0, 20, 1, 2 }; List <int> numbers2 = new List <int> { 3, 4, 5 }; List <int> numbers3 = new List <int> { 6, 21, 7, 8, 9 }; list.AddSuppliers(numbers1, numbers2, numbers3); list.RemoveAt(1); list.RemoveAt(7); Assert.False(numbers1.Contains(20)); Assert.False(numbers3.Contains(21)); }
public void TestVirtualListComplex1() { var r = new Random(); var v = new VirtualList<int>(false); v.Insert(0, 106); v.Check(); v.Insert(0, 107); v.Check(); v.Insert(0, 108); v.Check(); v.Insert(0, 109); v.Check(); v.Insert(2, 110); v.Check(); v.Insert(2, 111); v.Check(); v.RemoveAt(1); v.Check(); v.RemoveAt(0); v.Check(); v.RemoveAt(3); v.Check(); }
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 })); }
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])); }
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 })); }