33 lines
981 B
JavaScript
33 lines
981 B
JavaScript
var
|
|
QUnit = require('qunit'),
|
|
toUnsigned = require('../lib/utils/bin').toUnsigned;
|
|
|
|
QUnit.module('Binary Utils');
|
|
|
|
QUnit.test('converts values to unsigned integers after bitwise operations', function(assert) {
|
|
var bytes;
|
|
|
|
bytes = [0, 0, 124, 129];
|
|
|
|
assert.equal(toUnsigned(bytes[0] << 24 |
|
|
bytes[1] << 16 |
|
|
bytes[2] << 8 |
|
|
bytes[3]),
|
|
31873, 'positive signed result stays positive');
|
|
|
|
bytes = [150, 234, 221, 192];
|
|
|
|
// sanity check
|
|
assert.equal(bytes[0] << 24 |
|
|
bytes[1] << 16 |
|
|
bytes[2] << 8 |
|
|
bytes[3],
|
|
-1762992704, 'bitwise operation produces negative signed result');
|
|
|
|
assert.equal(toUnsigned(bytes[0] << 24 |
|
|
bytes[1] << 16 |
|
|
bytes[2] << 8 |
|
|
bytes[3]),
|
|
2531974592, 'negative signed result becomes unsigned positive');
|
|
});
|