private IEnumerable<DecimalGeoCoordinate> BuildLinePoints(double x1, double y1, double x2, double y2, int lineSegments)
        {
            List<DecimalGeoCoordinate> points = new List<DecimalGeoCoordinate>();

            double dx = Math.Abs(x2 - x1);
            double dy = Math.Abs(y2 - y1);

            DecimalGeoCoordinate startPoint = new DecimalGeoCoordinate(x1, y1);
            DecimalGeoCoordinate endPoint = new DecimalGeoCoordinate(x2, y2);

            double lineIncrements = startPoint.DistanceTo(endPoint) / lineSegments;

            double xIncrement = (x2 > x1) ? dx / lineSegments : -(dx / lineSegments);
            double yIncrement = (y2 > y1) ? dy / lineSegments : -(dy / lineSegments);

            double currentX = startPoint.Latitude;
            double currentY = startPoint.Longitude;

            points.Add(startPoint);

            if (startPoint == endPoint)
                return points;

            for (double pointCount = 0; pointCount < lineSegments - 1; pointCount++)
            {
                currentX += xIncrement;
                currentY += yIncrement;

                points.Add(new DecimalGeoCoordinate(currentX, currentY));
            }

            points.Add(endPoint);

            return points;
        }
        public void DistanceTo_PassValidCoordinate_ReturnsCorrectDistance()
        {
            // Arrange
            DecimalGeoCoordinate testCoordinate = new DecimalGeoCoordinate(1.6, 15.0);
            _sut = new DecimalGeoCoordinate(11.2, 12.0);

            // Act
            double distance = _sut.DistanceTo(testCoordinate);

            // Assert
            Assert.IsTrue(Math.Truncate(distance) == 1117643);
        }