public void LineIntersection() { Line horizontalLine = new Line(new Vector2D(0.0f, 1.0f), new Vector2D(2.0f, 1.0f)); Line verticalLine = new Line(new Vector2D(1.0f, 0.0f), new Vector2D(1.0f, 2.0f)); Assert.IsTrue(horizontalLine.TestIntersection(verticalLine)); Assert.IsTrue(horizontalLine.TestIntersection(horizontalLine)); Assert.IsTrue(verticalLine.TestIntersection(verticalLine)); Line offsetHorizontalLine = new Line(new Vector2D(0.0f, 3.0f), new Vector2D(2.0f, 3.0f)); Assert.IsFalse(offsetHorizontalLine.TestIntersection(horizontalLine)); Line reverseHorizontalLine = new Line(new Vector2D(2.0f, 1.0f), new Vector2D(0.0f, 1.0f)); Line reverseVerticalLine = new Line(new Vector2D(1.0f, 2.0f), new Vector2D(1.0f, 0.0f)); Line reverseOffsetHorizontalLine = new Line(new Vector2D(0.0f, 3.0f), new Vector2D(2.0f, 3.0f)); Assert.IsTrue(reverseHorizontalLine.TestIntersection(reverseVerticalLine)); Assert.IsTrue(reverseHorizontalLine.TestIntersection(verticalLine)); Assert.IsTrue(reverseVerticalLine.TestIntersection(verticalLine)); Assert.IsTrue(reverseVerticalLine.TestIntersection(reverseVerticalLine)); Assert.IsFalse(reverseHorizontalLine.TestIntersection(reverseOffsetHorizontalLine)); Assert.IsFalse(reverseHorizontalLine.TestIntersection(offsetHorizontalLine)); }