calculate method
Calculates the maintainability index for a function/method.
Implementation
MaintainabilityResult calculate(FunctionBody body) {
final cyclomaticComplexity =
_complexityCalculator.calculateCyclomaticComplexity(body);
final cognitiveComplexity =
_complexityCalculator.calculateCognitiveComplexity(body);
final halstead = _complexityCalculator.calculateHalsteadMetrics(body);
final linesOfCode = _countLines(body);
final mi = _computeMI(
halsteadVolume: halstead.volume,
cyclomaticComplexity: cyclomaticComplexity,
linesOfCode: linesOfCode,
);
return MaintainabilityResult(
maintainabilityIndex: mi,
cyclomaticComplexity: cyclomaticComplexity,
cognitiveComplexity: cognitiveComplexity,
halsteadMetrics: halstead,
linesOfCode: linesOfCode,
rating: _getRating(mi),
);
}