rafa
Version:
Rafa.js is a Javascript framework for building concurrent applications.
44 lines (39 loc) • 1.17 kB
JavaScript
module.exports = (assert, Rafa) => {
suite("configure", () => {
test("throw error when capacity < length", () => {
var buffer = Rafa.buffer(2);
buffer.push(1);
buffer.push(2);
assert.throws(() => buffer.configure(1));
});
test("grow when start is 0", () => {
var buffer = Rafa.buffer(2);
buffer.push(1);
buffer.configure(3);
assert.equal(buffer.capacity, 3);
assert.equal(buffer.length, 1);
assert.ok(buffer.overwrite);
assert.equal(buffer.buffer[0], 1);
});
test("grow when start is upper bound", () => {
var buffer = Rafa.buffer(2);
buffer.push(1);
buffer.push(2);
buffer.shift();
buffer.configure(3);
assert.equal(buffer.capacity, 3);
assert.equal(buffer.length, 1);
assert.ok(buffer.overwrite);
assert.equal(buffer.buffer[0], 2);
});
test("shrink", () => {
var buffer = Rafa.buffer(2);
buffer.push(1);
buffer.configure(1);
assert.equal(buffer.capacity, 1);
assert.equal(buffer.length, 1);
assert.ok(buffer.overwrite);
assert.equal(buffer.buffer[0], 1);
});
});
};