Exemple #1
0
        public void EnqueueMethod_RefferenceTypes_Enqueued()
        {
            string[] array = new string[] { "hello", "this", "is", "just", "a", "test" };
            QueueGeneric <string> queue = new QueueGeneric <string>(array);

            Assert.AreEqual(queue.Count, array.Length);
        }
Exemple #2
0
            /// <summary>
            /// Creation of the enumerator.
            /// </summary>
            /// <param name="queue"><see cref="QueueGeneric{T}"/>.</param>
            public Enumerator(QueueGeneric <T> queue)
            {
                _queue   = queue;
                _version = queue._version;
                _index   = -1;

                _currentElement = default(T);
            }
Exemple #3
0
        public void EnqueueMethod_ValueTypes_Enqueued()
        {
            QueueGeneric <int> queue = new QueueGeneric <int>();

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

            Assert.AreEqual(queue.Count, 2);
        }
Exemple #4
0
        public void     PeekMethod_PeekFromQueueWithTwoElements_ShowLastElementFromQueue()
        {
            PersonInfo[] array = new PersonInfo[]
            {
                new PersonInfo {
                    Name = "Jonh", Surname = "Newman"
                },
                new PersonInfo {
                    Name = "Olly", Surname = "Murs"
                }
            };

            QueueGeneric <PersonInfo> queue = new QueueGeneric <PersonInfo>(array);
            PersonInfo peekHuman            = queue.Peek();

            Assert.AreEqual(peekHuman.Name, array[array.Length - 1].Name);
        }
Exemple #5
0
        public void DequeueMethod_DequeueFromQueueWithTwoElements_TakeFirstElementFromQueue()
        {
            PersonInfo[] array = new PersonInfo[]
            {
                new PersonInfo {
                    Name = "Jonh", Surname = "Newman"
                },
                new PersonInfo {
                    Name = "Olly", Surname = "Murs"
                }
            };

            QueueGeneric <PersonInfo> queue = new QueueGeneric <PersonInfo>(array);
            PersonInfo human = queue.Dequeue();

            Assert.AreEqual(human.Name, array[0].Name);
        }
Exemple #6
0
        public void ContainsMethod_QueueWithTwoPersonInfo_ElementIsNotFoundByValues()
        {
            PersonInfo[] array = new PersonInfo[]
            {
                new PersonInfo {
                    Name = "Jonh", Surname = "Newman"
                },
                new PersonInfo {
                    Name = "Olly", Surname = "Murs"
                }
            };

            QueueGeneric <PersonInfo> queue = new QueueGeneric <PersonInfo>(array);

            Assert.IsFalse(queue.Contains(new PersonInfo {
                Name = "Jonh", Surname = "Newman"
            }));
        }
Exemple #7
0
        public void ContainsMethod_QueueWithTwoPersonInfoObjectEquals_ElementIsFoundByOverrideObjectEquals()
        {
            PersonInfoObjectEquals[] array = new PersonInfoObjectEquals[]
            {
                new PersonInfoObjectEquals {
                    Name = "Alexander", Surname = "Turchin"
                },
                new PersonInfoObjectEquals {
                    Name = "Site", Surname = "Github"
                }
            };

            QueueGeneric <PersonInfoObjectEquals> queue = new QueueGeneric <PersonInfoObjectEquals>(array);

            Assert.IsTrue(queue.Contains(array[1]));
            Assert.IsTrue(queue.Contains(new PersonInfoObjectEquals {
                Name = "Site", Surname = "Github"
            }));
        }
Exemple #8
0
        public void ContainsMethod_QueueWithTwoPersonInfoEquatable_ElementIsFoundByIEquatableEquals()
        {
            PersonInfoEquatable[] array = new PersonInfoEquatable[]
            {
                new PersonInfoEquatable {
                    Name = "Jonh", Surname = "Newman"
                },
                new PersonInfoEquatable {
                    Name = "Olly", Surname = "Murs"
                }
            };

            QueueGeneric <PersonInfoEquatable> queue = new QueueGeneric <PersonInfoEquatable>(array);

            Assert.IsTrue(queue.Contains(array[0]));
            Assert.IsTrue(queue.Contains(new PersonInfoEquatable {
                Name = "Jonh", Surname = "Newman"
            }));
        }
