public void DequeueLastOnNonEmptyQueueShouldReturnLastElementAndDecreaseCountByOne() { Dequeue <int> queue = new Dequeue <int>(); queue.Enqueue(17); queue.Enqueue(42); Assert.AreEqual(2, queue.Count, "Count should be 2 after enqueue"); Assert.IsFalse(queue.IsEmpty, "Queue should not be empty after enqueue"); int value = queue.DequeueLast(); Assert.AreEqual(42, value, "dequeued value should be 42"); Assert.AreEqual(1, queue.Count, "Count should be 1 after dequeue"); Assert.IsFalse(queue.IsEmpty, "Queue should not be empty as count > 0"); value = queue.DequeueLast(); Assert.AreEqual(17, value, "dequeued value should be 17"); Assert.AreEqual(0, queue.Count, "Count should be 0 after dequeue"); Assert.IsTrue(queue.IsEmpty, "Queue should be empty as count = 0"); }