public void RTree_Range_Search_Test() { var nodeCount = 1000; var randomPolygons = new System.Collections.Generic.HashSet <Polygon>(); for (int i = 0; i < nodeCount; i++) { randomPolygons.Add(getRandomPointOrPolygon()); } var order = 5; var tree = new RTree(order); foreach (var polygon in randomPolygons) { tree.Insert(polygon); } var searchRectangle = getRandomPointOrPolygon().GetContainingRectangle(); var expectedIntersections = randomPolygons.Where(x => RectangleIntersection.FindIntersection(searchRectangle, x.GetContainingRectangle()) != null).ToList(); var actualIntersections = tree.RangeSearch(searchRectangle); Assert.AreEqual(expectedIntersections.Count, actualIntersections.Count); }