public static void Pad_FlatRow___Should_return_same_row___When_row_spans_required_number_of_columns()
        {
            // Arrange
            var expected1 = new FlatRow(
                new[] { new NullCell() });

            var expected2 = new FlatRow(
                new[]
            {
                new NullCell(columnsSpanned: 2),
                new NullCell(columnsSpanned: 3),
            });

            // Act
            var actual1  = expected1.Pad(1);
            var actual2a = expected2.Pad(1);
            var actual2b = expected2.Pad(4);
            var actual2c = expected2.Pad(5);

            // Assert
            actual1.AsTest().Must().BeSameReferenceAs(expected1);
            actual2a.AsTest().Must().BeSameReferenceAs(expected2);
            actual2b.AsTest().Must().BeSameReferenceAs(expected2);
            actual2c.AsTest().Must().BeSameReferenceAs(expected2);
        }
        public static void Pad_FlatRow___Should_return_padded_row___When_row_spans_less_than_required_number_of_columns()
        {
            // Arrange
            var row1 = new FlatRow(
                new[] { new NullCell() });

            var expected1 = new FlatRow(
                new[] { new NullCell(), new NullCell() });

            var row2 = new FlatRow(
                new[] { new NullCell(columnsSpanned: 2) });

            var expected2a = new FlatRow(
                new[] { new NullCell(columnsSpanned: 2), new NullCell() });

            var expected2b = new FlatRow(
                new[] { new NullCell(columnsSpanned: 2), new NullCell(), new NullCell() });

            var row3 = new FlatRow(
                new[] { new NullCell(columnsSpanned: 2), new NullCell(columnsSpanned: 3) });

            var expected3 = new FlatRow(
                new[] { new NullCell(columnsSpanned: 2), new NullCell(columnsSpanned: 3), new NullCell(), new NullCell(), new NullCell(), new NullCell() });

            // Act
            var actual1  = row1.Pad(2);
            var actual2a = row2.Pad(3);
            var actual2b = row2.Pad(4);
            var actual3  = row3.Pad(9);

            // Assert
            actual1.AsTest().Must().BeEqualTo(expected1);
            actual2a.AsTest().Must().BeEqualTo(expected2a);
            actual2b.AsTest().Must().BeEqualTo(expected2b);
            actual3.AsTest().Must().BeEqualTo(expected3);
        }