public TableView addRow(final Object... row) {
        if (row.length > sizeOfColumnsInRow) {
            throw new IllegalArgumentException(String.format("Expecting the size of row to be %d but was %s", sizeOfColumnsInRow, row.length));
        }
        String[] columns = Arrays.stream(row).map(Object::toString).map(String::trim).toArray(String[]::new);
        for (int i = 0; i < columns.length; i++) {
            maxContentLengthOfColumns[i] = Math.max(maxContentLengthOfColumns[i], columns[i].length());
        }
        table.add(columns);
        return this;
    }
@Test
    void testUnexpectedColumns() {
        TableView tableView = new TableView("header 1", "header 2", "header 3", "header 4");
        Assertions.assertThatExceptionOfType(IllegalArgumentException.class)
                .isThrownBy(() -> tableView.addRow("column 1", "column 2", "column 3", "column 4", "column 5"))
                .withMessage("Expecting the size of row to be 4 but was 5");
    }