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

Side by Side Diff: tools/telemetry/telemetry/value/merge_values_unittest.py

Issue 809393002: Added support for improvement_direction to relevant values, which is propogated to chartjson. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix linter issues Created 5 years, 11 months 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 unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import os 4 import os
5 import unittest 5 import unittest
6 6
7 from telemetry import page as page_module 7 from telemetry import page as page_module
8 from telemetry.page import page_set 8 from telemetry.page import page_set
9 from telemetry.value import improvement_direction
9 from telemetry.value import list_of_scalar_values 10 from telemetry.value import list_of_scalar_values
10 from telemetry.value import merge_values 11 from telemetry.value import merge_values
11 from telemetry.value import scalar 12 from telemetry.value import scalar
12 13
13 14
14 class TestBase(unittest.TestCase): 15 class TestBase(unittest.TestCase):
15 def setUp(self): 16 def setUp(self):
16 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) 17 ps = page_set.PageSet(file_path=os.path.dirname(__file__))
17 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) 18 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir))
18 ps.AddUserStory(page_module.Page('http://www.baz.com/', ps, ps.base_dir)) 19 ps.AddUserStory(page_module.Page('http://www.baz.com/', ps, ps.base_dir))
19 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) 20 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir))
20 self.page_set = ps 21 self.page_set = ps
21 22
22 @property 23 @property
23 def pages(self): 24 def pages(self):
24 return self.page_set.pages 25 return self.page_set.pages
25 26
26 class MergeValueTest(TestBase): 27 class MergeValueTest(TestBase):
27 def testSamePageMergeBasic(self): 28 def testSamePageMergeBasic(self):
28 page0 = self.pages[0] 29 page0 = self.pages[0]
29 page1 = self.pages[1] 30 page1 = self.pages[1]
30 31
31 all_values = [scalar.ScalarValue(page0, 'x', 'units', 1), 32 all_values = [scalar.ScalarValue(
32 scalar.ScalarValue(page1, 'x', 'units', 4), 33 page0, 'x', 'units', 1,
33 scalar.ScalarValue(page0, 'x', 'units', 2), 34 improvement_direction=improvement_direction.UP),
34 scalar.ScalarValue(page1, 'x', 'units', 5)] 35 scalar.ScalarValue(
36 page1, 'x', 'units', 4,
37 improvement_direction=improvement_direction.UP),
38 scalar.ScalarValue(
39 page0, 'x', 'units', 2,
40 improvement_direction=improvement_direction.UP),
41 scalar.ScalarValue(
42 page1, 'x', 'units', 5,
43 improvement_direction=improvement_direction.UP)]
35 44
36 merged_values = merge_values.MergeLikeValuesFromSamePage(all_values) 45 merged_values = merge_values.MergeLikeValuesFromSamePage(all_values)
37 # Sort the results so that their order is predictable for the subsequent 46 # Sort the results so that their order is predictable for the subsequent
38 # assertions. 47 # assertions.
39 merged_values.sort(key=lambda x: x.page.url) 48 merged_values.sort(key=lambda x: x.page.url)
40 49
41 self.assertEquals(2, len(merged_values)) 50 self.assertEquals(2, len(merged_values))
42 51
43 self.assertEquals((page0, 'x'), 52 self.assertEquals((page0, 'x'),
44 (merged_values[0].page, merged_values[0].name)) 53 (merged_values[0].page, merged_values[0].name))
45 self.assertEquals([1, 2], merged_values[0].values) 54 self.assertEquals([1, 2], merged_values[0].values)
46 55
47 self.assertEquals((page1, 'x'), 56 self.assertEquals((page1, 'x'),
48 (merged_values[1].page, merged_values[1].name)) 57 (merged_values[1].page, merged_values[1].name))
49 self.assertEquals([4, 5], merged_values[1].values) 58 self.assertEquals([4, 5], merged_values[1].values)
50 59
51 def testSamePageMergeOneValue(self): 60 def testSamePageMergeOneValue(self):
52 page0 = self.pages[0] 61 page0 = self.pages[0]
53 62
54 all_values = [scalar.ScalarValue(page0, 'x', 'units', 1)] 63 all_values = [scalar.ScalarValue(
64 page0, 'x', 'units', 1,
65 improvement_direction=improvement_direction.DOWN)]
55 66
56 # Sort the results so that their order is predictable for the subsequent 67 # Sort the results so that their order is predictable for the subsequent
57 # assertions. 68 # assertions.
58 merged_values = merge_values.MergeLikeValuesFromSamePage(all_values) 69 merged_values = merge_values.MergeLikeValuesFromSamePage(all_values)
59 self.assertEquals(1, len(merged_values)) 70 self.assertEquals(1, len(merged_values))
60 self.assertEquals(all_values[0].name, merged_values[0].name) 71 self.assertEquals(all_values[0].name, merged_values[0].name)
61 self.assertEquals(all_values[0].units, merged_values[0].units) 72 self.assertEquals(all_values[0].units, merged_values[0].units)
62 73
63 def testDifferentPageMergeBasic(self): 74 def testDifferentPageMergeBasic(self):
64 page0 = self.pages[0] 75 page0 = self.pages[0]
65 page1 = self.pages[1] 76 page1 = self.pages[1]
66 77
67 all_values = [scalar.ScalarValue(page0, 'x', 'units', 1), 78 all_values = [scalar.ScalarValue(
68 scalar.ScalarValue(page1, 'x', 'units', 2), 79 page0, 'x', 'units', 1,
69 scalar.ScalarValue(page0, 'y', 'units', 10), 80 improvement_direction=improvement_direction.UP),
70 scalar.ScalarValue(page1, 'y', 'units', 20)] 81 scalar.ScalarValue(
82 page1, 'x', 'units', 2,
83 improvement_direction=improvement_direction.UP),
84 scalar.ScalarValue(
85 page0, 'y', 'units', 10,
86 improvement_direction=improvement_direction.UP),
87 scalar.ScalarValue(
88 page1, 'y', 'units', 20,
89 improvement_direction=improvement_direction.UP)]
71 90
72 # Sort the results so that their order is predictable for the subsequent 91 # Sort the results so that their order is predictable for the subsequent
73 # assertions. 92 # assertions.
74 merged_values = merge_values.MergeLikeValuesFromDifferentPages(all_values) 93 merged_values = merge_values.MergeLikeValuesFromDifferentPages(all_values)
75 merged_values.sort(key=lambda x: x.name) 94 merged_values.sort(key=lambda x: x.name)
76 self.assertEquals(2, len(merged_values)) 95 self.assertEquals(2, len(merged_values))
77 96
78 self.assertEquals((None, 'x'), 97 self.assertEquals((None, 'x'),
79 (merged_values[0].page, merged_values[0].name)) 98 (merged_values[0].page, merged_values[0].name))
80 self.assertEquals([1, 2], merged_values[0].values) 99 self.assertEquals([1, 2], merged_values[0].values)
81 100
82 self.assertEquals((None, 'y'), 101 self.assertEquals((None, 'y'),
83 (merged_values[1].page, merged_values[1].name)) 102 (merged_values[1].page, merged_values[1].name))
84 self.assertEquals([10, 20], merged_values[1].values) 103 self.assertEquals([10, 20], merged_values[1].values)
85 104
86 def testDifferentPageMergeSingleValueStillMerges(self): 105 def testDifferentPageMergeSingleValueStillMerges(self):
87 page0 = self.pages[0] 106 page0 = self.pages[0]
88 107
89 all_values = [scalar.ScalarValue(page0, 'x', 'units', 1)] 108 all_values = [scalar.ScalarValue(
109 page0, 'x', 'units', 1,
110 improvement_direction=improvement_direction.DOWN)]
90 111
91 # Sort the results so that their order is predictable for the subsequent 112 # Sort the results so that their order is predictable for the subsequent
92 # assertions. 113 # assertions.
93 merged_values = merge_values.MergeLikeValuesFromDifferentPages(all_values) 114 merged_values = merge_values.MergeLikeValuesFromDifferentPages(all_values)
94 self.assertEquals(1, len(merged_values)) 115 self.assertEquals(1, len(merged_values))
95 116
96 self.assertEquals((None, 'x'), 117 self.assertEquals((None, 'x'),
97 (merged_values[0].page, merged_values[0].name)) 118 (merged_values[0].page, merged_values[0].name))
98 self.assertTrue( 119 self.assertTrue(
99 isinstance(merged_values[0], list_of_scalar_values.ListOfScalarValues)) 120 isinstance(merged_values[0], list_of_scalar_values.ListOfScalarValues))
100 self.assertEquals([1], merged_values[0].values) 121 self.assertEquals([1], merged_values[0].values)
101 122
102 def testDifferentPageMergeBasicIgnoreTraceName(self): 123 def testDifferentPageMergeBasicIgnoreTraceName(self):
103 page0 = self.pages[0] 124 page0 = self.pages[0]
104 page1 = self.pages[1] 125 page1 = self.pages[1]
105 126
106 all_values = [scalar.ScalarValue(page0, 'x.score', 'units', 1), 127 all_values = [scalar.ScalarValue(
107 scalar.ScalarValue(page1, 'y.score', 'units', 2)] 128 page0, 'x.score', 'units', 1,
129 improvement_direction=improvement_direction.UP),
130 scalar.ScalarValue(
131 page1, 'y.score', 'units', 2,
132 improvement_direction=improvement_direction.UP)]
108 # Sort the results so that their order is predictable for the subsequent 133 # Sort the results so that their order is predictable for the subsequent
109 # assertions. 134 # assertions.
110 merged_values = merge_values.MergeLikeValuesFromDifferentPages( 135 merged_values = merge_values.MergeLikeValuesFromDifferentPages(
111 all_values, 136 all_values,
112 group_by_name_suffix=True) 137 group_by_name_suffix=True)
113 self.assertEquals(1, len(merged_values)) 138 self.assertEquals(1, len(merged_values))
114 139
115 self.assertEquals((None, 'score'), 140 self.assertEquals((None, 'score'),
116 (merged_values[0].page, merged_values[0].name)) 141 (merged_values[0].page, merged_values[0].name))
117 self.assertEquals([1, 2], merged_values[0].values) 142 self.assertEquals([1, 2], merged_values[0].values)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698