def test_one_level_grouping(self): data = [ datum(name='Jill', age=[12, 45]), datum(name='Jack', age=[34, 34]), datum(name='John', age=[56, 65]) ] results = group_by(data, [['name']]) assert_that( results, contains( is_({ 'name': 'Jack', 'age': [34, 34], '_count': 1 }), is_({ 'name': 'Jill', 'age': [12, 45], '_count': 1 }), is_({ 'name': 'John', 'age': [56, 65], '_count': 1 }), ))
def test_one_level_grouping(self): data = [ datum(name='Jill', age=[12, 45]), datum(name='Jack', age=[34, 34]), datum(name='John', age=[56, 65]) ] results = group_by(data, [['name']]) assert_that(results, contains( is_({'name': 'Jack', 'age': [34, 34], '_count': 1}), is_({'name': 'Jill', 'age': [12, 45], '_count': 1}), is_({'name': 'John', 'age': [56, 65], '_count': 1}), ))
def test_two_level_grouping(self): data = [ datum(name='Jill', place='Kettering', age=[34, 36], count=2), datum(name='James', place='Kettering', age=[43, 87], count=2), datum(name='Jill', place='Keswick', age=[76, 32], count=2), ] results = group_by(data, [['name'], ['place']]) assert_that(results, contains( is_({ 'name': 'James', '_subgroup': [ {'place': 'Kettering', 'age': [43, 87], '_count': 2} ]}), is_({ 'name': 'Jill', '_subgroup': [ {'place': 'Keswick', 'age': [76, 32], '_count': 2}, {'place': 'Kettering', 'age': [34, 36], '_count': 2}, ]}), ))
def test_two_level_grouping(self): data = [ datum(name='Jill', place='Kettering', age=[34, 36], count=2), datum(name='James', place='Kettering', age=[43, 87], count=2), datum(name='Jill', place='Keswick', age=[76, 32], count=2), ] results = group_by(data, [['name'], ['place']]) assert_that( results, contains( is_({ 'name': 'James', '_subgroup': [{ 'place': 'Kettering', 'age': [43, 87], '_count': 2 }] }), is_({ 'name': 'Jill', '_subgroup': [ { 'place': 'Keswick', 'age': [76, 32], '_count': 2 }, { 'place': 'Kettering', 'age': [34, 36], '_count': 2 }, ] }), ))