Skip to content

Instantly share code, notes, and snippets.

@siddMahen
Created May 23, 2013 17:07
Show Gist options
  • Save siddMahen/5637680 to your computer and use it in GitHub Desktop.
Save siddMahen/5637680 to your computer and use it in GitHub Desktop.
msgpack.js test
var msgpack = require("../"),
pack = msgpack.pack.pure,
unpack = msgpack.unpack.pure,
assert = require("assert");
function genObj(type, size){
var obj;
switch(type){
case "raw":
obj = "";
for(var i = 0; i < size; i+=10)
obj += "abcdefghij";
break;
case "array":
obj = [];
for(var i = 0; i < size; i++)
obj[i] = i % 256;
break;
case "map":
obj = {};
for(var i = 0; i < size; i++)
obj[i] = i % 256;
break;
}
return obj;
}
// UINTS
assert.deepEqual(127, unpack(pack(127)));
assert.deepEqual(255, unpack(pack(255)));
assert.deepEqual(65535, unpack(pack(65535)));
assert.deepEqual(4294967295, unpack(pack(4294967295)));
// INTS
assert.deepEqual(-32, unpack(pack(-32)));
assert.deepEqual(-127, unpack(pack(-127)));
assert.deepEqual(-32767, unpack(pack(-32767)));
assert.deepEqual(-2147483647, unpack(pack(-2147483647)));
// FLOATS
assert.deepEqual(3.14159, unpack(pack(3.14159)));
// RAWS
var smallRaw = genObj("raw", 30),
medRaw = genObj("raw", 65535),
bigRaw = genObj("raw", 2*65535);
assert.deepEqual(smallRaw, unpack(pack(smallRaw)));
assert.deepEqual(medRaw, unpack(pack(medRaw)));
assert.deepEqual(bigRaw, unpack(pack(bigRaw)));
// ARRAYS
var smallArray = genObj("array", 15),
medArray = genObj("array", 65535),
bigArray = genObj("array", 2*65535);
assert.deepEqual(smallArray, unpack(pack(smallArray)));
assert.deepEqual(medArray, unpack(pack(medArray)));
assert.deepEqual(bigArray, unpack(pack(bigArray)));
// MAPS
var smallMap = genObj("map", 15),
medMap = genObj("map", 65535),
bigMap = genObj("map", 2*65535);
assert.deepEqual(smallMap, unpack(pack(smallMap)));
assert.deepEqual(medMap, unpack(pack(medMap)));
assert.deepEqual(bigMap, unpack(pack(bigMap)));
// LOGIC
assert.deepEqual(true, unpack(pack(true)));
assert.deepEqual(false, unpack(pack(false)));
assert.deepEqual(null, unpack(pack(null)));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment