void AssertSame( string a, string b, SameAsOptions options = SameAsOptions.None) { var first = Normalize(a); var second = Normalize(b); Assert.IsTrue(first.SameAs(second, options)); }
public bool SameAs(Address other, SameAsOptions options = SameAsOptions.None) { return(Equals(Number, other.Number) && Equals(NumberFraction, other.NumberFraction) && Equals(DirectionalPrefix, other.DirectionalPrefix) && Equals(StreetName, other.StreetName) // TODO: StreetType needs abbreviation check && Equals(StreetType, other.StreetType) && Equals(DirectionalSuffix, other.DirectionalSuffix) // UnitType is ignored && Equals(UnitNumber, other.UnitNumber) && (Equals(City, other.City) || (options == SameAsOptions.AssumeMissingCityIsSame && (string.IsNullOrWhiteSpace(City) || string.IsNullOrWhiteSpace(other.City)))) // PostalCode and PostalCodeExt are ignored by default && (options != SameAsOptions.ComparePostalCode || Equals(PostalCode, other.PostalCode)) && Equals(State, other.State)); }