public void GetHashCode_ReturnsDifferentHashCodes_ForDifferentArrays() { var r1 = _comparer.GetHashCode(new[] { 1, 2, 3 }); var r2 = _comparer.GetHashCode(new[] { 1, 2, 4 }); Assert.AreNotEqual(r1, r2); }
static void Main() { byte[] x = { 1, 2, 3 }; byte[] y = { 1, 2, 3 }; byte[] z = { 4, 5, 6 }; var comparer = new ArrayEqualityComparer <byte>(); Console.WriteLine(comparer.GetHashCode(x)); Console.WriteLine(comparer.GetHashCode(y)); Console.WriteLine(comparer.GetHashCode(z)); Console.WriteLine(comparer.Equals(x, y)); Console.WriteLine(comparer.Equals(x, z)); }
public void ArrayEqualityComparerGetHashCodeReturnsDefaultHashCodeIfArrayIsEmpty() { const int expectedHashCode = 23; var comparer = new ArrayEqualityComparer <int>(); int[] array = new int[0]; int result = comparer.GetHashCode(array); Assert.AreEqual(expectedHashCode, result); }
public void ArrayEqualityComparerGetHashCodeReturnsZeroIfArrayIsNull() { const int expectedHashCode = 0; var comparer = new ArrayEqualityComparer <int>(); int[] array = null; int result = comparer.GetHashCode(array); Assert.AreEqual(expectedHashCode, result); }
static void Main(string[] args) { int[] x = { 1, 2, 3 }; int[] y = { 1, 2, 3 }; int[] z = { 4, 5, 6 }; var comparer = new ArrayEqualityComparer <int>(); Console.WriteLine(comparer.GetHashCode(x)); Console.WriteLine(comparer.GetHashCode(y)); Console.WriteLine(comparer.GetHashCode(z)); Console.WriteLine(comparer.Equals(x, y)); Console.WriteLine(comparer.Equals(x, z)); Console.WriteLine(); Console.WriteLine("Byte comparers"); byte[] x1 = { 1, 2, 3 }; byte[] y1 = { 1, 2, 3 }; byte[] z1 = { 4, 5, 6 }; var comparer1 = new ByteArrayEqualityComparer(); Console.WriteLine(comparer1.GetHashCode(x1)); Console.WriteLine(comparer1.GetHashCode(y1)); Console.WriteLine(comparer1.GetHashCode(z1)); Console.WriteLine(comparer1.Equals(x1, y1)); Console.WriteLine(comparer1.Equals(x1, z1)); var t = new Dictionary <byte[], string>(comparer1); t.Add(x1, "x"); t.Add(z1, "z"); Console.WriteLine($"t[y] = {t[y1]} "); Console.WriteLine("Press [Enter] for continue ..."); Console.ReadLine(); }
public void ArrayEqualityComparerGetHashCodeReturnsSameHashCodeIfArrayContainsNullElements() { var comparer = new ArrayEqualityComparer <int?>(); int?[] array = new int?[] { 1, 2, null, 4, 5 }; //get the HashCode 2000 times to confirm it is consistent for lifetime of the array HashSet <int> hashes = new HashSet <int>(); for (int i = 0; i < 2000; i++) { hashes.Add(comparer.GetHashCode(array)); } Assert.AreEqual(1, hashes.Count); }
public static int GetArrayHashCode <T> (this T[] array) { return(ArrayEqualityComparer <T> .GetHashCode(array)); }
public override int GetHashCode() { return(DataComparer.GetHashCode(_data)); }