public void ClassWithCustomEquals() { var point1 = new EqualsMethod.CustomEquals.PointClass { X = 1, Y = 2 }; var point2 = new EqualsMethod.CustomEquals.PointClass { X = 1, Y = 2 }; Assert.IsTrue(point1.Equals(point2)); }
public void ClassWithCustomEqualsHashSet() { var point1 = new EqualsMethod.CustomEquals.PointClass { X = 1, Y = 2 }; var point2 = new EqualsMethod.CustomEquals.PointClass { X = 1, Y = 2 }; // overridden Equals method returns true Assert.IsTrue(point1.Equals(point2)); // default GetHashCode method returns different values Assert.IsFalse(point1.GetHashCode() == point2.GetHashCode()); var set = new HashSet <EqualsMethod.CustomEquals.PointClass>(); set.Add(point1); set.Add(point2); // HashSet adds both points because of different GetHashCode value Assert.IsFalse(set.Count == 1); }