/// <summary> /// Pauses the specified item. /// </summary> /// <param name="item">The item.</param> /// <returns>A pause task.</returns> public override Task PauseAsync(IWorkItem <TAbsolute> item) { if (item == null) { throw new ArgumentNullException(nameof(item)); } item.IsPaused = true; if (_ready.Contains(item)) { _ready.Remove(item); _notReady.Add(item); } return(Task.FromResult(true)); }
public void HeapBasedPriorityQueue_Simple() { var queue = new HeapBasedPriorityQueue <int>(Comparer <int> .Default); Assert.ThrowsException <InvalidOperationException>(() => queue.Peek()); Assert.ThrowsException <InvalidOperationException>(() => queue.Dequeue()); Assert.AreEqual(0, queue.Count); queue.Enqueue(2); queue.Enqueue(1); queue.Enqueue(3); queue.Enqueue(4); queue.Enqueue(5); Assert.AreEqual(5, queue.Count); Assert.AreEqual(1, queue.Peek()); for (var i = 0; i <= 9; i++) { if (i is >= 1 and <= 5) { Assert.IsTrue(queue.Contains(i)); }