/* */ 
var B = require('../index').Buffer;
var test = require('tape');
test('instanceof Buffer', function(t) {
  var buf = new B([1, 2]);
  t.ok(buf instanceof B);
  t.end();
});
test('convert to Uint8Array in modern browsers', function(t) {
  var buf = new B([1, 2]);
  var uint8array = new Uint8Array(buf.buffer);
  t.ok(uint8array instanceof Uint8Array);
  t.equal(uint8array[0], 1);
  t.equal(uint8array[1], 2);
  t.end();
});
test('indexes from a string', function(t) {
  var buf = new B('abc');
  t.equal(buf[0], 97);
  t.equal(buf[1], 98);
  t.equal(buf[2], 99);
  t.end();
});
test('indexes from an array', function(t) {
  var buf = new B([97, 98, 99]);
  t.equal(buf[0], 97);
  t.equal(buf[1], 98);
  t.equal(buf[2], 99);
  t.end();
});
test('setting index value should modify buffer contents', function(t) {
  var buf = new B([97, 98, 99]);
  t.equal(buf[2], 99);
  t.equal(buf.toString(), 'abc');
  buf[2] += 10;
  t.equal(buf[2], 109);
  t.equal(buf.toString(), 'abm');
  t.end();
});
test('storing negative number should cast to unsigned', function(t) {
  var buf = new B(1);
  buf[0] = -3;
  t.equal(buf[0], 253);
  buf = new B(1);
  buf.writeInt8(-3, 0);
  t.equal(buf[0], 253);
  t.end();
});
test('test that memory is copied from array-like', function(t) {
  var u = new Uint8Array(4);
  var b = new B(u);
  b[0] = 1;
  b[1] = 2;
  b[2] = 3;
  b[3] = 4;
  t.equal(u[0], 0);
  t.equal(u[1], 0);
  t.equal(u[2], 0);
  t.equal(u[3], 0);
  t.end();
});
