code: def test_merge(self):
      tableset = TableSet(self.tables.values(), self.tables.keys())
  
      table = tableset.merge()
  
      self.assertColumnNames(table, ["group", "letter", "number"])
      self.assertColumnTypes(table, [Text, Text, Number])
  
      self.assertEqual(len(table.rows), 9)
      self.assertSequenceEqual(table.rows[0], ["table1", "a", 1])
      self.assertSequenceEqual(table.rows[8], ["table3", "c", 3])
  
file_path: agate/tests/test_tableset/test_merge.py
imports: from collections import OrderedDict
  from agate import Table, TableSet
  from agate.data_types import Number, Text
  from agate.testcase import AgateTestCase
label_desc: Use image node_id 2 for calling the TestAggregate obj's underlying member method code with example usage: obj.test_merge() without return types