Example #1
0
        public void LineAlgorithmsIsCollinearTest()
        {
            // collinear lines
            Coordinate firstLineStart  = new Coordinate(1, 1);
            Coordinate firstLineEnd    = new Coordinate(4, 1);
            Coordinate secondLineStart = new Coordinate(1, 1);
            Coordinate secondLineEnd   = new Coordinate(4, 1);

            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(1, 1);
            firstLineEnd    = new Coordinate(4, 1);
            secondLineStart = new Coordinate(1, 1);
            secondLineEnd   = new Coordinate(15, 1);
            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(1, 1);
            firstLineEnd    = new Coordinate(16, 1);
            secondLineStart = new Coordinate(15, 1);
            secondLineEnd   = new Coordinate(2, 1);
            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(1, 1);
            firstLineEnd    = new Coordinate(4, 1);
            secondLineStart = new Coordinate(15, 1);
            secondLineEnd   = new Coordinate(1, 1);
            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(1, 1);
            firstLineEnd    = new Coordinate(4, 1);
            secondLineStart = new Coordinate(4, 1);
            secondLineEnd   = new Coordinate(-5, 1);
            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(20, 1);
            firstLineEnd    = new Coordinate(250, 1);
            secondLineEnd   = new Coordinate(1000, 1);
            secondLineStart = new Coordinate(250, 1);
            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(20, 1);
            firstLineEnd    = new Coordinate(250, 1);
            secondLineStart = new Coordinate(259, 1);
            secondLineEnd   = new Coordinate(1000, 1);
            Assert.IsTrue(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            // not collinear lines
            firstLineStart  = new Coordinate(20, 1);
            firstLineEnd    = new Coordinate(250, 1);
            secondLineStart = new Coordinate(1, 100);
            secondLineEnd   = new Coordinate(1, 1200);
            Assert.IsFalse(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(20, 1);
            firstLineEnd    = new Coordinate(250, 1);
            secondLineStart = new Coordinate(250, 1);
            secondLineEnd   = new Coordinate(1000, 2);
            Assert.IsFalse(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));

            firstLineStart  = new Coordinate(1.2, 1.2);
            firstLineEnd    = new Coordinate(1.2, 7.2);
            secondLineStart = new Coordinate(2.2, 8.2);
            secondLineEnd   = new Coordinate(2.2, 15.2);
            Assert.IsFalse(LineAlgorithms.IsCollinear(firstLineStart, firstLineEnd, secondLineStart, secondLineEnd));
        }