Esempio n. 1
0
  def testGetSimilarHistoricalTimings_Same(self):
    now = datetime.datetime.now()
    self._RecordTiming(
        {
            'configuration': 'linux',
            'benchmark': 'foo',
            'story': 'bar1'
        }, now - datetime.timedelta(minutes=1), now)

    median = math_utils.Median([i for i in range(0, 10)])
    std_dev = math_utils.StandardDeviation([i for i in range(0, 10)])
    p90 = math_utils.Percentile([i for i in range(0, 10)], 0.9)
    for i in range(0, 10):
      j = self._RecordTiming(
          {
              'configuration': 'linux',
              'benchmark': 'foo',
              'story': 'bar2'
          }, now - datetime.timedelta(seconds=i), now)

    timings, tags = timing_record.GetSimilarHistoricalTimings(j)

    self.assertEqual(['try', 'linux', 'foo', 'bar2'], tags)
    self.assertClose(median, timings[0].total_seconds())
    self.assertClose(std_dev, timings[1].total_seconds())
    self.assertClose(p90, timings[2].total_seconds())
Esempio n. 2
0
def _Estimate(tags, completed_before=None):
    records = _QueryTimingRecords(tags, completed_before)

    if not records:
        if tags:
            return _Estimate(tags[:-1])
        return None

    times = [(r.completed - r.started).total_seconds() for r in records]

    median = math_utils.Median(times)
    std_dev = math_utils.StandardDeviation(times)
    p90 = math_utils.Percentile(times, 0.9)
    timings = Timings(datetime.timedelta(seconds=median),
                      datetime.timedelta(seconds=std_dev),
                      datetime.timedelta(seconds=p90))

    return EstimateResult(timings, tags)
Esempio n. 3
0
 def testPercentile_Interpolation(self):
     self.assertEqual(5.1, math_utils.Percentile(range(8), 0.7))
Esempio n. 4
0
 def testPercentile_RoundIndex(self):
     self.assertEqual(2, math_utils.Percentile(range(5), 0.5))
Esempio n. 5
0
 def testPercentile_Max(self):
     self.assertEqual(7, math_utils.Percentile(range(8), 1))
Esempio n. 6
0
 def testPercentile_Min(self):
     self.assertEqual(0, math_utils.Percentile(range(8), 0))