示例#1
0
        public static void Main(String[] args)
        {
            var quantityArg = args.FirstOrDefault();

            if (Int32.TryParse(quantityArg, out var quantity) && quantity >= 2)
            {
                var allCoordinates = GenerateCoordinates(quantity);
                var minDistance    =
                    GeodeticUtils.FindClosestCoordinates(allCoordinates, out var closest1, out var closest2);
                var maxDistance =
                    GeodeticUtils.FindFirthestCoordinates(allCoordinates, out var furthest1, out var furthest2);

                Console.WriteLine("Random location distance calculator");
                Console.WriteLine($"\nGenerated {quantity} locations:");

                foreach (var coordinate in allCoordinates)
                {
                    Console.WriteLine($"Location: {coordinate}");
                }

                Console.WriteLine($"\nShortest: {minDistance}km");
                Console.WriteLine($"{closest1} ~ {closest2}");
                Console.WriteLine($"\nLongest: {maxDistance}km");
                Console.WriteLine($"{furthest1} ~ {furthest2}");
            }
            else
            {
                Console.WriteLine("Error: first argument must be an integer no less than 2.");
            }
        }
示例#2
0
        public static void DistanceCalculationTest()
        {
            var testPoints            = TestPoints;
            var shortDistance         = GeodeticUtils.DistanceBetweenKilometers(testPoints[0], testPoints[1]);
            var expectedShortDistance = 4198.71459;

            AssertDifferenceMinimal(shortDistance, expectedShortDistance);
            var longDistance         = GeodeticUtils.DistanceBetweenKilometers(testPoints[2], testPoints[3]);
            var expectedLongDistance = 17891.05884;

            AssertDifferenceMinimal(longDistance, expectedLongDistance);
        }
示例#3
0
        public static void ClosestFurthestTest()
        {
            var points = TestPoints;

            GeodeticUtils.FindClosestCoordinates(points, out var first, out var second);
            if (first != points[0] || second != points[1])
            {
                throw new Exception();
            }
            GeodeticUtils.FindFirthestCoordinates(points, out var one, out var two);
            if (one != points[2] || two != points[3])
            {
                throw new Exception();
            }
        }