Exemple #9
0
        public void DequeueMethod_DequeueFromQueueWithTwoElements_QueueWithOneElement()
        {
            PersonInfo[] array = new PersonInfo[]
            {
                new PersonInfo {
                    Name = "Jonh", Surname = "Newman"
                },
                new PersonInfo {
                    Name = "Olly", Surname = "Murs"
                }
            };

            QueueGeneric <PersonInfo> queue = new QueueGeneric <PersonInfo>(array);

            Assert.AreEqual(queue.Count, 2);

            queue.Dequeue();

            Assert.AreEqual(queue.Count, 1);
        }
        /// <summary>
        /// A breadth first search traversal of the graph, starting from a specified vertex.
        /// Returns the visited vertices of the graph.
        /// </summary>
        public virtual IEnumerable <T> BreadthFirstWalk(T source)
        {
            // Check for existence of source
            if (VerticesCount == 0)
            {
                return(new ArrayListGeneric <T>(0));
            }
            else if (!HasVertex(source))
            {
                throw new KeyNotFoundException("The source vertex doesn't exist.");
            }

            var visited     = new HashSet <T>();
            var queue       = new QueueGeneric <T>();
            var listOfNodes = new ArrayListGeneric <T>(VerticesCount);

            listOfNodes.Add(source);
            visited.Add(source);

            queue.Enqueue(source);

            while (!queue.IsEmpty)
            {
                var current   = queue.Dequeue();
                var neighbors = Neighbours(current);

                foreach (var adjacent in neighbors)
                {
                    if (!visited.Contains(adjacent))
                    {
                        listOfNodes.Add(adjacent);
                        visited.Add(adjacent);
                        queue.Enqueue(adjacent);
                    }
                }
            }

            return(listOfNodes);
        }
Exemple #11
0
        public void QueueTests()
        {
            bool   hasException = false;
            object peekObject   = new object();
            object dequObject   = new object();
            QueueGeneric <int?>       queue1 = new QueueGeneric <int?>();
            QueueComparable <int>     queue2 = new QueueComparable <int>();
            QueueComparable <string>  queue3 = new QueueComparable <string>();
            DoubleStackQueue <string> queue4 = new DoubleStackQueue <string>();

            #region QueueTest :: empty Queue<non-nullable>

            try
            {
                peekObject = queue2.Peek(); // peek an empty queue
            }
            catch (QueueOperationException e)
            {
                hasException = true;
                Assert.IsNotNull(e.Message);
            }
            finally
            {
                Assert.IsNotNull(peekObject);
                Assert.IsTrue(hasException);
            }

            hasException = false;
            try
            {
                dequObject = queue2.Dequeue(); // operate on empty queue
            }
            catch (QueueOperationException e)
            {
                hasException = true;
                Assert.IsNotNull(e.Message);
            }
            finally
            {
                Assert.IsNotNull(dequObject);
                Assert.IsTrue(hasException);
            }

            #endregion

            #region QueueTest :: empty Queue<nullable>

            hasException = false;
            try
            {
                peekObject = queue1.Peek();
            }
            catch (QueueOperationException e)
            {
                hasException = true;
                Assert.IsNotNull(e.Message); //should never come here
            }
            finally
            {
                Assert.IsFalse(hasException);
                Assert.IsNull(peekObject);
            }

            hasException = false;
            try
            {
                var test1 = "Queue3.test1";
                queue3.Enqueue(test1);
                peekObject = queue3.Peek();
                dequObject = queue3.Dequeue();
                Assert.IsTrue(dequObject.Equals(peekObject));
                Assert.IsTrue(dequObject.Equals(test1));
                Assert.IsNotNull(dequObject);

                dequObject = queue3.Dequeue();
            }
            catch (QueueOperationException e)
            {
                hasException = true;
                Assert.IsNotNull(e.Message); //should never come here
            }
            finally
            {
                Assert.IsFalse(hasException);
                Assert.IsNull(dequObject);
            }

            hasException = false;
            try
            {
                peekObject = queue3.Peek();
            }
            catch (QueueOperationException e)
            {
                hasException = true;
                Assert.IsNotNull(e.Message); //should never come here
            }
            finally
            {
                Assert.IsFalse(hasException);
                Assert.IsNull(peekObject);
            }

            #endregion

            #region QueueTest :: Get the minimum in the Queue

            var test3_1 = "";
            var test3_2 = "ABCD";
            var test3_3 = "abcd";
            var test3_4 = "xyz...12345";
            var test3_5 = "5555";

            queue3.Enqueue(test3_1);
            queue4.Enqueue(test3_1);
            Assert.AreEqual(queue4.First, queue3.First);
            Assert.AreEqual(queue4.Last, queue3.Last);
            Assert.IsTrue(test3_1.Equals(queue3.GetMinimum()));
            Assert.IsTrue(test3_1.Equals(queue3.Minimum));

            queue3.Enqueue(test3_2);
            queue4.Enqueue(test3_2);
            Assert.AreEqual(queue4.First, queue3.First);
            Assert.AreEqual(queue4.Last, queue3.Last);
            Assert.IsTrue(test3_1.Equals(queue3.GetMinimum()));
            Assert.IsTrue(test3_1.Equals(queue3.Minimum));

            queue3.Enqueue(test3_3);
            queue4.Enqueue(test3_3);
            Assert.AreEqual(queue4.First, queue3.First);
            Assert.AreEqual(queue4.Last, queue3.Last);
            Assert.IsTrue(test3_1.Equals(queue3.GetMinimum()));
            Assert.IsTrue(test3_1.Equals(queue3.Minimum));

            queue3.Dequeue();
            queue4.Dequeue();
            Assert.AreEqual(queue4.Peek(), queue3.Peek());

            queue3.Enqueue(test3_4);
            queue4.Enqueue(test3_4);
            Assert.AreEqual(queue4.First, queue3.First);
            Assert.AreEqual(queue4.Last, queue3.Last);
            Assert.IsTrue(test3_3.Equals(queue3.GetMinimum()));
            Assert.IsTrue(test3_3.Equals(queue3.Minimum));

            queue3.Enqueue(test3_5);
            queue4.Enqueue(test3_5);
            Assert.AreEqual(queue4.First, queue3.First);
            Assert.AreEqual(queue4.Last, queue3.Last);
            Assert.IsTrue(test3_5.Equals(queue3.GetMinimum()));
            Assert.IsTrue(test3_5.Equals(queue3.Minimum));

            string q3string = queue3.ToString();
            string q4string = queue4.ToString();
            Assert.AreEqual(q3string, q4string);

            #endregion

            #region QueueTest ::

            #endregion
        }
