public void Vincenty_CorrectlyCalculatesGreatCircleDistanceConcurrently(double latA, double lonA, double latB, double lonB, double distanceinMeters, int maxIterations, double tolerance)
        {
            IGeographicCoordinate pointA = new GeographicCoordinate(latA, lonA);
            IGeographicCoordinate pointB = new GeographicCoordinate(latB, lonB);

            IDistance expected = new Distance(distanceinMeters, DistanceMeasurement.Meters);

            var distances = new ConcurrentQueue <IDistance>()
            {
            };

            void action() => distances.Enqueue(pointA.GreatCircleDistanceTo(pointB, maxIterations, tolerance));

            Action[] actions = Enumerable.Repeat((Action)action, 10).ToArray();

            Parallel.Invoke(actions);

            while (distances.Count > 0)
            {
                IDistance result;
                distances.TryPeek(out result);

                Assert.Equal(expected, result);

                distances.TryDequeue(out result);
            }
        }
        public void Vincenty_CorrectlyCalculatesGreatCircleDistance(double latA, double lonA, double latB, double lonB, double distanceinMeters, int maxIterations, double tolerance)
        {
            IGeographicCoordinate pointA = new GeographicCoordinate(latA, lonA);
            IGeographicCoordinate pointB = new GeographicCoordinate(latB, lonB);

            IDistance expected = new Distance(distanceinMeters, DistanceMeasurement.Meters);

            IDistance result = pointA.GreatCircleDistanceTo(pointB, maxIterations, tolerance);

            Assert.Equal(expected, result);
        }