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

Side by Side Diff: tools/perf/metrics/statistics_unittest.py

Issue 185953004: Add some statistics to the monsoon profile run (Closed) Base URL: https://git.chromium.org/chromium/src.git@master
Patch Set: Rebase and provide own statistics functions Created 6 years, 9 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.
tonyg 2014/03/12 15:28:38 This file needs to move along with statistics.py.
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 4
5 import unittest 5 import unittest
6 import random 6 import random
7 7
8 from metrics import statistics 8 from telemetry.util import statistics
9 9
10 10
11 def Relax(samples, iterations=10): 11 def Relax(samples, iterations=10):
12 """Lloyd relaxation in 1D. 12 """Lloyd relaxation in 1D.
13 13
14 Keeps the position of the first and last sample. 14 Keeps the position of the first and last sample.
15 """ 15 """
16 for _ in xrange(0, iterations): 16 for _ in xrange(0, iterations):
17 voronoi_boundaries = [] 17 voronoi_boundaries = []
18 for i in xrange(1, len(samples)): 18 for i in xrange(1, len(samples)):
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 # When the given percentage is very low, the lowest value is given. 151 # When the given percentage is very low, the lowest value is given.
152 self.assertEquals(1, statistics.Percentile([2, 1, 5, 4, 3], 5)) 152 self.assertEquals(1, statistics.Percentile([2, 1, 5, 4, 3], 5))
153 # When the given percentage is very high, the highest value is given. 153 # When the given percentage is very high, the highest value is given.
154 self.assertEquals(5, statistics.Percentile([5, 2, 4, 1, 3], 95)) 154 self.assertEquals(5, statistics.Percentile([5, 2, 4, 1, 3], 95))
155 # Linear interpolation between closest ranks is used. Using the example 155 # Linear interpolation between closest ranks is used. Using the example
156 # from <http://en.wikipedia.org/wiki/Percentile>: 156 # from <http://en.wikipedia.org/wiki/Percentile>:
157 self.assertEquals(27.5, statistics.Percentile([15, 20, 35, 40, 50], 40)) 157 self.assertEquals(27.5, statistics.Percentile([15, 20, 35, 40, 50], 40))
158 158
159 def testArithmeticMean(self): 159 def testArithmeticMean(self):
160 # The ArithmeticMean function computes the simple average. 160 # The ArithmeticMean function computes the simple average.
161 self.assertAlmostEquals(40/3.0, statistics.ArithmeticMean([10, 10, 20], 3)) 161 self.assertAlmostEquals(40/3.0, statistics.ArithmeticMean([10, 10, 20]))
162 self.assertAlmostEquals(15.0, statistics.ArithmeticMean([10, 20], 2)) 162 self.assertAlmostEquals(15.0, statistics.ArithmeticMean([10, 20]))
163 # Both lists of values or single values can be given for either argument.
164 self.assertAlmostEquals(40/3.0, statistics.ArithmeticMean(40, [1, 1, 1]))
165 # If the 'count' is zero, then zero is returned. 163 # If the 'count' is zero, then zero is returned.
166 self.assertEquals(0, statistics.ArithmeticMean(4.0, 0)) 164 self.assertEquals(0, statistics.ArithmeticMean([]))
167 self.assertEquals(0, statistics.ArithmeticMean(4.0, []))
168 165
169 def testDurationsDiscrepancy(self): 166 def testDurationsDiscrepancy(self):
170 durations = [] 167 durations = []
171 d = statistics.DurationsDiscrepancy(durations) 168 d = statistics.DurationsDiscrepancy(durations)
172 self.assertEquals(d, 1.0) 169 self.assertEquals(d, 1.0)
173 170
174 durations = [4] 171 durations = [4]
175 d = statistics.DurationsDiscrepancy(durations) 172 d = statistics.DurationsDiscrepancy(durations)
176 self.assertEquals(d, 1.0) 173 self.assertEquals(d, 1.0)
177 174
178 durations_a = [1, 1, 1, 1, 1] 175 durations_a = [1, 1, 1, 1, 1]
179 durations_b = [1, 1, 2, 1, 1] 176 durations_b = [1, 1, 2, 1, 1]
180 durations_c = [1, 2, 1, 2, 1] 177 durations_c = [1, 2, 1, 2, 1]
181 178
182 d_a = statistics.DurationsDiscrepancy(durations_a) 179 d_a = statistics.DurationsDiscrepancy(durations_a)
183 d_b = statistics.DurationsDiscrepancy(durations_b) 180 d_b = statistics.DurationsDiscrepancy(durations_b)
184 d_c = statistics.DurationsDiscrepancy(durations_c) 181 d_c = statistics.DurationsDiscrepancy(durations_c)
185 182
186 self.assertTrue(d_a < d_b < d_c) 183 self.assertTrue(d_a < d_b < d_c)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698