static void Main() { RingQueue <int> ringQueue = new RingQueue <int>(new DoublingStrategy()); ringQueue.Enqueue(0); ringQueue.Enqueue(1); ringQueue.Enqueue(2); ringQueue.Enqueue(3); ringQueue.Enqueue(4); ringQueue.Enqueue(5); ringQueue.Enqueue(6); ringQueue.Enqueue(7); ringQueue.Enqueue(8); ringQueue.Enqueue(9); for (int i = 0; i < 4; i++) { Console.WriteLine(ringQueue.Dequeue()); } ringQueue.Enqueue(0); ringQueue.Enqueue(1); ringQueue.Enqueue(2); ringQueue.Enqueue(3); ringQueue.Enqueue(4); ringQueue.Enqueue(5); ringQueue.Enqueue(6); ringQueue.Enqueue(7); ringQueue.Enqueue(8); ringQueue.Enqueue(9); ringQueue.Enqueue(0); ringQueue.Enqueue(1); ringQueue.Enqueue(2); ringQueue.Enqueue(3); ringQueue.Enqueue(4); ringQueue.Enqueue(5); ringQueue.Enqueue(6); ringQueue.Enqueue(7); ringQueue.Enqueue(8); ringQueue.Enqueue(9); for (int i = ringQueue.Size; i > 0; i--) { Console.WriteLine(ringQueue.Dequeue()); } ringQueue.Enqueue(1); for (int i = ringQueue.Size; i > 0; i--) { Console.WriteLine(ringQueue.Dequeue()); } Console.ReadKey(); }
public void RingQueueLostTest() { const int maxCount = 20; const int size = 18; var ring = new RingQueue <int>(size); ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); for (int i = 0; i < maxCount; i++) { ring.Enqueue(i); ring.Count.Should().Be(Math.Min(size, i + 1)); } ring.Count.Should().Be(size); ring.IsFull.Should().BeTrue(); ring.LostCount.Should().Be(maxCount - size); for (int i = maxCount - size; i < maxCount; i++) { int value = ring.Dequeue(); value.Should().Be(i); } ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); }
public void RingQueueMaxTest() { const int maxCount = 10; var ring = new RingQueue <int>(maxCount); ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); for (int i = 0; i < maxCount; i++) { ring.Enqueue(i); ring.Count.Should().Be(i + 1); } ring.Count.Should().Be(maxCount); ring.IsFull.Should().BeTrue(); ring.LostCount.Should().Be(0); for (int i = 0; i < maxCount; i++) { int value = ring.Dequeue(); value.Should().Be(i); } ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); }
public void RingQueueTest() { const int size = 3; var ring = new RingQueue <int>(10); ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); for (int i = 0; i < size; i++) { ring.Enqueue(i); ring.Count.Should().Be(i + 1); } ring.Count.Should().Be(size); ring.IsFull.Should().BeFalse(); ring.LostCount.Should().Be(0); for (int i = 0; i < size; i++) { ring.Count.Should().Be(size - i); int value = ring.Dequeue(); value.Should().Be(i); } ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); }
public void RingQueueTryPeekTest() { const int maxCount = 2000; const int size = 20; var ring = new RingQueue <int>(size); ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); for (int i = 0; i < maxCount; i++) { ring.Enqueue(i); ring.Count.Should().Be(Math.Min(size, i + 1)); } ring.Count.Should().Be(size); ring.IsFull.Should().BeTrue(); ring.LostCount.Should().Be(maxCount - size); for (int i = maxCount - size; i < maxCount; i++) { (bool success, int peekValue)rtn = ring.TryPeek(); rtn.success.Should().BeTrue(); int value = ring.Dequeue(); value.Should().Be(rtn.peekValue); value.Should().Be(i); } ring.IsEmpty.Should().BeTrue(); ring.IsFull.Should().BeFalse(); }