public void FindBy() { var point = new FreeTreeLeafPoint(new Vector(1f, 1f)); tree.Add(point); var box = new FreeTreeLeafBox(new Vector(-1f, 1f), new Vector(3f, 3f)); tree.Add(box); var sphere = new FreeTreeLeafSphere(new Vector(1f, -1f), 0.5f); tree.Add(sphere); var result = tree.FindBySphere(new Vector(0f, 0f), 1f); Assert.AreEqual(3, result.Count); Assert.IsTrue(result.Contains(point)); Assert.IsTrue(result.Contains(box)); Assert.IsTrue(result.Contains(sphere)); result = tree.FindByBox(new Vector(0f, 1f), new Vector(2f, 0.1f)); Assert.AreEqual(2, result.Count); Assert.IsTrue(result.Contains(point)); Assert.IsTrue(result.Contains(box)); }
public void Add() { Assert.IsFalse(tree.Add(new FreeTreeLeafPoint(new Vector(5f, 5f)))); Assert.AreEqual(0, tree.LeafCount); Assert.AreEqual(0, tree.Depth); Assert.IsTrue(tree.Add(new FreeTreeLeafPoint(new Vector(0.5f, 0.5f)))); Assert.AreEqual(1, tree.LeafCount); Assert.AreEqual(0, tree.Depth); Assert.IsTrue(tree.Add(new FreeTreeLeafBox(new Vector(-1f, 1f), new Vector(3f, 3f)))); Assert.AreEqual(2, tree.LeafCount); Assert.AreEqual(0, tree.Depth); Assert.IsTrue(tree.Add(new FreeTreeLeafSphere(new Vector(1f, -1f), 1f))); Assert.AreEqual(3, tree.LeafCount); Assert.AreEqual(1, tree.Depth); var newItem = new FreeTreeLeafPoint(new Vector(1.5f, 1.5f)); Assert.IsTrue(tree.Add(newItem)); Assert.AreEqual(4, tree.LeafCount); Assert.AreEqual(2, tree.Depth); Assert.IsFalse(tree.Add(newItem)); Assert.AreEqual(4, tree.LeafCount); Assert.AreEqual(2, tree.Depth); }
public void Remove() { tree.Add(new FreeTreeLeafPoint(new Vector(1f, 1f))); tree.Add(new FreeTreeLeafPoint(new Vector(1f, 1f))); var item = new FreeTreeLeafPoint(new Vector(1f, 1f)); tree.Add(item); Assert.IsFalse(tree.Remove(new FreeTreeLeafPoint(new Vector(1f, 1f)))); Assert.AreEqual(3, tree.LeafCount); Assert.AreEqual(2, tree.Depth); Assert.IsTrue(tree.Remove(item)); Assert.AreEqual(2, tree.LeafCount); Assert.AreEqual(0, tree.Depth); Assert.IsFalse(tree.Remove(item)); Assert.AreEqual(2, tree.LeafCount); Assert.AreEqual(0, tree.Depth); }