public virtual void TestEquality() { var values = new List <string> { "sally", "sells", "seashells", "by", "the", "sea", "shore" }; var charArraySet = new CharArraySet(TEST_VERSION_CURRENT, values, false); var charArraySetCopy = new CharArraySet(TEST_VERSION_CURRENT, values, false); values.Reverse(); var charArraySetReverse = new CharArraySet(TEST_VERSION_CURRENT, values, false); var equatableSetReverse = new JCG.HashSet <string>(values); assertTrue(charArraySet.GetHashCode().Equals(charArraySetCopy.GetHashCode())); assertTrue(charArraySet.Equals(charArraySetCopy)); assertTrue(charArraySet.GetHashCode().Equals(charArraySetReverse.GetHashCode())); assertTrue(charArraySet.Equals(charArraySetReverse)); assertTrue(charArraySet.GetHashCode().Equals(equatableSetReverse.GetHashCode())); assertTrue(charArraySet.Equals(equatableSetReverse)); values = new List <string> { "sally", "seashells", "by", "the", "sea", "shore" }; charArraySet.Clear(); charArraySet.UnionWith(values); assertFalse(charArraySet.GetHashCode().Equals(charArraySetCopy.GetHashCode())); assertFalse(charArraySet.Equals(charArraySetCopy)); assertFalse(charArraySet.GetHashCode().Equals(charArraySetReverse.GetHashCode())); assertFalse(charArraySet.Equals(charArraySetReverse)); assertFalse(charArraySet.GetHashCode().Equals(equatableSetReverse.GetHashCode())); assertFalse(charArraySet.Equals(equatableSetReverse)); equatableSetReverse.Remove("sells"); assertTrue(charArraySet.GetHashCode().Equals(equatableSetReverse.GetHashCode())); assertTrue(charArraySet.Equals(equatableSetReverse)); }