def testKeyedAccumulatorUpdateAccumulator(self): acc1 = utils.KeyedAccumulator(utils.QuantileAccumulator) acc2 = utils.KeyedAccumulator(utils.QuantileAccumulator) acc1.UpdateOneValue(5, 'key1') acc1.UpdateOneValue(22, 'key2') acc2.UpdateOneValue(9, 'key1') acc2.UpdateOneValue(9, 'key3') acc1.UpdateAccumulator(acc2) subacc = acc1.Query(['key1', 'key2', 'key3']) self.assertHistogramsEqual(subacc.bins, [(5, 1), (9, 2), (22, 1)]) subacc = acc1.Query(['key1']) self.assertHistogramsEqual(subacc.bins, [(5, 1), (9, 1)])
def testKeyedAccumulatorSomeMissingKeysQuery(self): acc = utils.KeyedAccumulator(utils.QuantileAccumulator) acc.UpdateOneValue(5, 'key1') acc.UpdateOneValue(22, 'key2') acc.UpdateOneValue(9, 'key1') subacc = acc.Query(['key1', 'key2', 'key3']) self.assertHistogramsEqual(subacc.bins, [(5, 1), (9, 1), (22, 1)])
def testKeyedAccumulatorMultipleKeysUpdateOneValue(self): acc = utils.KeyedAccumulator(utils.QuantileAccumulator) acc.UpdateOneValue(5, 'key1') acc.UpdateOneValue(22, 'key1') acc.UpdateOneValue(9, 'key2') subacc = acc.Query(['key1']) self.assertHistogramsEqual(subacc.bins, [(5, 1), (22, 1)])
def testKeyedAccumulatorQuantileUpdateOneValue(self): acc = utils.KeyedAccumulator(utils.QuantileAccumulator, {'max_bins':3}) acc.UpdateOneValue(5, 'key') acc.UpdateOneValue(22, 'key') acc.UpdateOneValue(9, 'key') subacc = acc.Query(['key']) self.assertHistogramsEqual(subacc.bins, [(5, 1), (9, 1), (22, 1)])
def testKeyedAccumulatorSummaryStatsUpdateOneValue(self): acc = utils.KeyedAccumulator(utils.SummaryStatsAccumulator) for i in range(2, 52, 2): acc.UpdateOneValue(i, 'key') subacc = acc.Query(['key']) self.assertEqual(subacc.n, 25) self.assertAlmostEqual(subacc.mean, 26) self.assertAlmostEqual(subacc.M2, 5200) self.assertAlmostEqual(subacc.variance, 216.666666667) self.assertAlmostEqual(subacc.stddev, 14.719601444)
def testKeyedAccumulatorMissingKeysQueryIsIdempotent(self): acc = utils.KeyedAccumulator(utils.QuantileAccumulator) subacc = acc.Query(['key']) self.assertHistogramsEqual(subacc.bins, []) self.assertEqual(len(acc._accumulators), 0)