def testConfidenceInformationToDict(self):
        confidence_info = ConfidenceInformation(correct=90,
                                                total=100,
                                                confidence=0.9,
                                                score=None)

        expected_dict = {'correct': 90, 'total': 100, 'confidence': 0.9}
        self.assertEqual(expected_dict, confidence_info.ToDict())
Exemple #2
0
def _CreateConfidenceInformation(result, score=None):
    correct_number = result[suspected_cl_status.CORRECT]
    incorrect_number = result[suspected_cl_status.INCORRECT]
    total_number = correct_number + incorrect_number
    confidence = (float(correct_number) /
                  total_number if total_number else -1.0)

    return ConfidenceInformation(correct=correct_number,
                                 total=total_number,
                                 confidence=confidence,
                                 score=score)
def _CreateConfidenceInformation(result, score=None):
    """Calculates confidence score for one type of result."""
    correct_number = result.get(suspected_cl_status.CORRECT, 0)
    incorrect_number = result.get(suspected_cl_status.INCORRECT, 0)
    total_number = correct_number + incorrect_number
    confidence = (float(correct_number) /
                  total_number if total_number else -1.0)

    return ConfidenceInformation(correct=correct_number,
                                 total=total_number,
                                 confidence=confidence,
                                 score=score)
    def testUpdateSuspectedCLConfidence(self):
        cl_confidence = SuspectedCLConfidence.Get()
        start_date = datetime.datetime(2016, 10, 06, 0, 0, 0)
        end_date = datetime.datetime(2016, 10, 07, 0, 0, 0)
        compile_heuristic = [
            ConfidenceInformation(correct=100,
                                  total=100,
                                  confidence=1.0,
                                  score=5)
        ]
        compile_try_job = ConfidenceInformation(correct=99,
                                                total=100,
                                                confidence=0.99,
                                                score=None)
        compile_heuristic_try_job = ConfidenceInformation(correct=98,
                                                          total=100,
                                                          confidence=0.98,
                                                          score=None)
        test_heuristic = [
            ConfidenceInformation(correct=97,
                                  total=100,
                                  confidence=0.97,
                                  score=5)
        ]
        test_try_job = ConfidenceInformation(correct=96,
                                             total=100,
                                             confidence=0.96,
                                             score=None)
        test_heuristic_try_job = ConfidenceInformation(correct=95,
                                                       total=100,
                                                       confidence=0.95,
                                                       score=None)

        cl_confidence.Update(start_date, end_date, compile_heuristic,
                             compile_try_job, compile_heuristic_try_job,
                             test_heuristic, test_try_job,
                             test_heuristic_try_job)
        cl_confidence = SuspectedCLConfidence.Get()

        self.assertEqual(compile_heuristic, cl_confidence.compile_heuristic)
        self.assertEqual(compile_try_job, cl_confidence.compile_try_job)
        self.assertEqual(compile_heuristic_try_job,
                         cl_confidence.compile_heuristic_try_job)
        self.assertEqual(test_heuristic, cl_confidence.test_heuristic)
        self.assertEqual(test_try_job, cl_confidence.test_try_job)
        self.assertEqual(test_heuristic_try_job,
                         cl_confidence.test_heuristic_try_job)
        suspected_cl_status.INCORRECT: 1
    }
}

BOTH_RESULTS = {
    failure_type.COMPILE: {
        suspected_cl_status.CORRECT: 1
    },
    failure_type.TEST: {
        suspected_cl_status.CORRECT: 1,
        suspected_cl_status.INCORRECT: 1
    }
}

EXPECTED_CONFIDENCE = [
    ConfidenceInformation(correct=0, total=1, confidence=0, score=1),
    ConfidenceInformation(correct=2, total=2, confidence=1, score=2)
]


class CalculateConfidenceScoresTest(wf_testcase.WaterfallTestCase):
    app_module = webapp2.WSGIApplication([
        ('/calculate-confidence-scores',
         calculate_confidence_scores.CalculateConfidenceScores),
    ],
                                         debug=True)

    def setUp(self):
        super(CalculateConfidenceScoresTest, self).setUp()
        self.start_date = datetime.datetime(2016, 11, 11, 0, 0, 0)
        self.end_date = datetime.datetime(2016, 11, 12, 0, 0, 0)
Exemple #6
0
                120,
                'try_job_url':
                ('http://build.chromium.org/p/tryserver.chromium.'
                 'linux/builders/linux_variable/builds/120'),
                'culprit': {
                    'revision': 'rev2',
                    'commit_position': '2',
                    'review_url': 'url_2'
                }
            }]
        }
    }
}

SAMPLE_HEURISTIC_1 = ConfidenceInformation(correct=100,
                                           total=100,
                                           confidence=1.0,
                                           score=5)

SAMPLE_HEURISTIC_2 = ConfidenceInformation(correct=90,
                                           total=100,
                                           confidence=0.9,
                                           score=4)

SAMPLE_TRY_JOB = ConfidenceInformation(correct=99,
                                       total=100,
                                       confidence=0.99,
                                       score=None)

SAMPLE_HEURISTIC_TRY_JOB = ConfidenceInformation(correct=98,
                                                 total=100,
                                                 confidence=0.98,