[BUG] UInt#parse_number should support zero. Add tests.

This commit is contained in:
Stefan Thomas
2014-04-24 09:00:57 -07:00
parent 5a04ce9629
commit fbdef6eea0
2 changed files with 26 additions and 1 deletions

View File

@@ -234,7 +234,7 @@ UInt.prototype.parse_number = function (j) {
if ("number" === typeof j &&
j === +j &&
j > 0) {
j >= 0) {
// XXX Better, faster way to get BigInteger from JS int?
this._value = new BigInteger(""+j);
}

25
test/uint-test.js Normal file
View File

@@ -0,0 +1,25 @@
var assert = require('assert');
var utils = require('./testutils');
var UInt128 = utils.load_module('uint128').UInt128;
var config = require('./testutils').get_config();
describe('UInt', function() {
describe('128', function() {
describe('#parse_number', function () {
it('should create 00000000000000000000000000000000 when called with 0', function () {
var val = UInt128.from_number(0);
assert.strictEqual(val.to_hex(), '00000000000000000000000000000000');
});
it('should create 00000000000000000000000000000001 when called with 1', function () {
var val = UInt128.from_number(0);
assert.strictEqual(val.to_hex(), '00000000000000000000000000000000');
});
it('should create 000000000000000000000000FFFFFFFF when called with 0xFFFFFFFF', function () {
var val = UInt128.from_number(0xFFFFFFFF);
assert.strictEqual(val.to_hex(), '000000000000000000000000FFFFFFFF');
});
});
});
});
// vim:sw=2:sts=2:ts=8:et