var log = console.log, assert = require( 'assert' ), BlockStream = require("../block-stream.js"), isize = 0, tsize = 0, fsize = 0, psize = 0, i = 0, filter = null, paper = null, stack = null, // a source data buffer tsize = 1 * 1024; // <- 1K stack = new Buffer( tsize ); for ( ; i < tsize; i++) stack[i] = "x".charCodeAt(0); isize = 1 * 1024; // <- initial packet size with 4K no bug! fsize = 2 * 1024 ; // <- first block-stream size psize = Math.ceil( isize / 6 ); // <- second block-stream size fexpected = Math.ceil( tsize / fsize ); // <- packets expected for first pexpected = Math.ceil( tsize / psize ); // <- packets expected for second filter = new BlockStream( fsize, { nopad : true } ); paper = new BlockStream( psize, { nopad : true } ); var fcounter = 0; filter.on( 'data', function (c) { // verify that they're not null-padded for (var i = 0; i < c.length; i ++) { assert.strictEqual(c[i], "x".charCodeAt(0)) } ++fcounter; } ); var pcounter = 0; paper.on( 'data', function (c) { // verify that they're not null-padded for (var i = 0; i < c.length; i ++) { assert.strictEqual(c[i], "x".charCodeAt(0)) } ++pcounter; } ); filter.pipe( paper ); filter.on( 'end', function () { log("fcounter: %s === %s", fcounter, fexpected) assert.strictEqual( fcounter, fexpected ); } ); paper.on( 'end', function () { log("pcounter: %s === %s", pcounter, pexpected); assert.strictEqual( pcounter, pexpected ); } ); for ( i = 0, j = isize; j <= tsize; j += isize ) { filter.write( stack.slice( j - isize, j ) ); } filter.end();