1 | #!/usr/bin/env mocha -R spec
|
2 |
|
3 | var assert = require("assert");
|
4 |
|
5 | var msgpack = require("../index");
|
6 | var BufferLite = require("../lib/buffer-lite");
|
7 | var TITLE = __filename.replace(/^.*\//, "");
|
8 |
|
9 | describe(TITLE, function() {
|
10 |
|
11 | it("BufferLite.writeUint64BE() 1...", function() {
|
12 | var exp = [
|
13 | [0xcf, 0, 0, 0, 0, 0, 0, 0, 1],
|
14 | [0xcf, 0, 0, 0, 0, 0, 0, 1, 0],
|
15 | [0xcf, 0, 0, 0, 0, 0, 1, 0, 0],
|
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],
|
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],
|
57 | [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF],
|
58 | [0xd3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF],
|
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],
|
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 | });
|