1
0
mirror of https://github.com/S2-/gitlit synced 2025-08-04 13:10:09 +02:00
This commit is contained in:
s2
2018-05-18 17:26:33 +02:00
parent 0ea0853165
commit 2c5b23c10e
1125 changed files with 118732 additions and 1 deletions

220
app/node_modules/cuint/test/UINT32-test.js generated vendored Normal file
View File

@@ -0,0 +1,220 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('UINT32 constructor', function () {
describe('with no parameters', function () {
it('should properly initialize', function (done) {
var u = UINT32()
assert.equal( u._low, 0 )
assert.equal( u._high, 0 )
done()
})
})
describe('with low and high bits', function () {
describe('0, 0', function () {
it('should properly initialize', function (done) {
var u = UINT32(0, 0)
assert.equal( u._low, 0 )
assert.equal( u._high, 0 )
done()
})
})
describe('1, 0', function () {
it('should properly initialize', function (done) {
var u = UINT32(1, 0)
assert.equal( u._low, 1 )
assert.equal( u._high, 0 )
done()
})
})
describe('0, 1', function () {
it('should properly initialize', function (done) {
var u = UINT32(0, 1)
assert.equal( u._low, 0 )
assert.equal( u._high, 1 )
done()
})
})
describe('3, 5', function () {
it('should properly initialize', function (done) {
var u = UINT32(3, 5)
assert.equal( u._low, 3 )
assert.equal( u._high, 5 )
done()
})
})
})
describe('with number', function () {
describe('0', function () {
it('should properly initialize', function (done) {
var u = UINT32(0)
assert.equal( u._low, 0 )
assert.equal( u._high, 0 )
done()
})
})
describe('1', function () {
it('should properly initialize', function (done) {
var u = UINT32(1)
assert.equal( u._low, 1 )
assert.equal( u._high, 0 )
done()
})
})
describe('3', function () {
it('should properly initialize', function (done) {
var u = UINT32(3)
assert.equal( u._low, 3 )
assert.equal( u._high, 0 )
done()
})
})
describe('with high bit', function () {
it('should properly initialize', function (done) {
var u = UINT32( Math.pow(2,17)+123 )
assert.equal( u._low, 123 )
assert.equal( u._high, 2 )
done()
})
})
})
describe('with string', function () {
describe('"0"', function () {
it('should properly initialize', function (done) {
var u = UINT32('0')
assert.equal( u._low, 0 )
assert.equal( u._high, 0 )
done()
})
})
describe('"1"', function () {
it('should properly initialize', function (done) {
var u = UINT32('1')
assert.equal( u._low, 1 )
assert.equal( u._high, 0 )
done()
})
})
describe('10', function () {
it('should properly initialize', function (done) {
var u = UINT32('10')
assert.equal( u._low, 10 )
assert.equal( u._high, 0 )
done()
})
})
describe('with high bit', function () {
it('should properly initialize', function (done) {
var u = UINT32( '' + (Math.pow(2,17)+123) )
assert.equal( u._low, 123 )
assert.equal( u._high, 2 )
done()
})
})
describe('with radix 10', function () {
it('should properly initialize', function (done) {
var u = UINT32( '123', 10 )
assert.equal( u._low, 123 )
assert.equal( u._high, 0 )
done()
})
})
describe('with radix 2', function () {
it('should properly initialize', function (done) {
var u = UINT32( '1111011', 2 )
assert.equal( u._low, 123 )
assert.equal( u._high, 0 )
done()
})
})
describe('with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT32( '7B', 16 )
assert.equal( u._low, 123 )
assert.equal( u._high, 0 )
done()
})
})
describe('8000 with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT32( '8000', 16 )
assert.equal( u._low, 32768 )
assert.equal( u._high, 0 )
done()
})
})
describe('80000000 with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT32( '80000000', 16 )
assert.equal( u._low, 0 )
assert.equal( u._high, 32768 )
done()
})
})
describe('maximum unsigned 32 bits value in base 2', function () {
it('should properly initialize', function (done) {
var u = UINT32( Array(33).join('1'), 2 )
assert.equal( u._low, 65535 )
assert.equal( u._high, 65535 )
done()
})
})
describe('maximum unsigned 32 bits value in base 16', function () {
it('should properly initialize', function (done) {
var u = UINT32( Array(9).join('F'), 16 )
assert.equal( u._low, 65535 )
assert.equal( u._high, 65535 )
done()
})
})
})
})

109
app/node_modules/cuint/test/UINT32_add-test.js generated vendored Normal file
View File

