jspurefix
Version:
pure node js fix engine
205 lines • 8.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const buffer_1 = require("../buffer");
test('1 char in buffer length 1', () => {
const buffer = new buffer_1.ElasticBuffer(1);
buffer.writeChar(buffer_1.Ascii.Dot);
expect(buffer.getPos()).toEqual(1);
expect(buffer.toString()).toEqual('.');
expect(buffer.currentSize()).toEqual(1);
});
test('string', () => {
const s = 'fixing up fix';
const buffer = new buffer_1.ElasticBuffer(1);
buffer.writeString(s);
expect(buffer.getPos()).toEqual(s.length);
expect(buffer.toString()).toEqual(s);
expect(buffer.currentSize()).toEqual(16);
});
test('whole number', () => {
const n = 12345;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeWholeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('12345');
expect(buffer.getWholeNumber(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize() === 10);
});
test('-ve number', () => {
const n = -2468;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeWholeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('-2468');
expect(buffer.getWholeNumber(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('+ve number with explicit sign', () => {
const n = 2468;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeString(`+${n}`);
const asString = buffer.toString();
expect(asString).toEqual('+2468');
expect(buffer.getWholeNumber(0, asString.length - 1)).toEqual(n);
});
test('floating point', () => {
const n = 12345.6789;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('12345.6789');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('floating point 1 dp', () => {
const n = 12345678.9;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('12345678.9');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('-ve floating point', () => {
const n = -12345.6789;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(buffer.toString()).toEqual('-12345.6789');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(20);
});
test('floating point many dp', () => {
const n = 0.123456789;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('0.123456789');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(20);
});
test('simple floating point 3.90', () => {
const n = 3.90;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('3.9');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('simple floating point 35.77', () => {
const n = 35.77;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('35.77');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('simple floating point 0.058457', () => {
const n = 0.058457;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('0.058457');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('simple floating point -0.06445', () => {
const n = -0.06445;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('-0.06445');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('whole number as floating point', () => {
const n = 123456789;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString.toString()).toEqual('123456789');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(10);
});
test('tiny floating point', () => {
const n = 0.000000000001;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(14);
expect(asString).toEqual('0.000000000001');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(20);
});
test('tiny -ve floating point', () => {
const n = -0.000000000001;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeNumber(n);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('-0.000000000001');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(20);
});
test('tiny +ve floating point with sign', () => {
const n = 0.000000000001;
const buffer = new buffer_1.ElasticBuffer(10);
buffer.writeString(`+${n.toFixed(12)}`);
const asString = buffer.toString();
expect(buffer.getPos()).toEqual(asString.length);
expect(asString).toEqual('+0.000000000001');
expect(buffer.getFloat(0, asString.length - 1)).toEqual(n);
expect(buffer.currentSize()).toEqual(20);
});
test('boolean true', () => {
const buffer = new buffer_1.ElasticBuffer(1);
buffer.writeBoolean(true);
expect(buffer.getPos()).toEqual(1);
expect(buffer.toString()).toEqual('Y');
expect(buffer.currentSize()).toEqual(1);
expect(buffer.getBoolean(0)).toBe(true);
});
test('boolean false', () => {
const buffer = new buffer_1.ElasticBuffer(1);
buffer.writeBoolean(false);
expect(buffer.getPos()).toEqual(1);
expect(buffer.toString()).toEqual('N');
expect(buffer.currentSize()).toEqual(1);
expect(buffer.getBoolean(0)).toBe(false);
});
test('write buffer', () => {
const buffer = new buffer_1.ElasticBuffer(1);
const s = 'fixing up fix';
const b = Buffer.from(s);
buffer.writeBuffer(b);
expect(buffer.getPos()).toEqual(b.length);
expect(buffer.toString()).toEqual(s);
expect(buffer.currentSize() === 16);
const fetched = buffer.getBuffer(0, b.length);
expect(fetched).toEqual(b);
});
test('buffer shrinks', () => {
const buffer = new buffer_1.ElasticBuffer(1);
const s = '.'.repeat(60 * 1024);
buffer.writeString(s);
expect(buffer.getPos()).toEqual(s.length);
expect(buffer.toString()).toEqual(s);
expect(buffer.currentSize()).toEqual(65536);
expect(buffer.reset()).toBe(true);
expect(buffer.getPos()).toEqual(0);
expect(buffer.currentSize() < 60 * 1024).toBe(true);
});
//# sourceMappingURL=elastic-buffer.test.js.map