code: def test_aggregate_key_type(self):
      tables = OrderedDict(
          [
              (
                  1,
                  Table(
                      self.table1, self.column_names, self.column_types
                  ),
              ),
              (
                  2,
                  Table(
                      self.table2, self.column_names, self.column_types
                  ),
              ),
              (
                  3,
                  Table(
                      self.table3, self.column_names, self.column_types
                  ),
              ),
          ]
      )
  
      tableset = TableSet(
          tables.values(),
          tables.keys(),
          key_name="test",
          key_type=self.number_type,
      )
  
      new_table = tableset.aggregate([("count", Count())])
  
      self.assertIsInstance(new_table, Table)
      self.assertColumnNames(new_table, ("test", "count"))
      self.assertColumnTypes(new_table, [Number, Number])
  
imports: from collections import OrderedDict
  from decimal import Decimal
  from agate import Table, TableSet
  from agate.aggregations import Count, MaxLength, Mean, Min, Sum
  from agate.data_types import Number, Text
  from agate.exceptions import DataTypeError
  from agate.testcase import AgateTestCase
label_desc: Use image node_id 3 for calling the TestAggregate obj's underlying member method code with example usage: obj.test_aggregate_key_type() without return types