Exemple #1
0
        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
     });