public void NotEvenClose() { string x = "a"; string y = "It was the best of times, it was the worse of times"; SpookyStringEqualityComparer eq = new SpookyStringEqualityComparer(); Assert.False(eq.Equals(x, y)); Assert.False(eq.Equals(x, y.ToCharArray())); Assert.False(eq.Equals(x.ToCharArray(), y)); Assert.False(eq.Equals(x.ToCharArray(), y.ToCharArray())); }
public void ConsistentHash() { var x = new SpookyStringEqualityComparer(); var y = new SpookyStringEqualityComparer(); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde")); Assert.Equal(x.GetHashCode("abcde".ToCharArray()), y.GetHashCode("abcde".ToCharArray())); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde".ToCharArray())); x = new SpookyStringEqualityComparer(0); y = new SpookyStringEqualityComparer(0); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde")); Assert.Equal(x.GetHashCode("abcde".ToCharArray()), y.GetHashCode("abcde".ToCharArray())); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde".ToCharArray())); }
public void ConsistentHash() { SpookyStringEqualityComparer x = new SpookyStringEqualityComparer(); SpookyStringEqualityComparer y = new SpookyStringEqualityComparer(); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde")); Assert.Equal(x.GetHashCode("abcde".ToCharArray()), y.GetHashCode("abcde".ToCharArray())); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde".ToCharArray())); x = new SpookyStringEqualityComparer(0); y = new SpookyStringEqualityComparer(0); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde")); Assert.Equal(x.GetHashCode("abcde".ToCharArray()), y.GetHashCode("abcde".ToCharArray())); Assert.Equal(x.GetHashCode("abcde"), y.GetHashCode("abcde".ToCharArray())); }
public void SelfEquals() { SpookyStringEqualityComparer eq = new SpookyStringEqualityComparer(42); SpookyStringEqualityComparer eqX = new SpookyStringEqualityComparer(42); Assert.True(Equals(eq, eqX)); HashSet <SpookyStringEqualityComparer> hset = new HashSet <SpookyStringEqualityComparer> { new SpookyStringEqualityComparer() }; Assert.True(hset.Add(eq)); Assert.False(hset.Add(eqX)); }
public void RollAlong() { char[] x = new char[65]; char[] y = new char[65]; SpookyStringEqualityComparer eq = new SpookyStringEqualityComparer(); for (int i = 0; i != x.Length; ++i) { x[i] = (char)(i + 'a'); Assert.False(eq.Equals(x, y)); y[i] = (char)(i + 'a'); } Assert.True(eq.Equals(x, y)); }
public void NullsAndReferencesCorrect() { string str = "abcdefg"; char[] arr = "abcdefg".ToCharArray(); SpookyStringEqualityComparer eq = new SpookyStringEqualityComparer(); Assert.True(eq.Equals(arr, arr)); Assert.True(eq.Equals(default(string), default(string))); Assert.True(eq.Equals(default(string), default(char[]))); Assert.True(eq.Equals(default(char[]), default(string))); Assert.True(eq.Equals(default(char[]), default(char[]))); Assert.False(eq.Equals(arr, default(char[]))); Assert.False(eq.Equals(default(char[]), arr)); Assert.False(eq.Equals(arr, default(string))); Assert.False(eq.Equals(default(string), arr)); Assert.False(eq.Equals(default(string), str)); Assert.False(eq.Equals(str, default(string))); Assert.False(eq.Equals(str, default(char[]))); }
public void NullsAndReferencesCorrect() { var str = "abcdefg"; var arr = "abcdefg".ToCharArray(); char[] nulArr = null; string nulStr = null; var eq = new SpookyStringEqualityComparer(); Assert.True(eq.Equals(arr, arr)); Assert.True(eq.Equals(nulStr, nulStr)); Assert.True(eq.Equals(nulStr, nulArr)); Assert.True(eq.Equals(nulArr, nulStr)); Assert.True(eq.Equals(nulArr, nulArr)); Assert.False(eq.Equals(arr, nulArr)); Assert.False(eq.Equals(nulArr, arr)); Assert.False(eq.Equals(arr, nulStr)); Assert.False(eq.Equals(nulStr, arr)); Assert.False(eq.Equals(nulStr, str)); Assert.False(eq.Equals(str, nulStr)); Assert.False(eq.Equals(str, nulArr)); }
public void NotEvenClose() { string x = "a"; string y = "It was the best of times, it was the worse of times"; var eq = new SpookyStringEqualityComparer(); Assert.False(eq.Equals(x, y)); Assert.False(eq.Equals(x, y.ToCharArray())); Assert.False(eq.Equals(x.ToCharArray(), y)); Assert.False(eq.Equals(x.ToCharArray(), y.ToCharArray())); }
public void SelfEquals() { var eq = new SpookyStringEqualityComparer(42); var eqX = new SpookyStringEqualityComparer(42); Assert.True(object.Equals(eq, eqX)); var hset = new HashSet<SpookyStringEqualityComparer>(); hset.Add(new SpookyStringEqualityComparer()); Assert.True(hset.Add(eq)); Assert.False(hset.Add(eqX)); }
public void RollAlong() { var x = new char[65]; var y = new char[65]; var eq = new SpookyStringEqualityComparer(); for(int i = 0; i != x.Length; ++i) { x[i] = (char)(i + (int)'a'); Assert.False(eq.Equals(x, y)); y[i] = (char)(i + (int)'a'); } Assert.True(eq.Equals(x, y)); }