public void CalculateDistanceAs111KmBetweenTwoMeridians(int fromLatitude, int toLatitude) { var from = new Location(fromLatitude, 0); var to = new Location(toLatitude, 0); var result = distanceCalculator.CalculateDistanceAsKm(from, to); Assert.Equal(111.19, Math.Round(result, 2)); }
public IEnumerable <Customer> Find(Configuration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var customerLocations = locationReader.Read(configuration.CustomerPath); var boundingRectangle = distanceCalculator.GetBoundingRectangle(configuration.MaxDistance, configuration.OfficeLocation); foreach (var customerLocationItem in customerLocations) { if (!boundingRectangle.DoesContain(customerLocationItem.Location)) { continue; } var distance = distanceCalculator.CalculateDistanceAsKm(customerLocationItem.Location, configuration.OfficeLocation); if (distance > configuration.MaxDistance) { continue; } yield return(customerLocationItem.Customer); } }