public void TestFlowSizeTwo()
        {
            EventBean[] set1 = Make(2);
            _bufferTwo.Add(set1);
            AssertEvents(new [] { set1[1], set1[0] }, _bufferTwo);

            EventBean[] set2 = Make(1);
            _bufferTwo.Add(set2);
            AssertEvents(new [] { set2[0], set1[1] }, _bufferTwo);

            EventBean[] set3 = Make(1);
            _bufferTwo.Add(set3);
            AssertEvents(new [] { set3[0], set2[0] }, _bufferTwo);

            EventBean[] set4 = Make(3);
            _bufferTwo.Add(set4);
            AssertEvents(new [] { set4[2], set4[1] }, _bufferTwo);

            EventBean[] set5 = Make(5);
            _bufferTwo.Add(set5);
            AssertEvents(new [] { set5[4], set5[3] }, _bufferTwo);

            EventBean[] set6 = Make(1);
            _bufferTwo.Add(set6);
            AssertEvents(new [] { set6[0], set5[4] }, _bufferTwo);
            _bufferTwo.Add(Make(0));
            AssertEvents(new [] { set6[0], set5[4] }, _bufferTwo);

            EventBean[] set7 = Make(2);
            _bufferTwo.Add(set7);
            AssertEvents(new [] { set7[1], set7[0] }, _bufferTwo);
        }
        public void TestFlowSizeOne()
        {
            _bufferOne.Add((EventBean[])null);
            Assert.IsNull(_bufferOne.Get(0));

            EventBean[] set1 = Make(2);
            _bufferOne.Add(set1);
            Assert.AreSame(set1[1], _bufferOne.Get(0));
            TryInvalid(_bufferOne, 1);

            EventBean[] set2 = Make(1);
            _bufferOne.Add(set2);
            Assert.AreSame(set2[0], _bufferOne.Get(0));
            TryInvalid(_bufferOne, 1);
        }
        public void TestFlowSizeTen()
        {
            EventBean[] set1 = Make(3);
            _bufferFive.Add(set1);
            AssertEvents(new [] { set1[2], set1[1], set1[0], null, null }, _bufferFive);

            EventBean[] set2 = Make(1);
            _bufferFive.Add(set2);
            AssertEvents(new [] { set2[0], set1[2], set1[1], set1[0], null }, _bufferFive);

            EventBean[] set3 = Make(3);
            _bufferFive.Add(set3);
            AssertEvents(new [] { set3[2], set3[1], set3[0], set2[0], set1[2] }, _bufferFive);

            EventBean[] set4 = Make(5);
            _bufferFive.Add(set4);
            AssertEvents(new [] { set4[4], set4[3], set4[2], set4[1], set4[0] }, _bufferFive);

            EventBean[] set5 = Make(8);
            _bufferFive.Add(set5);
            AssertEvents(new [] { set5[7], set5[6], set5[5], set5[4], set5[3] }, _bufferFive);

            EventBean[] set6 = Make(2);
            _bufferFive.Add(set6);
            AssertEvents(new [] { set6[1], set6[0], set5[7], set5[6], set5[5] }, _bufferFive);
        }