javascript-binary-converter
Version:
A utility package to quickly handle and convert various Javascript binary objects
163 lines • 9.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const expect_1 = require("expect");
const binary_1 = require("../../utils/binary");
const hex_1 = require("../../utils/hex");
const number_1 = require("../../utils/number");
describe('Node binary utils tests', () => {
it('Uint8: Should return correct numbers from a string of 8 bits', async function () {
var decimal = (0, binary_1.binaryToInteger)('11111111');
(0, expect_1.expect)(decimal).toBe(255);
var decimal = (0, binary_1.binaryToInteger)('001');
(0, expect_1.expect)(decimal).toBe(1);
var decimal = (0, binary_1.binaryToInteger)('00101');
(0, expect_1.expect)(decimal).toBe(5);
var decimal = (0, binary_1.binaryToInteger)('101');
(0, expect_1.expect)(decimal).toBe(5);
});
// it('Uint8: Should return correct numbers from bits', async function () {
// var decimal = binaryToInteger(11111111)
// expect(decimal).toBe(255)
// var decimal = binaryToInteger(001)
// expect(decimal).toBe(1)
// var decimal = binaryToInteger(00101)
// expect(decimal).toBe(5)
// var decimal = binaryToInteger(101)
// expect(decimal).toBe(5)
// });
it('Uint16: Should return 65535 from a string of 16 bits', async function () {
const decimal = (0, binary_1.binaryToInteger)('1111111111111111');
(0, expect_1.expect)(decimal).toBe(65535);
});
it('Uint32: Should return 4294967295 from a string of 32 bits', async function () {
const decimal = (0, binary_1.binaryToInteger)('11111111111111111111111111111111');
(0, expect_1.expect)(decimal).toBe(4294967295);
});
it('Int8: Should return correct numbers from a string of 8 bits', async function () {
var decimal = (0, binary_1.binaryToInteger)('10000000', true);
(0, expect_1.expect)(decimal).toBe(-128);
var decimal = (0, binary_1.binaryToInteger)('00000000', true);
(0, expect_1.expect)(decimal).toBe(0);
var decimal = (0, binary_1.binaryToInteger)('11111111', true);
(0, expect_1.expect)(decimal).toBe(-1);
var decimal = (0, binary_1.binaryToInteger)('11110111', true);
(0, expect_1.expect)(decimal).toBe(-9);
var decimal = (0, binary_1.binaryToInteger)('01110111', true);
(0, expect_1.expect)(decimal).toBe(119);
});
it('Int16: Should return correct numbers from a string of 16 bits', async function () {
var decimal = (0, binary_1.binaryToInteger)('1000000010000000', true);
(0, expect_1.expect)(decimal).toBe(-32640);
var decimal = (0, binary_1.binaryToInteger)('0000000000000000', true);
(0, expect_1.expect)(decimal).toBe(0);
var decimal = (0, binary_1.binaryToInteger)('1111111111111111', true);
(0, expect_1.expect)(decimal).toBe(-1);
var decimal = (0, binary_1.binaryToInteger)('1111011111110111', true);
(0, expect_1.expect)(decimal).toBe(-2057);
var decimal = (0, binary_1.binaryToInteger)('0111011101110111', true);
(0, expect_1.expect)(decimal).toBe(30583);
});
it('Int32: Should return correct numbers from a string of 32 bits', async function () {
var decimal = (0, binary_1.binaryToInteger)('10000000000000000000000000000000', true);
(0, expect_1.expect)(decimal).toBe(-2147483648);
var decimal = (0, binary_1.binaryToInteger)('00000000000000000000000000000000', true);
(0, expect_1.expect)(decimal).toBe(0);
var decimal = (0, binary_1.binaryToInteger)('11111111111111111111111111111111', true);
(0, expect_1.expect)(decimal).toBe(-1);
var decimal = (0, binary_1.binaryToInteger)('11110111111101111111011111110111', true);
(0, expect_1.expect)(decimal).toBe(-134744073);
var decimal = (0, binary_1.binaryToInteger)('01110111011101110111011101110111', true);
(0, expect_1.expect)(decimal).toBe(2004318071);
});
it('Should create arrays of 16 bits, from an array of 8 bits', async function () {
// await timeout()
var bytes = ['11101111', '10111111', '00000001', '00000000'];
var joined = (0, binary_1.groupBytes)(bytes, 2);
(0, expect_1.expect)(joined.length).toBe(2);
(0, expect_1.expect)(joined[0]).toBe('1110111110111111');
(0, expect_1.expect)(joined[1]).toBe('0000000100000000');
var bytes = ['11101111', '10111111', '00000001', '00000000', '11101001', '00111111', '00110001', '00001000'];
var joined = (0, binary_1.groupBytes)(bytes, 2);
(0, expect_1.expect)(joined.length).toBe(4);
(0, expect_1.expect)(joined[0]).toBe('1110111110111111');
(0, expect_1.expect)(joined[1]).toBe('0000000100000000');
(0, expect_1.expect)(joined[2]).toBe('1110100100111111');
(0, expect_1.expect)(joined[3]).toBe('0011000100001000');
});
it('Should create arrays of 32 bits, from an array of 8 bits', async function () {
// await timeout()
var bytes = ['11101111', '10111111', '00000001', '00000000'];
var joined = (0, binary_1.groupBytes)(bytes, 4);
(0, expect_1.expect)(joined.length).toBe(1);
(0, expect_1.expect)(joined[0]).toBe('11101111101111110000000100000000');
var bytes = ['11101111', '10111111', '00000001', '00000000', '11101001', '00111111', '00110001', '00001000'];
var joined = (0, binary_1.groupBytes)(bytes, 4);
(0, expect_1.expect)(joined.length).toBe(2);
(0, expect_1.expect)(joined[0]).toBe('11101111101111110000000100000000');
(0, expect_1.expect)(joined[1]).toBe('11101001001111110011000100001000');
});
it('Should return hex, from decimal', async function () {
var decimal = 1234;
var hex = (0, hex_1.integerToHexaDecimal)(decimal);
(0, expect_1.expect)(hex).toBe('4D2');
var decimal = -1234;
var hex = (0, hex_1.integerToHexaDecimal)(decimal);
(0, expect_1.expect)(hex).toBe('FFFFFB2E');
var decimal = -1234534543;
var hex = (0, hex_1.integerToHexaDecimal)(decimal);
(0, expect_1.expect)(hex).toBe('B66A7F71');
});
it('Should closest dividable', async function () {
let closest = (0, number_1.getClosestDividable)(14, 8);
(0, expect_1.expect)(closest).toBe(16);
closest = (0, number_1.getClosestDividable)(1, 8);
(0, expect_1.expect)(closest).toBe(8);
closest = (0, number_1.getClosestDividable)(7, 8);
(0, expect_1.expect)(closest).toBe(8);
closest = (0, number_1.getClosestDividable)(15, 8);
(0, expect_1.expect)(closest).toBe(16);
closest = (0, number_1.getClosestDividable)(16, 8);
(0, expect_1.expect)(closest).toBe(16);
closest = (0, number_1.getClosestDividable)(30, 8);
(0, expect_1.expect)(closest).toBe(32);
});
it('Should return binary from bigint', async function () {
// 184467440737095516
// let binary = integerToBinary(4294967295)//max 32 bit number
// let binary = integerToBinary(4294967296) //above 32 bit
let binary = (0, binary_1.bigIntegerToBinary)(184467440737095516n);
(0, expect_1.expect)(binary).toBe('1010001111010111000010100011110101110000101000111101011100');
binary = (0, binary_1.bigIntegerToBinary)(8844674407370955);
(0, expect_1.expect)(binary).toBe('11111011011000010111100111100001101001001000011001011');
binary = (0, binary_1.bigIntegerToBinary)(-2157483648); //
(0, expect_1.expect)(binary).toBe('1111111111111111111111111111111101111111011001110110100110000000');
binary = (0, binary_1.bigIntegerToBinary)(-3157483648434); //
(0, expect_1.expect)(binary).toBe('1111111111111111111111010010000011010111010011110000101001001110');
});
it('Should return binary from float', async function () {
let binary = (0, binary_1.floatToBinary)(1.1);
(0, expect_1.expect)(binary).toBe('00111111100011001100110011001101');
binary = (0, binary_1.floatToBinary)(0.43431);
(0, expect_1.expect)(binary).toBe('00111110110111100101110111100001');
binary = (0, binary_1.floatToBinary)(-0.43431);
(0, expect_1.expect)(binary).toBe('10111110110111100101110111100001');
binary = (0, binary_1.floatToBinary)(65.43431);
(0, expect_1.expect)(binary).toBe('01000010100000101101111001011110');
binary = (0, binary_1.floatToBinary)(-65.43431);
(0, expect_1.expect)(binary).toBe('11000010100000101101111001011110');
});
// it('Should remove redundant significant bytes', async function () {//
// const bytes = ['00010001', '00101000', '00001000', '00000000']
// let cleanBytes = removeRedundantSignificantBytes(bytes,'LITTLE')
// expect(bytes[0]).toBe('00010001')
// expect(cleanBytes.length).toBe(3)
// cleanBytes = removeRedundantSignificantBytes(bytes,'BIG')
// expect(bytes[0]).toBe('00001000')
// expect(cleanBytes.length).toBe(3)
// });
// it('Should trim unnecessary first bytes ', async function () {
// let bytes;
// const decimal = integerToBinary()
// });
});
//# sourceMappingURL=node-binary-utils.spec.js.map