123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
- var B = require('../').Buffer
- var test = require('tape')
- test('new buffer from array', function (t) {
- t.equal(
- new B([1, 2, 3]).toString(),
- '\u0001\u0002\u0003'
- )
- t.end()
- })
- test('new buffer from array w/ negatives', function (t) {
- t.equal(
- new B([-1, -2, -3]).toString('hex'),
- 'fffefd'
- )
- t.end()
- })
- test('new buffer from array with mixed signed input', function (t) {
- t.equal(
- new B([-255, 255, -128, 128, 512, -512, 511, -511]).toString('hex'),
- '01ff80800000ff01'
- )
- t.end()
- })
- test('new buffer from string', function (t) {
- t.equal(
- new B('hey', 'utf8').toString(),
- 'hey'
- )
- t.end()
- })
- test('new buffer from buffer', function (t) {
- var b1 = new B('asdf')
- var b2 = new B(b1)
- t.equal(b1.toString('hex'), b2.toString('hex'))
- t.end()
- })
- test('new buffer from ArrayBuffer', function (t) {
- if (typeof ArrayBuffer !== 'undefined') {
- var arraybuffer = new Uint8Array([0, 1, 2, 3]).buffer
- var b = new B(arraybuffer)
- t.equal(b.length, 4)
- t.equal(b[0], 0)
- t.equal(b[1], 1)
- t.equal(b[2], 2)
- t.equal(b[3], 3)
- t.equal(b[4], undefined)
- }
- t.end()
- })
- test('new buffer from ArrayBuffer, shares memory', function (t) {
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- var u = new Uint8Array([0, 1, 2, 3])
- var arraybuffer = u.buffer
- var b = new B(arraybuffer)
- t.equal(b.length, 4)
- t.equal(b[0], 0)
- t.equal(b[1], 1)
- t.equal(b[2], 2)
- t.equal(b[3], 3)
- t.equal(b[4], undefined)
- // changing the Uint8Array (and thus the ArrayBuffer), changes the Buffer
- u[0] = 10
- t.equal(b[0], 10)
- u[1] = 11
- t.equal(b[1], 11)
- u[2] = 12
- t.equal(b[2], 12)
- u[3] = 13
- t.equal(b[3], 13)
- }
- t.end()
- })
- test('new buffer from Uint8Array', function (t) {
- if (typeof Uint8Array !== 'undefined') {
- var b1 = new Uint8Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from Uint16Array', function (t) {
- if (typeof Uint16Array !== 'undefined') {
- var b1 = new Uint16Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from Uint32Array', function (t) {
- if (typeof Uint32Array !== 'undefined') {
- var b1 = new Uint32Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from Int16Array', function (t) {
- if (typeof Int16Array !== 'undefined') {
- var b1 = new Int16Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from Int32Array', function (t) {
- if (typeof Int32Array !== 'undefined') {
- var b1 = new Int32Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from Float32Array', function (t) {
- if (typeof Float32Array !== 'undefined') {
- var b1 = new Float32Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from Float64Array', function (t) {
- if (typeof Float64Array !== 'undefined') {
- var b1 = new Float64Array([0, 1, 2, 3])
- var b2 = new B(b1)
- t.equal(b1.length, b2.length)
- t.equal(b1[0], 0)
- t.equal(b1[1], 1)
- t.equal(b1[2], 2)
- t.equal(b1[3], 3)
- t.equal(b1[4], undefined)
- }
- t.end()
- })
- test('new buffer from buffer.toJSON() output', function (t) {
- if (typeof JSON === 'undefined') {
- // ie6, ie7 lack support
- t.end()
- return
- }
- var buf = new B('test')
- var json = JSON.stringify(buf)
- var obj = JSON.parse(json)
- var copy = new B(obj)
- t.ok(buf.equals(copy))
- t.end()
- })
|