public override bool Equals(object obj) { if (!(obj is Point other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } if (IsValid != other.IsValid) { return(false); } if (!IsValid) { return(true); } return(Longitude.AlmostEqual(other.Longitude) && Latitude.AlmostEqual(other.Latitude)); }