Skip to content

Commit

Permalink
prevent failures when no clones found
Browse files Browse the repository at this point in the history
- Average calculation crashes the program when no duplicates.
- Median calculation would not crash but is not useful for an empty set.
  • Loading branch information
Ville Laitila authored and villelaitila committed Oct 25, 2019
1 parent e3c9b36 commit b44bd80
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions DuplicateCodeDetector/CloneGroups.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,26 @@ public CloneGroups(IEnumerable<(string File1, string File2)> clonePairs)

var duplicationFactors = CloneSets.Select(c => c.Count).ToList();

Console.WriteLine($"Avg Duplication Factor: {duplicationFactors.Average()}");
duplicationFactors.Sort();
double median;
int midpoint = duplicationFactors.Count / 2;
if (duplicationFactors.Count % 2 == 0)
if (duplicationFactors.Count > 0)
{
median = (duplicationFactors[midpoint] + duplicationFactors[midpoint + 1]) / 2;
Console.WriteLine($"Avg Duplication Factor: {duplicationFactors.Average()}");
duplicationFactors.Sort();
double median;
int midpoint = duplicationFactors.Count / 2;
if (duplicationFactors.Count % 2 == 0)
{
median = (duplicationFactors[midpoint] + duplicationFactors[midpoint + 1]) / 2;
}
else
{
median = duplicationFactors[midpoint];
}
Console.WriteLine($"Median Duplication Factor: {median}");
}
else
{
median = duplicationFactors[midpoint];
Console.WriteLine("No duplicates found.");
}
Console.WriteLine($"Median Duplication Factor: {median}");
}

private int MakeCloneSetTransitive()
Expand Down

0 comments on commit b44bd80

Please sign in to comment.