public void InsertItemsOriginalLists() { VirtualList <int> list = new VirtualList <int>(); List <int> numbers1 = new List <int> { 0, 1, 2, 3 }; List <int> numbers2 = new List <int> { 5, 6, 7 }; List <int> numbers3 = new List <int> { 9, 10, 12, 13, 14 }; list.AddSuppliers(numbers1, numbers2, numbers3); list.Add(15); list.Insert(4, 4); list.Insert(8, 8); list.Insert(11, 11); Assert.AreEqual(numbers2[0], 4); Assert.AreEqual(numbers3[0], 8); Assert.AreEqual(numbers3[3], 11); Assert.AreEqual(numbers3[7], 15); }
public void InsertItems() { VirtualList <int> list = new VirtualList <int>(); List <int> numbers1 = new List <int> { 0, 1, 2, 3 }; List <int> numbers2 = new List <int> { 5, 6, 7 }; List <int> numbers3 = new List <int> { 9, 10, 12, 13, 14 }; list.AddSuppliers(numbers1, numbers2, numbers3); list.Add(15); list.Insert(4, 4); Assert.AreEqual(list.Count, 14); list.Insert(8, 8); Assert.AreEqual(list.Count, 15); list.Insert(11, 11); Assert.AreEqual(list.Count, 16); for (int i = 0; i < 16; i++) { Assert.AreEqual(list[i], i); } }
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 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 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 })); }
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 })); }