コード例 #1
0
        public void Dequeue_Branch_Test_3()
        {
            ArrayBasedQueue <int> queue = new ArrayBasedQueue <int>(1);

            queue.Enqueue(23);
            Assert.AreEqual(queue.Dequeue(), 23);
        }
コード例 #2
0
        public void Peek_Branch_Test_1()
        {
            ArrayBasedQueue <int> queue = new ArrayBasedQueue <int>(1);

            Assert.That(() => queue.Peek(),
                        Throws.TypeOf <InvalidOperationException>()
                        .With.Message.EqualTo("There are no items in the queue."));
        }
コード例 #3
0
        public void Enqueue_Branch_Test_3()
        {
            ArrayBasedQueue <int> queue = new ArrayBasedQueue <int>(1);

            queue.Enqueue(1);
            Assert.That(() => queue.Enqueue(1),
                        Throws.TypeOf <InvalidOperationException>()
                        .With.Message.EqualTo("The queue has reached its capacity."));
        }
コード例 #4
0
        public void Enqueue_Branch_Test_2()
        {
            ArrayBasedQueue <int> queue = new ArrayBasedQueue <int>(2);

            queue.Enqueue(1);
            Assert.Multiple(() =>
            {
                Assert.AreEqual(queue.Peek(), 1);
                Assert.IsFalse(queue.IsFull());
                Assert.IsFalse(queue.IsEmpty());
            });
        }
コード例 #5
0
ファイル: ArrayBasedQueueTests.cs プロジェクト: zredb/C-Sharp
        public static void ClearWorksCorrectly()
        {
            // Arrange
            var q = new ArrayBasedQueue <int>(2);

            q.Enqueue(1);
            q.Enqueue(2);

            // Act
            q.Clear();

            // Assert
            Assert.IsTrue(q.IsEmpty(), "Queue is empty");
            Assert.IsFalse(q.IsFull(), "Queue is full");
        }
コード例 #6
0
        private static void Run()
        {
            int size  = 32;
            var queue = new ArrayBasedQueue <int>();

            for (int i = 1; i <= size; i++)
            {
                queue.Enqueue(i);
            }

            for (int i = 1; i <= size; i++)
            {
                int result = queue.Dequeue();
                Console.Write($"[{result}]");
            }
        }
コード例 #7
0
        public void Clear_Branch_Test_1()
        {
            ArrayBasedQueue <int> queue = new ArrayBasedQueue <int>(10);

            queue.Enqueue(1);
            queue.Enqueue(2);

            queue.Clear();

            Assert.Multiple(() =>
            {
                Assert.IsTrue(queue.IsEmpty());
                Assert.IsFalse(queue.IsFull());
                Assert.That(() => queue.Dequeue(),
                            Throws.TypeOf <InvalidOperationException>()
                            .With.Message.EqualTo("There are no items in the queue."));
            });
        }
コード例 #8
0
ファイル: ArrayBasedQueueTests.cs プロジェクト: zredb/C-Sharp
        public static void PeekEmptyQueueThrowsInvalidOperationException()
        {
            // Arrange
            var       q         = new ArrayBasedQueue <int>(1);
            Exception?exception = null;

            // Act
            try
            {
                q.Peek();
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            // Assert
            Assert.AreEqual(expected: typeof(InvalidOperationException), actual: exception?.GetType());
        }
コード例 #9
0
        public static void DequeueEmptyQueueThrowsInvalidOperationException()
        {
            // Arrange
            var       q         = new ArrayBasedQueue <int>(1);
            Exception?exception = null;

            // Act
            try
            {
                q.Dequeue();
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            // Assert
            Assert.AreEqual(typeof(InvalidOperationException), exception?.GetType());
        }
コード例 #10
0
ファイル: ArrayBasedQueueTests.cs プロジェクト: zredb/C-Sharp
        public static void PeekWorksCorrectly()
        {
            // Arrange
            var q = new ArrayBasedQueue <int>(2);

            q.Enqueue(1);
            q.Enqueue(2);
            int peeked = 0;

            // Act
            for (int i = 0; i < 3; i++)
            {
                peeked = q.Peek();
            }

            // Assert
            Assert.AreEqual(expected: 1, actual: peeked);
            Assert.IsFalse(q.IsEmpty(), "Queue is empty");
            Assert.IsTrue(q.IsFull(), "Queue is full");
        }
コード例 #11
0
ファイル: ArrayBasedQueueTests.cs プロジェクト: zredb/C-Sharp
        public static void DequeueWorksCorrectly()
        {
            // Arrange
            var q = new ArrayBasedQueue <char>(3);

            q.Enqueue('A');
            q.Enqueue('B');
            q.Enqueue('C');
            var result = new StringBuilder();

            // Act
            for (int i = 0; i < 3; i++)
            {
                result.Append(q.Dequeue());
            }

            // Assert
            Assert.AreEqual(expected: "ABC", actual: result.ToString());
            Assert.IsTrue(q.IsEmpty(), "Queue is empty");
            Assert.IsFalse(q.IsFull(), "Queue is full");
        }