Ejemplo n.º 1
0
        public void EnumerationShouldReturnOnlyRecordsWithData()
        {
            var buffer = new ConcurrentCircularBuffer<int>(2);
            Assert.That(buffer.ToList().Count, Is.EqualTo(0));

            buffer.Enqueue(1);
            Assert.That(buffer.ToList().Count, Is.EqualTo(1));

            buffer.Enqueue(1);
            buffer.Enqueue(1);
            Assert.That(buffer.ToList().Count, Is.EqualTo(2));
        }
Ejemplo n.º 2
0
        public void BufferShouldCountUntilMaxHitThenAlswaysShowMax()
        {
            var buffer = new ConcurrentCircularBuffer<int>(2);

            Assert.That(buffer.Count, Is.EqualTo(0));
            buffer.Enqueue(1);
            Assert.That(buffer.Count, Is.EqualTo(1));
            buffer.Enqueue(1);
            Assert.That(buffer.Count, Is.EqualTo(2));
            buffer.Enqueue(1);
            Assert.That(buffer.Count, Is.EqualTo(2));
        }
        public void BufferShouldCountUntilMaxHitThenAlswaysShowMax()
        {
            var buffer = new ConcurrentCircularBuffer <int>(2);

            Assert.That(buffer.Count, Is.EqualTo(0));
            buffer.Enqueue(1);
            Assert.That(buffer.Count, Is.EqualTo(1));
            buffer.Enqueue(1);
            Assert.That(buffer.Count, Is.EqualTo(2));
            buffer.Enqueue(1);
            Assert.That(buffer.Count, Is.EqualTo(2));
        }
        public void EnumerationShouldReturnOnlyRecordsWithData()
        {
            var buffer = new ConcurrentCircularBuffer <int>(2);

            Assert.That(buffer.ToList().Count, Is.EqualTo(0));

            buffer.Enqueue(1);
            Assert.That(buffer.ToList().Count, Is.EqualTo(1));

            buffer.Enqueue(1);
            buffer.Enqueue(1);
            Assert.That(buffer.ToList().Count, Is.EqualTo(2));
        }
        public void EnqueueShouldAddToFirstSlot()
        {
            var buffer = new ConcurrentCircularBuffer <int>(2);

            buffer.Enqueue(1);
            Assert.That(buffer.First(), Is.EqualTo(1));
        }
Ejemplo n.º 6
0
 public void ConcurrentEnqueueShouldNotLeakIndexPosition()
 {
     var buffer = new ConcurrentCircularBuffer<int>(10);
     Parallel.For(0, 100000, i => buffer.Enqueue(i));
     Assert.That(buffer.Count, Is.EqualTo(10));
     
 }
        public void ConcurrentEnqueueShouldNotLeakIndexPosition()
        {
            var buffer = new ConcurrentCircularBuffer <int>(10);

            Parallel.For(0, 100000, i => buffer.Enqueue(i));
            Assert.That(buffer.Count, Is.EqualTo(10));
        }
        private void ConcurrentEnqueueTestRun(int batchSize)
        {
            var buffer = new ConcurrentCircularBuffer <int>(10);

            try
            {
                int index    = 0;
                int testSize = batchSize;
                Parallel.For(0, testSize, i => buffer.Enqueue(Interlocked.Increment(ref index)));
                Assert.That(buffer.Count, Is.EqualTo(10));
                for (var i = testSize; i > testSize - 10; i--)
                {
                    Assert.That(buffer.Contains(i));
                }
            }
            catch
            {
                foreach (var i in buffer)
                {
                    Console.WriteLine(i);
                }

                throw;
            }
        }
        public void BufferMaxSizeShouldReportMax()
        {
            var buffer = new ConcurrentCircularBuffer <int>(2);

            Assert.That(buffer.MaxSize, Is.EqualTo(2));
            buffer.Enqueue(1);
            Assert.That(buffer.MaxSize, Is.EqualTo(2));
        }
Ejemplo n.º 10
0
        public void BufferMaxSizeShouldReportMax()
        {
            var buffer = new ConcurrentCircularBuffer<int>(2);

            Assert.That(buffer.MaxSize, Is.EqualTo(2));
            buffer.Enqueue(1);
            Assert.That(buffer.MaxSize, Is.EqualTo(2));
        }
        public void EnqueueCanBeUseFromDefferantThread()
        {
            var buffer = new ConcurrentCircularBuffer<int>(2);

            Parallel.For(0, 1000, (i) =>
            {
                buffer.Enqueue(i);
                Assert.That(buffer.Count, Is.LessThanOrEqualTo(2));
            });
            Assert.That(buffer.Count, Is.EqualTo(2));
        }
        public void BufferShouldOnlyStoreMaxAmount()
        {
            var buffer = new ConcurrentCircularBuffer <int>(2);

            for (int i = 0; i < 10; i++)
            {
                buffer.Enqueue(i);
            }

            Assert.That(buffer.Count, Is.EqualTo(2));
        }
Ejemplo n.º 13
0
        public void BufferShouldOnlyStoreMaxAmount()
        {
            var buffer = new ConcurrentCircularBuffer<int>(2);

            for (int i = 0; i < 10; i++)
            {
                buffer.Enqueue(i);
            }

            Assert.That(buffer.Count, Is.EqualTo(2));
        }
Ejemplo n.º 14
0
        public void EnqueueCanBeUseFromDefferantThread()
        {
            var buffer = new ConcurrentCircularBuffer <int>(2);

            Parallel.For(0, 1000, (i) =>
            {
                buffer.Enqueue(i);
                Assert.That(buffer.Count, Is.LessThanOrEqualTo(2));
            });
            Assert.That(buffer.Count, Is.EqualTo(2));
        }
Ejemplo n.º 15
0
        public static void CompleteNetworkWrite(KafkaDataPayload payload, long milliseconds, bool failed)
        {
            if (payload.TrackPayload == false)
            {
                return;
            }

            NetworkWriteStatistic stat;

            if (NetworkWriteQueuedIndex.TryRemove(payload.CorrelationId, out stat))
            {
                stat.SetCompleted(milliseconds, failed);
                CompletedNetworkWriteStatistics.Enqueue(stat);
            }
            Interlocked.Decrement(ref Gauges.QueuedWriteOperation);
        }
Ejemplo n.º 16
0
 public override void Send(NetworkData data)
 {
     HasUnsentMessages = true;
     SendQueue.Enqueue(data);
     Schedule();
 }
Ejemplo n.º 17
0
        private void ConcurrentEnqueueTestRun(int batchSize)
        {
             var buffer = new ConcurrentCircularBuffer<int>(10);

            try
            {
                int index = 0;
                int testSize = batchSize;
                Parallel.For(0, testSize, i => buffer.Enqueue(Interlocked.Increment(ref index)));
                Assert.That(buffer.Count, Is.EqualTo(10));
                for (var i = testSize; i > testSize - 10; i--)
                {
                    Assert.That(buffer.Contains(i));
                }
            }
            catch 
            {
                foreach (var i in buffer)
                {
                    Console.WriteLine(i);
                }

                throw;
            }
           
        }
Ejemplo n.º 18
0
 public static void RecordProduceRequest(int messageCount, int payloadBytes, int compressedBytes)
 {
     ProduceRequestStatistics.Enqueue(new ProduceRequestStatistic(messageCount, payloadBytes, compressedBytes));
 }
Ejemplo n.º 19
0
 public void EnqueueShouldAddToFirstSlot()
 {
     var buffer = new ConcurrentCircularBuffer<int>(2);
     buffer.Enqueue(1);
     Assert.That(buffer.First(), Is.EqualTo(1));
 }