You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.3 KiB
76 lines
2.3 KiB
#!/usr/bin/env mocha -R spec |
|
|
|
/*jshint -W053 */ |
|
|
|
var Int64Buffer = require("int64-buffer"); |
|
var Uint64BE = Int64Buffer.Uint64BE; |
|
var Int64BE = Int64Buffer.Int64BE; |
|
|
|
var assert = require("assert"); |
|
var msgpackJS = "../index"; |
|
var isBrowser = ("undefined" !== typeof window); |
|
var msgpack = isBrowser && window.msgpack || require(msgpackJS); |
|
var TITLE = __filename.replace(/^.*\//, ""); |
|
|
|
describe(TITLE, function() { |
|
var options = {}; |
|
|
|
it("createCodec({int64: true})", function() { |
|
var codec = msgpack.createCodec({int64: true}); |
|
assert.ok(codec); |
|
options.codec = codec; |
|
}); |
|
|
|
it("Uint64BE", function() { |
|
[ |
|
0, 1, Math.pow(2, 16), Math.pow(2, 32), Math.pow(2, 48) |
|
].forEach(function(value) { |
|
var source = Uint64BE(value); |
|
assert.equal(+source, value); |
|
var encoded = msgpack.encode(source, options); |
|
assert.equal(encoded[0], 0xcf); |
|
assert.equal(encoded.length, 9); |
|
var decoded = msgpack.decode(encoded, options); |
|
assert.equal(+decoded, value); |
|
}); |
|
|
|
[ |
|
"0", "1", "123456789abcdef0", "fedcba9876543210" |
|
].forEach(function(value) { |
|
var source = Uint64BE(value, 16); |
|
assert.equal(source.toString(16), value); |
|
var encoded = msgpack.encode(source, options); |
|
assert.equal(encoded[0], 0xcf); |
|
assert.equal(encoded.length, 9); |
|
var decoded = msgpack.decode(encoded, options); |
|
assert.equal(decoded.toString(16), value); |
|
}); |
|
}); |
|
|
|
it("Int64BE", function() { |
|
[ |
|
0, 1, Math.pow(2, 16), Math.pow(2, 32), Math.pow(2, 48), |
|
-1, -Math.pow(2, 16), -Math.pow(2, 32), -Math.pow(2, 48) |
|
].forEach(function(value) { |
|
var source = Int64BE(value); |
|
assert.equal(+source, value); |
|
var encoded = msgpack.encode(source, options); |
|
assert.equal(encoded[0], 0xd3); |
|
assert.equal(encoded.length, 9); |
|
var decoded = msgpack.decode(encoded, options); |
|
assert.equal(+decoded, value); |
|
}); |
|
|
|
[ |
|
"0", "1", "-1", "123456789abcdef0", "-123456789abcdef0" |
|
].forEach(function(value) { |
|
var source = Int64BE(value, 16); |
|
assert.equal(source.toString(16), value); |
|
var encoded = msgpack.encode(source, options); |
|
assert.equal(encoded[0], 0xd3); |
|
assert.equal(encoded.length, 9); |
|
var decoded = msgpack.decode(encoded, options); |
|
assert.equal(decoded.toString(16), value); |
|
}); |
|
}); |
|
});
|
|
|