computeFromResults method
Public method or function.
Implementation
HealthScore computeFromResults(List<DiagnosticResult> results) {
final allIssues = <DiagnosticIssue>[];
final analyzerIssues = <String, List<DiagnosticIssue>>{};
for (final result in results) {
for (final issue in result.issues) {
allIssues.add(issue);
analyzerIssues.putIfAbsent(result.analyzerName, () => []);
analyzerIssues[result.analyzerName]!.add(issue);
}
}
final categoryScores = _computeCategoryScores(results, analyzerIssues);
final priorityGroups = _buildPriorityGroups(allIssues);
final totalWeight = _computeTotalWeight(allIssues);
final maxPossibleWeight = _computeMaxPossibleWeight(allIssues);
final overallScore = _computeOverallScore(totalWeight, maxPossibleWeight);
final recommendations = _generateRecommendations(
allIssues,
maxRecommendations,
);
return HealthScore(
overallScore: overallScore,
categoryScores: categoryScores,
priorityGroups: priorityGroups,
recommendations: recommendations,
totalWeight: totalWeight,
maxPossibleWeight: maxPossibleWeight,
weights: weights,
);
}