Esempio n. 1
0
  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)])
Esempio n. 2
0
  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)])
Esempio n. 3
0
  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)])
Esempio n. 4
0
  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)])
Esempio n. 5
0
  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)
Esempio n. 6
0
 def testKeyedAccumulatorMissingKeysQueryIsIdempotent(self):
   acc = utils.KeyedAccumulator(utils.QuantileAccumulator)
   subacc = acc.Query(['key'])
   self.assertHistogramsEqual(subacc.bins, [])
   self.assertEqual(len(acc._accumulators), 0)