Пример #1
0
    def test_nested_aggregation(self):
        tableset = TableSet(self.tables.values(),
                            self.tables.keys(),
                            key_name='test')

        nested = tableset.group_by('letter')

        results = nested.aggregate([('letter', Length(), 'count'),
                                    ('number', Sum(), 'number_sum')])

        self.assertIsInstance(results, Table)
        self.assertEqual(len(results.rows), 7)
        self.assertEqual(len(results.columns), 4)
        self.assertSequenceEqual(results._column_names,
                                 ('test', 'letter', 'count', 'number_sum'))

        self.assertSequenceEqual(results.rows[0], ('table1', 'a', 2, 4))
        self.assertSequenceEqual(results.rows[1], ('table1', 'b', 1, 2))

        self.assertSequenceEqual(results.rows[2], ('table2', 'b', 1, 0))
        self.assertSequenceEqual(results.rows[3], ('table2', 'a', 1, 2))
        self.assertSequenceEqual(results.rows[4], ('table2', 'c', 1, 5))

        self.assertSequenceEqual(results.rows[5], ('table3', 'a', 2, 3))
        self.assertSequenceEqual(results.rows[6], ('table3', 'c', 1, 3))
Пример #2
0
    def test_nested(self):
        tableset = TableSet(self.tables.values(), self.tables.keys(), key_name='test')

        nested = tableset.group_by('letter')

        self.assertIsInstance(nested, TableSet)
        self.assertEqual(len(nested), 3)
        self.assertSequenceEqual(nested._column_names, ('letter', 'number'))
        self.assertSequenceEqual(nested._column_types, (self.text_type, self.number_type))

        self.assertIsInstance(nested['table1'], TableSet)
        self.assertEqual(len(nested['table1']), 2)
        self.assertSequenceEqual(nested['table1']._column_names, ('letter', 'number'))
        self.assertSequenceEqual(nested['table1']._column_types, (self.text_type, self.number_type))

        self.assertIsInstance(nested['table1']['a'], Table)
        self.assertEqual(len(nested['table1']['a'].columns), 2)
        self.assertEqual(len(nested['table1']['a'].rows), 2)
Пример #3
0
    def test_nested(self):
        tableset = TableSet(self.tables.values(), self.tables.keys(), key_name="test")

        nested = tableset.group_by("letter")

        self.assertIsInstance(nested, TableSet)
        self.assertEqual(len(nested), 3)
        self.assertSequenceEqual(nested._column_names, ("letter", "number"))
        self.assertSequenceEqual(nested._column_types, (self.text_type, self.number_type))

        self.assertIsInstance(nested["table1"], TableSet)
        self.assertEqual(len(nested["table1"]), 2)
        self.assertSequenceEqual(nested["table1"]._column_names, ("letter", "number"))
        self.assertSequenceEqual(nested["table1"]._column_types, (self.text_type, self.number_type))

        self.assertIsInstance(nested["table1"]["a"], Table)
        self.assertEqual(len(nested["table1"]["a"].columns), 2)
        self.assertEqual(len(nested["table1"]["a"].rows), 2)
Пример #4
0
    def test_nested(self):
        tableset = TableSet(self.tables.values(), self.tables.keys(), key_name='test')

        nested = tableset.group_by('letter')

        self.assertIsInstance(nested, TableSet)
        self.assertEqual(len(nested), 3)
        self.assertSequenceEqual(nested._column_names, ('letter', 'number'))
        self.assertSequenceEqual(nested._column_types, (self.text_type, self.number_type))

        self.assertIsInstance(nested['table1'], TableSet)
        self.assertEqual(len(nested['table1']), 2)
        self.assertSequenceEqual(nested['table1']._column_names, ('letter', 'number'))
        self.assertSequenceEqual(nested['table1']._column_types, (self.text_type, self.number_type))

        self.assertIsInstance(nested['table1']['a'], Table)
        self.assertEqual(len(nested['table1']['a'].columns), 2)
        self.assertEqual(len(nested['table1']['a'].rows), 2)
Пример #5
0
    def test_nested_aggregation(self):
        tableset = TableSet(self.tables.values(),
                            self.tables.keys(),
                            key_name='test')

        nested = tableset.group_by('letter')

        results = nested.aggregate([('count', Length()),
                                    ('number_sum', Sum('number'))])

        self.assertIsInstance(results, Table)
        self.assertColumnNames(results,
                               ('test', 'letter', 'count', 'number_sum'))
        self.assertColumnTypes(results, (Text, Text, Number, Number))
        self.assertRows(results, [('table1', 'a', 2, 4), ('table1', 'b', 1, 2),
                                  ('table2', 'b', 1, 0), ('table2', 'a', 1, 2),
                                  ('table2', 'c', 1, 5), ('table3', 'a', 2, 3),
                                  ('table3', 'c', 1, 3)])
