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));
        }