public void AWriteTest() { var buffer = new ConcurrentRingBuffer <MyComplexValue>(0x1000); var value = new MyComplexValue(); for (long i = 0; i < 0x1000; i++) { Assert.IsTrue(buffer.Set(i, value)); } for (long i = 0; i < 0x1000; i++) { Assert.IsTrue(buffer.TryGet(i, out value)); } for (long i = 0; i < 0x1000; i++) { Assert.IsTrue(buffer.Clear(i)); } }
public void Test_Concurrent_Ring_Buffer() { var buffer = new ConcurrentRingBuffer <string>(3); buffer.Put("A"); buffer.Put("B"); Assert.AreEqual(buffer.Get().Count, 2); Assert.AreEqual(buffer.GetFirst(), "A"); Assert.AreEqual(buffer.GetLast(), "B"); buffer.Put("C"); Assert.AreEqual(buffer.Get().Count, 3); Assert.AreEqual(buffer.GetFirst(), "A"); Assert.AreEqual(buffer.GetLast(), "C"); buffer.Put("D"); Assert.AreEqual(buffer.Get().Count, 3); Assert.AreEqual(buffer.GetLast(), "D"); Assert.AreEqual(buffer.GetFirst(), "B"); }
public void SpeedRunTest() { long size = 0x1000000; var buffer = new ConcurrentRingBuffer <MyComplexValue>((uint)size); var value = new MyComplexValue(); for (long i = 0; i < size; i++) { buffer.Set(i, value); } for (long i = 0; i < size; i++) { buffer.TryGet(i, out value); } for (long i = 0; i < size; i++) { buffer.Clear(i); } }