@@ -0,0 +1,109 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('add method', function () {
describe('0+0', function () {
it('should return 0', function (done) {
var u = UINT32(0).add( UINT32(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('0+1', function () {
it('should return 1', function (done) {
var u = UINT32(0).add( UINT32(1) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1+0', function () {
it('should return 0', function (done) {
var u = UINT32(1).add( UINT32(0) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1+1', function () {
it('should return 2', function (done) {
var u = UINT32(1).add( UINT32(1) )
assert.equal( u.toNumber(), 2 )
done()
})
})
describe('low bit+high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(123).add( UINT32(n) )
assert.equal( u.toNumber(), 123 + n )
done()
})
})
describe('high bit+low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).add( UINT32(123) )
assert.equal( u.toNumber(), 123 + n )
done()
})
})
describe('high bit+high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).add( UINT32(n) )
assert.equal( u.toNumber(), n + n )
done()
})
})
describe('overflow', function () {
it('should return n', function (done) {
var n = 'FFFFFFFF'
var u = UINT32(n, 16).add( UINT32(n, 16) )
assert.equal( u.toNumber(), -2 )
done()
})
})
describe('high bit+high bit 2', function () {
it('should return n', function (done) {
var u = UINT32('326648991').add( UINT32('265443576') )
assert.equal( u.toNumber(), 592092567 )
done()
})
})
})

64
app/node_modules/cuint/test/UINT32_and-test.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('and method', function () {
describe('0&1', function () {
it('should return 0', function (done) {
var u = UINT32(0).and( UINT32(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1&2', function () {
it('should return 0', function (done) {
var u = UINT32(1).and( UINT32(2) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1&2^16', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).and( UINT32(n) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('2^16&1', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).and( UINT32(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('2^16&2^16', function () {
it('should return n', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).and( UINT32(n) )
assert.equal( u.toNumber(), n )
done()
})
})
})

114
app/node_modules/cuint/test/UINT32_div-test.js generated vendored Normal file
View File

@@ -0,0 +1,114 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('div method', function () {
describe('1/0', function () {
it('should throw', function (done) {
assert.throws(
function () {
UINT32(1).div( UINT32(0) )
}
, function (err) {
if (err instanceof Error) return true
}
)
done()
})
})
describe('0/1', function () {
it('should return 0', function (done) {
var u = UINT32(2).div( UINT32(1) )
assert.equal( u.toNumber(), 2 )
done()
})
})
describe('2/1', function () {
it('should return 2', function (done) {
var u = UINT32(0).div( UINT32(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1/2', function () {
it('should return 0', function (done) {
var u = UINT32(1).div( UINT32(2) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('low bit/high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(3).div( UINT32(n) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('high bit/low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).div( UINT32(3) )
assert.equal( u.toNumber(), (n/3)|0 )
assert.equal( u.remainder.toNumber(), 2 )
done()
})
})
describe('high bit/high bit', function () {
it('should return n', function (done) {
var n = 'FFFFFFFF'
var u = UINT32(n, 16).div( UINT32(n, 16) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('high bit/high bit 2', function () {
it('should return n', function (done) {
var u = UINT32('3266489917').div( UINT32('668265263') )
assert.equal( u.toNumber(), 4 )
done()
})
})
describe('374761393/(16^3)', function () {
it('should return 91494', function (done) {
var u = UINT32('374761393').div( UINT32(16*16*16) )
assert.equal( u.toNumber(), 91494 )
done()
})
})
})

62
app/node_modules/cuint/test/UINT32_equals-test.js generated vendored Normal file
View File

@@ -0,0 +1,62 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('equals method', function () {
describe('0==0', function () {
it('should return true', function (done) {
var u = UINT32(0).equals( UINT32(0) )
assert( u )
done()
})
})
describe('1==1', function () {
it('should return true', function (done) {
var u = UINT32(1).equals( UINT32(1) )
assert( u )
done()
})
})
describe('low bit', function () {
it('should return true', function (done) {
var u = UINT32(3).equals( UINT32(3) )
assert( u )
done()
})
})
describe('high bit', function () {
it('should return true', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).equals( UINT32(n) )
assert( u )
done()
})
})
describe('1!=2', function () {
it('should return false', function (done) {
var u = UINT32(1).equals( UINT32(2) )
assert( !u )
done()
})
})
})

52
app/node_modules/cuint/test/UINT32_greaterThan-test.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('greaterThan method', function () {
describe('0>1', function () {
it('should return false', function (done) {
var u = UINT32(0).greaterThan( UINT32(1) )
assert( !u )
done()
})
})
describe('1>2', function () {
it('should return false', function (done) {
var u = UINT32(1).greaterThan( UINT32(2) )
assert( !u )
done()
})
})
describe('1>2^16', function () {
it('should return false', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).greaterThan( UINT32(n) )
assert( !u )
done()
})
})
describe('2^16>1', function () {
it('should return true', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).greaterThan( UINT32(1) )
assert( u )
done()
})
})
})

52
app/node_modules/cuint/test/UINT32_lessThan-test.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('lessThan method', function () {
describe('0<1', function () {
it('should return true', function (done) {
var u = UINT32(0).lessThan( UINT32(1) )
assert( u )
done()
})
})
describe('1<2', function () {
it('should return true', function (done) {
var u = UINT32(1).lessThan( UINT32(2) )
assert( u )
done()
})
})
describe('1<2^16', function () {
it('should return true', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).lessThan( UINT32(n) )
assert( u )
done()
})
})
describe('2^16<1', function () {
it('should return false', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).lessThan( UINT32(1) )
assert( !u )
done()
})
})
})

75
app/node_modules/cuint/test/UINT32_multiply-test.js generated vendored Normal file
View File

@@ -0,0 +1,75 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('multiply method', function () {
describe('0*0', function () {
it('should return 0', function (done) {
var u = UINT32(0).multiply( UINT32(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1*0', function () {
it('should return 0', function (done) {
var u = UINT32(1).multiply( UINT32(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('0*1', function () {
it('should return 0', function (done) {
var u = UINT32(0).multiply( UINT32(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('low bit*high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(3).multiply( UINT32(n) )
assert.equal( u.toNumber(), 3*n )
done()
})
})
describe('high bit*low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).multiply( UINT32(3) )
assert.equal( u.toNumber(), 3*n )
done()
})
})
describe('high bit*high bit', function () {
it('should return n', function (done) {
var n = 'FFFFFFFF'
var u = UINT32(n, 16).multiply( UINT32(n, 16) )
assert.equal( u.toNumber(), 1 )
done()
})
})
})

51
app/node_modules/cuint/test/UINT32_negate-test.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('negate method', function () {
describe('0', function () {
it('should return 0', function (done) {
var u = UINT32(0).negate()
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1', function () {
it('should return -1', function (done) {
var u = UINT32(1).negate()
assert.equal( u.toNumber(), -1 )
done()
})
})
describe('low bit', function () {
it('should return -n', function (done) {
var u = UINT32(3).negate()
assert.equal( u.toNumber(), -3 )
done()
})
})
describe('high bit', function () {
it('should return -n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).negate()
assert.equal( u.toNumber(), -n )
done()
})
})
})

45
app/node_modules/cuint/test/UINT32_not-test.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('not method', function () {
describe('0', function () {
it('should return 2^32-1', function (done) {
var u = UINT32(0).not()
assert.equal( u.toString(16), 'ffffffff' )
done()
})
})
describe('1', function () {
it('should return 2^32-2', function (done) {
var u = UINT32(1).not()
assert.equal( u.toString(16), 'fffffffe' )
done()
})
})
describe('2^31', function() {
var u = UINT32(0x7FFFFFFF).not()
assert.equal( u.toString(16), '80000000')
})
describe('all bits set', function () {
it('should return 0', function (done) {
var u = UINT32(0xFFFFFFFF).not()
assert.equal( u.toNumber(), 0 )
done()
})
})
})

52
app/node_modules/cuint/test/UINT32_or-test.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('or method', function () {
describe('0|1', function () {
it('should return 1', function (done) {
var u = UINT32(0).or( UINT32(1) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1|2', function () {
it('should return 3', function (done) {
var u = UINT32(1).or( UINT32(2) )
assert.equal( u.toNumber(), 3 )
done()
})
})
describe('1|2^16', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).or( UINT32(n) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
describe('2^16|1', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).or( UINT32(1) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
})

51
app/node_modules/cuint/test/UINT32_rotateLeft-test.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('rotateLeft method', function () {
describe('0rotl1', function () {
it('should return 0', function (done) {
var u = UINT32(0).rotateLeft(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1rotl2', function () {
it('should return 4', function (done) {
var u = UINT32(1).rotateLeft(2)
assert.equal( u.toNumber(), 4 )
done()
})
})
describe('1rotl16', function () {
it('should return 2^16', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).rotateLeft(16)
assert.equal( u.toNumber(), n )
done()
})
})
describe('1rotl32', function () {
it('should return 1', function (done) {
var u = UINT32(1).rotateLeft(32)
assert.equal( u.toNumber(), 1 )
done()
})
})
})

51
app/node_modules/cuint/test/UINT32_rotateRight-test.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('rotateRight method', function () {
describe('0rotr1', function () {
it('should return 0', function (done) {
var u = UINT32(0).rotateRight(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('4rotr1', function () {
it('should return 2', function (done) {
var u = UINT32(4).rotateRight(1)
assert.equal( u.toNumber(), 2 )
done()
})
})
describe('2^16rotr16', function () {
it('should return 1', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).rotateRight(16)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1rotr32', function () {
it('should return 1', function (done) {
var u = UINT32(1).rotateRight(32)
assert.equal( u.toNumber(), 1 )
done()
})
})
})

73
app/node_modules/cuint/test/UINT32_shiftLeft-test.js generated vendored Normal file
View File

@@ -0,0 +1,73 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('shiftLeft method', function () {
describe('0<<1', function () {
it('should return 0', function (done) {
var u = UINT32(0).shiftLeft(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1<<2', function () {
it('should return 4', function (done) {
var u = UINT32(1).shiftLeft(2)
assert.equal( u.toNumber(), 4 )
done()
})
})
describe('1<<16', function () {
it('should return 2^16', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).shiftLeft(16)
assert.equal( u.toNumber(), n )
done()
})
})
describe('1<<32', function () {
it('should return 0', function (done) {
var u = UINT32(1).shiftLeft(32)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1<<31', function () {
it('should return 2^31', function (done) {
var u = UINT32(1).shiftLeft(31)
assert.equal( u.toString(16), '80000000' )
done()
})
})
describe('9<<28', function () {
it('should return 2^31', function (done) {
var u = UINT32(9).shiftLeft(28)
assert.equal( u.toString(16), '90000000' )
done()
})
})
})

95
app/node_modules/cuint/test/UINT32_shiftRight-test.js generated vendored Normal file
View File

@@ -0,0 +1,95 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('shiftRight method', function () {
describe('0>>1', function () {
it('should return 0', function (done) {
var u = UINT32(0).shiftRight(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('4>>2', function () {
it('should return 1', function (done) {
var u = UINT32(4).shiftRight(2)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^16>>16', function () {
it('should return 1', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).shiftRight(16)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1>>32', function () {
it('should return 0', function (done) {
var u = UINT32(1).shiftRight(32)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('2^31>>31', function () {
it('should return 1', function (done) {
var u = UINT32('80000000', 16).shiftRight(31)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^28>>28', function () {
it('should return 1', function (done) {
var u = UINT32('10000000', 16).shiftRight(28)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^31+2^28>>31', function () {
it('should return 1', function (done) {
var u = UINT32('90000000', 16).shiftRight(31)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^31+2^28>>28', function () {
it('should return 9', function (done) {
var u = UINT32('90000000', 16).shiftRight(28)
assert.equal( u.toNumber(), 9 )
done()
})
})
})

75
app/node_modules/cuint/test/UINT32_subtract-test.js generated vendored Normal file
View File

@@ -0,0 +1,75 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('subtract method', function () {
describe('0-0', function () {
it('should return 0', function (done) {
var u = UINT32(0).subtract( UINT32(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1-0', function () {
it('should return 1', function (done) {
var u = UINT32(1).subtract( UINT32(0) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('0-1', function () {
it('should return -1', function (done) {
var u = UINT32(0).subtract( UINT32(1) )
assert.equal( u.toNumber(), -1 )
done()
})
})
describe('low bit-high bit', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(1).subtract( UINT32(n) )
assert.equal( u.toNumber(), 1-n )
done()
})
})
describe('high bit-low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n).subtract( UINT32(123) )
assert.equal( u.toNumber(), n - 123 )
done()
})
})
describe('high bit-high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT32(n+1).subtract( UINT32(n) )
assert.equal( u.toNumber(), 1 )
done()
})
})
})

63
app/node_modules/cuint/test/UINT32_toNumber-test.js generated vendored Normal file
View File

@@ -0,0 +1,63 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('toNumber method', function () {
describe('from 0', function () {
it('should return 0', function (done) {
var u = UINT32(0).toNumber()
assert.equal( u, 0 )
done()
})
})
describe('from low bit number', function () {
it('should return the number', function (done) {
var u = UINT32(123).toNumber()
assert.equal( u, 123 )
done()
})
})
describe('from high bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17)
var u = UINT32(n).toNumber()
assert.equal( u, n )
done()
})
})
describe('from high and low bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17) + 123
var u = UINT32(n).toNumber()
assert.equal( u, n )
done()
})
})
describe('toNumber and toString', function () {
it('should return the same result for 100 random numbers', function () {
for (var i=0; i<100; i++) {
var u = UINT32(Math.floor(Math.random() * 0xffffffff));
assert.equal(u.toNumber(), parseInt(u.toString()));
}
})
})
})

74
app/node_modules/cuint/test/UINT32_toString-test.js generated vendored Normal file
View File

@@ -0,0 +1,74 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('toString method', function () {
describe('from 0', function () {
it('should return "0"', function (done) {
var u = UINT32(0).toString()
assert.equal( u, '0' )
done()
})
})
describe('from low bit number', function () {
it('should return the number', function (done) {
var u = UINT32(123).toString()
assert.equal( u, '123' )
done()
})
})
describe('from high bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17)
var u = UINT32(n).toString()
assert.equal( u, ''+n )
done()
})
})
describe('from high and low bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17) + 123
var u = UINT32(n).toString()
assert.equal( u, ''+n )
done()
})
})
describe('< radix', function () {
it('should return the number', function (done) {
var u = UINT32(4).toString()
assert.equal( u, '4' )
done()
})
})
describe('= radix', function () {
it('should return the number', function (done) {
var u = UINT32(2).toString(2)
assert.equal( u, '10' )
done()
})
})
})

64
app/node_modules/cuint/test/UINT32_xor-test.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
var assert = require('assert')
var UINT32 = require('..').UINT32
describe('xor method', function () {
describe('0^1', function () {
it('should return 1', function (done) {
var u = UINT32(0).xor( UINT32(1) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1^2', function () {
it('should return 3', function (done) {
var u = UINT32(1).xor( UINT32(2) )
assert.equal( u.toNumber(), 3 )
done()
})
})
describe('1^2^16', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(1).xor( UINT32(n) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
describe('2^16^1', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).xor( UINT32(1) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
describe('2^16^2^16', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 16)
var u = UINT32(n).xor( UINT32(n) )
assert.equal( u.toNumber(), 0 )
done()
})
})
})

284
app/node_modules/cuint/test/UINT64-test.js generated vendored Normal file
View File

@@ -0,0 +1,284 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('UINT64 constructor', function () {
describe('with no parameters', function () {
it('should properly initialize', function (done) {
var u = UINT64()
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('with low and high bits', function () {
describe('0, 0', function () {
it('should properly initialize', function (done) {
var u = UINT64(0, 0)
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('1, 0', function () {
it('should properly initialize', function (done) {
var u = UINT64(1, 0)
assert.equal( u._a00, 1 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('0, 1', function () {
it('should properly initialize', function (done) {
var u = UINT64(0, 1)
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 1 )
assert.equal( u._a48, 0 )
done()
})
})
describe('3, 5', function () {
it('should properly initialize', function (done) {
var u = UINT64(3, 5)
assert.equal( u._a00, 3 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 5 )
assert.equal( u._a48, 0 )
done()
})
})
})
describe('with number', function () {
describe('0', function () {
it('should properly initialize', function (done) {
var u = UINT64(0)
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('1', function () {
it('should properly initialize', function (done) {
var u = UINT64(1)
assert.equal( u._a00, 1 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('3', function () {
it('should properly initialize', function (done) {
var u = UINT64(3)
assert.equal( u._a00, 3 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('with high bit', function () {
it('should properly initialize', function (done) {
var u = UINT64( Math.pow(2,17)+123 )
assert.equal( u._a00, 123 )
assert.equal( u._a16, 2 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
})
describe('with string', function () {
describe('"0"', function () {
it('should properly initialize', function (done) {
var u = UINT64('0')
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('"1"', function () {
it('should properly initialize', function (done) {
var u = UINT64('1')
assert.equal( u._a00, 1 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('10', function () {
it('should properly initialize', function (done) {
var u = UINT64('10')
assert.equal( u._a00, 10 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('with high bit', function () {
it('should properly initialize', function (done) {
var u = UINT64( '' + (Math.pow(2,17)+123) )
assert.equal( u._a00, 123 )
assert.equal( u._a16, 2 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('with radix 10', function () {
it('should properly initialize', function (done) {
var u = UINT64( '123', 10 )
assert.equal( u._a00, 123 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('with radix 2', function () {
it('should properly initialize', function (done) {
var u = UINT64( '1111011', 2 )
assert.equal( u._a00, 123 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT64( '7B', 16 )
assert.equal( u._a00, 123 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('8000 with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT64( '8000', 16 )
assert.equal( u._a00, 32768 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('80000000 with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT64( '80000000', 16 )
assert.equal( u._a00, 0 )
assert.equal( u._a16, 32768 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 0 )
done()
})
})
describe('800000000000 with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT64( '800000000000', 16 )
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 32768 )
assert.equal( u._a48, 0 )
done()
})
})
describe('8000000000000000 with radix 16', function () {
it('should properly initialize', function (done) {
var u = UINT64( '8000000000000000', 16 )
assert.equal( u._a00, 0 )
assert.equal( u._a16, 0 )
assert.equal( u._a32, 0 )
assert.equal( u._a48, 32768 )
done()
})
})
describe('maximum unsigned 64 bits value in base 2', function () {
it('should properly initialize', function (done) {
var u = UINT64( Array(65).join('1'), 2 )
assert.equal( u._a00, 65535 )
assert.equal( u._a16, 65535 )
assert.equal( u._a32, 65535 )
assert.equal( u._a48, 65535 )
done()
})
})
describe('maximum unsigned 64 bits value in base 16', function () {
it('should properly initialize', function (done) {
var u = UINT64( Array(17).join('F'), 16 )
assert.equal( u._a00, 65535 )
assert.equal( u._a16, 65535 )
assert.equal( u._a32, 65535 )
assert.equal( u._a48, 65535 )
done()
})
})
})
})

120
app/node_modules/cuint/test/UINT64_add-test.js generated vendored Normal file
View File

@@ -0,0 +1,120 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('add method', function () {
describe('0+0', function () {
it('should return 0', function (done) {
var u = UINT64(0).add( UINT64(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('0+1', function () {
it('should return 1', function (done) {
var u = UINT64(0).add( UINT64(1) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1+0', function () {
it('should return 0', function (done) {
var u = UINT64(1).add( UINT64(0) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1+1', function () {
it('should return 2', function (done) {
var u = UINT64(1).add( UINT64(1) )
assert.equal( u.toNumber(), 2 )
done()
})
})
describe('low bit+high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(123).add( UINT64(n) )
assert.equal( u.toNumber(), 123 + n )
done()
})
})
describe('high bit+low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).add( UINT64(123) )
assert.equal( u.toNumber(), 123 + n )
done()
})
})
describe('high bit+high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).add( UINT64(n) )
assert.equal( u.toNumber(), n + n )
done()
})
})
describe('overflow', function () {
it('should return n', function (done) {
var n = 'FFFFFFFF'
var u = UINT64(n, 16).add( UINT64(n, 16) )
assert.equal( u.toNumber(), -2 )
done()
})
})
describe('high bit+high bit 2', function () {
it('should return n', function (done) {
var u = UINT64('326648991').add( UINT64('265443576') )
assert.equal( u.toNumber(), 592092567 )
done()
})
})
describe('high bit+high bit 3', function () {
it('should return n', function (done) {
var u = UINT64('800000000000', 16).add( UINT64('100000000000', 16) )
assert.equal( u.toString(16), '900000000000' )
done()
})
})
})

64
app/node_modules/cuint/test/UINT64_and-test.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('and method', function () {
describe('0&1', function () {
it('should return 0', function (done) {
var u = UINT64(0).and( UINT64(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1&2', function () {
it('should return 0', function (done) {
var u = UINT64(1).and( UINT64(2) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1&2^16', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).and( UINT64(n) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('2^16&1', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).and( UINT64(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('2^16&2^16', function () {
it('should return n', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).and( UINT64(n) )
assert.equal( u.toNumber(), n )
done()
})
})
})

105
app/node_modules/cuint/test/UINT64_div-test.js generated vendored Normal file
View File

@@ -0,0 +1,105 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('div method', function () {
describe('1/0', function () {
it('should throw', function (done) {
assert.throws(
function () {
UINT64(1).div( UINT64(0) )
}
, function (err) {
if (err instanceof Error) return true
}
)
done()
})
})
describe('0/1', function () {
it('should return 0', function (done) {
var u = UINT64(2).div( UINT64(1) )
assert.equal( u.toNumber(), 2 )
done()
})
})
describe('2/1', function () {
it('should return 2', function (done) {
var u = UINT64(0).div( UINT64(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1/2', function () {
it('should return 0', function (done) {
var u = UINT64(1).div( UINT64(2) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('low bit/high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(3).div( UINT64(n) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('high bit/low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).div( UINT64(3) )
assert.equal( u.toNumber(), (n/3)|0 )
assert.equal( u.remainder.toNumber(), 2 )
done()
})
})
describe('high bit/high bit', function () {
it('should return n', function (done) {
var n = 'FFFFFFFF'
var u = UINT64(n, 16).div( UINT64(n, 16) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('high bit/high bit 2', function () {
it('should return n', function (done) {
var u = UINT64('3266489917').div( UINT64('668265263') )
assert.equal( u.toNumber(), 4 )
done()
})
})
})

62
app/node_modules/cuint/test/UINT64_equals-test.js generated vendored Normal file
View File

@@ -0,0 +1,62 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('equals method', function () {
describe('0==0', function () {
it('should return true', function (done) {
var u = UINT64(0).equals( UINT64(0) )
assert( u )
done()
})
})
describe('1==1', function () {
it('should return true', function (done) {
var u = UINT64(1).equals( UINT64(1) )
assert( u )
done()
})
})
describe('low bit', function () {
it('should return true', function (done) {
var u = UINT64(3).equals( UINT64(3) )
assert( u )
done()
})
})
describe('high bit', function () {
it('should return true', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).equals( UINT64(n) )
assert( u )
done()
})
})
describe('1!=2', function () {
it('should return false', function (done) {
var u = UINT64(1).equals( UINT64(2) )
assert( !u )
done()
})
})
})

52
app/node_modules/cuint/test/UINT64_greaterThan-test.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('greaterThan method', function () {
describe('0>1', function () {
it('should return false', function (done) {
var u = UINT64(0).greaterThan( UINT64(1) )
assert( !u )
done()
})
})
describe('1>2', function () {
it('should return false', function (done) {
var u = UINT64(1).greaterThan( UINT64(2) )
assert( !u )
done()
})
})
describe('1>2^16', function () {
it('should return false', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).greaterThan( UINT64(n) )
assert( !u )
done()
})
})
describe('2^16>1', function () {
it('should return true', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).greaterThan( UINT64(1) )
assert( u )
done()
})
})
})

52
app/node_modules/cuint/test/UINT64_lessThan-test.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('lessThan method', function () {
describe('0<1', function () {
it('should return true', function (done) {
var u = UINT64(0).lessThan( UINT64(1) )
assert( u )
done()
})
})
describe('1<2', function () {
it('should return true', function (done) {
var u = UINT64(1).lessThan( UINT64(2) )
assert( u )
done()
})
})
describe('1<2^16', function () {
it('should return true', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).lessThan( UINT64(n) )
assert( u )
done()
})
})
describe('2^16<1', function () {
it('should return false', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).lessThan( UINT64(1) )
assert( !u )
done()
})
})
})

75
app/node_modules/cuint/test/UINT64_multiply-test.js generated vendored Normal file
View File

@@ -0,0 +1,75 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('multiply method', function () {
describe('0*0', function () {
it('should return 0', function (done) {
var u = UINT64(0).multiply( UINT64(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1*0', function () {
it('should return 0', function (done) {
var u = UINT64(1).multiply( UINT64(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('0*1', function () {
it('should return 0', function (done) {
var u = UINT64(0).multiply( UINT64(1) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('low bit*high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(3).multiply( UINT64(n) )
assert.equal( u.toNumber(), 3*n )
done()
})
})
describe('high bit*low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).multiply( UINT64(3) )
assert.equal( u.toNumber(), 3*n )
done()
})
})
describe('high bit*high bit', function () {
it('should return n', function (done) {
var n = 'FFFFFFFF'
var u = UINT64(n, 16).multiply( UINT64(n, 16) )
assert.equal( u.toNumber(), 1 )
done()
})
})
})

51
app/node_modules/cuint/test/UINT64_negate-test.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('negate method', function () {
describe('0', function () {
it('should return 0', function (done) {
var u = UINT64(0).negate()
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1', function () {
it('should return -1', function (done) {
var u = UINT64(1).negate()
assert.equal( u.toNumber(), -1 )
done()
})
})
describe('low bit', function () {
it('should return -n', function (done) {
var u = UINT64(3).negate()
assert.equal( u.toNumber(), -3 )
done()
})
})
describe('high bit', function () {
it('should return -n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).negate()
assert.equal( u.toNumber(), -n )
done()
})
})
})

45
app/node_modules/cuint/test/UINT64_not-test.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('not method', function () {
describe('0', function () {
it('should return 2^64-1', function (done) {
var u = UINT64(0).not()
assert.equal( u.toString(16), 'ffffffffffffffff' )
done()
})
})
describe('1', function () {
it('should return 2^64-2', function (done) {
var u = UINT64(1).not()
assert.equal( u.toString(16), 'fffffffffffffffe' )
done()
})
})
describe('2^63', function() {
var u = UINT64(0xFFFF, 0xFFFF, 0xFFFF, 0x7FFF).not()
assert.equal( u.toString(16), '8000000000000000')
})
describe('all bits set', function () {
it('should return 0', function (done) {
var u = UINT64(0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF).not()
assert.equal( u.toString(), '0' )
done()
})
})
})

52
app/node_modules/cuint/test/UINT64_or-test.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('or method', function () {
describe('0|1', function () {
it('should return 1', function (done) {
var u = UINT64(0).or( UINT64(1) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1|2', function () {
it('should return 3', function (done) {
var u = UINT64(1).or( UINT64(2) )
assert.equal( u.toNumber(), 3 )
done()
})
})
describe('1|2^16', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).or( UINT64(n) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
describe('2^16|1', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).or( UINT64(1) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
})

51
app/node_modules/cuint/test/UINT64_rotateLeft-test.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('rotateLeft method', function () {
describe('0rotl1', function () {
it('should return 0', function (done) {
var u = UINT64(0).rotateLeft(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1rotl2', function () {
it('should return 4', function (done) {
var u = UINT64(1).rotateLeft(2)
assert.equal( u.toNumber(), 4 )
done()
})
})
describe('1rotl16', function () {
it('should return 2^16', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).rotateLeft(16)
assert.equal( u.toNumber(), n )
done()
})
})
describe('1rotl32', function () {
it('should return 1', function (done) {
var u = UINT64(1).rotateLeft(32)
assert.equal( u.toString(16), '100000000' )
done()
})
})
})

51
app/node_modules/cuint/test/UINT64_rotateRight-test.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('rotateRight method', function () {
describe('0rotr1', function () {
it('should return 0', function (done) {
var u = UINT64(0).rotateRight(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('4rotr1', function () {
it('should return 2', function (done) {
var u = UINT64(4).rotateRight(1)
assert.equal( u.toNumber(), 2 )
done()
})
})
describe('2^16rotr16', function () {
it('should return 1', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).rotateRight(16)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1rotr32', function () {
it('should return 1', function (done) {
var u = UINT64(1).rotateRight(32)
assert.equal( u.toString(16), '100000000' )
done()
})
})
})

73
app/node_modules/cuint/test/UINT64_shiftLeft-test.js generated vendored Normal file
View File

@@ -0,0 +1,73 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('shiftLeft method', function () {
describe('0<<1', function () {
it('should return 0', function (done) {
var u = UINT64(0).shiftLeft(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1<<2', function () {
it('should return 4', function (done) {
var u = UINT64(1).shiftLeft(2)
assert.equal( u.toNumber(), 4 )
done()
})
})
describe('1<<16', function () {
it('should return 2^16', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).shiftLeft(16)
assert.equal( u.toNumber(), n )
done()
})
})
describe('1<<32', function () {
it('should return 0', function (done) {
var u = UINT64(1).shiftLeft(32)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1<<31', function () {
it('should return 2^31', function (done) {
var u = UINT64(1).shiftLeft(31)
assert.equal( u.toString(16), '80000000' )
done()
})
})
describe('9<<28', function () {
it('should return 2^31', function (done) {
var u = UINT64(9).shiftLeft(28)
assert.equal( u.toString(16), '90000000' )
done()
})
})
})

95
app/node_modules/cuint/test/UINT64_shiftRight-test.js generated vendored Normal file
View File

@@ -0,0 +1,95 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('shiftRight method', function () {
describe('0>>1', function () {
it('should return 0', function (done) {
var u = UINT64(0).shiftRight(1)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('4>>2', function () {
it('should return 1', function (done) {
var u = UINT64(4).shiftRight(2)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^16>>16', function () {
it('should return 1', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).shiftRight(16)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1>>32', function () {
it('should return 0', function (done) {
var u = UINT64(1).shiftRight(32)
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('2^31>>31', function () {
it('should return 1', function (done) {
var u = UINT64('80000000', 16).shiftRight(31)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^28>>28', function () {
it('should return 1', function (done) {
var u = UINT64('10000000', 16).shiftRight(28)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^31+2^28>>31', function () {
it('should return 1', function (done) {
var u = UINT64('90000000', 16).shiftRight(31)
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('2^31+2^28>>28', function () {
it('should return 9', function (done) {
var u = UINT64('90000000', 16).shiftRight(28)
assert.equal( u.toNumber(), 9 )
done()
})
})
})

75
app/node_modules/cuint/test/UINT64_subtract-test.js generated vendored Normal file
View File

@@ -0,0 +1,75 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('subtract method', function () {
describe('0-0', function () {
it('should return 0', function (done) {
var u = UINT64(0).subtract( UINT64(0) )
assert.equal( u.toNumber(), 0 )
done()
})
})
describe('1-0', function () {
it('should return 1', function (done) {
var u = UINT64(1).subtract( UINT64(0) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('0-1', function () {
it('should return -1', function (done) {
var u = UINT64(0).subtract( UINT64(1) )
assert.equal( u.toNumber(), -1 )
done()
})
})
describe('low bit-high bit', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(1).subtract( UINT64(n) )
assert.equal( u.toNumber(), 1-n )
done()
})
})
describe('high bit-low bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n).subtract( UINT64(123) )
assert.equal( u.toNumber(), n - 123 )
done()
})
})
describe('high bit-high bit', function () {
it('should return n', function (done) {
var n = Math.pow(2, 17)
var u = UINT64(n+1).subtract( UINT64(n) )
assert.equal( u.toNumber(), 1 )
done()
})
})
})

63
app/node_modules/cuint/test/UINT64_toNumber-test.js generated vendored Normal file
View File

@@ -0,0 +1,63 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('toNumber method', function () {
describe('from 0', function () {
it('should return 0', function (done) {
var u = UINT64(0).toNumber()
assert.equal( u, 0 )
done()
})
})
describe('from low bit number', function () {
it('should return the number', function (done) {
var u = UINT64(123).toNumber()
assert.equal( u, 123 )
done()
})
})
describe('from high bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17)
var u = UINT64(n).toNumber()
assert.equal( u, n )
done()
})
})
describe('from high and low bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17) + 123
var u = UINT64(n).toNumber()
assert.equal( u, n )
done()
})
})
describe('toNumber and toString', function () {
it('should return the same result for 100 random numbers', function () {
for (var i=0; i<100; i++) {
var u = UINT64(Math.floor(Math.random() * 0xffffffff), 0);
assert.equal(u.toNumber(), parseInt(u.toString()));
}
})
})
})

74
app/node_modules/cuint/test/UINT64_toString-test.js generated vendored Normal file
View File

@@ -0,0 +1,74 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('toString method', function () {
describe('from 0', function () {
it('should return "0"', function (done) {
var u = UINT64(0).toString()
assert.equal( u, '0' )
done()
})
})
describe('from low bit number', function () {
it('should return the number', function (done) {
var u = UINT64(123).toString()
assert.equal( u, '123' )
done()
})
})
describe('from high bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17)
var u = UINT64(n).toString()
assert.equal( u, ''+n )
done()
})
})
describe('from high and low bit number', function () {
it('should return the number', function (done) {
var n = Math.pow(2,17) + 123
var u = UINT64(n).toString()
assert.equal( u, ''+n )
done()
})
})
describe('< radix', function () {
it('should return the number', function (done) {
var u = UINT64(4).toString()
assert.equal( u, '4' )
done()
})
})
describe('= radix', function () {
it('should return the number', function (done) {
var u = UINT64(2).toString(2)
assert.equal( u, '10' )
done()
})
})
})

64
app/node_modules/cuint/test/UINT64_xor-test.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
var assert = require('assert')
var UINT64 = require('..').UINT64
describe('xor method', function () {
describe('0^1', function () {
it('should return 1', function (done) {
var u = UINT64(0).xor( UINT64(1) )
assert.equal( u.toNumber(), 1 )
done()
})
})
describe('1^2', function () {
it('should return 3', function (done) {
var u = UINT64(1).xor( UINT64(2) )
assert.equal( u.toNumber(), 3 )
done()
})
})
describe('1^2^16', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(1).xor( UINT64(n) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
describe('2^16^1', function () {
it('should return n+1', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).xor( UINT64(1) )
assert.equal( u.toNumber(), n+1 )
done()
})
})
describe('2^16^2^16', function () {
it('should return 0', function (done) {
var n = Math.pow(2, 16)
var u = UINT64(n).xor( UINT64(n) )
assert.equal( u.toNumber(), 0 )
done()
})
})
})