public void TestCollectionConstructor()
        {
            Assert.Throws <ArgumentNullException>(() => new SortedTreeSet <int>(collection: null));

            var set = new SortedTreeSet <int>(new[] { 1, 1 });

            Assert.Single(set);
            Assert.Equal(1, set.Min);
            Assert.Equal(1, set.Max);
        }
        public void TestTreeSetBranchingFactorConstructor()
        {
            SortedTreeSet <int> set = new SortedTreeSet <int>(8);

            Assert.Empty(set);

            Assert.Throws <ArgumentOutOfRangeException>(() => new SortedTreeSet <int>(-1));
            Assert.Throws <ArgumentOutOfRangeException>(() => new SortedTreeSet <int>(0));
            Assert.Throws <ArgumentOutOfRangeException>(() => new SortedTreeSet <int>(1));
        }
        private void TestEmptySetMinMaxImpl <T>()
        {
            var set = new SortedTreeSet <T>();

            Assert.Equal(default, set.Min);
        public void TestTreeSetConstructor()
        {
            SortedTreeSet <int> set = new SortedTreeSet <int>();

            Assert.Empty(set);
        }