public void RTree_Range_Search_Test() { var nodeCount = 1000; var randomPolygons = new 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); } //IEnumerable test Assert.AreEqual(tree.Count, tree.Count()); 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); }
public void RectIntersection_Smoke_Test() { var result = RectangleIntersection.FindIntersection(new Rectangle() { LeftTopCorner = new Point(0, 10), RightBottomCorner = new Point(10, 0) }, new Rectangle() { LeftTopCorner = new Point(5, 5), RightBottomCorner = new Point(15, 0) }); Assert.AreEqual(result, new Rectangle() { LeftTopCorner = new Point(5, 5), RightBottomCorner = new Point(10, 0) }); result = RectangleIntersection.FindIntersection(new Rectangle() { LeftTopCorner = new Point(0, 10), RightBottomCorner = new Point(4, 0) }, new Rectangle() { LeftTopCorner = new Point(5, 5), RightBottomCorner = new Point(15, 0) }); Assert.AreEqual(result, null); }
public void RectIntersection_Smoke_Test() { var rectangleComparer = new RectangleComparer(); var result = RectangleIntersection.FindIntersection(new Rectangle() { LeftTopCorner = new Point(0, 10), RightBottomCorner = new Point(10, 0) }, new Rectangle() { LeftTopCorner = new Point(5, 5), RightBottomCorner = new Point(15, 0) }); Assert.IsTrue(rectangleComparer.Equals(result, new Rectangle() { LeftTopCorner = new Point(5, 5), RightBottomCorner = new Point(10, 0) })); result = RectangleIntersection.FindIntersection(new Rectangle() { LeftTopCorner = new Point(0, 10), RightBottomCorner = new Point(4, 0) }, new Rectangle() { LeftTopCorner = new Point(5, 5), RightBottomCorner = new Point(15, 0) }); Assert.IsTrue(rectangleComparer.Equals(result, null)); }
public void RectIntersection_Smoke_Test() { var result = RectangleIntersection.FindIntersection(new Rectangle() { LeftTopCorner = new Point() { x = 0, y = 10 }, RightBottomCorner = new Point() { x = 10, y = 0 } }, new Rectangle() { LeftTopCorner = new Point() { x = 5, y = 5 }, RightBottomCorner = new Point() { x = 15, y = 0 } }); Assert.AreEqual(result, new Rectangle() { LeftTopCorner = new Point() { x = 5, y = 5 }, RightBottomCorner = new Point() { x = 10, y = 0 } }); result = RectangleIntersection.FindIntersection(new Rectangle() { LeftTopCorner = new Point() { x = 0, y = 10 }, RightBottomCorner = new Point() { x = 4, y = 0 } }, new Rectangle() { LeftTopCorner = new Point() { x = 5, y = 5 }, RightBottomCorner = new Point() { x = 15, y = 0 } }); Assert.AreEqual(result, default(Rectangle)); }