arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
raspberryGPIOhtmlserver/node_modules/arraybuffer.slice/test/slice-buffer.js
node_modules/arraybuffer.slice/test/slice-buffer.jsRaw
  1/*
  2 * Test dependencies
  3 */
  4
  5var sliceBuffer = require('../index.js');
  6var expect = require('expect.js');
  7
  8/**
  9 * Tests
 10 */
 11
 12describe('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++) {
 17        abv[i] = i;
 18      }
 19
 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]);
 24      }
 25    });
 26
 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++) {
 30        abv[i] = i;
 31      }
 32
 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]);
 37      }
 38    });
 39
 40    it('should slice correctly with negative start', function() {
 41      var abv = new Uint8Array(10);
 42      for (var i = 0; i < abv.length; i++) {
 43        abv[i] = i;
 44      }
 45
 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]);
 50      }
 51    });
 52
 53    it('should slice correctly with negative end', function() {
 54      var abv = new Uint8Array(10);
 55      for (var i = 0; i < abv.length; i++) {
 56        abv[i] = i;
 57      }
 58
 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]);
 63      }
 64    });
 65
 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++) {
 69        abv[i] = i;
 70      }
 71
 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]);
 76      }
 77    });
 78
 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++) {
 82        abv[i] = i;
 83      }
 84
 85      var sliced = sliceBuffer(abv.buffer, 1, 1);
 86      expect(sliced.byteLength).to.equal(0);
 87    });
 88    
 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++) {
 92        abv[i] = i;
 93      }
 94
 95      var sliced = sliceBuffer(abv.buffer, 0, 100);
 96      expect(new Uint8Array(sliced)).to.eql(abv);
 97    });
 98
 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++) {
102        abv[i] = i;
103      }
104
105      var sliced = sliceBuffer(abv.buffer, 6, 5);
106      expect(sliced.byteLength).to.equal(0);
107    });
108  });
109
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++) {
114        abv[i] = i;
115      }
116      var ab = abv.buffer;
117      ab.slice = undefined;
118
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]);
123      }
124    });
125
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++) {
129        abv[i] = i;
130      }
131      var ab = abv.buffer;
132      ab.slice = undefined;
133
134
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]);
139      }
140    });
141
142    it('should slice correctly with negative start', function() {
143      var abv = new Uint8Array(10);
144      for (var i = 0; i < abv.length; i++) {
145        abv[i] = i;
146      }
147      var ab = abv.buffer;
148      ab.slice = undefined;
149
150
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]);
155      }
156    });
157
158    it('should slice correctly with negative end', function() {
159      var abv = new Uint8Array(10);
160      for (var i = 0; i < abv.length; i++) {
161        abv[i] = i;
162      }
163      var ab = abv.buffer;
164      ab.slice = undefined;
165
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]);
170      }
171    });
172
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++) {
176        abv[i] = i;
177      }
178      var ab = abv.buffer;
179      ab.slice = undefined;
180
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]);
185      }
186    });
187
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++) {
191        abv[i] = i;
192      }
193      var ab = abv.buffer;
194      ab.slice = undefined;
195
196      var sliced = sliceBuffer(ab, 1, 1);
197      expect(sliced.byteLength).to.equal(0);
198    });
199
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++) {
203        abv[i] = i;
204      }
205      var ab = abv.buffer;
206      ab.slice = undefined;
207
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]);
212      }
213    });
214
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++) {
218        abv[i] = i;
219      }
220      var ab = abv.buffer;
221      ab.slice = undefined;
222
223      var sliced = sliceBuffer(ab, 6, 5);
224      expect(sliced.byteLength).to.equal(0);
225    });
226  });
227});