function computeMetrics()

in evaluation/metrics.js [22:45]


function computeMetrics(treatment, nodes){
  var inputNodes = nodes.map(function(d){return d.clone();});

  var t1 = process.hrtime();
  var force = applyTreatment(treatment, inputNodes);
  var time = process.hrtime(t1);
  time = time[0]*1000000000 + time[1];

  var layers = force.getLayers();
  var options = force.options();

  return {
    time: time/1000000, // convert to ms
    layerCount: layers.length,
    displacement: metrics.displacement(layers),
    pathLength: metrics.pathLength(layers),
    overflowSpace: metrics.overflowSpace(layers, options.minPos, options.maxPos),
    overlapCount: metrics.overlapCount(layers),
    overlapSpace: metrics.overlapSpace(layers),
    overDensitySpace: metrics.overDensitySpace(layers, options.density, options.maxPos-options.minPos, options.nodeSpacing),
    weightedAllocation: metrics.weightedAllocation(layers),
    weightedAllocatedSpace: metrics.weightedAllocatedSpace(layers)
  };
}