
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
const {LazyArray, Pointer, uint8, uint16, DecodeStream, EncodeStream} = require('../');
const should = require('chai').should();
const concat = require('concat-stream');
describe('LazyArray', function() {
describe('decode', function() {
it('should decode items lazily', function() {
const stream = new DecodeStream(Buffer.from([1, 2, 3, 4, 5]));
const array = new LazyArray(uint8, 4);
const arr = array.decode(stream);
arr.should.not.be.an.instanceof(Array);
arr.should.have.length(4);
stream.pos.should.equal(4);
arr.get(0).should.equal(1);
arr.get(1).should.equal(2);
arr.get(2).should.equal(3);
arr.get(3).should.equal(4);
should.not.exist(arr.get(-1));
return should.not.exist(arr.get(5));
});
it('should be able to convert to an array', function() {
const stream = new DecodeStream(Buffer.from([1, 2, 3, 4, 5]));
const array = new LazyArray(uint8, 4);
const arr = array.decode(stream);
return arr.toArray().should.deep.equal([1, 2, 3, 4]);
});
it('should have an inspect method', function() {
const stream = new DecodeStream(Buffer.from([1, 2, 3, 4, 5]));
const array = new LazyArray(uint8, 4);
const arr = array.decode(stream);
return arr.inspect().should.equal('[ 1, 2, 3, 4 ]');
});
return it('should decode length as number before array', function() {
const stream = new DecodeStream(Buffer.from([4, 1, 2, 3, 4, 5]));
const array = new LazyArray(uint8, uint8);
const arr = array.decode(stream);
return arr.toArray().should.deep.equal([1, 2, 3, 4]);
});
});
describe('size', () =>
it('should work with LazyArrays', function() {
const stream = new DecodeStream(Buffer.from([1, 2, 3, 4, 5]));
const array = new LazyArray(uint8, 4);
const arr = array.decode(stream);
return array.size(arr).should.equal(4);
})
);
return describe('encode', () =>
it('should work with LazyArrays', function(done) {
const stream = new DecodeStream(Buffer.from([1, 2, 3, 4, 5]));
const array = new LazyArray(uint8, 4);
const arr = array.decode(stream);
const enc = new EncodeStream;
enc.pipe(concat(function(buf) {
buf.should.deep.equal(Buffer.from([1, 2, 3, 4]));
return done();
})
);
array.encode(enc, arr);
return enc.end();
})
);
});