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

Side by Side Diff: appengine/findit/crash/test/detect_regression_range_test.py

Issue 2325503002: Reorganizing detect_regression_range.py (Closed)
Patch Set: detect_regression_range.py: removing dependency on https://codereview.chromium.org/2311393003/ and … Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 4
5 from testing_utils import testing 5 from testing_utils import testing
6 6
7 from crash.detect_regression_range import GetAttributesListFromHistoricData 7 from crash.detect_regression_range import GetSpikes
8 from crash.detect_regression_range import GetSpikeIndexes
9 from crash.detect_regression_range import GetRegressionRangeFromSpike
10 from crash.detect_regression_range import DetectRegressionRange 8 from crash.detect_regression_range import DetectRegressionRange
11 9
12 10
13 class DetectRegressionRangeTest(testing.AppengineTestCase): 11 class DetectRegressionRangeTest(testing.AppengineTestCase):
14 12
15 def _VerifyCasesForDetectRegressonRange(self, cases): 13 def _VerifyCasesForDetectRegressonRange(self, cases):
16 for case, expected_result in cases: 14 for case, expected_result in cases:
17 result = DetectRegressionRange(case) 15 result = DetectRegressionRange(case)
18 16
19 self.assertEqual(result, expected_result, 'Detected spikes of %s should ' 17 self.assertEqual(result, expected_result, 'Detected spikes of %s should '
20 'be %s, instead of %s' % (repr(case), 18 'be %s, instead of %s' % (repr(case),
21 expected_result, 19 expected_result,
22 result)) 20 result))
23 21
24 22
25 def testGetSpikeIndexes(self): 23 def testGetSpikes(self):
26 self.assertEqual(GetSpikeIndexes([]), 24 snd = lambda x: x[1]
stgao 2016/09/09 18:13:59 style nit: usually we avoid abbreviation.
25 e0 = ('1', 0.5)
Sharu Jiang 2016/09/08 21:33:14 Shouldn't this be {'chrome_version': '1', 'cpm': 0
wrengr (wrong one) 2016/09/08 22:28:50 The GetSpikes function takes a list of whatever ty
Sharu Jiang 2016/09/08 23:55:19 Ok, didn't notice the snd function...
26 e1 = ('1', 0)
27 e2 = ('2', 0.5)
28 self.assertEqual(GetSpikes([], snd),
27 []) 29 [])
28 self.assertEqual(GetSpikeIndexes([('1', 0.5)]), 30 self.assertEqual(GetSpikes([e0], snd),
29 []) 31 [])
30 self.assertEqual(GetSpikeIndexes([('1', 0), ('2', 0.5)]), 32 self.assertEqual(GetSpikes([e1, e2], snd),
31 [1]) 33 [(e1, e2)])
32 34
33 def testGetRegressionRangeFromSpike(self):
34 self.assertEqual(GetRegressionRangeFromSpike(0, ['1', '2']),
35 None)
36 self.assertEqual(GetRegressionRangeFromSpike(3, ['1', '2']),
37 None)
38 self.assertEqual(GetRegressionRangeFromSpike(1, ['1', '2']),
39 ('1', '2'))
40 35
41 def testReturnNoneForEmptyCrashData(self): 36 def testReturnNoneForEmptyCrashData(self):
42 self.assertEqual(DetectRegressionRange([]), None) 37 self.assertEqual(DetectRegressionRange([]), None)
43 38
44 def testReturnNoneWhenSpikeDetectionFailed(self): 39 def testReturnNoneWhenSpikeDetectionFailed(self):
45 historic_metadata = [{'chrome_version': '1', 'cpm': 0}, 40 historic_metadata = [{'chrome_version': '1', 'cpm': 0},
46 {'chrome_version': '2', 'cpm': 0}] 41 {'chrome_version': '2', 'cpm': 0}]
47 self.assertEqual(DetectRegressionRange(historic_metadata), None) 42 self.assertEqual(DetectRegressionRange(historic_metadata), None)
48 43
49 def testDetectRegressionRangeForNewCrash(self): 44 def testDetectRegressionRangeForNewCrash(self):
(...skipping 23 matching lines...) Expand all
73 ('4', '5')), 68 ('4', '5')),
74 ([{'chrome_version': '1', 'cpm': 0.06}, 69 ([{'chrome_version': '1', 'cpm': 0.06},
75 {'chrome_version': '2', 'cpm': 0.0003}, 70 {'chrome_version': '2', 'cpm': 0.0003},
76 {'chrome_version': '3', 'cpm': 0.0007}, 71 {'chrome_version': '3', 'cpm': 0.0007},
77 {'chrome_version': '4', 'cpm': 0.6}, 72 {'chrome_version': '4', 'cpm': 0.6},
78 {'chrome_version': '5', 'cpm': 0.002}], 73 {'chrome_version': '5', 'cpm': 0.002}],
79 ('3', '4'))] 74 ('3', '4'))]
80 75
81 self._VerifyCasesForDetectRegressonRange(cases) 76 self._VerifyCasesForDetectRegressonRange(cases)
82 77
83 def testGetAttributesListFromHistoricData(self):
84 historic_metadata = [{'chrome_version': '1', 'cpm': 0},
85 {'chrome_version': '2', 'cpm': 0}]
86
87 attribute_list = GetAttributesListFromHistoricData(historic_metadata,
88 ['chrome_version'])
89 expected_list = ['1', '2']
90 self.assertEqual(attribute_list, expected_list)
91
92 attribute_list = GetAttributesListFromHistoricData(historic_metadata, [])
93 self.assertEqual(attribute_list, [])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698