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); }
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]); }