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 TestStackToArrayAfterPushingNubers()
        {
            var stack = new ArrayStack<int>();
            int[] arrayWithOrigins = { 3, 5, -2, 7 };

            for (int i = 0; i < arrayWithOrigins.Length; i++)
            {
                stack.Push(arrayWithOrigins[i]);
            }

            int[] stackToArray = stack.ToArray();

            for (int i = 0; i < arrayWithOrigins.Length; i++)
            {
                Assert.AreEqual(arrayWithOrigins[stack.Count - i - 1], stackToArray[i]);
            }
        }
        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 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);
            }
        }
        static void Main(string[] args)
        {
            var stack = new ArrayStack<int>();
            int[] arrOne = stack.ToArray();
            Console.WriteLine(string.Join(", ",arrOne));
            stack.Push(1);
            stack.Push(2);
            stack.Push(3);
            stack.Push(4);
            stack.Push(5);
            stack.Push(6);
            stack.Push(7);
            Console.WriteLine(stack.Peek());
            Console.WriteLine(stack.Count);

            int[] arr = stack.ToArray();
            Console.WriteLine(string.Join(", ",arr));
            var stackOne = new ArrayStack<int>();
            var st = new Stack<int>();

        }
        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 TestEmptyStackToArray()
        {
            var stack = new ArrayStack<DateTime>();
            DateTime[] array = stack.ToArray();

            Assert.AreEqual(0, array.Length);
        }
 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);
 }