code: def test_nested_aggregate_row_names(self):
      tableset = TableSet(
          self.tables.values(), self.tables.keys(), key_name="test"
      )
  
      nested = tableset.group_by("letter")
  
      results = nested.aggregate(
          [("count", Count()), ("number_sum", Sum("number"))]
      )
  
      self.assertRowNames(
          results,
          [
              ("table1", "a"),
              ("table1", "b"),
              ("table2", "b"),
              ("table2", "a"),
              ("table2", "c"),
              ("table3", "a"),
              ("table3", "c"),
          ],
      )
      self.assertSequenceEqual(
          results.rows[("table1", "a")], ("table1", "a", 2, 4)
      )
      self.assertSequenceEqual(
          results.rows[("table2", "c")], ("table2", "c", 1, 5)
      )
  
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 12 for calling the TestAggregate obj's underlying member method code with example usage: obj.test_nested_aggregate_row_names() without return types