5 var sliceBuffer = require('../index.js');
6 var expect = require('expect.js');
12 describe('sliceBuffer', function() {
13 describe('using standard slice', function() {
14 it('should slice correctly with only start provided', function() {
15 var abv = new Uint8Array(10);
16 for (var i = 0; i < abv.length; i++) {
20 var sliced = sliceBuffer(abv.buffer, 3);
21 var sabv = new Uint8Array(sliced);
22 for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
23 expect(abv[i]).to.equal(sabv[ii]);
27 it('should slice correctly with start and end provided', function() {
28 var abv = new Uint8Array(10);
29 for (var i = 0; i < abv.length; i++) {
33 var sliced = sliceBuffer(abv.buffer, 3, 8);
34 var sabv = new Uint8Array(sliced);
35 for (var i = 3, ii = 0; i < 8; i++, ii++) {
36 expect(abv[i]).to.equal(sabv[ii]);
40 it('should slice correctly with negative start', function() {
41 var abv = new Uint8Array(10);
42 for (var i = 0; i < abv.length; i++) {
46 var sliced = sliceBuffer(abv.buffer, -3);
47 var sabv = new Uint8Array(sliced);
48 for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
49 expect(abv[i]).to.equal(sabv[ii]);
53 it('should slice correctly with negative end', function() {
54 var abv = new Uint8Array(10);
55 for (var i = 0; i < abv.length; i++) {
59 var sliced = sliceBuffer(abv.buffer, 0, -3);
60 var sabv = new Uint8Array(sliced);
61 for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
62 expect(abv[i]).to.equal(sabv[ii]);
66 it('should slice correctly with negative start and end', function() {
67 var abv = new Uint8Array(10);
68 for (var i = 0; i < abv.length; i++) {
72 var sliced = sliceBuffer(abv.buffer, -6, -3);
73 var sabv = new Uint8Array(sliced);
74 for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
75 expect(abv[i]).to.equal(sabv[ii]);
79 it('should slice correctly with equal start and end', function() {
80 var abv = new Uint8Array(10);
81 for (var i = 0; i < abv.length; i++) {
85 var sliced = sliceBuffer(abv.buffer, 1, 1);
86 expect(sliced.byteLength).to.equal(0);
89 it('should slice correctly when end larger than buffer', function() {
90 var abv = new Uint8Array(10);
91 for (var i = 0; i < abv.length; i++) {
95 var sliced = sliceBuffer(abv.buffer, 0, 100);
96 expect(new Uint8Array(sliced)).to.eql(abv);
99 it('shoud slice correctly when start larger than end', function() {
100 var abv = new Uint8Array(10);
101 for (var i = 0; i < abv.length; i++) {
105 var sliced = sliceBuffer(abv.buffer, 6, 5);
106 expect(sliced.byteLength).to.equal(0);
110 describe('using fallback', function() {
111 it('should slice correctly with only start provided', function() {
112 var abv = new Uint8Array(10);
113 for (var i = 0; i < abv.length; i++) {
117 ab.slice = undefined;
119 var sliced = sliceBuffer(ab, 3);
120 var sabv = new Uint8Array(sliced);
121 for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
122 expect(abv[i]).to.equal(sabv[ii]);
126 it('should slice correctly with start and end provided', function() {
127 var abv = new Uint8Array(10);
128 for (var i = 0; i < abv.length; i++) {
132 ab.slice = undefined;
135 var sliced = sliceBuffer(ab, 3, 8);
136 var sabv = new Uint8Array(sliced);
137 for (var i = 3, ii = 0; i < 8; i++, ii++) {
138 expect(abv[i]).to.equal(sabv[ii]);
142 it('should slice correctly with negative start', function() {
143 var abv = new Uint8Array(10);
144 for (var i = 0; i < abv.length; i++) {
148 ab.slice = undefined;
151 var sliced = sliceBuffer(ab, -3);
152 var sabv = new Uint8Array(sliced);
153 for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
154 expect(abv[i]).to.equal(sabv[ii]);
158 it('should slice correctly with negative end', function() {
159 var abv = new Uint8Array(10);
160 for (var i = 0; i < abv.length; i++) {
164 ab.slice = undefined;
166 var sliced = sliceBuffer(ab, 0, -3);
167 var sabv = new Uint8Array(sliced);
168 for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
169 expect(abv[i]).to.equal(sabv[ii]);
173 it('should slice correctly with negative start and end', function() {
174 var abv = new Uint8Array(10);
175 for (var i = 0; i < abv.length; i++) {
179 ab.slice = undefined;
181 var sliced = sliceBuffer(ab, -6, -3);
182 var sabv = new Uint8Array(sliced);
183 for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
184 expect(abv[i]).to.equal(sabv[ii]);
188 it('should slice correctly with equal start and end', function() {
189 var abv = new Uint8Array(10);
190 for (var i = 0; i < abv.length; i++) {
194 ab.slice = undefined;
196 var sliced = sliceBuffer(ab, 1, 1);
197 expect(sliced.byteLength).to.equal(0);
200 it('should slice correctly when end larger than buffer', function() {
201 var abv = new Uint8Array(10);
202 for (var i = 0; i < abv.length; i++) {
206 ab.slice = undefined;
208 var sliced = sliceBuffer(ab, 0, 100);
209 var sabv = new Uint8Array(sliced);
210 for (var i = 0; i < abv.length; i++) {
211 expect(abv[i]).to.equal(sabv[i]);
215 it('shoud slice correctly when start larger than end', function() {
216 var abv = new Uint8Array(10);
217 for (var i = 0; i < abv.length; i++) {
221 ab.slice = undefined;
223 var sliced = sliceBuffer(ab, 6, 5);
224 expect(sliced.byteLength).to.equal(0);