|   | 
| var test = require('tape'); | 
| var fs = require('fs'); | 
| var slice = require('./index').slice; | 
| var bufferReady = fs.readFileSync('./README.md'); | 
|   | 
| test('normal test', function(t) { | 
|   var chunks = []; | 
|   fs.createReadStream('./README.md') | 
|     .pipe(slice(0, 10)) | 
|     .on('data', chunks.push.bind(chunks)) | 
|     .on('end', function() { | 
|       var res = Buffer.concat(chunks); | 
|       t.equal(res.length, 10); | 
|       t.equal(bufferEq(res, bufferReady.slice(0, 10)), true); | 
|       t.end(); | 
|     }); | 
| }); | 
|   | 
| test('normal test', function(t) { | 
|   var chunks = []; | 
|   fs.createReadStream('./README.md') | 
|     .pipe(slice(10, 20)) | 
|     .on('data', chunks.push.bind(chunks)) | 
|     .on('end', function() { | 
|       var res = Buffer.concat(chunks); | 
|       t.equal(res.length, 10); | 
|       t.equal(bufferEq(res, bufferReady.slice(10, 20)), true); | 
|       t.end(); | 
|     }); | 
| }); | 
|   | 
| function bufferEq(foo, bar) { | 
|   if (!Buffer.isBuffer(foo) || !Buffer.isBuffer(bar)) { | 
|     throw new TypeError('Arguments must be a buffer'); | 
|   } | 
|   if (foo.length !== bar.length) { | 
|     return false; | 
|   } | 
|   for (var i = 0; i < foo.length; i++) { | 
|     if (foo[i] !== bar[i]) { | 
|       return false; | 
|     } | 
|   } | 
|   return true; | 
| } |