Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1707)

Unified Diff: tools/telemetry/telemetry/value/scalar.py

Issue 27486002: Cleanup of page_measurement_results object (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: keep on trying Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/value/scalar.py
diff --git a/tools/telemetry/telemetry/value/scalar.py b/tools/telemetry/telemetry/value/scalar.py
new file mode 100644
index 0000000000000000000000000000000000000000..e076671d4319416763f1ab94cb62cd22fa68d0ce
--- /dev/null
+++ b/tools/telemetry/telemetry/value/scalar.py
@@ -0,0 +1,67 @@
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+from telemetry.value import Value
+from telemetry.value.list_of_scalar_values import ListOfScalarValues
+
+class ScalarValue(Value):
+ def __init__(self, page, name, units, value, important=True):
+ """A single value (float or integer) result from a test.
+
+ A test that counts the number of DOM elements in a page might produce a
+ scalar value:
+ ScalarValue(page, 'num_dom_elements', 'count', num_elements)
+ """
+ super(ScalarValue, self).__init__(page, name, units, important)
+ assert isinstance(value, int) or isinstance(value, float)
+ self.value = value
+
+ def __repr__(self):
+ if self.page:
+ page_name = self.page.url
+ else:
+ page_name = None
+ return 'ScalarValue(%s, %s, %s, %s, important=%s)' % (
+ page_name,
+ self.name, self.units,
+ self.value,
+ self.important)
+
+ def GetBuildbotDataType(self, output_context):
+ if self._IsImportantGivenOutputIntent(output_context):
+ return 'default'
+ return 'unimportant'
+
+ def GetBuildbotValue(self):
+ # Buildbot's print_perf_results method likes to get lists for all values,
+ # even when they are scalar, so list-ize the return value.
+ return [self.value]
+
+ def GetRepresentativeNumber(self):
+ return self.value
+
+ def GetRepresentativeString(self):
+ return str(self.value)
+
+ @classmethod
+ def MergeLikeValuesFromSamePage(cls, values):
+ assert len(values) > 0
+ v0 = values[0]
+ return ListOfScalarValues(
+ v0.page, v0.name, v0.units,
+ [v.value for v in values],
+ important=v0.important)
+
+ @classmethod
+ def MergeLikeValuesFromDifferentPages(cls, values,
+ group_by_name_suffix=False):
+ assert len(values) > 0
+ v0 = values[0]
+ if not group_by_name_suffix:
+ name = v0.name
+ else:
+ name = v0.name_suffix
+ return ListOfScalarValues(
+ None, name, v0.units,
+ [v.value for v in values],
+ important=v0.important)
« no previous file with comments | « tools/telemetry/telemetry/value/merge_values_unittest.py ('k') | tools/telemetry/telemetry/value/scalar_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698