var assert = require('assert') var BigInteger = require('../').BigInteger var fixtures = require('./fixtures/bigi') describe('BigInteger', function() { describe('fromBuffer/fromHex', function() { it('should match the test vectors', function() { fixtures.valid.forEach(function(f) { assert.equal(BigInteger.fromHex(f.hex).toString(), f.dec) assert.equal(BigInteger.fromHex(f.hexPadded).toString(), f.dec) }) }) fixtures.invalid.forEach(function(f) { it('throws on ' + f.description, function() { assert.throws(function() { BigInteger.fromHex(f.string) }) }) }) }) describe('toBuffer/toHex', function() { it('should match the test vectors', function() { fixtures.valid.forEach(function(f) { var bi = new BigInteger(f.dec) assert.equal(bi.toHex(), f.hex) assert.equal(bi.toHex(32), f.hexPadded) }) }) it('throws on non-finite padding value', function() { var bi = new BigInteger('1') assert.throws(function() { bi.toHex({}) }) assert.throws(function() { bi.toHex([]) }) assert.throws(function() { bi.toHex('') }) assert.throws(function() { bi.toHex(0 / 0) }) assert.throws(function() { bi.toHex(1 / 0) }) }) }) }) module.exports = BigInteger