%PDF- %PDF-
Direktori : /proc/self/root/home/infra/fusioninventory/lib/lazy.js-0.5.1/spec/support/ |
Current File : //proc/self/root/home/infra/fusioninventory/lib/lazy.js-0.5.1/spec/support/comparison_suite.js |
var Benchmark = require("../../site/lib/benchmark.js"); function ComparisonSuite(options) { options = options || {}; var suite = new Benchmark.Suite(); var testsByName = {}; var currentSet = []; suite.on("cycle", function(e) { currentSet.push(e.target); if (currentSet.length === testsByName[e.target.name].length) { reportCurrentSet(); currentSet = []; } else { reportRunning(e.target); } }); function addTestToSuite(name, test, input, addOptions) { var benchmark = new Benchmark(name, function() { addOptions.tests[test].apply(addOptions.context, addOptions.inputs[input]); }); benchmark.label = test; suite.add(benchmark); if (!testsByName[name]) { testsByName[name] = []; } testsByName[name].push(test); } function reportCurrentSet() { var reporter = options.reporter; if (reporter && typeof reporter.onTestResults === "function") { reporter.onTestResults(currentSet); } } function reportRunning(target) { var reporter = options.reporter; if (reporter && typeof reporter.onRunning === "function") { reporter.onRunning(target); } } this.add = function(name, addOptions) { for (var test in addOptions.tests) { for (var input in addOptions.inputs) { addTestToSuite(name, test, input, addOptions); } } }; this.onTestResults = function(callback) { if (!options.reporter) { options.reporter = {}; } options.reporter.onTestResults = callback; }; this.onRunning = function(callback) { if (!options.reporter) { options.reporter = {}; } options.reporter.onRunning = callback; }; this.run = function() { suite.run(); }; } module.exports = ComparisonSuite;