private int[] GroupCommits( IReadOnlyDictionary <GitCommit, IEnumerable <GitFilePatch> > historicalChanges, ThresholdFormula thresholdFormula) { var data = new int[historicalChanges.Count]; int idx = 0; foreach (var historicalChange in historicalChanges) { var value = thresholdFormula switch { ThresholdFormula.Sum => historicalChange.Value.Sum(v => v.QuantifiedLinesAdded + v.QuantifiedLinesDeleted), ThresholdFormula.Avg => historicalChange.Value.Sum(v => (v.QuantifiedLinesAdded + v.QuantifiedLinesDeleted) / 2), ThresholdFormula.Min => historicalChange.Value.Sum(v => Math.Min(v.QuantifiedLinesAdded, v.QuantifiedLinesDeleted)), ThresholdFormula.Max => historicalChange.Value.Sum(v => Math.Max(v.QuantifiedLinesAdded, v.QuantifiedLinesDeleted)), _ => throw new ArgumentOutOfRangeException(nameof(thresholdFormula), thresholdFormula, null) }; data[idx++] = value; } return(data); } }
private int GetChangeNumber( QuantifierResult quantifierResult, ThresholdFormula formula) { return(formula switch { ThresholdFormula.Sum => quantifierResult.QuantifiedLinesAdded + quantifierResult.QuantifiedLinesDeleted, ThresholdFormula.Avg => (quantifierResult.QuantifiedLinesAdded + quantifierResult.QuantifiedLinesDeleted) / 2, ThresholdFormula.Min => Math.Min( quantifierResult.QuantifiedLinesAdded, quantifierResult.QuantifiedLinesDeleted), ThresholdFormula.Max => Math.Max( quantifierResult.QuantifiedLinesAdded, quantifierResult.QuantifiedLinesDeleted), _ => 0 });