def test_default_values(self): """Verify group by with two items""" stops = GroupedData('year', defaults={'race1': 0, 'race2': 0}) stops.add(year=2010, race1=10) stops.add(year=2011, race2=10) expected = [{'year': 2010, 'race1': 10, 'race2': 0}, {'year': 2011, 'race1': 0, 'race2': 10}] self.assertEqual(stops.flatten(), expected)
def test_single_item_group(self): """Verify group by with single item""" stops = GroupedData(by='year') stops.add(year=2010, race1=10) stops.add(year=2010, race2=10) stops.add(year=2011, race1=5) stops.add(year=2011, race2=5) expected = [{'year': 2010, 'race1': 10, 'race2': 10}, {'year': 2011, 'race1': 5, 'race2': 5}] self.assertEqual(stops.flatten(), expected)
def test_pair_item_group(self): """Verify group by with two items""" stops = GroupedData(by=('purpose', 'year')) stops.add(purpose='Checkpoint', year=2010, race1=10) stops.add(purpose='Checkpoint', year=2010, race2=10) stops.add(purpose='Checkpoint', year=2011, race1=5) stops.add(purpose='Checkpoint', year=2011, race2=5) expected = [{'purpose': 'Checkpoint', 'year': 2010, 'race1': 10, 'race2': 10}, {'purpose': 'Checkpoint', 'year': 2011, 'race1': 5, 'race2': 5}] self.assertEqual(stops.flatten(), expected)
def test_default_values(self): """Verify group by with two items""" stops = GroupedData('year', defaults={'race1': 0, 'race2': 0}) stops.add(year=2010, race1=10) stops.add(year=2011, race2=10) expected = [{ 'year': 2010, 'race1': 10, 'race2': 0 }, { 'year': 2011, 'race1': 0, 'race2': 10 }] self.assertEqual(stops.flatten(), expected)
def test_single_item_group(self): """Verify group by with single item""" stops = GroupedData(by='year') stops.add(year=2010, race1=10) stops.add(year=2010, race2=10) stops.add(year=2011, race1=5) stops.add(year=2011, race2=5) expected = [{ 'year': 2010, 'race1': 10, 'race2': 10 }, { 'year': 2011, 'race1': 5, 'race2': 5 }] self.assertEqual(stops.flatten(), expected)
def test_pair_item_group(self): """Verify group by with two items""" stops = GroupedData(by=('purpose', 'year')) stops.add(purpose='Checkpoint', year=2010, race1=10) stops.add(purpose='Checkpoint', year=2010, race2=10) stops.add(purpose='Checkpoint', year=2011, race1=5) stops.add(purpose='Checkpoint', year=2011, race2=5) expected = [{ 'purpose': 'Checkpoint', 'year': 2010, 'race1': 10, 'race2': 10 }, { 'purpose': 'Checkpoint', 'year': 2011, 'race1': 5, 'race2': 5 }] self.assertEqual(stops.flatten(), expected)