def test_groupby(self): record_aggregator = RecordAggregator() # Insert 3 throughputs record_aggregator.insert(PerfThroughput(5, timestamp=0)) record_aggregator.insert(PerfThroughput(1, timestamp=1)) record_aggregator.insert(PerfThroughput(10, timestamp=1)) def groupby_criteria(record): return record.timestamp() records = record_aggregator.groupby([PerfThroughput], groupby_criteria) self.assertEqual(list(records[PerfThroughput]), [0, 1]) self.assertEqual( list(records[PerfThroughput].values()), [PerfThroughput(5.0), PerfThroughput(10.0)]) records = record_aggregator.groupby([PerfThroughput], groupby_criteria) self.assertEqual(list(records[PerfThroughput]), [0, 1]) self.assertEqual( list(records[PerfThroughput].values()), [PerfThroughput(5.0), PerfThroughput(10.0)])
def test_groupby(self): record_aggregator = RecordAggregator() # Insert 3 throughputs record_aggregator.insert( PerfThroughput("Throughput: 5 infer/sec\n\n\n\n", timestamp=0)) record_aggregator.insert( PerfThroughput("Throughput: 1 infer/sec\n\n\n\n", timestamp=1)) record_aggregator.insert( PerfThroughput("Throughput: 10 infer/sec\n\n\n\n", timestamp=1)) def groupby_criteria(record): return record.timestamp() records = record_aggregator.groupby([PerfThroughput], groupby_criteria) self.assertTrue(list(records[PerfThroughput]) == [0, 1]) self.assertTrue(list(records[PerfThroughput].values()) == [5.0, 10.0]) records = record_aggregator.groupby([PerfThroughput], groupby_criteria, reduce_func=min) self.assertTrue(list(records[PerfThroughput]) == [0, 1]) self.assertTrue(list(records[PerfThroughput].values()) == [5.0, 1.0])