public void ElevationToTests()
        {
            var from = new LocationMock(48.090109, 11.961273, 622.0 + 30.0);
            var to   = new LocationMock(48.184086, 11.611249, 499.0 + 65.0);

            var elevation = from.ElevationTo(to);

            Assert.AreEqual(Math.Round(-0.179888135, 9), Math.Round(elevation, 9), "wrong elevation");
        }
        public void BearingToTests()
        {
            var from = new LocationMock(48.090109, 11.961273, 622.0 + 30.0);
            var to   = new LocationMock(48.184086, 11.611249, 499.0 + 65.0);

            var bearing = from.GreatCircleBearingTo(to);

            Assert.AreEqual(Math.Round(291.91583231225843, 9), Math.Round(bearing, 9), "wrong bearing");
        }
        public void LocationDirectionToTests()
        {
            var from = new LocationMock(48.090109, 11.961273, 622.0 + 30.0);
            var to   = new LocationMock(48.184086, 11.611249, 499.0 + 65.0);

            var direction = from.DirectionTo(to);

            Assert.NotNull(direction, "direction is null");

            Assert.AreEqual(Math.Round(28028.59701576899, 9), Math.Round(direction.Distance, 9), "wrong distance");
            Assert.AreEqual(Math.Round(291.91583231225843, 9), Math.Round(direction.Bearing, 9), "wrong bearing");
            Assert.AreEqual(Math.Round(-0.179888135, 9), Math.Round(direction.Elevation, 9), "wrong elevation");
            Assert.AreSame(from, direction.From, "from not same");
            Assert.AreSame(to, direction.To, "to not same");
        }
        public void FreeSpacePathlossTests()
        {
            var from      = new LocationMock(48.090109, 11.961273, 622.0 + 30.0);
            var to        = new LocationMock(48.184086, 11.611249, 499.0 + 65.0);
            var frequency = 5.8e9;

            var distance = from.HaversineDistanceTo(to);

            var fspl = from.FreeSpacePathloss(to, frequency);

            Assert.AreEqual(Math.Round(136.668370283, 9), Math.Round(fspl, 9), "wrong path loss w/o distance");

            fspl = distance.FreeSpacePathloss(frequency);
            Assert.AreEqual(Math.Round(136.668370283, 9), Math.Round(fspl, 9), "wrong path loss w/ distance");
        }