public void EqualityOperatorsRespectsEqualityMethod() { var pair = new TestUnorderedPair <int>(1, 2); var matchingPair = new TestUnorderedPair <int>(1, 2); var nonMatchingPair = new TestUnorderedPair <int>(3, 4); var differentTypeMatchingPair = new TestUnorderedPair <decimal>(1, 2); var reversedPair = new TestUnorderedPair <int>(2, 1); Assert.IsTrue(pair != null); Assert.IsTrue((TestUnorderedPair <int>)null == null); Assert.IsTrue(pair == matchingPair); Assert.IsTrue(pair != nonMatchingPair); Assert.IsTrue(pair != differentTypeMatchingPair); Assert.IsTrue(pair == reversedPair); Assert.IsFalse(pair == null); Assert.IsFalse((TestUnorderedPair <int>)null != null); Assert.IsFalse(pair != matchingPair); Assert.IsFalse(pair == nonMatchingPair); Assert.IsFalse(pair == differentTypeMatchingPair); Assert.IsFalse(pair != reversedPair); }
// Just has to not throw. public void GetHashCodeRespectsEquality() { var pairHash = new TestUnorderedPair <int>(1, 2).GetHashCode(); var matchingPairHash = new TestUnorderedPair <int>(1, 2).GetHashCode(); var reversedPairHash = new TestUnorderedPair <int>(2, 1).GetHashCode(); Assert.IsTrue(pairHash.Equals(matchingPairHash)); Assert.IsTrue(pairHash.Equals(reversedPairHash)); //Don't need to assert anything about the other cases, since inequality doesn't demand unequal hashes. var pairHash2 = new TestUnorderedPair <string>("asdkffd4T?$%Yw%LW", "2v5gws45£Q$T5tyw").GetHashCode(); var matchingPairHash2 = new TestUnorderedPair <string>("asdkffd4T?$%Yw%LW", "2v5gws45£Q$T5tyw").GetHashCode(); var reversedPairHash2 = new TestUnorderedPair <string>("2v5gws45£Q$T5tyw", "asdkffd4T?$%Yw%LW").GetHashCode(); Assert.IsTrue(pairHash2.Equals(matchingPairHash2)); Assert.IsTrue(pairHash2.Equals(reversedPairHash2)); //Don't need to assert anything about the other cases, since inequality doesn't demand unequal hashes. }
public void EqualityTestsWork() { var pair = new TestUnorderedPair <int>(1, 2); var matchingPair = new TestUnorderedPair <int>(1, 2); var nonMatchingPair = new TestUnorderedPair <int>(3, 4); var differentTypeMatchingPair = new TestUnorderedPair <decimal>(1, 2); var reversedPair = new TestUnorderedPair <int>(2, 1); Assert.IsFalse(pair.Equals(null)); Assert.IsTrue(pair.Equals(matchingPair)); Assert.IsFalse(pair.Equals(nonMatchingPair)); Assert.IsFalse(pair.Equals(differentTypeMatchingPair)); Assert.IsTrue(pair.Equals(reversedPair)); var defaultValuePair = new TestUnorderedPair <int>(); var equivalentToDefaultValuePair = new TestUnorderedPair <int>(0, 0); Assert.IsTrue(defaultValuePair.Equals(equivalentToDefaultValuePair)); }