public void Instance_Is_Object()
        {
            //Arrange
            var type = typeof(object);

            //Act
            var airportCoordinates = new AirportCoordinates();

            //Assert
            Assert.IsInstanceOf(type, airportCoordinates);
        }
        public static double GetDistanceInMiles(this AirportCoordinates airportCoordinates)
        {
            var rFromLatitude = Math.PI * airportCoordinates.From.Latitude / 180;
            var rToLatitude   = Math.PI * airportCoordinates.To.Latitude / 180;
            var theta         = airportCoordinates.From.Longitude - airportCoordinates.To.Longitude;
            var rTheta        = Math.PI * theta / 180;

            var distInMiles =
                Math.Sin(rFromLatitude) * Math.Sin(rToLatitude) + Math.Cos(rFromLatitude) *
                Math.Cos(rToLatitude) * Math.Cos(rTheta);

            distInMiles = Math.Acos(distInMiles);
            distInMiles = distInMiles * 180 / Math.PI;
            distInMiles = distInMiles * 60 * 1.1515;

            return(distInMiles);
        }
Example #3
0
        public async Task <double> Calculate(AirportCodes airportCodes)
        {
            var from = await _iataGeoClient.GetAsync <AirportResponse>(Endpoints.GetCoordinates + $"/{airportCodes.From}");

            if (!from.IsSuccessStatusCode)
            {
                throw new AirportNotFoundException();
            }

            var to = await _iataGeoClient.GetAsync <AirportResponse>(Endpoints.GetCoordinates + $"/{airportCodes.To}");

            if (!to.IsSuccessStatusCode)
            {
                throw new AirportNotFoundException();
            }

            var airportCoordinates = new AirportCoordinates
            {
                From = new Airport(from.Response),
                To   = new Airport(to.Response)
            };

            return(airportCoordinates.GetDistanceInMiles());
        }