aureooms-js-integer
Version:
integer code bricks for JavaScript
64 lines (43 loc) • 1.41 kB
JavaScript
import test from 'ava' ;
import * as integer from '../../../../src' ;
var check = function(Ctor){
var name = `integer.and<${Ctor.name}>` ;
test(name, function(assert){
var f = 2;
var r = Math.pow(2, Ctor.BYTES_PER_ELEMENT * 8);
for (var k = 0; k < TEST.length; ++k) {
var test = TEST[k];
var as = test[0];
var a = new Ctor( integer.parse_keep_zeros( f , r , as ) ) ;
var ai = 0 ;
var aj = a.length ;
var c = new Ctor(aj);
var bs = test[1];
var b = new Ctor( integer.parse_keep_zeros( f , r , bs ) ) ;
var bi = 0;
var bj = b.length;
integer.and(a, ai, b, bi, c, ai, aj);
var ds = test[2];
var d = new Ctor( integer.parse_keep_zeros( f , r , ds ) ) ;
var di = 0;
var dj = d.length;
assert.deepEqual(c, d, `and('${as}','${bs}') === '${ds}'`);
}
});
var TEST = [
['0000000000000000', '0000000000000000', '0000000000000000'],
['0000000000000000', '1111111111111111', '0000000000000000'],
['1111111111111111', '0000000000000000', '0000000000000000'],
['1111111111111111', '1111111111111111', '1111111111111111'],
['0000000000000111', '0000000000000111', '0000000000000111'],
['0000111111110000', '0101010101010101', '0000010101010000'],
['0001111111100000', '0101010101010101', '0001010101000000'],
];
};
var CTOR = [
Uint8Array,
Uint16Array,
Uint32Array,
];
for (var c = 0; c < CTOR.length; ++c)
check(CTOR[c]);