computeFromResults method

HealthScore computeFromResults(
  1. List<DiagnosticResult> results
)

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,
  );
}