--- a/metric-providers/org.ossmeter.metricprovider.trans.rascal.CC/src/WMC.rsc
+++ b/metric-providers/org.ossmeter.metricprovider.trans.rascal.CC/src/WMC.rsc
@@ -12,7 +12,6 @@
import analysis::statistics::Frequency;
import analysis::statistics::Inference;
-import org::ossmeter::metricprovider::Manager;
import org::ossmeter::metricprovider::ProjectDelta;
@@ -22,7 +21,7 @@
@appliesTo{java()}
map[loc class, num wmcCount] getWMC(
ProjectDelta delta = ProjectDelta::\empty(),
- map[str, loc] workingCopyFolders = (),
+ map[loc, loc] workingCopyFolders = (),
rel[Language, loc, M3] m3s = {},
rel[Language, loc, AST] asts = {})
{
@@ -42,7 +41,7 @@
@appliesTo{java()}
map[loc method, int cc] getCC(
ProjectDelta delta = ProjectDelta::\empty(),
- map[str, loc] workingCopyFolders = (),
+ map[loc, loc] workingCopyFolders = (),
rel[Language, loc, M3] m3s = {},
rel[Language, loc, AST] asts = {})
{
@@ -87,13 +86,13 @@
return count;
}
-@metric{ccovermethods}
+//@metric{ccovermethods}
@doc{Calculates the gini coefficient of cc over methods}
@friendlyName{ccovermethods}
@appliesTo{java()}
real giniCCOverMethods(
ProjectDelta delta = ProjectDelta::\empty(),
- map[str, loc] workingCopyFolders = (),
+ map[loc, loc] workingCopyFolders = (),
rel[Language, loc, M3] m3s = {},
rel[Language, loc, AST] asts = {})
{
@@ -101,5 +100,9 @@
distCCOverMethods = distribution(ccMap);
+ if (size(distCCOverMethods) < 2) {
+ return -1.0;
+ }
+
return gini([<0,0>]+[<x, distCCOverMethods[x]> | x <- distCCOverMethods]);
}