var assert = require("assert");
var indexStringify = require('../index');
var jsonStableStringify = require('json-stable-stringify');
var validateLibOutput = require('./validate');
var data = require("../fixtures/index").input;
var dataLength = JSON.stringify(data).length;
suite("libs", function() {
var minSamples = 120;
// This needs to be true before anything else
console.log('Checking index validity...');
validateLibOutput(indexStringify);
console.log('Checking index validity success');
benchmark('index', function () {
var result = indexStringify(data);
assert.equal(result.length, dataLength);
}, {
minSamples: minSamples
});
benchmark('json-stable-stringify', function () {
var result = jsonStableStringify(data);
assert.equal(result.length, dataLength);
}, {
minSamples: minSamples
});
}, {
onComplete: function() {
var namesFastest = this
.filter(function(bench) {
return bench.name !== 'native';
})
.filter('fastest')
.map('name');
assert.notEqual(namesFastest.indexOf('index'), -1, "index should be among the fastest");
}
});