Exemplo n.º 1
0
        public void PushOnFullTest()
        {
            // Size of two but have 3 pushes
            var queue = new MyPriorityQueue(2);

            queue.Push("Me");
            queue.Push("You");
            Assert.Throws <InvalidOperationException>(() => queue.Push("Push On Full Outh"));
        }
Exemplo n.º 2
0
        public void EmptyPopTest()
        {
            var queue = new MyPriorityQueue(2);

            // Can't pop on empty queue
            Assert.Throws <InvalidOperationException>(() => queue.Pop());
            queue.Push("Wolfi");
            Assert.Equal(0.5, queue.PercentageFilled);
            Assert.Equal("Wolfi", queue.Pop());
            Assert.Throws <InvalidOperationException>(() => queue.Pop());
        }
Exemplo n.º 3
0
        public void FillRemoveMixTest()
        {
            var queue = new MyPriorityQueue(10);

            queue.Push("Max");
            Assert.Equal(0.1, queue.PercentageFilled);
            queue.Push("Susi");
            Assert.Equal(0.2, queue.PercentageFilled);
            Assert.Equal("Max", queue.Pop());
            Assert.Equal(0.1, queue.PercentageFilled);
            queue.Push("Muster");
            Assert.Equal(0.2, queue.PercentageFilled);
            Assert.Equal("Susi", queue.Pop());
            Assert.Equal("Muster", queue.Pop()); //
            Assert.Equal(0.0, queue.PercentageFilled);
            Assert.Throws <InvalidOperationException>(() => queue.Pop());
            queue.Push("Axl");
            Assert.Equal(0.1, queue.PercentageFilled);
            for (int i = 1; i < queue.Size; i++)
            {
                queue.Push(i.ToString());
            }
            Assert.Throws <InvalidOperationException>(() => queue.Push("Already full not possible"));
            Assert.Equal(1.0, queue.PercentageFilled);
        }
Exemplo n.º 4
0
        public void NormalQueueTest()
        {
            // First fill then remove
            string[] data  = { "Max", "Muster", "Müller", "Susi", "Mosi", "Gucki", "Hucki" };
            var      queue = new MyPriorityQueue(data.Length);

            // Fill it
            foreach (var item in data)
            {
                queue.Push(item);
            }

            // Pop It
            for (int i = 0; i < data.Length; i++)
            {
                Assert.Equal(data[i], queue.Pop());
            }
        }
Exemplo n.º 5
0
        public void PriorityPushTests()
        {
            var queue = new MyPriorityQueue(10);

            queue.Push("Susi");
            queue.Push("VIP MAX", PersonTypes.Vip);
            Assert.Equal("VIP MAX", queue.Pop());
            Assert.Equal("Susi", queue.Pop());
            queue.Push("Normal1");
            queue.Push("Normal2");
            queue.Push("VIP1", PersonTypes.Vip);
            queue.Push("VIP2", PersonTypes.Vip);
            queue.Push("Normal3");
            queue.Push("VIP3", PersonTypes.Vip);
            Assert.Equal("VIP1", queue.Pop());
            Assert.Equal("VIP2", queue.Pop());
            Assert.Equal("VIP3", queue.Pop());
            Assert.Equal("Normal1", queue.Pop());
            Assert.Equal("Normal2", queue.Pop());
            Assert.Equal("Normal3", queue.Pop());
        }