anchor.diff:      }
     );
     printLegend();
  -  computeAndReportCoverage(coverageMatrix);
  +  printCoverageScore(
  +    computeCoverageScore(coverageMatrix)
  +  );
   }
   
   void printMatrix(String title, CoverageMatrix coverageMatrix, f(int e)) {
  
positive.code:   return result;
  }
  
  /// Compute and print the app-device coverage.
  void computeAndReportCoverage(CoverageMatrix coverageMatrix) {
    if (coverageMatrix == null) {
      printError('Coverage matrix is null');
      return;
    }
  
    List<List<int>> matrix = coverageMatrix.matrix;
    int rowNum = matrix.length;
    int colNum = matrix[0].length;
  
negative.code:     = _countNumberInCoverageMatrix(matrix, (int e) => e != cannotBeCovered);
    int coveredCombinationNum
      = _countNumberInCoverageMatrix(matrix, (int e) => e > isNotCovered);
    double reachableCoverageScore = reachableCombinationNum / totalPathNum;
    double coveredCoverageScore
      = coveredCombinationNum / reachableCombinationNum;
    return new CoverageScore(reachableCoverageScore, coveredCoverageScore);
  }
  
  /// Print the coverage score
  void printCoverageScore(CoverageScore coverageScore) {
    if (coverageScore == null) {
      printError('Coverage score is null');
      return;
    }
    print(
      'App-Device Path Coverage (ADPC) score:\n'
      'Reachable ADPC score: ${coverageScore.reachablePathsPercentage}, '
      'defined by #reachable / #total.\n'
      'Covered ADPC score: ${coverageScore.coverageScore}, '
      'defined by #covered / #reachable.\n'
    );
  }
  
  const String legend =
  