def testArithmeticMean(self):
   # The ArithmeticMean function computes the simple average.
   self.assertAlmostEquals(40/3.0, statistics.ArithmeticMean([10, 10, 20], 3))
   self.assertAlmostEquals(15.0, statistics.ArithmeticMean([10, 20], 2))
   # Both lists of values or single values can be given for either argument.
   self.assertAlmostEquals(40/3.0, statistics.ArithmeticMean(40, [1, 1, 1]))
   # If the 'count' is zero, then zero is returned.
   self.assertEquals(0, statistics.ArithmeticMean(4.0, 0))
   self.assertEquals(0, statistics.ArithmeticMean(4.0, []))
Exemple #2
0
    def AddResults(self, tab, results):
        if self._stats.mouse_wheel_scroll_latency:
            mean_mouse_wheel_scroll_latency = statistics.ArithmeticMean(
                self._stats.mouse_wheel_scroll_latency,
                len(self._stats.mouse_wheel_scroll_latency))
            results.Add('mean_mouse_wheel_scroll_latency', 'ms',
                        round(mean_mouse_wheel_scroll_latency, 3))

        if self._stats.touch_scroll_latency:
            mean_touch_scroll_latency = statistics.ArithmeticMean(
                self._stats.touch_scroll_latency,
                len(self._stats.touch_scroll_latency))
            results.Add('mean_touch_scroll_latency', 'ms',
                        round(mean_touch_scroll_latency, 3))

        if self._stats.js_touch_scroll_latency:
            mean_js_touch_scroll_latency = statistics.ArithmeticMean(
                self._stats.js_touch_scroll_latency,
                len(self._stats.js_touch_scroll_latency))
            results.Add('mean_js_touch_scroll_latency', 'ms',
                        round(mean_js_touch_scroll_latency, 3))

        # List of raw frame times.
        frame_times = FlattenList(self._stats.frame_times)
        results.Add('frame_times', 'ms', frame_times)

        # Arithmetic mean of frame times.
        mean_frame_time = statistics.ArithmeticMean(frame_times,
                                                    len(frame_times))
        results.Add('mean_frame_time', 'ms', round(mean_frame_time, 3))

        # Absolute discrepancy of frame time stamps.
        jank = statistics.FrameDiscrepancy(self._stats.frame_timestamps)
        results.Add('jank', '', round(jank, 4))

        # Are we hitting 60 fps for 95 percent of all frames?
        # We use 19ms as a somewhat looser threshold, instead of 1000.0/60.0.
        percentile_95 = statistics.Percentile(frame_times, 95.0)
        results.Add('mostly_smooth', 'score',
                    1.0 if percentile_95 < 19.0 else 0.0)

        if tab.browser.platform.IsRawDisplayFrameRateSupported():
            for r in tab.browser.platform.GetRawDisplayFrameRateMeasurements():
                if r.value is None:
                    raise MissingDisplayFrameRateError(r.name)
                results.Add(r.name, r.unit, r.value)
Exemple #3
0
  def AddResults(self, tab, results):
    # List of raw frame times.
    results.Add('frame_times', 'ms', self._stats.frame_times)

    # Arithmetic mean of frame times.
    mean_frame_time = statistics.ArithmeticMean(self._stats.frame_times,
                                                len(self._stats.frame_times))
    results.Add('mean_frame_time', 'ms', round(mean_frame_time, 3))

    # Absolute discrepancy of frame time stamps.
    jank = statistics.FrameDiscrepancy(self._stats.frame_timestamps)
    results.Add('jank', '', round(jank, 4))

    # Are we hitting 60 fps for 95 percent of all frames? (Boolean value)
    # We use 17ms as a slightly looser threshold, instead of 1000.0/60.0.
    results.Add('mostly_smooth', '',
        statistics.Percentile(self._stats.frame_times, 95.0) < 17.0)