jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
197 lines (196 loc) • 8.72 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var tap_1 = __importDefault(require("tap"));
var encode_1 = require("../../../lib/encoder/integer/encode");
var encoder_1 = require("../../../lib/encoder");
tap_1.default.test('BOUNDED_MULTIPLE_8BITS_ENUM_FIXED: should encode -5 (-5..-1) as 0x00', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.BOUNDED_MULTIPLE_8BITS_ENUM_FIXED(buffer, 0, -5, {
minimum: -5,
maximum: -1,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x00]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('BOUNDED_MULTIPLE_8BITS_ENUM_FIXED: should encode 2 (-5..5) as 0x07', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.BOUNDED_MULTIPLE_8BITS_ENUM_FIXED(buffer, 0, 2, {
minimum: -5,
maximum: 5,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x07]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('BOUNDED_MULTIPLE_8BITS_ENUM_FIXED: should encode 5 (2..8) as 0x03', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.BOUNDED_MULTIPLE_8BITS_ENUM_FIXED(buffer, 0, 5, {
minimum: 2,
maximum: 8,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x03]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('BOUNDED_MULTIPLE_8BITS_ENUM_FIXED: should encode 5 (1..19) / 5 as 0x00', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.BOUNDED_MULTIPLE_8BITS_ENUM_FIXED(buffer, 0, 5, {
minimum: 1,
maximum: 19,
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x00]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('BOUNDED_MULTIPLE_8BITS_ENUM_FIXED: should encode 15 (1..19) / 5 as 0x02', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.BOUNDED_MULTIPLE_8BITS_ENUM_FIXED(buffer, 0, 15, {
minimum: 1,
maximum: 19,
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x02]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('FLOOR_MULTIPLE_ENUM_VARINT: should encode -3 (-10..) as 0x07', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.FLOOR_MULTIPLE_ENUM_VARINT(buffer, 0, -3, {
minimum: -10,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x07]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('FLOOR_MULTIPLE_ENUM_VARINT: should encode 5 (2..) as 0x03', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.FLOOR_MULTIPLE_ENUM_VARINT(buffer, 0, 5, {
minimum: 2,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x03]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('FLOOR_MULTIPLE_ENUM_VARINT: should encode 10 (5..) / 5 as 0x01', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.FLOOR_MULTIPLE_ENUM_VARINT(buffer, 0, 10, {
minimum: 5,
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x01]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('FLOOR_MULTIPLE_ENUM_VARINT: should encode 10 (2..) / 5 as 0x01', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.FLOOR_MULTIPLE_ENUM_VARINT(buffer, 0, 10, {
minimum: 2,
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x01]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ROOF_MULTIPLE_MIRROR_ENUM_VARINT: should encode -3 (..-2) as 0x01', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ROOF_MULTIPLE_MIRROR_ENUM_VARINT(buffer, 0, -3, {
maximum: -2,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x01]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ROOF_MULTIPLE_MIRROR_ENUM_VARINT: should encode 8 (..10) as 0x02', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ROOF_MULTIPLE_MIRROR_ENUM_VARINT(buffer, 0, 8, {
maximum: 10,
multiplier: 1
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x02]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ROOF_MULTIPLE_MIRROR_ENUM_VARINT: should encode -15 (..-5) / -5 as 0x02', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ROOF_MULTIPLE_MIRROR_ENUM_VARINT(buffer, 0, -15, {
maximum: -5,
multiplier: -5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x02]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ROOF_MULTIPLE_MIRROR_ENUM_VARINT: should encode 5 (..16) / 5 as 0x02', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ROOF_MULTIPLE_MIRROR_ENUM_VARINT(buffer, 0, 5, {
maximum: 16,
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x02]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ROOF_MULTIPLE_MIRROR_ENUM_VARINT: should encode 10 (..15) / 5 as 0x01', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ROOF_MULTIPLE_MIRROR_ENUM_VARINT(buffer, 0, 10, {
maximum: 15,
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x01]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ROOF_MULTIPLE_MIRROR_ENUM_VARINT: should encode 10 (..15) / -5 as 0x01', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ROOF_MULTIPLE_MIRROR_ENUM_VARINT(buffer, 0, 10, {
maximum: 15,
multiplier: -5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x01]));
test.is(bytesWritten, 1);
test.end();
});
tap_1.default.test('ARBITRARY_MULTIPLE_ZIGZAG_VARINT: should encode -25200 as 0xdf 0x89 0x03', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(3));
var bytesWritten = encode_1.ARBITRARY_MULTIPLE_ZIGZAG_VARINT(buffer, 0, -25200, { multiplier: 1 }, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0xdf, 0x89, 0x03]));
test.is(bytesWritten, 3);
test.end();
});
tap_1.default.test('ARBITRARY_MULTIPLE_ZIGZAG_VARINT: should encode 10 / 5 as 0x04', function (test) {
var context = encoder_1.getDefaultEncodingContext();
var buffer = new encoder_1.ResizableBuffer(Buffer.allocUnsafe(1));
var bytesWritten = encode_1.ARBITRARY_MULTIPLE_ZIGZAG_VARINT(buffer, 0, 10, {
multiplier: 5
}, context);
test.strictSame(buffer.getBuffer(), Buffer.from([0x04]));
test.is(bytesWritten, 1);
test.end();
});