public void TestStack()
        {
            Stack <int>   stdStack = new Stack <int>();   // standard queue implemented by .NET
            MyStack <int> ourStack = new MyStack <int>(); // our manually implemented stack

            // Test generates 100 random integers and adds to both queues
            Random r = new Random();

            for (int i = 0; i < 100; i++)
            {
                int randVal = r.Next();
                stdStack.Push(randVal);
                ourStack.Push(randVal);
            }

            // Test reading back half the added integers
            for (int i = 0; i < 50; i++)
            {
                Assert.AreEqual(stdStack.Pop(), ourStack.Pop());
                Assert.AreEqual(stdStack.Peek(), ourStack.Peek());
                Assert.AreEqual(stdStack.Count, ourStack.Count());
            }

            // Test adding 50 more random integers
            for (int i = 0; i < 50; i++)
            {
                int randVal = r.Next();
                stdStack.Push(randVal);
                ourStack.Push(randVal);
            }

            // Test reading back all the remaining values
            for (int i = 0; i < 100; i++)
            {
                Assert.AreEqual(stdStack.Peek(), ourStack.Peek());
                Assert.AreEqual(stdStack.Pop(), ourStack.Pop());
                Assert.AreEqual(stdStack.Count, ourStack.Count());
            }
        }
Beispiel #2
0
        public void Pop_Empty_Stack_Throw_Error()
        {
            var myStack = new MyStack();

            myStack.Invoking(s => s.Pop()).Should().Throw <InvalidOperationException>();
        }
Beispiel #3
0
        public void Empty_Stack_Should_Returns_True()
        {
            var myStack = new MyStack();

            myStack.IsEmpty().Should().BeTrue();
        }
Beispiel #4
0
 public void SetUp()
 {
     stack = new MyStack();
 }