Пример #6
0
    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([
            ('letter', Length(), 'count'),
            ('number', Sum(), 'number_sum')
        ])

        self.assertSequenceEqual(results.row_names, [
            ('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))
Пример #7
0
    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([("letter", Length(), "count"), ("number", Sum(), "number_sum")])

        self.assertSequenceEqual(
            results.row_names,
            [
                ("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))
Пример #8
0
    def test_nested_aggregation(self):
        tableset = TableSet(self.tables.values(), self.tables.keys(), key_name="test")

        nested = tableset.group_by("letter")

        results = nested.aggregate([("letter", Length(), "count"), ("number", Sum(), "number_sum")])

        self.assertIsInstance(results, Table)
        self.assertEqual(len(results.rows), 7)
        self.assertEqual(len(results.columns), 4)
        self.assertSequenceEqual(results._column_names, ("test", "letter", "count", "number_sum"))

        self.assertSequenceEqual(results.rows[0], ("table1", "a", 2, 4))
        self.assertSequenceEqual(results.rows[1], ("table1", "b", 1, 2))

        self.assertSequenceEqual(results.rows[2], ("table2", "b", 1, 0))
        self.assertSequenceEqual(results.rows[3], ("table2", "a", 1, 2))
        self.assertSequenceEqual(results.rows[4], ("table2", "c", 1, 5))

        self.assertSequenceEqual(results.rows[5], ("table3", "a", 2, 3))
        self.assertSequenceEqual(results.rows[6], ("table3", "c", 1, 3))
Пример #9
0
    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))
Пример #10
0
    def test_nested_aggregation(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.assertIsInstance(results, Table)
        self.assertColumnNames(results, ('test', 'letter', 'count', 'number_sum'))
        self.assertColumnTypes(results, (Text, Text, Number, Number))
        self.assertRows(results, [
            ('table1', 'a', 2, 4),
            ('table1', 'b', 1, 2),
            ('table2', 'b', 1, 0),
            ('table2', 'a', 1, 2),
            ('table2', 'c', 1, 5),
            ('table3', 'a', 2, 3),
            ('table3', 'c', 1, 3)
        ])
Пример #11
0
    def test_nested_aggregation(self):
        tableset = TableSet(self.tables.values(), self.tables.keys(), key_name="test")

        nested = tableset.group_by("letter")

        results = nested.aggregate([("count", Length()), ("number_sum", Sum("number"))])

        self.assertIsInstance(results, Table)
        self.assertColumnNames(results, ("test", "letter", "count", "number_sum"))
        self.assertColumnTypes(results, (Text, Text, Number, Number))
        self.assertRows(
            results,
            [
                ("table1", "a", 2, 4),
                ("table1", "b", 1, 2),
                ("table2", "b", 1, 0),
                ("table2", "a", 1, 2),
                ("table2", "c", 1, 5),
                ("table3", "a", 2, 3),
                ("table3", "c", 1, 3),
            ],
        )
Пример #12
0
    def test_nested_aggregation(self):
        tableset = TableSet(self.tables.values(), self.tables.keys(), key_name='test')

        nested = tableset.group_by('letter')

        results = nested.aggregate([
            ('letter', Length(), 'count'),
            ('number', Sum(), 'number_sum')
        ])

        self.assertIsInstance(results, Table)
        self.assertEqual(len(results.rows), 7)
        self.assertEqual(len(results.columns), 4)
        self.assertSequenceEqual(results._column_names, ('test', 'letter', 'count', 'number_sum'))

        self.assertSequenceEqual(results.rows[0], ('table1', 'a', 2, 4))
        self.assertSequenceEqual(results.rows[1], ('table1', 'b', 1, 2))

        self.assertSequenceEqual(results.rows[2], ('table2', 'b', 1, 0))
        self.assertSequenceEqual(results.rows[3], ('table2', 'a', 1, 2))
        self.assertSequenceEqual(results.rows[4], ('table2', 'c', 1, 5))

        self.assertSequenceEqual(results.rows[5], ('table3', 'a', 2, 3))
        self.assertSequenceEqual(results.rows[6], ('table3', 'c', 1, 3))