public static void HasReferenceSemantics() { var firstArray = new byte[Blake256Hash.Length]; var secondArray = new byte[Blake256Hash.Length]; for (var i = 0; i < Blake256Hash.Length; i++) { firstArray[i] = (byte)i; secondArray[i] = (byte)i; } var firstHash = new Blake256Hash(firstArray); var secondHash = new Blake256Hash(secondArray); // Value equality Assert.Equal(firstHash, secondHash); Assert.True(firstHash.Equals(secondHash)); Assert.Equal(firstHash.GetHashCode(), secondHash.GetHashCode()); // Reference equality Assert.False(firstHash == secondHash); var hashSet = new HashSet <Blake256Hash> { firstHash }; Assert.True(hashSet.Contains(secondHash)); }
public static void HasReferenceSemantics() { var firstArray = new byte[Blake256Hash.Length]; var secondArray = new byte[Blake256Hash.Length]; for (var i = 0; i < Blake256Hash.Length; i++) { firstArray[i] = (byte)i; secondArray[i] = (byte)i; } var firstHash = new Blake256Hash(firstArray); var secondHash = new Blake256Hash(secondArray); // Value equality Assert.Equal(firstHash, secondHash); Assert.True(firstHash.Equals(secondHash)); Assert.Equal(firstHash.GetHashCode(), secondHash.GetHashCode()); // Reference equality Assert.False(firstHash == secondHash); var hashSet = new HashSet<Blake256Hash> { firstHash }; Assert.True(hashSet.Contains(secondHash)); }