var binary = require('../'); var test = require('tap').test; test('parse', function (t) { t.plan(6); var res = binary.parse(new Buffer([ 97, 98, 99, 99, 99, 99, 1, 2, 3 ])) .word8('a') .word16be('bc') .skip(3) .buffer('def', 3) .tap(function (vars) { t.equal(vars.a, 97); t.equal(vars.bc, 25187); t.same( [].slice.call(vars.def), [].slice.call(new Buffer([ 1, 2, 3])) ); }) .vars ; t.equal(res.a, 97); t.equal(res.bc, 25187); t.same( [].slice.call(res.def), [].slice.call(new Buffer([ 1, 2, 3 ])) ); }); test('loop', function (t) { t.plan(2); var res = binary.parse(new Buffer([ 97, 98, 99, 4, 5, 2, -3, 9 ])) .word8('a') .word16be('bc') .loop(function (end) { var x = this.word8s('x').vars.x; if (x < 0) end(); }) .tap(function (vars) { t.same(vars, { a : 97, bc : 25187, x : -3, }); }) .word8('y') .vars ; t.same(res, { a : 97, bc : 25187, x : -3, y : 9, }); });