public void Test()
        {
            const int blockCount = 10;
            const int elemPerItem = 5;
            var itemsPerBlock = ExpandableArray<int>.ComputeItemsPerBlock(sizeof(int));

            var x = new ExpandableArray<int>(elemPerItem, sizeof(int));
            Assert.AreEqual(itemsPerBlock, x.ElementsPerBlock / elemPerItem);
            Assert.AreEqual(0, x.GetLocalIndex(0));
            Assert.AreEqual(1, x.GetLocalIndex(1));
            Assert.AreEqual(x.ElementsPerBlock-1, x.GetLocalIndex(x.ElementsPerBlock-1));
            Assert.AreEqual(0, x.GetLocalIndex(x.ElementsPerBlock));
            Assert.AreEqual(0, x.GetLocalIndex(itemsPerBlock*elemPerItem));
            Assert.AreEqual(0, x.GetLocalIndex(itemsPerBlock*blockCount*elemPerItem));
            Assert.AreEqual(2, x.GetLocalIndex(itemsPerBlock*blockCount*elemPerItem + 2));
            Assert.AreEqual(x.ElementsPerBlock-1, x.GetLocalIndex(itemsPerBlock*blockCount*elemPerItem + x.ElementsPerBlock-1));

            x.EnsureCapacity(itemsPerBlock*blockCount*elemPerItem + 1);
            var realBlockCount = x.EnumerateBlocks().Count();

            Assert.IsTrue(realBlockCount == 1 + blockCount + x.BlockCountIncrement);
        }
Exemplo n.º 2
0
        public void Test()
        {
            const int blockCount    = 10;
            const int elemPerItem   = 5;
            var       itemsPerBlock = ExpandableArray <int> .ComputeItemsPerBlock(sizeof(int));

            var x = new ExpandableArray <int>(elemPerItem, sizeof(int));

            Assert.AreEqual(itemsPerBlock, x.ElementsPerBlock / elemPerItem);
            Assert.AreEqual(0, x.GetLocalIndex(0));
            Assert.AreEqual(1, x.GetLocalIndex(1));
            Assert.AreEqual(x.ElementsPerBlock - 1, x.GetLocalIndex(x.ElementsPerBlock - 1));
            Assert.AreEqual(0, x.GetLocalIndex(x.ElementsPerBlock));
            Assert.AreEqual(0, x.GetLocalIndex(itemsPerBlock * elemPerItem));
            Assert.AreEqual(0, x.GetLocalIndex(itemsPerBlock * blockCount * elemPerItem));
            Assert.AreEqual(2, x.GetLocalIndex(itemsPerBlock * blockCount * elemPerItem + 2));
            Assert.AreEqual(x.ElementsPerBlock - 1, x.GetLocalIndex(itemsPerBlock * blockCount * elemPerItem + x.ElementsPerBlock - 1));

            x.EnsureCapacity(itemsPerBlock * blockCount * elemPerItem + 1);
            var realBlockCount = x.EnumerateBlocks().Count();

            Assert.IsTrue(realBlockCount == 1 + blockCount + x.BlockCountIncrement);
        }