public void RemoveTest()
        {
            var test = new Question_3_4.MyQueue <int>();

            try
            {
                test.Remove();
                Assert.Fail("Empty queue check failed.");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual("Queue is empty.", e.Message, "Incorrect exception caught.");
            }

            test.Add(1);                                                   // 1
            test.Add(3);                                                   // 1 -> 3
            test.Add(2);                                                   // 1 -> 3 -> 2
            test.Add(4);                                                   // 1 -> 3 -> 2-> 4
            test.Add(6);                                                   // 1 -> 3 -> 2-> 4 -> 6
            test.Add(5);                                                   // 1 -> 3 -> 2-> 4 -> 6 -> 5

            Assert.AreEqual(1, test.Remove(), "Incorrect head removed.");  // 3 -> 2-> 4 -> 6 -> 5
            Assert.AreEqual(3, test.Remove(), "Incorrect head removed.");  // 2 -> 4 -> 6 -> 5
            Assert.AreEqual(2, test.Remove(), "Incorrect head removed.");  // 4 -> 6 -> 5

            test.Add(10);                                                  // 4 -> 6 -> 5 -> 10
            test.Add(20);                                                  // 4 -> 6 -> 5 -> 10 -> 20

            Assert.AreEqual(4, test.Remove(), "Incorrect head removed.");  // 6 -> 5 -> 10 -> 20
            Assert.AreEqual(6, test.Remove(), "Incorrect head removed.");  // 5 -> 10 -> 20
            Assert.AreEqual(5, test.Remove(), "Incorrect head removed.");  // 10 -> 20
            Assert.AreEqual(10, test.Remove(), "Incorrect head removed."); // 20
            Assert.AreEqual(20, test.Remove(), "Incorrect head removed."); // <Empty>
        }
        public void IsEmptyTest()
        {
            var test = new Question_3_4.MyQueue <int>();

            Assert.IsTrue(test.IsEmpty(), "IsEmpty returns false.");
            test.Add(1);
            Assert.IsFalse(test.IsEmpty(), "IsEmpty returns true.");
        }
        public void PeekTest()
        {
            var test = new Question_3_4.MyQueue <int>();

            try
            {
                test.Peek();
                Assert.Fail("Empty queue check failed.");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual("Queue is empty.", e.Message, "Incorrect exception caught.");
            }

            test.Add(1);
            Assert.AreEqual(1, test.Peek(), "Incorrect head returned.");
            test.Add(2);
            Assert.AreEqual(1, test.Peek(), "Incorrect head returned.");
        }