public void Delete_Between_01()
        {
            var hashq = new HashQueue <int>();

            Assert.AreEqual(0, hashq.Count());
            hashq.Enqueue(1);
            hashq.Enqueue(2);
            hashq.Enqueue(3);
            Assert.AreEqual(1, hashq.Peek());
            Assert.AreEqual(3, hashq.PeekTail());
            hashq.Delete(2);
            Assert.AreEqual(1, hashq.Peek());
            Assert.AreEqual(3, hashq.PeekTail());
        }
        public void PeekPeekTail01()
        {
            var hashq = new HashQueue <int>();

            hashq.Enqueue(1);
            hashq.Enqueue(2);
            hashq.Enqueue(3);
            Assert.AreEqual(1, hashq.Peek());
            Assert.AreEqual(3, hashq.PeekTail());
        }
        public void Delete_HeadTail_02()
        {
            var hashq = new HashQueue <int>();

            Assert.AreEqual(0, hashq.Count());
            hashq.Enqueue(1);
            Assert.AreEqual(1, hashq.Peek());
            Assert.AreEqual(1, hashq.PeekTail());
            hashq.Delete(1);
            Assert.IsTrue(hashq.IsEmpty());
        }
        public void Delete_DuplicateHashCode_04()
        {
            var person1 = new Person()
            {
                Name = "p1", Age = 1
            };
            var person2 = new Person()
            {
                Name = "p1", Age = 2
            };

            Assert.AreEqual(person1.GetHashCode(), person2.GetHashCode());
            Assert.AreNotEqual(person1, person2);
            var hashq = new HashQueue <Person>();

            Assert.AreEqual(0, hashq.Count());
            hashq.Enqueue(person1);
            hashq.Enqueue(person2);
            Assert.AreEqual(2, hashq.Count());
            Assert.IsTrue(hashq.Delete(person2));
            Assert.AreEqual(1, hashq.Count());
            Assert.AreSame(person1, hashq.Peek());
        }