Beispiel #1
0
        public void QueueDifferentPrioritiesWorksCorrectly()
        {
            //Arrange
            var queue    = new StaticPriorityQueue <string>();
            var expected = new string[] { "add '8", "add '3", "add '5", "add '2", "add '10", "add '1", "add '4", "add '7", "add '9", "add '6" };
            var result   = new string[10];

            //Act
            queue.Enqueue(1, "add '1");
            queue.Enqueue(2, "add '2");
            queue.Enqueue(5, "add '3");
            queue.Enqueue(1, "add '4");
            queue.Enqueue(3, "add '5");
            queue.Enqueue(0, "add '6");
            queue.Enqueue(1, "add '7");
            queue.Enqueue(10, "add '8");
            queue.Enqueue(1, "add '9");
            queue.Enqueue(2, "add '10");

            for (int i = 0; i < result.Length; i++)
            {
                result[i] = queue.Dequeue();
            }

            //Assert
            CollectionAssert.AreEqual(expected, result);
        }
Beispiel #2
0
        public void CreateQueueWithNegativeCapacityThrowsException()
        {
            //Arrange
            var queue = new StaticPriorityQueue <string>(-2);

            //Act
            //Assert
        }
        public void TestEnqueueing()
        {
            var q = new StaticPriorityQueue <double, string>();

            q.Enqueue(2, "first item");
            q.Enqueue(3, "second item");
            q.Enqueue(1, "third item");
            Assert.Equal(3, q.Count);
        }
Beispiel #4
0
        public void QueueEnqueueWithNegativePriorityThrowsException()
        {
            //Arrange
            var queue = new StaticPriorityQueue <string>();

            //Act
            queue.Enqueue(-1, "add");
            //Assert
        }
Beispiel #5
0
        public void QueuePeekWithNoItemsInQueueThrowsException()
        {
            //Arrange
            var queue = new StaticPriorityQueue <string>();

            //Act
            queue.Peek();
            //Assert
        }
Beispiel #6
0
        public void QueueEnqueueWithNullCollectionAndPriorityThrowsException()
        {
            //Arrange
            var queue = new StaticPriorityQueue <string>();
            var input = default(string[]);

            //Act
            queue.Enqueue(1, input);
            //Assert
        }
Beispiel #7
0
        public void CreateEmptyQueueWorksCorrectly()
        {
            //Arrange
            var queue    = new StaticPriorityQueue <string>();
            int expected = 0;

            //Act
            int count = queue.Count;

            //Assert
            Assert.AreEqual(expected, count);
        }
Beispiel #8
0
        public void QueueEnqueueWithIEnumerableWorksCorrectly()
        {
            //Arrange
            var queue    = new StaticPriorityQueue <string>();
            var expected = new string[] { "add '1", "add '2", "add '3", "add '4" };

            //Act
            queue.Enqueue(expected);
            var result = queue.ToArray();

            //Assert
            CollectionAssert.AreEquivalent(expected, result);
        }
        public void TestInitialData()
        {
            var data = new[] { 5, 9, 2, 13, 1, 4, 7, 11, 2 };
            var q    = new StaticPriorityQueue <int, int>(data.Select(i => new KeyValuePair <int, int>(i, i)));

            Assert.Equal(data.Length, q.Count);

            Array.Sort(data);
            for (int i = 0; i < data.Length; i++)
            {
                var deq = q.Dequeue();
                Assert.Equal(data[i], deq.Value);
            }
        }
        public void TestGrowing()
        {
            var q = new StaticPriorityQueue <double, string>();

            for (int i = 0; i < 32; i++)
            {
                q.Enqueue(i, i.ToString());
            }
            Assert.Equal(32, q.Count);
            for (int i = 0; i < 32; i++)
            {
                var deq = q.Dequeue();
                Assert.Equal(i.ToString(), deq.Value);
            }
        }
Beispiel #11
0
        public void QueueCountWorksCorrectly()
        {
            //Arrange
            var queue = new StaticPriorityQueue <string>();
            int count = 4;

            //Act
            queue.Enqueue(1, "add '1");
            queue.Enqueue(0, "add '2");
            queue.Enqueue(0, "add '3");
            queue.Enqueue(2, "add '4");
            int result = queue.Count;

            //Assert
            Assert.AreEqual(count, result);
        }
