public void Add(int nValues)
        {
            var queue = new MultilevelQueue <string>(priorityLevels: nValues, secondsToAgingItems: 1);

            for (int i = 0; i < nValues; i++)
            {
                queue.Add($"Added item {i}", i);
            }
            var result = queue.Count;

            Assert.Equal(nValues, result);
        }
        public void Peek(int nValues)
        {
            var result = true;
            var queue  = new MultilevelQueue <int>(priorityLevels: nValues, secondsToAgingItems: 1);

            for (int i = nValues - 1; i >= 0; i--)
            {
                queue.Add(i, i);
                result &= (i == queue.Peek());
            }

            Assert.True(result);
        }
        public void Remove(int nValues)
        {
            var queue = new MultilevelQueue <int>(priorityLevels: nValues, secondsToAgingItems: 1);

            for (int i = 0; i < nValues; i++)
            {
                queue.Add(i, priority: 0);
            }
            for (int i = 0; i < nValues; i++)
            {
                queue.Remove();
            }

            var result = queue.Count;

            Assert.Equal(0, result);
        }