| OLD | NEW |
| 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 # TODO(wrengr): make this test more comprehensive. |
| 26 self.assertEqual(GetSpikeIndexes([]), | 24 def testGetSpikes(self): |
| 25 get_value = lambda x: x[1] |
| 26 e0 = ('1', 0.5) |
| 27 e1 = ('1', 0) |
| 28 e2 = ('2', 0.5) |
| 29 self.assertEqual(GetSpikes([], get_value), |
| 27 []) | 30 []) |
| 28 self.assertEqual(GetSpikeIndexes([('1', 0.5)]), | 31 self.assertEqual(GetSpikes([e0], get_value), |
| 29 []) | 32 []) |
| 30 self.assertEqual(GetSpikeIndexes([('1', 0), ('2', 0.5)]), | 33 self.assertEqual(GetSpikes([e1, e2], get_value), |
| 31 [1]) | 34 [(e1, e2)]) |
| 32 | 35 |
| 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 | 36 |
| 41 def testReturnNoneForEmptyCrashData(self): | 37 def testReturnNoneForEmptyCrashData(self): |
| 42 self.assertEqual(DetectRegressionRange([]), None) | 38 self.assertEqual(DetectRegressionRange([]), None) |
| 43 | 39 |
| 44 def testReturnNoneWhenSpikeDetectionFailed(self): | 40 def testReturnNoneWhenSpikeDetectionFailed(self): |
| 45 historic_metadata = [{'chrome_version': '1', 'cpm': 0}, | 41 historic_metadata = [{'chrome_version': '1', 'cpm': 0}, |
| 46 {'chrome_version': '2', 'cpm': 0}] | 42 {'chrome_version': '2', 'cpm': 0}] |
| 47 self.assertEqual(DetectRegressionRange(historic_metadata), None) | 43 self.assertEqual(DetectRegressionRange(historic_metadata), None) |
| 48 | 44 |
| 49 def testDetectRegressionRangeForNewCrash(self): | 45 def testDetectRegressionRangeForNewCrash(self): |
| (...skipping 23 matching lines...) Expand all Loading... |
| 73 ('4', '5')), | 69 ('4', '5')), |
| 74 ([{'chrome_version': '1', 'cpm': 0.06}, | 70 ([{'chrome_version': '1', 'cpm': 0.06}, |
| 75 {'chrome_version': '2', 'cpm': 0.0003}, | 71 {'chrome_version': '2', 'cpm': 0.0003}, |
| 76 {'chrome_version': '3', 'cpm': 0.0007}, | 72 {'chrome_version': '3', 'cpm': 0.0007}, |
| 77 {'chrome_version': '4', 'cpm': 0.6}, | 73 {'chrome_version': '4', 'cpm': 0.6}, |
| 78 {'chrome_version': '5', 'cpm': 0.002}], | 74 {'chrome_version': '5', 'cpm': 0.002}], |
| 79 ('3', '4'))] | 75 ('3', '4'))] |
| 80 | 76 |
| 81 self._VerifyCasesForDetectRegressonRange(cases) | 77 self._VerifyCasesForDetectRegressonRange(cases) |
| 82 | 78 |
| 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, []) | |
| OLD | NEW |