Exemple #1
0
        public void TestUnderwrite()
        {
            var buffer = new CCircularBuffer <long>(5);

            Assert.AreEqual(default(long), buffer.Enqueue(1));
            Assert.AreEqual(default(long), buffer.Enqueue(2));
            Assert.AreEqual(default(long), buffer.Enqueue(3));
            Assert.AreEqual(3, buffer.Count);
            Assert.AreEqual(1, buffer.Dequeue());
            Assert.AreEqual(2, buffer.Dequeue());
            Assert.AreEqual(3, buffer.Dequeue());
            Assert.AreEqual(0, buffer.Count);
        }
Exemple #2
0
        public void TestEnumerationWhenPartiallyFull()
        {
            var buffer = new CCircularBuffer <long>(3);

            Assert.AreEqual(default(long), buffer.Enqueue(1));
            Assert.AreEqual(default(long), buffer.Enqueue(2));
            var i = 0;

            foreach (var value in buffer)
            {
                Assert.AreEqual(++i, value);
            }
            Assert.AreEqual(i, 2);
        }
Exemple #3
0
        public void TestDecreaseCapacityWhenFull()
        {
            var buffer = new CCircularBuffer <long>(3);

            Assert.AreEqual(default(long), buffer.Enqueue(1));
            Assert.AreEqual(default(long), buffer.Enqueue(2));
            Assert.AreEqual(default(long), buffer.Enqueue(3));
            Assert.AreEqual(3, buffer.Count);
            buffer.Capacity = 2;
            Assert.AreEqual(2, buffer.Count);
            Assert.AreEqual(1, buffer.Dequeue());
            Assert.AreEqual(2, buffer.Dequeue());
            Assert.AreEqual(0, buffer.Count);
        }
Exemple #4
0
        public void TestPeek()
        {
            var buffer = new CCircularBuffer <long>(5);

            Assert.AreEqual(default(long), buffer.Enqueue(1));
            Assert.AreEqual(default(long), buffer.Enqueue(2));
            Assert.AreEqual(default(long), buffer.Enqueue(3));

            Assert.AreEqual(1, buffer.Peek());

            long[] arrPeek = buffer.Peek_OrNull(4);
            Assert.AreEqual(1, arrPeek[0]);
            Assert.AreEqual(2, arrPeek[1]);
            Assert.AreEqual(3, arrPeek[2]);
            Assert.AreEqual(3, arrPeek.Length);
        }
        public void RingBuffer_Enqueue_Dequeue_Test()
        {
            SPacketTest_Struct pPacketTest  = new SPacketTest_Struct(1, "인큐_디큐_테스트");
            SPacketTest_Struct pPacketTest2 = new SPacketTest_Struct(2, "더미데이터");

            byte[] arrPacketData = ByteExtension.ConvertByteArray(pPacketTest);
            int    iDataSize     = arrPacketData.Length;

            var pBuffer = new CCircularBuffer <byte>(10240);

            pBuffer.Enqueue(arrPacketData);

            Assert.AreNotEqual(pPacketTest.iValue, pPacketTest2.iValue);
            Assert.AreNotEqual(pPacketTest.strValue, pPacketTest2.strValue);

            byte[] arrPacketData2 = pBuffer.Dequeue_OrNull(iDataSize);
            arrPacketData2.Convert_ToStruct(out pPacketTest2);

            Assert.AreEqual(pPacketTest.iValue, pPacketTest2.iValue);
            Assert.AreEqual(pPacketTest.strValue, pPacketTest2.strValue);
        }