react / wstein / node_modules / browserify / node_modules / crypto-browserify / node_modules / public-encrypt / node_modules / bn.js / test / utils-test.js
80559 viewsvar assert = require('assert');1var BN = require('../').BN;2var fixtures = require('./fixtures');34describe('BN.js/Utils', function() {5describe('.toString()', function() {6describe('hex padding', function() {7it('should have length of 8 from leading 15', function() {8var a = new BN('ffb9602', 16);9var b = new Buffer(a.toString('hex', 2), 'hex');10assert.equal(a.toString('hex', 2).length, 8);11});1213it('should have length of 8 from leading zero', function() {14var a = new BN('fb9604', 16);15var b = new Buffer(a.toString('hex', 8), 'hex');16assert.equal(a.toString('hex', 8).length, 8);17});1819it('should have length of 8 from leading zeros', function() {20var a = new BN(0);21var b = new Buffer(a.toString('hex', 8), 'hex');22assert.equal(a.toString('hex', 8).length, 8);23});2425it('should have length of 64 from leading 15', function() {26var a = new BN(27'ffb96ff654e61130ba8422f0debca77a0ea74ae5ea8bca9b54ab64aabf01003',2816);29var b = new Buffer(a.toString('hex', 2), 'hex');30assert.equal(a.toString('hex', 2).length, 64);31});3233it('should have length of 64 from leading zero', function() {34var a = new BN(35'fb96ff654e61130ba8422f0debca77a0ea74ae5ea8bca9b54ab64aabf01003',3616);37var b = new Buffer(a.toString('hex', 64), 'hex');38assert.equal(a.toString('hex', 64).length, 64);39});40});41});4243describe('.bitLength()', function() {44it('should return proper bitLength', function() {45assert.equal(new BN(0).bitLength(), 0);46assert.equal(new BN(0x1).bitLength(), 1);47assert.equal(new BN(0x2).bitLength(), 2);48assert.equal(new BN(0x3).bitLength(), 2);49assert.equal(new BN(0x4).bitLength(), 3);50assert.equal(new BN(0x8).bitLength(), 4);51assert.equal(new BN(0x10).bitLength(), 5);52assert.equal(new BN(0x100).bitLength(), 9);53assert.equal(new BN(0x123456).bitLength(), 21);54assert.equal(new BN('123456789', 16).bitLength(), 33);55assert.equal(new BN('8023456789', 16).bitLength(), 40);56});57});5859describe('.zeroBits()', function() {60it('should return proper zeroBits', function() {61assert.equal(new BN(0).zeroBits(), 0);62assert.equal(new BN(0x1).zeroBits(), 0);63assert.equal(new BN(0x2).zeroBits(), 1);64assert.equal(new BN(0x3).zeroBits(), 0);65assert.equal(new BN(0x4).zeroBits(), 2);66assert.equal(new BN(0x8).zeroBits(), 3);67assert.equal(new BN(0x10).zeroBits(), 4);68assert.equal(new BN(0x100).zeroBits(), 8);69assert.equal(new BN(0x1000000).zeroBits(), 24);70assert.equal(new BN(0x123456).zeroBits(), 1);71});72});7374describe('.toJSON', function() {75it('should return hex string', function() {76assert.equal(new BN(0x123).toJSON(), '123');77});78});79});808182