Exemple #12
0
        static void Main(string[] args)
        {
            Queue<Currencies> myqueue = new Queue<int>();
            int selection;
            do
            {
                Console.WriteLine("1) EnQueue");
                Console.WriteLine("2) Peek");
                Console.WriteLine("3) DeQueue");
                Console.WriteLine("4) Print");
                Console.WriteLine("5) Search");
                Console.WriteLine("6) Exit");



                Console.WriteLine("What do you want to do?");
                selection = int.Parse(Console.ReadLine());
                if (selection == 1)
                {
                    Console.WriteLine("What number do you want to add to your queue?");
                    int pushadd = int.Parse(Console.ReadLine());
                    myqueue.EnQueue(pushadd);
                    Console.WriteLine("Done");

                }
                if (selection == 2)
                {
                    Console.WriteLine("The top value is a " + myqueue.Peek());
                }
                if (selection == 3)
                {

                    

                    int popval = myqueue.DeQueue();
                    
                    if(popval == -1)
                    {
                        Console.WriteLine("Can't, your queue is empty");
                    }
                    else { Console.WriteLine("The top value of the queue is a " + popval); }
                        
                    




                }
                if (selection == 4)
                {

                    myqueue.Print();
                   

                }
                if (selection == 5)
                {

                    myqueue.share();
                }
                QueueGeneric<Currencies> currencies = new QueueGeneric<Currencies>();


                for(int i = 0; i < 10; i++)
                {
                    currencis.Enqueue(new Currencies(Random.Next(0,100), Random.Next(0,100), Random.Next(0,100))
                }







            } while (selection != 6);






        }
Exemple #13
0
        public void ContainsMethod_QueueWithThreeIntElements_ElementIsNotInQueue()
        {
            QueueGeneric <int> queue = new QueueGeneric <int>(new int[] { 1, 5, 7 });

            Assert.IsFalse(queue.Contains(10));
        }