public void SetComparer_SetEqualsTests() { List <T> objects = new List <T>() { CreateT(1), CreateT(2), CreateT(3), CreateT(4), CreateT(5), CreateT(6) }; var set = new SegmentedHashSet <SegmentedHashSet <T> >() { new SegmentedHashSet <T> { objects[0], objects[1], objects[2] }, new SegmentedHashSet <T> { objects[3], objects[4], objects[5] } }; var noComparerSet = new SegmentedHashSet <SegmentedHashSet <T> >() { new SegmentedHashSet <T> { objects[0], objects[1], objects[2] }, new SegmentedHashSet <T> { objects[3], objects[4], objects[5] } }; var comparerSet1 = new SegmentedHashSet <SegmentedHashSet <T> >(SegmentedHashSet <T> .CreateSetComparer()) { new SegmentedHashSet <T> { objects[0], objects[1], objects[2] }, new SegmentedHashSet <T> { objects[3], objects[4], objects[5] } }; var comparerSet2 = new SegmentedHashSet <SegmentedHashSet <T> >(SegmentedHashSet <T> .CreateSetComparer()) { new SegmentedHashSet <T> { objects[3], objects[4], objects[5] }, new SegmentedHashSet <T> { objects[0], objects[1], objects[2] } }; Assert.False(noComparerSet.SetEquals(set)); Assert.True(comparerSet1.SetEquals(set)); Assert.True(comparerSet2.SetEquals(set)); }