New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

CBuffer

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

CBuffer - npm Package Compare versions

Comparing version 0.1.3 to 0.1.4

speed/core/initialize.js

91

cbuffer.js

@@ -1,5 +0,4 @@

(function(global) {
(function (global) {
function CBuffer() {
var i = 0;
// handle cases where "new" keyword wasn't used

@@ -39,13 +38,14 @@ if (!(this instanceof CBuffer)) {

// pop last item
pop : function() {
pop : function () {
var item;
if (this.size === 0) return;
item = this.data[this.end];
delete this.data[(this.size + this.start - 1) % this.length];
// no need to delete item, since resize will make it inaccessible to
// CBuffer methods
this.end = (this.end - 1 + this.length) % this.length;
this.size--;
this.end = (this.end - 1 + this.length) % this.length;
return item;
},
// push item to the end
push : function() {
push : function () {
var i = 0;

@@ -77,3 +77,3 @@ // check if overflow is set, and if data is about to be overwritten

// reverse order of the buffer
reverse : function() {
reverse : function () {
var i = 0,

@@ -89,3 +89,3 @@ tmp;

// rotate buffer to the left by cntr, or by 1
rotateLeft : function(cntr) {
rotateLeft : function (cntr) {
if (!cntr) cntr = 1;

@@ -98,3 +98,3 @@ while (--cntr >= 0) {

// rotate buffer to the right by cntr, or by 1
rotateRight : function(cntr) {
rotateRight : function (cntr) {
if (!cntr) cntr = 1;

@@ -107,11 +107,9 @@ while (--cntr >= 0) {

// remove and return first item
shift : function() {
shift : function () {
var item;
// check if there are any items in CBuffer
// check if there are any items in CBuff
if (this.size === 0) return;
// store first item for return
item = this.data[this.start];
// delete first item from memory
delete this.data[this.start];
// recalculate start of CBuff
// recalculate start of CBuffer
this.start = (this.start + 1) % this.length;

@@ -123,3 +121,3 @@ // decrement size

// sort items
sort : function(fn) {
sort : function (fn) {
if (fn) this.data.sort(fn);

@@ -132,3 +130,3 @@ else this.data.sort();

// add item to beginning of buffer
unshift : function() {
unshift : function () {
var i = 0;

@@ -160,3 +158,3 @@ // check if overflow is set, and if data is about to be overwritten

// return index of first matched element
indexOf : function(arg, idx) {
indexOf : function (arg, idx) {
if (!idx) idx = 0;

@@ -169,3 +167,3 @@ for (; idx < this.size; idx++) {

// return last index of the first match
lastIndexOf : function(arg, idx) {
lastIndexOf : function (arg, idx) {
if (!idx) idx = this.size - 1;

@@ -180,14 +178,7 @@ for (; idx >= 0; idx--) {

// check every item in the array against a test
every : function(callback, context) {
every : function (callback, context) {
var i = 0;
if (context) {
for (; i < this.size; i++) {
if (!callback.call(context, this.data[(this.start + i) % this.length], i, this))
return false;
}
} else {
for (; i < this.size; i++) {
if (!callback(this.data[(this.start + i) % this.length], i, this))
return false;
}
for (; i < this.size; i++) {
if (!callback.call(context, this.data[(this.start + i) % this.length], i, this))
return false;
}

@@ -197,28 +188,14 @@ return true;

// loop through each item in buffer
forEach : function(callback, context) {
forEach : function (callback, context) {
var i = 0;
// check if context was passed
if (context) {
for (; i < this.size; i++) {
callback.call(context, this.data[(this.start + i) % this.length], i, this);
}
} else {
for (; i < this.size; i++) {
callback(this.data[(this.start + i) % this.length], i, this);
}
for (; i < this.size; i++) {
callback.call(context, this.data[(this.start + i) % this.length], i, this);
}
},
// check items agains test until one returns true
some : function(callback, context) {
some : function (callback, context) {
var i = 0;
if (context) {
for (; i < this.size; i++) {
if (callback.call(context, this.data[(this.start + i) % this.length], i, this))
return true;
}
} else {
for (; i < this.size; i++) {
if (callback(this.data[(this.start + i) % this.length], i, this))
return true;
}
for (; i < this.size; i++) {
if (callback.call(context, this.data[(this.start + i) % this.length], i, this))
return true;
}

@@ -232,3 +209,3 @@ return false;

// need to be overwritten, run `.fill(null).empty()`
empty : function() {
empty : function () {
var i = 0;

@@ -240,3 +217,3 @@ this.size = this.start = 0;

// fill all places with passed value or function
fill : function(arg) {
fill : function (arg) {
var i = 0;

@@ -254,19 +231,19 @@ if (typeof arg === 'function') {

// return first item in buffer
first : function() {
first : function () {
return this.data[this.start];
},
// return last item in buffer
last : function() {
last : function () {
return this.data[this.end];
},
// return specific index in buffer
get : function(arg) {
get : function (arg) {
return this.data[(this.start + arg) % this.length];
},
// set value at specified index
set : function(idx, arg) {
set : function (idx, arg) {
return this.data[(this.start + idx) % this.length] = arg;
},
// return clean array of values
toArray : function() {
toArray : function () {
var narr = new Array(this.size),

@@ -273,0 +250,0 @@ i = 0;

{
"name" : "CBuffer",
"version" : "0.1.3",
"version" : "0.1.4",
"description" : "Circular Buffer JavaScript implementation",

@@ -19,6 +19,9 @@ "homepage" : "https://github.com/trevnorris/cbuffer",

},
"scripts" : {
"test" : "node ./node_modules/.bin/vows"
},
"repository" : {
"type" : "git",
"url" : "https://github.com/trevnoris/cbuffer.git"
"url" : "https://github.com/trevnorris/cbuffer.git"
}
}

@@ -0,15 +1,20 @@

const SIZE = 1e5;
var CBuffer = require('../../cbuffer'),
test = require('../test'),
cb = new CBuffer(1e5),
arr = new Array();
test = require('../test'),
cb = new CBuffer(SIZE),
arr = [];
test('push 1e5 - Array ', function() {
var i = 1e5;
arr.length = 0;
while(arr.push(i), --i >= 0);
test('push 1e5 - CBuffer', function () {
cb.empty();
}, function () {
var i = SIZE;
while (cb.push(i * 0.1), --i >= 0);
});
test('push 1e5 - CBuffer', function() {
var i = 1e5;
while(cb.push(i), --i >= 0);
test('push 1e5 - Array ', function () {
arr.length = 0;
}, function () {
var i = SIZE;
while (arr.push(i * 0.1), --i >= 0);
});

@@ -0,19 +1,20 @@

const SIZE = 1e5;
var CBuffer = require('../../cbuffer'),
test = require('../test'),
cb = new CBuffer(),
arr = new Array(),
i;
test = require('../test'),
cb = new CBuffer(SIZE),
arr = [],
i;
for (i = 1e5; i > 0; i--)
for (i = SIZE; i > 0; i--) {
arr.push(i);
cb.push(i);
}
for (i = 1e5; i > 0; i--)
arr.push(i);
test('reverse - CBuffer', function() {
test('reverse - CBuffer', function () {
cb.reverse();
});
test('reverse - Array ', function() {
test('reverse - Array ', function () {
arr.reverse();
});

@@ -0,16 +1,20 @@

const SIZE = 1e5;
var CBuffer = require('../../cbuffer'),
test = require('../test'),
cb = new CBuffer(1e5),
arr = new Array();
test = require('../test'),
cb = new CBuffer(SIZE),
arr = new Array();
test('unshift 1e5 - CBuffer', function() {
var i = 1e5;
test('unshift 1e5 - CBuffer', function () {
cb.empty();
}, function () {
var i = SIZE;
while(cb.unshift(i), --i >= 0);
});
test('unshift 1e5 - Array ', function() {
var i = 1e5;
test('unshift 1e5 - Array ', function () {
arr.length = 0;
}, function () {
var i = SIZE;
while(arr.unshift(i), --i >= 0);
});

@@ -1,19 +0,18 @@

module.exports = function test(name, fn) {
module.exports = function test(name, setup, fn) {
var itter = 1;
if (!fn) {
fn = setup;
setup = false;
}
// first generate reliable number of itterations for test
(function genItter() {
var i = itter,
iniT = -Date.now();
while(fn(), --i >= 0);
iniT += Date.now();
if (iniT > 100)
setTimeout(function() {
runTest(itter, name, fn);
var iniT = exec(fn, setup, itter);
if (iniT > 300) {
setTimeout(function () {
runTest(name, itter, fn, setup);
}, 100);
else {
if (iniT < 10)
itter *= 10;
else
itter *= 2;
setTimeout(genItter, 10);
} else {
if (iniT < 10) itter *= 10;
else itter *= 2;
setTimeout(genItter, 30);
}

@@ -23,9 +22,18 @@ }());

function runTest(name, itter, fn, setup) {
var iniT = exec(fn, setup, itter);
console.log(name, ':', (itter / iniT * 1000).toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'), 'op/s');
};
function runTest(itter, name, fn) {
var i = itter,
function exec(fn, setup, i) {
var cum = 0,
iniT;
while (--i >= 0) {
if (setup) setup();
iniT = -Date.now();
while (fn(), --i >= 0);
iniT += Date.now();
console.log(name, ':', (itter / iniT * 1000).toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'), 'op/s');
};
fn();
iniT += Date.now();
cum += iniT;
}
return cum;
}

@@ -1,17 +0,17 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env' );
require('../env');
suite.addBatch({
'indexOf' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'find item' : function( CBuffer ) {
assert.equal( CBuffer( 1, 2, 3 ).indexOf( 2 ), 1 );
assert.equal( CBuffer( 'a', 'b', 'c' ).indexOf( 'c' ), 2 );
assert.equal( CBuffer( 1, 2, 3 ).indexOf( '1' ), -1 );
assert.equal( CBuffer( 1, 2, 3 ).indexOf( 4 ), -1 );
'find item' : function (CBuffer) {
assert.equal(CBuffer(1, 2, 3).indexOf(2), 1);
assert.equal(CBuffer('a', 'b', 'c').indexOf('c'), 2);
assert.equal(CBuffer(1, 2, 3).indexOf('1'), -1);
assert.equal(CBuffer(1, 2, 3).indexOf(4), -1);
}

@@ -21,2 +21,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,39 +0,39 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' ),
und = undefined;
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer'),
und = undefined;
require( '../env' );
require('../env');
suite.addBatch({
'CBuffer' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'construction' : function( CBuffer ) {
assert.isTrue(( new CBuffer( 1 )) instanceof CBuffer );
assert.isTrue( CBuffer( 1 ) instanceof CBuffer );
assert.isTrue(( new CBuffer( 1, 2, 3 )) instanceof CBuffer );
assert.isTrue( CBuffer( 1, 2, 3 ) instanceof CBuffer );
assert.isTrue( CBuffer( 1 ).constructor === CBuffer );
'construction' : function (CBuffer) {
assert.isTrue((new CBuffer(1)) instanceof CBuffer);
assert.isTrue(CBuffer(1) instanceof CBuffer);
assert.isTrue((new CBuffer(1, 2, 3)) instanceof CBuffer);
assert.isTrue(CBuffer(1, 2, 3) instanceof CBuffer);
assert.isTrue(CBuffer(1).constructor === CBuffer);
},
'data' : function( CBuffer ) {
assert.deepEqual( CBuffer( 3 ).data, [,,]);
assert.deepEqual( CBuffer( 1, 2, 3 ).data, [ 1, 2, 3 ]);
'data' : function (CBuffer) {
assert.deepEqual(CBuffer(3).data, [,,]);
assert.deepEqual(CBuffer(1, 2, 3).data, [1, 2, 3]);
},
'end' : function( CBuffer ) {
assert.equal( CBuffer( 3 ).end, 2 );
assert.equal( CBuffer( 1, 2, 3 ).end, 2 );
'end' : function (CBuffer) {
assert.equal(CBuffer(3).end, 2);
assert.equal(CBuffer(1, 2, 3).end, 2);
},
'length' : function( CBuffer ) {
assert.equal( CBuffer( 3 ).length, 3 );
assert.equal( CBuffer( 1, 2, 3 ).length, 3 );
'length' : function (CBuffer) {
assert.equal(CBuffer(3).length, 3);
assert.equal(CBuffer(1, 2, 3).length, 3);
},
'size' : function( CBuffer ) {
assert.equal( CBuffer( 3 ).size, 0 );
assert.equal( CBuffer( 1, 2, 3 ).size, 3 );
'size' : function (CBuffer) {
assert.equal(CBuffer(3).size, 0);
assert.equal(CBuffer(1, 2, 3).size, 3);
},
'start' : function( CBuffer ) {
assert.equal( CBuffer( 3 ).start, 0 );
assert.equal( CBuffer( 1, 2, 3 ).start, 0 );
'start' : function (CBuffer) {
assert.equal(CBuffer(3).start, 0);
assert.equal(CBuffer(1, 2, 3).start, 0);
}

@@ -43,2 +43,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,1 +0,1 @@

CBuffer = require( '../cbuffer' );
CBuffer = require('../cbuffer');

@@ -1,32 +0,32 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env' );
require('../env');
suite.addBatch({
'pop' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'pop items' : function( CBuffer ) {
'pop items' : function (CBuffer) {
var tmp;
tmp = CBuffer( 1, 2, 3 );
assert.equal( tmp.pop(), 3 );
tmp = CBuffer(1, 2, 3);
assert.equal(tmp.pop(), 3);
tmp = CBuffer( 1, 2, 3 );
tmp = CBuffer(1, 2, 3);
tmp.pop();
assert.deepEqual( tmp.data, [ 1, 2, ]);
assert.deepEqual(tmp.toArray(), [1, 2]);
tmp = CBuffer( 3 );
assert.isUndefined( tmp.pop() );
tmp = CBuffer(3);
assert.isUndefined(tmp.pop());
},
'pop properties' : function( CBuffer ) {
'pop properties' : function (CBuffer) {
var tmp;
tmp = CBuffer( 1, 2, 3 );
tmp = CBuffer(1, 2, 3);
tmp.pop();
assert.equal( tmp.end, 1 );
assert.equal( tmp.size, 2 );
assert.equal(tmp.end, 1);
assert.equal(tmp.size, 2);
}

@@ -36,2 +36,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,29 +0,29 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env' );
require('../env');
suite.addBatch({
'push' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'push items' : function( CBuffer ) {
'push items' : function (CBuffer) {
var tmp;
tmp = CBuffer( 3 );
tmp.push( 1, 2, 3 );
assert.deepEqual( tmp.data, [ 1, 2, 3 ]);
tmp.push( 4 );
assert.deepEqual( tmp.data, [ 4, 2, 3 ]);
tmp = CBuffer(3);
tmp.push(1, 2, 3);
assert.deepEqual(tmp.data, [1, 2, 3]);
tmp.push(4);
assert.deepEqual(tmp.data, [4, 2, 3]);
},
'push properties' : function( CBuffer ) {
'push properties' : function (CBuffer) {
var tmp;
tmp = CBuffer( 3 );
tmp.push( 1, 2 );
assert.equal( tmp.size, 2 );
assert.equal( tmp.start, 0 );
assert.equal( tmp.end, 1 );
tmp = CBuffer(3);
tmp.push(1, 2);
assert.equal(tmp.size, 2);
assert.equal(tmp.start, 0);
assert.equal(tmp.end, 1);
}

@@ -33,2 +33,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,15 +0,15 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env' );
require('../env');
suite.addBatch({
'reverse' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'reverse buffer' : function( CBuffer ) {
assert.deepEqual( CBuffer( 1, 2, 3 ).reverse().data, [ 3, 2, 1 ]);
assert.deepEqual( CBuffer( 1, 2, 3, 4 ).reverse().data, [ 4, 3, 2, 1 ]);
'reverse buffer' : function (CBuffer) {
assert.deepEqual(CBuffer(1, 2, 3).reverse().data, [3, 2, 1]);
assert.deepEqual(CBuffer(1, 2, 3, 4).reverse().data, [4, 3, 2, 1]);
}

@@ -19,2 +19,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,15 +0,15 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env.js' );
require('../env.js');
suite.addBatch({
'rotateLeft' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'simple rotateLeft' : function( CBuffer ) {
assert.deepEqual( CBuffer( 1, 2, 3 ).rotateLeft( 2 ).toArray(), [ 3, 1, 2 ]);
assert.deepEqual( CBuffer( 1, 2, 3 ).rotateLeft().toArray(), [ 2, 3, 1 ]);
'simple rotateLeft' : function (CBuffer) {
assert.deepEqual(CBuffer(1, 2, 3).rotateLeft(2).toArray(), [3, 1, 2]);
assert.deepEqual(CBuffer(1, 2, 3).rotateLeft().toArray(), [2, 3, 1]);
}

@@ -19,2 +19,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,15 +0,15 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env.js' );
require('../env.js');
suite.addBatch({
'rotateRight' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'simple rotateRight' : function( CBuffer ) {
assert.deepEqual( CBuffer( 1, 2, 3 ).rotateRight( 2 ).toArray(), [ 2, 3, 1 ]);
assert.deepEqual( CBuffer( 1, 2, 3 ).rotateRight().toArray(), [ 3, 1, 2 ]);
'simple rotateRight' : function (CBuffer) {
assert.deepEqual(CBuffer(1, 2, 3).rotateRight(2).toArray(), [2, 3, 1]);
assert.deepEqual(CBuffer(1, 2, 3).rotateRight().toArray(), [3, 1, 2]);
}

@@ -19,2 +19,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,39 +0,39 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env' );
require('../env');
suite.addBatch({
'shift' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'shift items' : function( CBuffer ) {
'shift items' : function (CBuffer) {
var tmp;
tmp = CBuffer( 1, 2, 3 );
assert.equal( tmp.shift(), 1 );
assert.deepEqual( tmp.data, [ , 2, 3 ]);
tmp = CBuffer(1, 2, 3);
assert.equal(tmp.shift(), 1);
assert.deepEqual(tmp.toArray(), [2, 3]);
tmp = CBuffer( 1, 2, 3 );
tmp.push( 4 );
assert.equal( tmp.shift(), 2 );
assert.deepEqual( tmp.data, [ 4, , 3 ]);
tmp = CBuffer(1, 2, 3);
tmp.push(4);
assert.equal(tmp.shift(), 2);
assert.deepEqual(tmp.toArray(), [3, 4]);
},
'shift properties' : function( CBuffer ) {
'shift properties' : function (CBuffer) {
var tmp;
tmp = CBuffer( 1, 2, 3 );
tmp = CBuffer(1, 2, 3);
tmp.shift();
assert.equal( tmp.size, 2 );
assert.equal( tmp.start, 1 );
assert.equal( tmp.end, 2 );
assert.equal(tmp.size, 2);
assert.equal(tmp.start, 1);
assert.equal(tmp.end, 2);
tmp = CBuffer( 1, 2, 3 );
tmp.push( 4 );
tmp = CBuffer(1, 2, 3);
tmp.push(4);
tmp.shift();
assert.equal( tmp.size, 2 );
assert.equal( tmp.start, 2 );
assert.equal( tmp.end, 0 );
assert.equal(tmp.size, 2);
assert.equal(tmp.start, 2);
assert.equal(tmp.end, 0);
}

@@ -43,2 +43,2 @@ }

suite.export( module );
suite.export(module);

@@ -1,13 +0,13 @@

var vows = require( 'vows' ),
assert = require('assert' )
suite = vows.describe( 'CBuffer' );
var vows = require('vows'),
assert = require('assert')
suite = vows.describe('CBuffer');
require( '../env.js' );
require('../env.js');
suite.addBatch({
'' : {
'topic' : function() {
'topic' : function () {
return CBuffer;
},
'' : function( CBuffer ) {
'' : function (CBuffer) {
}

@@ -17,2 +17,2 @@ }

suite.export( module );
suite.export(module);
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc