public void Polygon_IntersectWithLine() { List<LineSegment> lineSegments = new List<LineSegment>(); lineSegments.Add(new LineSegment(Point.Origin, Point.MakePointWithInches(0, 2, 0))); lineSegments.Add(new LineSegment(Point.MakePointWithInches(-3, 2, 0), Point.MakePointWithInches(0, 2, 0))); lineSegments.Add(new LineSegment(Point.MakePointWithInches(-3, 2, 0), Point.Origin)); Polygon testPolygon = new Polygon(lineSegments); Line testIntersect = new Line(Point.MakePointWithInches(-1.5, 1, 0), Point.MakePointWithInches(-3, -2, 1)); Line testIntersectSide = new Line(Point.MakePointWithInches(0, 1, 0), Point.MakePointWithInches(2, -1, 1)); Line noIntersect = new Line(Point.MakePointWithInches(-4, 1, 0), Point.MakePointWithInches(-5, -2, 1)); Point intersect = testPolygon.IntersectWithLine(testIntersect); Point intersectSide = testPolygon.IntersectWithLine(testIntersectSide); Point none = testPolygon.IntersectWithLine(noIntersect); (intersect == Point.MakePointWithInches(-1.5, 1, 0)).Should().BeTrue(); (intersectSide == Point.MakePointWithInches(0, 1, 0)).Should().BeTrue(); (none == null).Should().BeTrue(); }