public void CreateFinalPiece()
        {
            var piece = new StandardPicker.Piece(0, Constants.BlockSize * 3 + 1);

            Assert.AreEqual(4, piece.BlockCount);

            Assert.AreEqual(Constants.BlockSize * 3, piece.Blocks[3].StartOffset);
            Assert.AreEqual(1, piece.Blocks[3].RequestLength);
        }
        public void CreatePiece_NotMultipleOf16KB()
        {
            var totalSize = 2318336;
            var piece     = new StandardPicker.Piece(0, totalSize);

            Assert.AreEqual(142, piece.BlockCount);

            for (int i = 0; i < piece.BlockCount - 1; i++)
            {
                Assert.AreEqual(Constants.BlockSize, piece[i].RequestLength);
            }
            Assert.AreEqual(totalSize - (Constants.BlockSize * 141), piece[141].RequestLength);
        }
        public void CreateNormalPiece()
        {
            var piece = new StandardPicker.Piece(0, Constants.BlockSize * 3);

            Assert.AreEqual(3, piece.BlockCount);

            Assert.AreEqual(Constants.BlockSize * 0, piece.Blocks[0].StartOffset);
            Assert.AreEqual(Constants.BlockSize * 1, piece.Blocks[0].RequestLength);

            Assert.AreEqual(Constants.BlockSize * 1, piece.Blocks[1].StartOffset);
            Assert.AreEqual(Constants.BlockSize * 1, piece.Blocks[1].RequestLength);

            Assert.AreEqual(Constants.BlockSize * 2, piece.Blocks[2].StartOffset);
            Assert.AreEqual(Constants.BlockSize * 1, piece.Blocks[2].RequestLength);
        }