Exemplo n.º 1
0
        public static void WithinBound_Sync(Adapter_ProducerConsumer <TItem> buffer, HashSet <TItem> addSerial)
        {
            BufferFiller <TItem> valueSerial = new BufferFiller <TItem>(buffer);

            valueSerial.FillAt(addSerial);

            Assert.IsTrue(buffer.Count == valueSerial.CountInclusive);

            foreach (TItem item in valueSerial.Inclusive)
            {
                TItem itemTaked = buffer.Take();
                Assert.IsTrue(itemTaked.Equals(item));
            }

            Assert.IsTrue(buffer.Count == 0);
        }
Exemplo n.º 2
0
        public static async Task Add_AtThread_2(Adapter_ProducerConsumer <TItem> buffer, HashSet <TItem> addSerial)
        {
            BufferFiller <TItem> valueSerial = new BufferFiller <TItem>(buffer);

            valueSerial.FillAt(addSerial);

            Assert.IsTrue(valueSerial.CountExclusive > 1);

            Timer timerReaction_First  = new Timer(TimeOut_TakeAction, buffer, DelayWait, Timeout.Infinite);
            Timer timerReaction_Second = new Timer(TimeOut_TakeAction, buffer, DelayWaitDouble, Timeout.Infinite);

            await buffer.Add_AtThread_2(valueSerial.FirstExclusive, valueSerial.SecondExclusive);

            Assert.IsTrue(buffer.Count == buffer.BufferCapacity);

            TItem itemTaked = default(TItem);

            for (int i = 0; i < buffer.BufferCapacity - 1; i++)
            {
                itemTaked = buffer.Take();
            }

            Assert.IsTrue(buffer.Count == 1);

            if (itemTaked.Equals(valueSerial.FirstExclusive))
            {
                itemTaked = buffer.Take();
                Assert.IsTrue(itemTaked.Equals(valueSerial.SecondExclusive));
            }
            else
            {
                Assert.IsTrue(itemTaked.Equals(valueSerial.SecondExclusive));
                itemTaked = buffer.Take();
                Assert.IsTrue(itemTaked.Equals(valueSerial.FirstExclusive));
            }

            Assert.IsTrue(buffer.Count == 0);
        }
Exemplo n.º 3
0
        public static async Task Add_OverUpperBound(Adapter_ProducerConsumer <TItem> buffer, HashSet <TItem> addSerial)
        {
            BufferFiller <TItem> valueSerial = new BufferFiller <TItem>(buffer);

            valueSerial.FillAt(addSerial);

            Assert.IsTrue(valueSerial.CountExclusive > 0);

            Timer timerReaction = new Timer(TimeOut_TakeAction, buffer, DelayWait, Timeout.Infinite);

            await buffer.Add_AtTask(valueSerial.FirstExclusive);

            Assert.IsTrue(buffer.Count == buffer.BufferCapacity);

            TItem itemTaked = default(TItem);

            for (int i = 0; i < buffer.BufferCapacity; i++)
            {
                itemTaked = buffer.Take();
            }

            Assert.IsTrue(buffer.Count == 0);
            Assert.IsTrue(itemTaked.Equals(valueSerial.FirstExclusive));
        }