reign
Version:
A persistent, typed-objects implementation.
64 lines (52 loc) • 2.38 kB
JavaScript
;
var _2 = require('./');
var _3 = _interopRequireDefault(_2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('Buffer Hashes', function () {
var bufs = Array.from({ length: 10 }, function (_, index) {
return new Buffer('foo bar ' + index);
});
it('should hash a buffer value using the default hash function', function () {
var input = new Buffer("hello world");
(0, _3.default)(input).should.eql(1794106052);
});
it('should hash a buffer value using the fnv hash function', function () {
var input = new Buffer("hello world");
(0, _2.fnv)(input).should.eql(3582672807);
});
it('should hash a buffer value using the djb hash function', function () {
var input = new Buffer("hello world");
(0, _2.djb)(input).should.eql(894552257);
});
it('should hash a buffer value using the murmur3 hash function', function () {
var input = new Buffer("hello world");
(0, _2.murmur3)(input).should.eql(1586663183);
});
benchmark("Default vs DJB", 10000, {
default: function _default() {
return (0, _3.default)(bufs[4]);
},
djb: function djb() {
return (0, _2.djb)(bufs[4]);
}
});
benchmark("Default vs Murmur3", 10000, {
default: function _default() {
return (0, _3.default)(bufs[4]);
},
murmur3: function murmur3() {
return (0, _2.murmur3)(bufs[4]);
}
});
benchmark("Default buffer hash vs FNV vs DJB", 10000, {
default: function _default() {
return (0, _3.default)(bufs[0]) + (0, _3.default)(bufs[1]) + (0, _3.default)(bufs[2]) + (0, _3.default)(bufs[3]) + (0, _3.default)(bufs[4]) + (0, _3.default)(bufs[5]) + (0, _3.default)(bufs[6]) + (0, _3.default)(bufs[7]) + (0, _3.default)(bufs[8]) + (0, _3.default)(bufs[9]);
},
fnv: function fnv() {
return (0, _2.fnv)(bufs[0]) + (0, _2.fnv)(bufs[1]) + (0, _2.fnv)(bufs[2]) + (0, _2.fnv)(bufs[3]) + (0, _2.fnv)(bufs[4]) + (0, _2.fnv)(bufs[5]) + (0, _2.fnv)(bufs[6]) + (0, _2.fnv)(bufs[7]) + (0, _2.fnv)(bufs[8]) + (0, _2.fnv)(bufs[9]);
},
djb: function djb() {
return (0, _2.djb)(bufs[0]) + (0, _2.djb)(bufs[1]) + (0, _2.djb)(bufs[2]) + (0, _2.djb)(bufs[3]) + (0, _2.djb)(bufs[4]) + (0, _2.djb)(bufs[5]) + (0, _2.djb)(bufs[6]) + (0, _2.djb)(bufs[7]) + (0, _2.djb)(bufs[8]) + (0, _2.djb)(bufs[9]);
}
});
});