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

Side by Side Diff: telemetry/telemetry/value/list_of_scalar_values_unittest.py

Issue 2087463002: [telemetry] Fix computation of standard deviations (Closed) Base URL: git@github.com:catapult-project/catapult@master
Patch Set: fix more unit tests Created 4 years, 5 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 story 7 from telemetry import story
8 from telemetry import page as page_module 8 from telemetry import page as page_module
9 from telemetry import value 9 from telemetry import value
10 from telemetry.value import improvement_direction 10 from telemetry.value import improvement_direction
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 self.assertTrue(v1.IsMergableWith(v0)) 98 self.assertTrue(v1.IsMergableWith(v0))
99 99
100 vM = (list_of_scalar_values.ListOfScalarValues. 100 vM = (list_of_scalar_values.ListOfScalarValues.
101 MergeLikeValuesFromSamePage([v0, v1])) 101 MergeLikeValuesFromSamePage([v0, v1]))
102 self.assertEquals(page0, vM.page) 102 self.assertEquals(page0, vM.page)
103 self.assertEquals('x', vM.name) 103 self.assertEquals('x', vM.name)
104 self.assertEquals('unit', vM.units) 104 self.assertEquals('unit', vM.units)
105 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) 105 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
106 self.assertEquals(True, vM.important) 106 self.assertEquals(True, vM.important)
107 self.assertEquals([10, 9, 9, 7, 300, 302, 303, 304], vM.values) 107 self.assertEquals([10, 9, 9, 7, 300, 302, 303, 304], vM.values)
108 # SQRT((19/12 * 3 + 35/12 * 3)/6) = 1.5 108 # Values from the same page use regular standard deviation.
109 self.assertAlmostEqual(1.5, vM.std) 109 self.assertAlmostEqual(156.88849, vM.std, places=4)
110 self.assertEquals('list-based metric', vM.description) 110 self.assertEquals('list-based metric', vM.description)
111 self.assertEquals(improvement_direction.DOWN, vM.improvement_direction) 111 self.assertEquals(improvement_direction.DOWN, vM.improvement_direction)
112 112
113 def testListSamePageMergingWithPickFirstPolicy(self): 113 def testListSamePageMergingWithPickFirstPolicy(self):
114 page0 = self.pages[0] 114 page0 = self.pages[0]
115 v0 = list_of_scalar_values.ListOfScalarValues( 115 v0 = list_of_scalar_values.ListOfScalarValues(
116 page0, 'x', 'unit', 116 page0, 'x', 'unit',
117 [1, 2], same_page_merge_policy=value.PICK_FIRST, 117 [1, 2], same_page_merge_policy=value.PICK_FIRST,
118 improvement_direction=improvement_direction.UP) 118 improvement_direction=improvement_direction.UP)
119 v1 = list_of_scalar_values.ListOfScalarValues( 119 v1 = list_of_scalar_values.ListOfScalarValues(
(...skipping 10 matching lines...) Expand all
130 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) 130 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
131 self.assertEquals(True, vM.important) 131 self.assertEquals(True, vM.important)
132 self.assertEquals([1, 2], vM.values) 132 self.assertEquals([1, 2], vM.values)
133 self.assertEquals(improvement_direction.UP, vM.improvement_direction) 133 self.assertEquals(improvement_direction.UP, vM.improvement_direction)
134 134
135 def testListDifferentPageMerging(self): 135 def testListDifferentPageMerging(self):
136 page0 = self.pages[0] 136 page0 = self.pages[0]
137 page1 = self.pages[1] 137 page1 = self.pages[1]
138 v0 = list_of_scalar_values.ListOfScalarValues( 138 v0 = list_of_scalar_values.ListOfScalarValues(
139 page0, 'x', 'unit', 139 page0, 'x', 'unit',
140 [1, 2], same_page_merge_policy=value.CONCATENATE, 140 [10, 9, 9, 7], same_page_merge_policy=value.CONCATENATE,
141 improvement_direction=improvement_direction.DOWN) 141 improvement_direction=improvement_direction.DOWN)
142 v1 = list_of_scalar_values.ListOfScalarValues( 142 v1 = list_of_scalar_values.ListOfScalarValues(
143 page1, 'x', 'unit', 143 page1, 'x', 'unit',
144 [3, 4], same_page_merge_policy=value.CONCATENATE, 144 [300, 302, 303, 304], same_page_merge_policy=value.CONCATENATE,
145 improvement_direction=improvement_direction.DOWN) 145 improvement_direction=improvement_direction.DOWN)
146 self.assertTrue(v1.IsMergableWith(v0)) 146 self.assertTrue(v1.IsMergableWith(v0))
147 147
148 vM = (list_of_scalar_values.ListOfScalarValues. 148 vM = (list_of_scalar_values.ListOfScalarValues.
149 MergeLikeValuesFromDifferentPages([v0, v1])) 149 MergeLikeValuesFromDifferentPages([v0, v1]))
150 self.assertEquals(None, vM.page) 150 self.assertEquals(None, vM.page)
151 self.assertEquals('x', vM.name) 151 self.assertEquals('x', vM.name)
152 self.assertEquals('unit', vM.units) 152 self.assertEquals('unit', vM.units)
153 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) 153 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
154 self.assertEquals(True, vM.important) 154 self.assertEquals(True, vM.important)
155 self.assertEquals([1, 2, 3, 4], vM.values) 155 self.assertEquals([10, 9, 9, 7, 300, 302, 303, 304], vM.values)
156 # Values from different pages use pooled standard deviation.
157 # SQRT((19/12 * 3 + 35/12 * 3)/6) = 1.5
158 self.assertAlmostEqual(1.5, vM.std)
156 self.assertEquals(improvement_direction.DOWN, vM.improvement_direction) 159 self.assertEquals(improvement_direction.DOWN, vM.improvement_direction)
157 160
158 def testListWithNoneValueMerging(self): 161 def testListWithNoneValueMerging(self):
159 page0 = self.pages[0] 162 page0 = self.pages[0]
160 v0 = list_of_scalar_values.ListOfScalarValues( 163 v0 = list_of_scalar_values.ListOfScalarValues(
161 page0, 'x', 'unit', 164 page0, 'x', 'unit',
162 [1, 2], same_page_merge_policy=value.CONCATENATE, 165 [1, 2], same_page_merge_policy=value.CONCATENATE,
163 improvement_direction=improvement_direction.UP) 166 improvement_direction=improvement_direction.UP)
164 v1 = list_of_scalar_values.ListOfScalarValues( 167 v1 = list_of_scalar_values.ListOfScalarValues(
165 page0, 'x', 'unit', 168 page0, 'x', 'unit',
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 v1 = list_of_scalar_values.ListOfScalarValues( 211 v1 = list_of_scalar_values.ListOfScalarValues(
209 page0, 'x', 'unit', 212 page0, 'x', 'unit',
210 [300, 302, 303, 304], same_page_merge_policy=value.CONCATENATE, 213 [300, 302, 303, 304], same_page_merge_policy=value.CONCATENATE,
211 improvement_direction=improvement_direction.DOWN) 214 improvement_direction=improvement_direction.DOWN)
212 self.assertTrue(v1.IsMergableWith(v0)) 215 self.assertTrue(v1.IsMergableWith(v0))
213 216
214 vM = (list_of_scalar_values.ListOfScalarValues. 217 vM = (list_of_scalar_values.ListOfScalarValues.
215 MergeLikeValuesFromSamePage([v0, v1])) 218 MergeLikeValuesFromSamePage([v0, v1]))
216 d = vM.AsDict() 219 d = vM.AsDict()
217 self.assertEquals(d['values'], [10, 9, 9, 7, 300, 302, 303, 304]) 220 self.assertEquals(d['values'], [10, 9, 9, 7, 300, 302, 303, 304])
218 # SQRT((19/12 * 3 + 35/12 * 3)/6) 221 # Values from the same page use regular standard deviation.
219 self.assertAlmostEqual(d['std'], 1.5) 222 self.assertAlmostEqual(d['std'], 156.88849, places=4)
220 223
221 224
222 def testNoneValueAsDict(self): 225 def testNoneValueAsDict(self):
223 v = list_of_scalar_values.ListOfScalarValues( 226 v = list_of_scalar_values.ListOfScalarValues(
224 None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST, 227 None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST,
225 important=False, none_value_reason='n', 228 important=False, none_value_reason='n',
226 improvement_direction=improvement_direction.UP) 229 improvement_direction=improvement_direction.UP)
227 d = v.AsDictWithoutBaseClassEntries() 230 d = v.AsDictWithoutBaseClassEntries()
228 231
229 self.assertEquals(d, { 232 self.assertEquals(d, {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 'values': None, 287 'values': None,
285 'std': None, 288 'std': None,
286 'none_value_reason': 'n', 289 'none_value_reason': 'n',
287 'improvement_direction': improvement_direction.DOWN 290 'improvement_direction': improvement_direction.DOWN
288 } 291 }
289 v = value.Value.FromDict(d, {}) 292 v = value.Value.FromDict(d, {})
290 293
291 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues)) 294 self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues))
292 self.assertEquals(v.values, None) 295 self.assertEquals(v.values, None)
293 self.assertEquals(v.none_value_reason, 'n') 296 self.assertEquals(v.none_value_reason, 'n')
OLDNEW
« no previous file with comments | « telemetry/telemetry/value/list_of_scalar_values.py ('k') | telemetry/telemetry/value/summary.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698