| | |
| | |
| | |
| |
|
| | var sliceBuffer = require('../index.js'); |
| | var expect = require('expect.js'); |
| |
|
| | |
| | |
| | |
| |
|
| | describe('sliceBuffer', function() { |
| | describe('using standard slice', function() { |
| | it('should slice correctly with only start provided', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, 3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 3, ii = 0; i < abv.length; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with start and end provided', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, 3, 8); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 3, ii = 0; i < 8; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with negative start', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, -3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with negative end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, 0, -3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with negative start and end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, -6, -3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with equal start and end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, 1, 1); |
| | expect(sliced.byteLength).to.equal(0); |
| | }); |
| | |
| | it('should slice correctly when end larger than buffer', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, 0, 100); |
| | expect(new Uint8Array(sliced)).to.eql(abv); |
| | }); |
| |
|
| | it('shoud slice correctly when start larger than end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| |
|
| | var sliced = sliceBuffer(abv.buffer, 6, 5); |
| | expect(sliced.byteLength).to.equal(0); |
| | }); |
| | }); |
| |
|
| | describe('using fallback', function() { |
| | it('should slice correctly with only start provided', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| | var sliced = sliceBuffer(ab, 3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 3, ii = 0; i < abv.length; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with start and end provided', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| |
|
| | var sliced = sliceBuffer(ab, 3, 8); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 3, ii = 0; i < 8; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with negative start', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| |
|
| | var sliced = sliceBuffer(ab, -3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with negative end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| | var sliced = sliceBuffer(ab, 0, -3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with negative start and end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| | var sliced = sliceBuffer(ab, -6, -3); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) { |
| | expect(abv[i]).to.equal(sabv[ii]); |
| | } |
| | }); |
| |
|
| | it('should slice correctly with equal start and end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| | var sliced = sliceBuffer(ab, 1, 1); |
| | expect(sliced.byteLength).to.equal(0); |
| | }); |
| |
|
| | it('should slice correctly when end larger than buffer', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| | var sliced = sliceBuffer(ab, 0, 100); |
| | var sabv = new Uint8Array(sliced); |
| | for (var i = 0; i < abv.length; i++) { |
| | expect(abv[i]).to.equal(sabv[i]); |
| | } |
| | }); |
| |
|
| | it('shoud slice correctly when start larger than end', function() { |
| | var abv = new Uint8Array(10); |
| | for (var i = 0; i < abv.length; i++) { |
| | abv[i] = i; |
| | } |
| | var ab = abv.buffer; |
| | ab.slice = undefined; |
| |
|
| | var sliced = sliceBuffer(ab, 6, 5); |
| | expect(sliced.byteLength).to.equal(0); |
| | }); |
| | }); |
| | }); |
| |
|