rafa
Version:
Rafa.js is a Javascript framework for building concurrent applications.
43 lines (37 loc) • 1.14 kB
JavaScript
module.exports = (assert, Rafa) => {
suite("shift", () => {
test("length is 0", () => {
assert.isUndefined(Rafa.buffer(1).shift());
});
test("length is 1 start is 0", () => {
var buffer = Rafa.buffer(3);
buffer.push(1);
assert.equal(buffer.shift(), 1);
assert.equal(buffer.start, 0);
assert.equal(buffer.length, 0);
assert.isNull(buffer.buffer[0]);
});
test("length is 2 start is 0", () => {
var buffer = Rafa.buffer(3);
buffer.push(1);
buffer.push(2);
assert.equal(buffer.shift(), 1);
assert.equal(buffer.start, 1);
assert.equal(buffer.length, 1);
assert.isNull(buffer.buffer[0]);
assert.equal(buffer.head(), 2);
assert.equal(buffer.tail(), 2);
});
test("start is upper bound", () => {
var buffer = Rafa.buffer(2);
buffer.push(1);
buffer.push(2);
assert.equal(buffer.shift(), 1);
assert.equal(buffer.start, 1);
assert.equal(buffer.length, 1);
assert.equal(buffer.shift(), 2);
assert.equal(buffer.start, 1);
assert.equal(buffer.length, 0);
});
});
};