12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- jest.dontMock('../index');
- const erlpack = require('../index.js');
- describe('packs', () => {
- it('string with null byte', () => {
- const packed = erlpack.pack('hello\x00 world');
- const expected = new Buffer('\x83m\x00\x00\x00\x0chello\x00 world', 'binary');
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('string without null byte', () => {
- const packed = erlpack.pack('hello world');
- const expected = new Buffer('\x83m\x00\x00\x00\x0bhello world', 'binary');
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('dictionary', () => {
- const expected = new Buffer(
- '\x83t\x00\x00\x00\x03a\x02a\x02a\x03l\x00\x00\x00\x03a\x01a\x02a\x03jm\x00\x00\x00\x01aa\x01',
- 'binary'
- );
- const packed = erlpack.pack({'a': 1, 2: 2, 3: [1, 2, 3]});
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('false', () => {
- const expected = new Buffer('\x83s\x05false', 'binary');
- const packed = erlpack.pack(false);
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('true', () => {
- const expected = new Buffer('\x83s\x04true', 'binary');
- const packed = erlpack.pack(true);
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('null is nil', () => {
- const expected = new Buffer('\x83s\x03nil', 'binary');
- const packed = erlpack.pack(null);
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('undefined is nil', () => {
- const expected = new Buffer('\x83s\x03nil', 'binary');
- const packed = erlpack.pack(undefined);
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('floats as new floats', () => {
- expect(erlpack.pack(2.5).equals(new Buffer('\x83F\x40\x04\x00\x00\x00\x00\x00\x00', 'binary'))).toBeTruthy();
- expect(erlpack.pack(51512123841234.31423412341435123412341342).equals(new Buffer('\x83F\x42\xc7\x6c\xcc\xeb\xed\x69\x28', 'binary'))).toBeTruthy();
- });
- it('small int', () => {
- function check(small_int) {
- expected = new Buffer(3);
- expected.write('\x83a', 0, 2, 'binary');
- expected.writeUInt8(small_int, 2);
- const packed = erlpack.pack(small_int);
- expect(expected.equals(packed)).toBeTruthy();
- }
- for(var i = 0; i < 256; ++i) {
- check(i);
- }
- });
- it('int32', () => {
- expect(erlpack.pack(1024).equals(new Buffer('\x83b\x00\x00\x04\x00', 'binary'))).toBeTruthy();
- expect(erlpack.pack(-2147483648).equals(new Buffer('\x83b\x80\x00\x00\x00', 'binary'))).toBeTruthy();
- expect(erlpack.pack(2147483647).equals(new Buffer('\x83b\x7f\xff\xff\xff', 'binary'))).toBeTruthy();
- });
- it('list', () => {
- const expected = new Buffer('\x83l\x00\x00\x00\x05a\x01m\x00\x00\x00\x03twoF\x40\x08\xcc\xcc\xcc\xcc\xcc\xcdm\x00\x00\x00\x04fourl\x00\x00\x00\x01m\x00\x00\x00\x04fivejj', 'binary');
- const packed = erlpack.pack([1, "two", 3.1, "four", ['five']]);
- expect(packed.equals(expected)).toBeTruthy();
- });
- it('empty list', () => {
- expect(erlpack.pack([]).equals(new Buffer('\x83j', 'binary'))).toBeTruthy();
- });
- });
|