53 lines
1.4 KiB
JavaScript
Executable file
53 lines
1.4 KiB
JavaScript
Executable file
var createGraph = require('../');
|
|
var randomAPI = require('ngraph.random').random;
|
|
var Benchmark = require('benchmark');
|
|
var suite = new Benchmark.Suite;
|
|
|
|
var edgeIterationSumWeight = 0;
|
|
var edgeIterationMultigraph = 0;
|
|
|
|
suite.add('Edge iteration', function() {
|
|
var graph = createGraph();
|
|
var random = randomAPI(42);
|
|
var maxEdgeId = 10000000;
|
|
for(var i = 1; i < 1000; ++i) {
|
|
var fromId = random.next(maxEdgeId);
|
|
var toId = random.next(maxEdgeId);
|
|
graph.addLink(fromId, toId, i);
|
|
}
|
|
edgeIterationSumWeight = 0;
|
|
for (var i = 0; i < 100; ++i) {
|
|
graph.forEachLink(addUpWeight);
|
|
}
|
|
function addUpWeight(link) {
|
|
edgeIterationSumWeight += link.data;
|
|
}
|
|
});
|
|
|
|
suite.add('Edge iteration for multigraph', function() {
|
|
var graph = createGraph({multigraph: true});
|
|
var random = randomAPI(42);
|
|
var maxEdgeId = 10000000;
|
|
for(var i = 1; i < 1000; ++i) {
|
|
var fromId = random.next(maxEdgeId);
|
|
var toId = random.next(maxEdgeId);
|
|
graph.addLink(fromId, toId, i);
|
|
}
|
|
edgeIterationMultigraph = 0;
|
|
for (var i = 0; i < 100; ++i) {
|
|
graph.forEachLink(addUpWeight);
|
|
}
|
|
function addUpWeight(link) {
|
|
edgeIterationMultigraph += link.data;
|
|
}
|
|
});
|
|
|
|
|
|
suite.on('cycle', function(event) {
|
|
console.log(String(event.target));
|
|
console.log('edge iteration sum weight', edgeIterationSumWeight);
|
|
console.log('edge iteration multigraph weight', edgeIterationMultigraph);
|
|
})
|
|
// run async
|
|
.run({ 'async': true });
|
|
|