def add_rows(rows)
      sizes = rows.collect {|r| r.size }.uniq
      expected_size = @table_columns.size
      errors = sizes.select {|s| s != expected_size }
      raise ArgumentError.new("Given a row of data with #{errors.to_sentence} entries, but there are only #{expected_size} columns in the table") if errors.any?
      @data += rows
    end
def add_rows(rows)
      sizes = rows.collect {|r| r.size }.uniq
      expected_size = @table_columns.size
      errors = sizes.select {|s| s != expected_size }
      raise ArgumentError.new("Given a row of data with #{errors.to_sentence} entries, but there are only #{expected_size} columns in the table") if errors.any?
      @data += rows
    end
Adds multiple rows to the table
 @param [Array] rows A 2d Array containing multiple rows of data. Each Array should have the same number of entries as the table has columns