Example #1
0
        public void ExtendTo()
        {
            BlockArray blocks;

            blocks = new BlockArray();
            blocks.ExtendTo(1);
            Assert.Equal(blocks.BlockSize, blocks.Size);
            Assert.Single(blocks.GetBlocks());

            blocks.ExtendTo(blocks.BlockSize / 2);
            Assert.Equal(blocks.BlockSize, blocks.Size);
            Assert.Single(blocks.GetBlocks());
            Assert.Equal(blocks.BlockSize, blocks.GetBlocks()[0].Length);

            blocks.ExtendTo(blocks.BlockSize + 1);
            Assert.Equal(blocks.BlockSize * 2, blocks.Size);
            Assert.Equal(2, blocks.GetBlocks().Length);
            Assert.Equal(blocks.BlockSize, blocks.GetBlocks()[0].Length);
            Assert.Equal(blocks.BlockSize, blocks.GetBlocks()[1].Length);
        }
Example #2
0
        public void TruncateTo()
        {
            BlockArray blocks;

            blocks = new BlockArray();
            blocks.TruncateTo(0);
            Assert.Equal(0, blocks.Size);
            Assert.Empty(blocks.GetBlocks());

            blocks.ExtendTo(1);
            blocks.TruncateTo(1);
            Assert.Equal(blocks.BlockSize, blocks.Size);
            Assert.Single(blocks.GetBlocks());

            blocks.TruncateTo(1000000);
            blocks.TruncateTo(1);
            Assert.Equal(blocks.BlockSize, blocks.Size);
            Assert.Single(blocks.GetBlocks());

            blocks.TruncateTo(0);
            Assert.Equal(0, blocks.Size);
            Assert.Empty(blocks.GetBlocks());

            blocks.ExtendTo(blocks.BlockSize * 4);
            blocks.GetBlocks()[0].Buffer[0] = 0;
            blocks.GetBlocks()[1].Buffer[0] = 1;
            blocks.GetBlocks()[2].Buffer[0] = 2;
            blocks.GetBlocks()[3].Buffer[0] = 3;

            blocks.TruncateTo(blocks.BlockSize * 3);
            Assert.Equal(blocks.BlockSize * 3, blocks.Size);
            Assert.Equal(3, blocks.GetBlocks().Length);
            Assert.Equal(0, blocks.GetBlocks()[0].Buffer[0]);
            Assert.Equal(1, blocks.GetBlocks()[1].Buffer[0]);
            Assert.Equal(2, blocks.GetBlocks()[2].Buffer[0]);

            blocks.TruncateTo(blocks.BlockSize * 2 + 1);
            Assert.Equal(blocks.BlockSize * 3, blocks.Size);
            Assert.Equal(3, blocks.GetBlocks().Length);
            Assert.Equal(0, blocks.GetBlocks()[0].Buffer[0]);
            Assert.Equal(1, blocks.GetBlocks()[1].Buffer[0]);
            Assert.Equal(2, blocks.GetBlocks()[2].Buffer[0]);

            blocks.TruncateTo(blocks.BlockSize);
            Assert.Equal(blocks.BlockSize, blocks.Size);
            Assert.Single(blocks.GetBlocks());
            Assert.Equal(0, blocks.GetBlocks()[0].Buffer[0]);
        }