forked from birchroad/node-jspack
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathhexstring.test.js
More file actions
70 lines (53 loc) · 2.34 KB
/
hexstring.test.js
File metadata and controls
70 lines (53 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
require('should');
require('buffer');
var bufferpack = require('..');
describe('Hex String', function() {
var values = '01eb6d8eafc3';
var format = '6x';
describe('#pack()', function() {
var packed = bufferpack.pack(format, values);
it('should have packed size of 6', function() {
packed.length.should.equal(6);
});
it('should back fine', function() {
packed[0].should.equal(parseInt(values[0*2], 16) * 16 + parseInt(values[0*2+1], 16));
packed[1].should.equal(parseInt(values[1*2], 16) * 16 + parseInt(values[1*2+1], 16));
packed[2].should.equal(parseInt(values[2*2], 16) * 16 + parseInt(values[2*2+1], 16));
packed[3].should.equal(parseInt(values[3*2], 16) * 16 + parseInt(values[3*2+1], 16));
packed[4].should.equal(parseInt(values[4*2], 16) * 16 + parseInt(values[4*2+1], 16));
packed[5].should.equal(parseInt(values[5*2], 16) * 16 + parseInt(values[5*2+1], 16));
});
});
var buffSize = bufferpack.calcLength(format, values);
it('buffer size should be 6', function() {
buffSize.should.equal(6);
});
var buffer = new Buffer(buffSize);
describe('#packTo()', function() {
bufferpack.packTo(format, buffer, 0, values);
it('should pack fine', function() {
buffer[0].should.equal(parseInt(values[0*2], 16) * 16 + parseInt(values[0*2+1], 16));
buffer[1].should.equal(parseInt(values[1*2], 16) * 16 + parseInt(values[1*2+1], 16));
buffer[2].should.equal(parseInt(values[2*2], 16) * 16 + parseInt(values[2*2+1], 16));
buffer[3].should.equal(parseInt(values[3*2], 16) * 16 + parseInt(values[3*2+1], 16));
buffer[4].should.equal(parseInt(values[4*2], 16) * 16 + parseInt(values[4*2+1], 16));
buffer[5].should.equal(parseInt(values[5*2], 16) * 16 + parseInt(values[5*2+1], 16));
});
});
describe('#unpack()', function() {
var unpacked = bufferpack.unpack(format, buffer, 0);
it('should return an array', function() {
unpacked.should.be.an.instanceof(Array);
});
it('should return same values as in values', function() {
unpacked[0].should.equal(values);
});
describe('zero with null term string', function() {
var packed = bufferpack.pack('6x', values);
it('third should be ""', function() {
var unpacked = bufferpack.unpack('6x(n)', packed);
unpacked.n.should.equal(values);
});
});
});
});