input: Write a function to initialize a TableData object and test its methods.
  assert table.get_rows() == [[1, 'Alice'], [2, 'Bob']]
  assert table.get_columns() == [[1, 2], ['Alice', 'Bob']]
  assert table.get_column_names() == ['id', 'name']
  assert table.get_row_count() == 2
output: class TableData:
      def __init__(self, data):
          self.data = data
  
      def get_rows(self):
          return self.data
  
      def get_columns(self):
          return [list(col) for col in zip(*self.data)]
  
      def get_column_names(self):
          return ['id', 'name']
  
      def get_row_count(self):
          return len(self.data)
  
  # Initialize a TableData object
  table = TableData([[1, 'Alice'], [2, 'Bob']])
  
  # Testing the methods
  assert table.get_rows() == [[1, 'Alice'], [2, 'Bob']]
  assert table.get_columns() == [[1, 2], ['Alice', 'Bob']]
  assert table.get_column_names() == ['id', 'name']
  assert table.get_row_count() == 2