def test_compute_statistics(self): def compute_statistics(values): statistics = PerfTest.compute_statistics(map(lambda x: float(x), values)) return json.loads(json.dumps(statistics)) statistics = compute_statistics([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11]) self.assertEqual(sorted(statistics.keys()), ['avg', 'max', 'median', 'min', 'stdev']) self.assertEqual(statistics['avg'], 10.5) self.assertEqual(statistics['min'], 1) self.assertEqual(statistics['max'], 20) self.assertEqual(statistics['median'], 10.5) self.assertEqual(compute_statistics([8, 9, 10, 11, 12])['avg'], 10) self.assertEqual(compute_statistics([8, 9, 10, 11, 12] * 4)['avg'], 10) self.assertEqual(compute_statistics([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])['avg'], 10) self.assertEqual(PerfTest.compute_statistics([1, 5, 2, 8, 7])['median'], 5) self.assertEqual(PerfTest.compute_statistics([1, 6, 2, 8, 7, 2])['median'], 4) self.assertAlmostEqual(statistics['stdev'], math.sqrt(35)) self.assertAlmostEqual(compute_statistics([1, 2, 3, 4, 5, 6])['stdev'], math.sqrt(3.5)) self.assertAlmostEqual(compute_statistics([4, 2, 5, 8, 6])['stdev'], math.sqrt(5))
def compute_statistics(values): statistics = PerfTest.compute_statistics(map(lambda x: float(x), values)) return json.loads(json.dumps(statistics))