public void ConstructorTest() { var q = UnsafeRingBuffer.Allocate <int>(10); Assert.AreEqual(0, UnsafeRingBuffer.GetCount(q)); Assert.AreEqual(10, UnsafeRingBuffer.GetCapacity(q)); UnsafeRingBuffer.Free(q); }
public void PushTest() { var q = UnsafeRingBuffer.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeRingBuffer.Push(q, i * i); } Assert.AreEqual(10, UnsafeRingBuffer.GetCount(q)); Assert.AreEqual(10, UnsafeRingBuffer.GetCapacity(q)); UnsafeRingBuffer.Clear(q); Assert.AreEqual(0, UnsafeRingBuffer.GetCount(q)); Assert.AreEqual(10, UnsafeRingBuffer.GetCapacity(q)); UnsafeRingBuffer.Free(q); }
public void PeekTest() { var q = UnsafeRingBuffer.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeRingBuffer.Push(q, (int)Math.Pow(i + 2, 2)); } for (int i = 0; i < 10; i++) { UnsafeRingBuffer.Peek <int>(q, out int num); Assert.AreEqual(4, num); } //Verify no items are dequeued Assert.AreEqual(10, UnsafeRingBuffer.GetCount(q)); UnsafeRingBuffer.Free(q); }
public void IteratorTest() { var q = UnsafeRingBuffer.Allocate <int>(10); //Wrap tail around SplitRingBuffer(q); //Iterator should start from the head. int num = 0; foreach (int i in UnsafeRingBuffer.GetEnumerator <int>(q)) { Assert.AreEqual(num, i); num++; } Assert.AreEqual(num, UnsafeRingBuffer.GetCount(q)); UnsafeRingBuffer.Free(q); }