예제 #1
0
        public void TestCalculate()
        {
            var a = new Point(1, 6);
            var b = new Point(7, 5);
            var c = new Point(1, 1);
            var d = new Point(2, 4);
            var e = new Point(4, 7);

            var points = new LinkedList <Point>(new Point[5]
            {
                a, b, c, d, e
            });
            var expected = new LinkedList <Point>(new Point[4]
            {
                c, a, e, b
            });
            var actual = JarvisMarch.Calculate(points);

            AreEqualLinkedLists(actual, expected);

            a = new Point(6, 6);
            b = new Point(5, 5);
            c = new Point(7, 7);
            d = new Point(3, 1);
            e = new Point(7, 2);
            var f = new Point(6, 3);
            var j = new Point(3, 5);

            points = new LinkedList <Point>(new Point[7]
            {
                a, b, c, d, e, f, j
            });
            expected = new LinkedList <Point>(new Point[4]
            {
                d, j, c, e
            });
            actual = JarvisMarch.Calculate(points);

            AreEqualLinkedLists(actual, expected);

            a = new Point(-71, -56);
            b = new Point(-72, -59);
            c = new Point(-75, -56);
            d = new Point(-70, -55);
            e = new Point(-72, -58);

            points = new LinkedList <Point>(new Point[5]
            {
                a, b, c, d, e
            });
            expected = new LinkedList <Point>(new Point[3]
            {
                c, d, b
            });
            actual = JarvisMarch.Calculate(points);

            AreEqualLinkedLists(actual, expected);
        }