public void RemoveSelfIntersectionsTest() { var geometry = (ILucidLine)GeometryHelper.Create(File.ReadAllText("../../Data/selfIntersectingGeometry.json")); var fixedGeometry = LucidLine.Create(GeometryHelper.RemoveSelfIntersections(geometry)); Assert.IsTrue(GeometryHelper.IsValid(fixedGeometry)); Assert.IsFalse(GeometryHelper.SelfIntersects(fixedGeometry)); geometry = (ILucidLine)GeometryHelper.Create(File.ReadAllText("../../Data/selfIntersectingGeometry2.json")); fixedGeometry = LucidLine.Create(GeometryHelper.RemoveSelfIntersections(geometry)); Assert.IsTrue(GeometryHelper.IsValid(fixedGeometry)); Assert.IsFalse(GeometryHelper.SelfIntersects(fixedGeometry)); }
public void LengthTest() { var length = GeometryHelper.Length(LucidLine.Create(new IPoint[] { LucidPoint.Create(0, 0), LucidPoint.Create(1, 0), LucidPoint.Create(1, 2), })); Assert.AreEqual(3, length); length = GeometryHelper.Length(LucidLine.Create(new IPoint[] { LucidPoint.Create(0, 0), LucidPoint.Create(0, 5) })); Assert.AreEqual(5, length); }
public void IntersectionLineTest() { var first = LucidLine.Create(new IPoint[] { new LucidPoint(0, 0), new LucidPoint(5, 5) }); var second = LucidLine.Create(new IPoint[] { new LucidPoint(-1, 4), new LucidPoint(5, 0) }); var intersection = GeometryHelper.LineIntersections(first, second).First(); Assert.AreEqual(2, intersection.X); Assert.AreEqual(2, intersection.Y); second.Translate(-5, -5); var intersections = GeometryHelper.LineIntersections(first, second); Assert.AreEqual(0, intersections.Count()); }
public void SplitTest() { var first = LucidLine.Create(new IPoint[] { new LucidPoint(0, 0), new LucidPoint(5, 5), new LucidPoint(10, 9) }); var second = LucidLine.Create(new IPoint[] { new LucidPoint(-1, 4), new LucidPoint(5, 0) }); var parts = GeometryHelper.Split(first, second); Assert.AreEqual(2, parts.Count()); Assert.AreEqual(2, parts.First().Vertices.Count()); Assert.AreEqual(3, parts.ElementAt(1).Vertices.Count()); second.Translate(-10, -10); parts = GeometryHelper.Split(first, second); Assert.AreEqual(1, parts.Count()); Assert.AreEqual(3, parts.First().Vertices.Count()); }
public void NearestVertexTest() { var line = new LucidLine(); line.AddVertex(new LucidVertex() { X = 1, Y = 1 }); line.AddVertex(new LucidVertex() { X = 10, Y = 10 }); var result = GeometryHelper.NearestVertex(line.Vertices, new LucidPoint() { X = 0, Y = 0 }); Assert.AreEqual(1, result.Point.X); Assert.AreEqual(1, result.Point.Y); }