public void LineSegmentsDoNotIntersect()
        {
            Vector intersection;
            var    actual = LineSegment.LineSegementsIntersect(
                new Vector(3, 0),
                new Vector(3, 4),
                new Vector(0, 5),
                new Vector(5, 5),
                out intersection);

            Assert.IsFalse(actual);
        }
        public void LineSegmentsIntersect()
        {
            Vector intersection;
            var    actual = LineSegment.LineSegementsIntersect(
                new Vector(0, 0),
                new Vector(5, 5),
                new Vector(0, 5),
                new Vector(5, 0),
                out intersection);

            Assert.IsTrue(actual);
            Assert.AreEqual(new Vector(2.5, 2.5), intersection);
        }
        public void LineSegmentsAreCollinearAndOverlapping()
        {
            Vector intersection;
            var    actual = LineSegment.LineSegementsIntersect(
                new Vector(0, 0),
                new Vector(2, 0),
                new Vector(1, 0),
                new Vector(3, 0),
                out intersection,
                considerOverlapAsIntersect: true);

            Assert.IsTrue(actual);
            Assert.AreEqual(double.NaN, intersection.X);
            Assert.AreEqual(double.NaN, intersection.Y);
        }