nodejs/test/simple/test-buffer.js

77 lines
1.7 KiB
JavaScript
Raw Normal View History

require("../common");
2009-12-13 08:42:45 +01:00
assert = require("assert");
2010-03-19 20:50:29 -07:00
var Buffer = require('buffer').Buffer;
2009-12-13 08:42:45 +01:00
2010-03-19 20:50:29 -07:00
var b = new Buffer(1024);
2009-12-13 08:42:45 +01:00
2010-01-27 18:45:07 -08:00
puts("b.length == " + b.length);
2009-12-13 08:42:45 +01:00
assert.equal(1024, b.length);
2009-12-13 08:57:54 +01:00
for (var i = 0; i < 1024; i++) {
assert.ok(b[i] >= 0);
b[i] = i % 256;
}
for (var i = 0; i < 1024; i++) {
assert.equal(i % 256, b[i]);
}
2010-01-27 15:40:09 -08:00
var asciiString = "hello world";
var offset = 100;
2010-03-19 11:29:14 -07:00
for (var j = 0; j < 500; j++) {
2009-12-13 08:42:45 +01:00
for (var i = 0; i < asciiString.length; i++) {
b[i] = asciiString.charCodeAt(i);
}
var asciiSlice = b.asciiSlice(0, asciiString.length);
2010-01-27 15:40:09 -08:00
assert.equal(asciiString, asciiSlice);
2009-12-13 08:42:45 +01:00
2010-01-27 15:40:09 -08:00
var written = b.asciiWrite(asciiString, offset);
assert.equal(asciiString.length, written);
var asciiSlice = b.asciiSlice(offset, offset+asciiString.length);
2009-12-13 08:42:45 +01:00
assert.equal(asciiString, asciiSlice);
2010-01-27 15:40:09 -08:00
var sliceA = b.slice(offset, offset+asciiString.length);
var sliceB = b.slice(offset, offset+asciiString.length);
for (var i = 0; i < asciiString.length; i++) {
assert.equal(sliceA[i], sliceB[i]);
}
// TODO utf8 slice tests
2009-12-13 08:42:45 +01:00
}
2010-03-19 11:29:14 -07:00
for (var j = 0; j < 100; j++) {
2009-12-13 08:42:45 +01:00
var slice = b.slice(100, 150);
assert.equal(50, slice.length);
for (var i = 0; i < 50; i++) {
assert.equal(b[100+i], slice[i]);
}
}
2010-01-27 15:40:09 -08:00
2010-01-29 09:57:47 -08:00
// unpack
2010-01-27 15:40:09 -08:00
2010-03-19 20:50:29 -07:00
var b = new Buffer(10);
2010-01-29 09:57:47 -08:00
b[0] = 0x00;
b[1] = 0x01;
b[2] = 0x03;
b[3] = 0x00;
assert.deepEqual([0x0001], b.unpack('n', 0));
assert.deepEqual([0x0001, 0x0300], b.unpack('nn', 0));
assert.deepEqual([0x0103], b.unpack('n', 1));
assert.deepEqual([0x0300], b.unpack('n', 2));
assert.deepEqual([0x00010300], b.unpack('N', 0));
assert.throws(function () {
b.unpack('N', 8);
});
b[4] = 0xDE;
b[5] = 0xAD;
b[6] = 0xBE;
b[7] = 0xEF;
assert.deepEqual([0xDEADBEEF], b.unpack('N', 4));