Beispiel #12
0
        public void QueueEnqueueNullCorrectly()
        {
            //Arrange
            var    queue    = new StaticPriorityQueue <string>();
            string expected = null;

            //Act
            queue.Enqueue("add '1");
            queue.Enqueue("add '2");
            queue.Enqueue("add '3");
            queue.Enqueue(2, expected);
            string result = queue.Dequeue();

            //Assert
            Assert.AreEqual(expected, result);
        }
Beispiel #13
0
        public void QueuePeekCorrectly()
        {
            //Arrange
            var queue    = new StaticPriorityQueue <string>();
            var expected = "add '4";

            //Act
            queue.Enqueue(1, "add '1");
            queue.Enqueue(0, "add '2");
            queue.Enqueue(0, "add '3");
            queue.Enqueue(2, "add '4");
            var result = queue.Peek();

            //Assert
            Assert.AreEqual(expected, result);
        }
Beispiel #14
0
        public void QueueContainsByPriorityAndValueCorrectly()
        {
            //Arrange
            var queue = new StaticPriorityQueue <string>();

            //Act
            queue.Enqueue("add '1");
            queue.Enqueue("add '2");
            queue.Enqueue("add '3");
            queue.Enqueue(2, "add '4");
            bool result = queue.Contains(2, "add '4");

            queue.Dequeue();
            bool next = queue.Contains(2, "add '4");

            //Assert
            Assert.IsFalse(next);
            Assert.IsTrue(result);
        }
Beispiel #15
0
        public void QueueToArrayWorksCorrectly()
        {
            //Arrange
            var queue    = new StaticPriorityQueue <string>();
            var expected = new string[] { "add '1", "add '2", "add '3", "add '4", "add '5", "add '6", "add '7" };

            //Act
            queue.Enqueue(1, "add '1");
            queue.Enqueue(0, "add '2");
            queue.Enqueue(0, "add '3");
            queue.Enqueue(2, "add '4");
            queue.Enqueue(3, "add '5");
            queue.Enqueue(7, "add '6");
            queue.Enqueue(9, "add '7");

            var result = queue.ToArray();

            //Assert
            CollectionAssert.AreEquivalent(expected, result);
        }
Beispiel #16
0
        public void QueueEnqueueValueCorrectly()
        {
            //Arrange
            var    queue        = new StaticPriorityQueue <string>();
            string expected     = "add '4";
            string nextExpected = "add '1";

            //Act
            queue.Enqueue("add '1");
            queue.Enqueue("add '2");
            queue.Enqueue("add '3");
            queue.Enqueue(2, "add '4");
            string result = queue.Peek();

            queue.Dequeue();
            string next = queue.Peek();

            //Assert
            Assert.AreEqual(expected, result);
            Assert.AreEqual(nextExpected, next);
        }
        public void TestDequeueing()
        {
            var q = new StaticPriorityQueue <double, string>();

            q.Enqueue(2, "first item");
            q.Enqueue(3, "second item");
            q.Enqueue(1, "third item");

            var peek = q.Peek();

            Assert.Equal("third item", peek.Value);
            Assert.Equal(3, q.Count);

            var deq = q.Dequeue();

            Assert.Equal("third item", deq.Value);
            Assert.Equal(2, q.Count);

            deq = q.Dequeue();
            Assert.Equal("first item", deq.Value);
            Assert.Equal(1, q.Count);
        }
Beispiel #18
0
        public void QueueEnqueueWithPriorityAndIEnumerableWorksCorrectly()
        {
            //Arrange
            var queue               = new StaticPriorityQueue <string>();
            var input               = new string[] { "add '1", "add '2", "add '3", "add '4" };
            var expected            = new string[] { "add '2", "add '3", "add '4", "add '5", "add '6" };
            var expectedElement     = "add '1";
            var expectedNextElement = "add '2";

            //Act
            queue.Enqueue(2, input);
            queue.Enqueue(1, "add '5");
            queue.Enqueue(1, "add '6");
            var element = queue.Peek();

            queue.Dequeue();
            var nextElement = queue.Peek();
            var result      = queue.ToArray();

            //Assert
            CollectionAssert.AreEquivalent(expected, result);
            Assert.AreEqual(expectedElement, element);
            Assert.AreEqual(expectedNextElement, nextElement);
        }