public void TestPopPushInitialCapacity_1()
        {
            var stack = new ArrayStack<int>(1);
            Assert.AreEqual(0, stack.Count);

            stack.Push(27);
            Assert.AreEqual(1, stack.Count);

            stack.Push(108);
            Assert.AreEqual(2, stack.Count);

            stack.Pop();
            Assert.AreEqual(1, stack.Count);

            stack.Pop();
            Assert.AreEqual(0, stack.Count);
        }
        public void TestPushPopElement()
        {
            var stack = new ArrayStack<int>();
            Assert.AreEqual(0, stack.Count);

            stack.Push(1);
            Assert.AreEqual(1, stack.Count);

            stack.Pop();
            Assert.AreEqual(0, stack.Count);
        }
        public void TestPush_1000_Elements()
        {
            var stack = new ArrayStack<int>();
            Assert.AreEqual(0, stack.Count);

            for (int i = 0; i < 1000; i++)
            {
                stack.Push(i);
                Assert.AreEqual(i + 1, stack.Count);
            }

            for (int i = 0; i < 1000; i++)
            {
                stack.Pop();
                Assert.AreEqual(1000 - i - 1, stack.Count);
            }
        }
        public void TestPeakAfterPushPopElement()
        {
            var stack = new ArrayStack<int>();

            stack.Push(10);
            stack.Push(20);
            Assert.AreEqual(20, stack.Peek());
            stack.Pop();
            Assert.AreEqual(10, stack.Peek());
        }
 public void TestPopFromEmptyStack()
 {
     var stack = new ArrayStack<int>();
     stack.Pop();
 }
 public void TestCountAfterPoping()
 {
     var stack = new ArrayStack<int>();
     stack.Push(1);
     stack.Push(2);
     stack.Push(3);
     stack.Pop();
     stack.Pop();
     Assert.AreEqual(1, stack.Count);
 }