Ejemplo n.º 1
0
        private void Do(int C, int P, int M, bool noisy, bool useRAII, Func <Stack <int>, int> test)
        {
            var pool = StackPool <int> .Create(C);

            void testCore(Stack <int> stack)
            {
                var len = stack.Count;

                Assert.AreEqual(0, len);

                var L = test(stack);

                len = stack.Count;
                Assert.AreEqual(L, len);
            }

            if (useRAII)
            {
                Run(() => pool.New(), o => o.Stack, o => o.Dispose(), testCore, P, M, noisy);
            }
            else
            {
                Run(() => pool.Allocate(), o => o, o => pool.Free(o), testCore, P, M, noisy);
            }
        }
Ejemplo n.º 2
0
        public void PooledStack_GottenTooBig()
        {
            var bigPool = StackPool <int> .Create(1, 16, 2048);

            var smallPool = StackPool <int> .Create(1, 16, 16);

            TooBig(() => PooledStack <int> .New(), h => h.Stack, (h, n) => { for (var i = 0; i < n; i++)
                                                                             {
                                                                                 h.Push(i);
                                                                             }
                   }, 1024);
            TooBig(() => bigPool.New(), h => h.Stack, (h, n) => { for (var i = 0; i < n; i++)
                                                                  {
                                                                      h.Push(i);
                                                                  }
                   }, 2048);
            TooBig(() => smallPool.New(), h => h.Stack, (h, n) => { for (var i = 0; i < n; i++)
                                                                    {
                                                                        h.Push(i);
                                                                    }
                   }, 16);
        }
Ejemplo n.º 3
0
 public void PooledStack_ArgumentChecking()
 {
     Assert.ThrowsException <ArgumentOutOfRangeException>(() => StackPool <int> .Create(4, -1));
     Assert.ThrowsException <ArgumentOutOfRangeException>(() => StackPool <int> .Create(4, 16, -1));
 }
Ejemplo n.º 4
0
        public void PooledStack_Simple2()
        {
            var pool = StackPool <string> .Create(4, 16);

            PooledStack_Simple_Impl(pool);
        }