Beispiel #1
0
    def test_reduce_rows(self):
        table = [['foo', 'bar'], ['a', 3], ['a', 7], ['b', 2], ['b', 1],
                 ['b', 9], ['c', 4]]
        expected = [{
            "foo": "a",
            "barsum": 10
        }, {
            "foo": "b",
            "barsum": 12
        }, {
            "foo": "c",
            "barsum": 4
        }]

        ptable = Table(table)

        ptable.reduce_rows(
            'foo', lambda key, rows: [key, sum(row[1] for row in rows)],
            ['foo', 'barsum'])

        self.assertEqual(expected, ptable.to_dicts())