UNPKG

3.36 kBJavaScriptView Raw
1#!/usr/bin/env mocha -R spec
2
3var assert = require("assert");
4
5var msgpack = require("../index");
6var BufferLite = require("../lib/buffer-lite");
7var TITLE = __filename.replace(/^.*\//, "") + ":";
8
9describe(TITLE, function() {
10
11 it("BufferLite.writeUint64BE() 1...", function() {
12 var exp = [
13 [0xcf, 0, 0, 0, 0, 0, 0, 0, 1], // 1
14 [0xcf, 0, 0, 0, 0, 0, 0, 1, 0], // 256
15 [0xcf, 0, 0, 0, 0, 0, 1, 0, 0], // 65536
16 [0xcf, 0, 0, 0, 0, 1, 0, 0, 0],
17 [0xcf, 0, 0, 0, 1, 0, 0, 0, 0],
18 [0xcf, 0, 0, 1, 0, 0, 0, 0, 0],
19 [0xcf, 0, 1, 0, 0, 0, 0, 0, 0],
20 [0xcf, 1, 0, 0, 0, 0, 0, 0, 0]
21 ];
22 var val = 1;
23 for (var i = 0; i < exp.length; i++) {
24 var buffer = Buffer(9);
25 buffer[0] = 0xcf;
26 BufferLite.writeUint64BE.call(buffer, val, 1);
27 assert.deepEqual(buffer, Buffer(exp[i]));
28 assert.equal(msgpack.decode(buffer), val);
29 val *= 256;
30 }
31 });
32
33 it("BufferLite.writeUint64BE() 32767...", function() {
34 var exp = [
35 [0xcf, 0, 0, 0, 0, 0, 0, 0x7F, 0xFF], // 32767
36 [0xcf, 0, 0, 0, 0, 0, 0x7F, 0xFF, 0],
37 [0xcf, 0, 0, 0, 0, 0x7F, 0xFF, 0, 0],
38 [0xcf, 0, 0, 0, 0x7F, 0xFF, 0, 0, 0],
39 [0xcf, 0, 0, 0x7F, 0xFF, 0, 0, 0, 0],
40 [0xcf, 0, 0x7F, 0xFF, 0, 0, 0, 0, 0],
41 [0xcf, 0x7F, 0xFF, 0, 0, 0, 0, 0, 0]
42 ];
43 var val = 32767;
44 for (var i = 0; i < exp.length; i++) {
45 var buffer = Buffer(9);
46 buffer[0] = 0xcf;
47 BufferLite.writeUint64BE.call(buffer, val, 1);
48 assert.deepEqual(buffer, Buffer(exp[i]));
49 assert.equal(msgpack.decode(buffer), val);
50 val *= 256;
51 }
52 });
53
54 it("BufferLite.writeInt64BE() -2...", function() {
55 var exp = [
56 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE], // -2
57 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF], // -257
58 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF], // -65537
59 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF],
60 [0xd3, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF],
61 [0xd3, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
62 [0xd3, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
63 [0xd3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
64 ];
65 var value = 1;
66 for (var i = 0; i < exp.length; i++) {
67 var buffer = Buffer(9);
68 buffer[0] = 0xd3;
69 var val = -value - 1;
70 BufferLite.writeInt64BE.call(buffer, val, 1);
71 assert.deepEqual(buffer, Buffer(exp[i]));
72 assert.equal(msgpack.decode(buffer), val);
73 value *= 256;
74 }
75 });
76
77 it("BufferLite.writeInt64BE() -32768...", function() {
78 var exp = [
79 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0], // -32768
80 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0, 0xFF],
81 [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0, 0xFF, 0xFF],
82 [0xd3, 0xFF, 0xFF, 0xFF, 0x80, 0, 0xFF, 0xFF, 0xFF],
83 [0xd3, 0xFF, 0xFF, 0x80, 0, 0xFF, 0xFF, 0xFF, 0xFF],
84 [0xd3, 0xFF, 0x80, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
85 [0xd3, 0x80, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
86 ];
87 var val = -32768;
88 for (var i = 0; i < exp.length; i++) {
89 var buffer = Buffer(9);
90 buffer[0] = 0xd3;
91 BufferLite.writeInt64BE.call(buffer, val, 1);
92 assert.deepEqual(buffer, Buffer(exp[i]));
93 assert.equal(msgpack.decode(buffer), val);
94 val *= 256;
95 val += 255;
96 }
97 });
98});