public void NTreeDeletesManyUnique() { var objs = TestResourceFactory.GetMockClassAObjects(50).ToList(); var seedIndex = new Seed32(); var seedSegment = new Seed64(); objs.ForEach(o => o.Id = seedIndex.Increment()); using (var tree = new NTree<int, MockClassA, long>("Id", true)) { foreach (var o in objs) tree.AddOrUpdate(new Tuple<MockClassA, long>(o, seedSegment.Increment())); Assert.AreEqual(50, tree.Length); Assert.AreEqual(5, tree.GetFirstByIndex(5)); Assert.AreEqual(5, tree.GetFirstBySegment(5)); Assert.AreEqual(1, tree.GetByIndex(5).Count()); tree.DeleteMany(new int[] { 1, 2, 3, 4, 5, 48, 49 }); Assert.AreEqual(50, tree.Length); Assert.AreEqual(0, tree.GetFirstByIndex(1)); Assert.AreEqual(0, tree.GetFirstByIndex(2)); Assert.AreEqual(0, tree.GetFirstByIndex(3)); Assert.AreEqual(0, tree.GetFirstByIndex(4)); Assert.AreEqual(0, tree.GetFirstByIndex(5)); Assert.AreEqual(0, tree.GetFirstByIndex(48)); Assert.AreEqual(0, tree.GetFirstByIndex(49)); } }
public void NTreeDeletesManyEntities() { var objs = TestResourceFactory.GetMockClassAObjects(50).ToList(); var seedIndex = new Seed32(); var seedSegment = new Seed64(); objs.ForEach(o => o.Id = seedIndex.Increment()); using (var tree = new NTree<int, MockClassA, long>("Id", true)) { foreach (var o in objs) tree.AddOrUpdate(new Tuple<MockClassA, long>(o, seedSegment.Increment())); Assert.AreEqual(50, tree.Length); Assert.AreEqual(5, tree.GetFirstByIndex(5)); Assert.AreEqual(5, tree.GetFirstBySegment(5)); Assert.AreEqual(1, tree.GetByIndex(5).Count()); tree.DeleteMany(objs.Take(15)); Assert.AreEqual(50, tree.Length); foreach (var o in objs.Take(15)) Assert.AreEqual(0, tree.GetFirstByIndex(o.Id)); Assert.AreEqual(0, tree.DeleteMany(new List<MockClassA>() { null }).Length); } }