public void GetEnum()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            coll.Add(0);
            coll.Add(1);
            Assert.That(coll, Is.EquivalentTo(new[] { 0, 1 }));
        }
        public void Height()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            Assert.That(coll.Height, Is.EqualTo(0));
            coll.Add(0);
            Assert.That(coll.Height, Is.EqualTo(1));
            coll.Add(1);
            Assert.That(coll.Height, Is.EqualTo(2));
            coll.Add(2);
            Assert.That(coll.Height, Is.EqualTo(2));
            coll.Add(3);
            Assert.That(coll.Height, Is.EqualTo(3));
        }
        public void Add()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            coll.Add(0);
            Assert.That(coll.Count, Is.EqualTo(1));
            Assert.That(coll.First, Is.EqualTo(0));
            Assert.That(coll.Last, Is.EqualTo(0));
            coll.Add(1);
            Assert.That(coll.First, Is.EqualTo(0));
            Assert.That(coll.Last, Is.EqualTo(1));
            coll.Add(1);
            Assert.That(coll.Count, Is.EqualTo(2));
        }
        public void MaxHeight()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            coll.Add(0);
            Assert.That(coll.MaxHeight, Is.EqualTo(2));
        }
        public void Remove()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            coll.Add(0);
            coll.Remove(1);
            Assert.That(coll.Count, Is.EqualTo(1));
        }
        public void Creation1()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            for (int i = 0; i < 100000; i++)
            {
                coll.Add(i);
            }
            coll.Clear();
        }
        public void Add1000()
        {
            var coll = new AvlBinaryTreeCollection <int>();

            for (int i = 0; i < 1000; i++)
            {
                coll.Add(i);
            }
            Assert.That(coll, Is.EquivalentTo(Enumerable.Range(0, 1000)));
            Assert.That(coll.First, Is.EqualTo(0));
            Assert.That(coll.Last, Is.EqualTo(999));
        }
        public void Add10000AndRemove10000()
        {
            var coll = new AvlBinaryTreeCollection <int>();
            var list = new List <int>(Enumerable.Range(0, 100000));

            Randomize(list);
            for (int i = 0; i < 100000; i++)
            {
                coll.Add(list[i]);
            }
            Assert.That(coll.Count, Is.EqualTo(100000));
            for (int i = 0; i < 75000; i++)
            {
                Assert.That(coll.Remove(list[i]), Is.True);
            }
            Assert.That(coll.Count, Is.EqualTo(25000));
        }