binaryarray
Advanced tools
| language: node_js | ||
| node_js: | ||
| - "4.1" | ||
| - "0.12" | ||
| - "0.10" | ||
| script: npm test --coverage | ||
| after_success: | ||
| - npm run coveralls |
| "use strict" | ||
| const BinaryArray = require('..') | ||
| const JOB = Object.freeze({ | ||
| NONE : 0, | ||
| FIGHTER : 1, | ||
| MAGE : 2, | ||
| PRIEST : 3, | ||
| MONK : 4, | ||
| KNIGHT : 5, | ||
| SUMMONER : 6, | ||
| }); | ||
| const JOB_MAX = Object.keys(JOB).reduce((r, k) => Math.max(r, JOB[k]), 0) + 1; | ||
| let ba = new BinaryArray(JOB_MAX); | ||
| ba.bitOn(JOB.FIGHTER); | ||
| ba.bitOn(JOB.PRIEST); | ||
| if(ba.check([JOB.FIGHTER, JOB.PRIEST], [JOB.KNIGHT])){ | ||
| ba.bitOn(JOB.KNIGHT); | ||
| console.log("EXJOB GET") | ||
| } | ||
| let save = ba.serialize(JOB); | ||
| console.log(save); | ||
| let ba2 = BinaryArray.deserialize(save, JOB, JOB_MAX); | ||
| if(ba2.check([JOB.FIGHTER, JOB.PRIEST], [JOB.KNIGHT])){ | ||
| ba2.bitOn(JOB.KNIGHT); | ||
| console.log("EXJOB GET") | ||
| } | ||
| console.log(ba2.serialize(JOB)); | ||
| var assert = require('power-assert'); | ||
| var BinaryArray = require('../'); | ||
| describe('test', function() { | ||
| describe('array length test', function() { | ||
| [ | ||
| function(){ | ||
| var ba = new BinaryArray(0); | ||
| assert(ba.maxnum === 0); | ||
| assert(ba.storage.length === 0); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(1); | ||
| assert(ba.maxnum === 1); | ||
| assert(ba.storage.length === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| assert(ba.maxnum === 32); | ||
| assert(ba.storage.length === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(33); | ||
| assert(ba.maxnum === 33); | ||
| assert(ba.storage.length === 2); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(64); | ||
| assert(ba.maxnum === 64); | ||
| assert(ba.storage.length === 2); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(65); | ||
| assert(ba.maxnum === 65); | ||
| assert(ba.storage.length === 3); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| describe('binary on test', function() { | ||
| [ | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| assert(ba.storage[0] === 0x00000000); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.bitOn(0); | ||
| assert(ba.storage[0] === 0x00000001); | ||
| assert(ba.at(0) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.bitOn(0); | ||
| ba.bitOn(1); | ||
| assert(ba.storage[0] === 0x00000003); | ||
| assert(ba.at(0) === 1); | ||
| assert(ba.at(1) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.bitOn(0); | ||
| ba.bitOn(1); | ||
| ba.bitOn(2); | ||
| assert(ba.storage[0] === 0x00000007); | ||
| assert(ba.at(0) === 1); | ||
| assert(ba.at(1) === 1); | ||
| assert(ba.at(2) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.bitOn(31); | ||
| assert(ba.storage[0] === 0x80000000); | ||
| assert(ba.at(31) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(33); | ||
| ba.bitOn(32); | ||
| assert(ba.storage[0] === 0x00000000); | ||
| assert(ba.storage[1] === 0x00000001); | ||
| assert(ba.at(31) === 0); | ||
| assert(ba.at(32) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.bitOn(0); | ||
| assert(ba.storage[0] === 0x00000001); | ||
| ba.bitOn(0); | ||
| assert(ba.storage[0] === 0x00000001); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| describe('binary off test', function() { | ||
| [ | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.storage[0] = 0xffffffff; | ||
| ba.bitOff(0); | ||
| assert(ba.storage[0] === 0xfffffffe); | ||
| assert(ba.at(0) === 0); | ||
| assert(ba.at(1) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.storage[0] = 0xffffffff; | ||
| ba.bitOff(31); | ||
| assert(ba.storage[0] === 0x7fffffff); | ||
| assert(ba.at(0) === 1); | ||
| assert(ba.at(30) === 1); | ||
| assert(ba.at(31) === 0); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(64); | ||
| ba.storage[0] = 0xffffffff; | ||
| ba.storage[1] = 0xffffffff; | ||
| ba.bitOff(32); | ||
| assert(ba.storage[0] === 0xffffffff); | ||
| assert(ba.storage[1] === 0xfffffffe); | ||
| assert(ba.at(31) === 1); | ||
| assert(ba.at(32) === 0); | ||
| assert(ba.at(33) === 1); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(32); | ||
| ba.storage[0] = 0xfffffffe; | ||
| ba.bitOff(0); | ||
| assert(ba.storage[0] === 0xfffffffe); | ||
| ba.bitOff(0); | ||
| assert(ba.storage[0] === 0xfffffffe); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| describe('if array test', function() { | ||
| [ | ||
| function(){ | ||
| var input = [1,1,1,1,1,1,1,1]; | ||
| var ba = BinaryArray.loadFromArray(input); | ||
| assert(ba.maxnum === 8); | ||
| assert(ba.storage[0] === 0x000000ff); | ||
| var output = ba.toArray(); | ||
| assert(JSON.stringify(input) === JSON.stringify(output)); | ||
| }, | ||
| function(){ | ||
| var input = [ | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1 | ||
| ]; | ||
| var ba = BinaryArray.loadFromArray(input); | ||
| assert(ba.maxnum === input.length); | ||
| assert(ba.storage[0] === 0xffffffff); | ||
| assert(ba.storage[1] === 0x000000ff); | ||
| var output = ba.toArray(); | ||
| assert(JSON.stringify(input) === JSON.stringify(output)); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| describe('if serialize test', function() { | ||
| [ | ||
| function(){ | ||
| var SPEC = {}; | ||
| for(var i = 0; i<33; i++){ SPEC['TEST_'+(i+1)] = i } | ||
| var input = ['TEST_1','TEST_2','TEST_33']; | ||
| var ba = BinaryArray.deserialize(input, SPEC, i); | ||
| assert(ba.maxnum === i); | ||
| assert(ba.storage[0] === 0x00000003); | ||
| assert(ba.storage[1] === 0x00000001); | ||
| var output = ba.serialize(SPEC); | ||
| assert(JSON.stringify(input) === JSON.stringify(output)); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| describe('if other test', function() { | ||
| [ | ||
| function(){ | ||
| var input = [ | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1, | ||
| 1,1,1,1,1,1,1,1 | ||
| ]; | ||
| var ba = BinaryArray.loadFromArray(input); | ||
| assert(ba.toHexString() === 'FFFFFFFF'); | ||
| }, | ||
| function(){ | ||
| var input = [ | ||
| 1,0,0,0,0,0,0,0, | ||
| 0,1,0,0,0,0,0,0, | ||
| 0,0,1,0,0,0,0,0, | ||
| 0,0,0,1,0,0,0,0, | ||
| 0,0,0,0,1,0,0,0, | ||
| 0,0,0,0,0,1,0,0, | ||
| 0,0,0,0,0,0,1,0, | ||
| 0,0,0,0,0,0 | ||
| ]; | ||
| var ba = BinaryArray.loadFromArray(input); | ||
| assert(ba.toHexString() === '0040201008040201'); | ||
| }, | ||
| function(){ | ||
| var ba = BinaryArray.loadFromHexString(32, 'FFFFFFFF'); | ||
| assert(ba.toHexString() === 'FFFFFFFF'); | ||
| }, | ||
| function(){ | ||
| var input = [1,0,1,0,1,0,1]; | ||
| var ba = BinaryArray.loadFromArray(input); | ||
| var json = ba.toJSON() | ||
| assert(json === JSON.stringify(input)); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| describe('other test', function() { | ||
| [ | ||
| function(){ | ||
| var ba = new BinaryArray(1024); | ||
| [0,1,2,3,4,5,10].forEach(function(v){ ba.bitOn(v) }); | ||
| assert(ba.check([0,1,2,3,4,5])) | ||
| assert(!ba.check([0,1,2,3,4,5], [10])) | ||
| assert(ba.check([0,1,2,3,4,5],[7,8,9])) | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(1024); | ||
| ba.bitOn(3); | ||
| var obj = ba.rangeOf([0,1,2,3,4,5]); | ||
| assert(!obj[0]); | ||
| assert(obj[3]); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(1024); | ||
| ba.bitOn(3); | ||
| var obj = ba.rangeOf(3); | ||
| assert(obj[3]); | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(1024); | ||
| ba.bitOn(3); | ||
| try{ | ||
| var obj = ba.rangeOf("AAA"); | ||
| }catch(e){ | ||
| } | ||
| }, | ||
| function(){ | ||
| var ba = new BinaryArray(1024); | ||
| assert(ba.isRange(1023)); | ||
| assert(!ba.isRange(1024)); | ||
| assert(!ba.isRange(-1)); | ||
| }].forEach(function(f){f()}) | ||
| }); | ||
| }); | ||
+2
-2
@@ -33,3 +33,3 @@ var BinaryArray = require('..'); | ||
| if(ba.indexOf(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
| if(!ba2.indexOf(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
| if(ba.at(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
| if(!ba2.at(EVENT_CLEAR.QUEST4)) console.log("ok") |
+1
-1
@@ -37,3 +37,3 @@ "use strict" | ||
| let job_id = JOB.FIGHTER; | ||
| if( JOB_GROUP.TANK.indexOf(job_id) ){ | ||
| if( JOB_GROUP.TANK.at(job_id) ){ | ||
| console.log("tank job") | ||
@@ -40,0 +40,0 @@ }else{ |
@@ -13,3 +13,3 @@ "use strict"; | ||
| for(var i = 0; i < max; ++i ){ | ||
| w.push(this.indexOf(i)); | ||
| w.push(this.at(i)); | ||
| } | ||
@@ -38,3 +38,3 @@ return w; | ||
| } | ||
| BinaryArray.prototype.indexOf = function(no){ | ||
| BinaryArray.prototype.at = function(no){ | ||
| assert(this.maxnum > no, 'get:over flagmax'); | ||
@@ -53,3 +53,3 @@ var idx = util.getArrayIndex(no); | ||
| return xs.reduce(function(r, v){ | ||
| r[v] = self.indexOf(v) | ||
| r[v] = self.at(v) | ||
| return r; | ||
@@ -56,0 +56,0 @@ }, {}) |
+11
-1
| { | ||
| "name": "binaryarray", | ||
| "version": "0.0.5", | ||
| "version": "0.0.6", | ||
| "description": "the binary array", | ||
@@ -18,2 +18,12 @@ "main": "index.js", | ||
| ], | ||
| "devDependencies": { | ||
| "istanbul":"", | ||
| "coveralls":"", | ||
| "power-assert":"", | ||
| "mocha":"" | ||
| }, | ||
| "scripts": { | ||
| "test": "./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha", | ||
| "coveralls": "cat ./coverage/lcov.info | ./node_modules/.bin/coveralls" | ||
| }, | ||
| "author": "Yuki Akiyama", | ||
@@ -20,0 +30,0 @@ "license": "MIT", |
+7
-3
| # binaryarray | ||
| [](https://nodei.co/npm/binaryarray) | ||
| [](https://travis-ci.org/you21979/node-binaryarray) | ||
| [](https://coveralls.io/r/you21979/node-binaryarray) | ||
| ## install | ||
@@ -56,4 +60,4 @@ | ||
| if(ba.indexOf(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
| if(!ba2.indexOf(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
| if(ba.at(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
| if(!ba2.at(EVENT_CLEAR.QUEST4)) console.log("ok") | ||
@@ -103,3 +107,3 @@ ``` | ||
| let job_id = JOB.FIGHTER; | ||
| if( JOB_GROUP.TANK.indexOf(job_id) ){ | ||
| if( JOB_GROUP.TANK.at(job_id) ){ | ||
| console.log("tank job") | ||
@@ -106,0 +110,0 @@ }else{ |
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
22150
74.16%15
25%576
87.62%1
-50%112
3.7%4
Infinity%