UNPKG

jspurefix

Version:
205 lines 8.15 kB
"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