UNPKG

rafa

Version:

Rafa.js is a Javascript framework for building concurrent applications.

60 lines (51 loc) 1.94 kB
module.exports = (assert, Rafa) => { suite("push", () => { test("fill to capacity without overwrite", () => { var buffer = Rafa.buffer(3, false); assert.equal(buffer.capacity, 3); assert.equal(buffer.buffer.length, 3); assert.equal(buffer.start, 0); assert.equal(buffer.length, 0); assert.ok(!buffer.overwrite); assert.isUndefined(buffer.head()); assert.isUndefined(buffer.tail()); for (var i = 1; i <= 3; i++) { assert.equal(buffer.push(i), 1); assert.equal(buffer.start, 0); assert.equal(buffer.length, i); assert.equal(buffer.buffer[i-1], i); assert.equal(buffer.head(), buffer.buffer[0]); assert.equal(buffer.tail(), buffer.buffer[i-1]); } assert.equal(buffer.push(4), 0); assert.equal(buffer.head(), buffer.buffer[0]); assert.equal(buffer.tail(), buffer.buffer[2]); }); test("fill to capacity with overwrite", () => { var buffer = Rafa.buffer(3); assert.equal(buffer.capacity, 3); assert.equal(buffer.buffer.length, 3); assert.equal(buffer.start, 0); assert.equal(buffer.length, 0); assert.ok(buffer.overwrite); for (var i = 1; i <= 3; i++) { assert.equal(buffer.push(i), 1); assert.equal(buffer.start, 0); assert.equal(buffer.length, i); assert.equal(buffer.buffer[i-1], i); } assert.equal(buffer.push(4), 2); assert.equal(buffer.start, 1); assert.equal(buffer.length, 3); assert.equal(buffer.buffer[0], 4); assert.equal(buffer.head(), buffer.buffer[1]); assert.equal(buffer.tail(), buffer.buffer[0]); assert.equal(buffer.push(5), 2); assert.equal(buffer.start, 2); assert.equal(buffer.buffer[1], 5); assert.equal(buffer.push(6), 2); assert.equal(buffer.start, 0); assert.equal(buffer.buffer[2], 6); }); }); };