def FindMagnitudeBetweenCommits(test_key, start_commit, end_commit): start_commit = _GitHashToCommitPosition(start_commit) end_commit = _GitHashToCommitPosition(end_commit) test = test_key.get() num_points = anomaly_config.GetAnomalyConfigDict(test).get( 'min_segment_size', find_change_points.MIN_SEGMENT_SIZE) start_rows = graph_data.GetRowsForTestBeforeAfterRev( test_key, start_commit, num_points, 0) end_rows = graph_data.GetRowsForTestBeforeAfterRev(test_key, end_commit, 0, num_points) if not start_rows or not end_rows: return None median_before = math_utils.Median([r.value for r in start_rows]) median_after = math_utils.Median([r.value for r in end_rows]) return median_after - median_before
def _FetchRowsAroundRev(test, revision, num_before, num_after): """Fetches Row entities before and after a given revision. Args: test: A TestMetadata entity. revision: A Row ID. num_before: Maximum number of Rows before |revision| to fetch. num_after: Max number of Rows starting from |revision| to fetch. Returns: A list of Row entities ordered by ID. The Row entities will have at least the "revision" and "value" properties, which are the only ones relevant to their use in this module. """ assert utils.IsInternalUser() or not test.internal_only return graph_data.GetRowsForTestBeforeAfterRev(test.key, revision, num_before, num_after)