computeMetrics function

Metrics computeMetrics(
  1. @modified Model model
)

Implementation

Metrics computeMetrics(@modified Model model) {
  var digraph = model.toDirectedGraph();
  computeNodeCDs(digraph, model);
  computeNodeDegreeMetrics(digraph, model);
  computeNodeSlocs(model);
  var ccd = computeCCD(model);
  var orphans = computeOrphans(model);
  var numNodes = model.nodes.length;
  var numEdges = model.edges.length;
  var avgDegree = (numEdges / numNodes).toPrecision(precision);
  var totalSloc = computeTotalSloc(model);
  var avgSloc = totalSloc / numNodes;
  var firstCycle = digraph.cycle.map((node) => node).toList();
  var metrics = Metrics(
      firstCycle.isEmpty,
      firstCycle,
      numNodes,
      numEdges,
      avgDegree as double,
      orphans,
      ccd,
      computeACD(ccd, numNodes).toPrecision(precision) as double,
      computeNCCD(ccd, numNodes).toPrecision(precision) as double,
      totalSloc,
      avgSloc.toPrecision(precision) as double);
  return metrics;
}