| var Buffer = require('buffer').Buffer | 
| var test = require('tape') | 
|   | 
| var toArrayBuffer = require('.') | 
|   | 
| function elementsEqual (ab, buffer) { | 
|     var view = new Uint8Array(ab) | 
|     for (var i = 0; i < view.length; i++) { | 
|         if (view[i] !== buffer[i]) { | 
|             return false | 
|         } | 
|     } | 
|     return true | 
| } | 
|   | 
| test('Basic behavior', function (t) { | 
|     var buf = new Buffer(10) | 
|     for (var i = 0; i < 10; i++) { | 
|         buf[i] = i | 
|     } | 
|   | 
|     var ab = toArrayBuffer(buf) | 
|   | 
|     t.equals(ab.byteLength, 10, 'correct length') | 
|     t.ok(elementsEqual(ab, buf), 'elements equal') | 
|     t.end() | 
| }) | 
|   | 
| test('Behavior when input is a subarray 1', function (t) { | 
|     var origBuf = new Buffer(10) | 
|     for (var i = 0; i < 10; i++) { | 
|         origBuf[i] = i | 
|     } | 
|     var buf = origBuf.slice(1) | 
|   | 
|     var ab = toArrayBuffer(buf) | 
|   | 
|     t.equals(ab.byteLength, 9, 'correct length') | 
|     t.ok(elementsEqual(ab, buf), 'elements equal') | 
|     t.notOk(ab === buf.buffer, 'the underlying ArrayBuffer is not returned when incorrect') | 
|     t.end() | 
| }) | 
|   | 
| test('Behavior when input is a subarray 2', function (t) { | 
|     var origBuf = new Buffer(10) | 
|     for (var i = 0; i < 10; i++) { | 
|         origBuf[i] = i | 
|     } | 
|     var buf = origBuf.slice(0, 9) | 
|   | 
|     var ab = toArrayBuffer(buf) | 
|   | 
|     t.equals(ab.byteLength, 9, 'correct length') | 
|     t.ok(elementsEqual(ab, buf), 'elements equal') | 
|     t.notOk(ab === buf.buffer, 'the underlying ArrayBuffer is not returned when incorrect') | 
|     t.end() | 
| }) |