public void PostalCodeNearBy(double lat, double lng, double radiusKm, string[] expectedNames) { IEnumerable <PostalCode> codes = GeoData.Current.PostalCodeNearBy(lat, lng, radiusKm); CollectionAssert.IsNotEmpty(codes); foreach (PostalCode pc in codes) { double dist = Distance.BetweenPlaces((double)pc.Longitude, (double)pc.Latitude, lng, lat); Assert.LessOrEqual(Math.Floor(dist), Math.Ceiling(radiusKm), pc.Name + " dist: " + dist); } string missing = ""; foreach (string n in expectedNames) { PostalCode pc = codes.FirstOrDefault(c => string.Compare(c.Name, n, true) == 0); if (pc == null) { missing += " " + n; } } Assert.That(missing.Length == 0, missing); }