public void TestInitialBearing()
        {
            Initialize();

            var result = ArnosGrove.InitialBearing(FiveKilometresEast);

            var errorDelta = 90 * errorPercent;

            Assert.AreEqual(result, 90, errorDelta);
        }
        /// <summary>
        /// Returns final bearing arriving at supplied destination position from this position; the
        /// final bearing will differ from the initial bearing by varying degrees according to
        /// distance and latitude.
        /// </summary>
        /// <param name="toPosition">The destination position</param>
        /// <returns>Final bearing, in degrees clockwise from True North</returns>
        public static double FinalBearing(this BasicGeoposition thisPoint, BasicGeoposition toPoint)
        {
            var initialBearing = toPoint.InitialBearing(thisPoint);

            return((initialBearing + 180) % 360);
        }
        /// <summary>
        /// Returns final bearing arriving at supplied destination position from this position; the
        /// final bearing will differ from the initial bearing by varying degrees according to
        /// distance and latitude.
        /// </summary>
        /// <param name="toPosition">The destination position</param>
        /// <returns>Final bearing, in degrees clockwise from True North</returns>
        public static double FinalBearing(this BasicGeoposition thisPoint, BasicGeoposition toPoint)
        {
            var initialBearing = toPoint.InitialBearing(thisPoint);

            return (initialBearing + 180) % 360;
        }