Skip to content

Commit 55c6ad3

Browse files
committed
feat(loki-buffer): varint test
1 parent e1322a6 commit 55c6ad3

File tree

3 files changed

+21
-36
lines changed

3 files changed

+21
-36
lines changed

packages/loki-buffer/src/ByteArray.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ export class ByteArray {
145145
}
146146

147147
readFloat(): number {
148-
const float = (this._data_.getFloat32(this._pos_) * 100) / 100;
148+
const float = this._data_.getInt32(this._pos_) / 1000;
149149
this._pos_ += 4;
150150
return float;
151151
}
@@ -242,7 +242,7 @@ export class ByteArray {
242242
}
243243

244244
writeLong(value: number): void {
245-
if (value != 0 && (value > Number.MAX_VALUE || value << Number.MIN_VALUE)) {
245+
if (value != 0 && (value > Number.MAX_VALUE || value < Number.MIN_VALUE)) {
246246
logError('writeLong error -- Out of bounds');
247247
}
248248
let head: number;
@@ -265,7 +265,8 @@ export class ByteArray {
265265

266266
writeFloat(value: number): void {
267267
this.ensureWrite(this._pos_ + 4);
268-
this._data_.setFloat32(this._pos_, value);
268+
value = value * 1000;
269+
this._data_.setInt32(this._pos_, value);
269270
this._pos_ += 4;
270271
}
271272

packages/loki-buffer/src/compress.ts

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class Compress {
6666
return this._data_.getInt8(this._pos_);
6767
}
6868

69-
readUnsignedInt(): number {
69+
readUInt(): number {
7070
const uInt = this._data_.getUint32(this._pos_);
7171
this._pos_ += 32;
7272
return Math.floor(uInt);
@@ -84,7 +84,7 @@ export class Compress {
8484
return short;
8585
}
8686

87-
readUnsignedShort(): number {
87+
readUShort(): number {
8888
const value = this._data_.getUint16(this._pos_);
8989
this._pos_ += 16;
9090
return value;
@@ -120,7 +120,7 @@ export class Compress {
120120
this._pos_ += 32;
121121
}
122122

123-
writeUnsignedInt(value: number): void {
123+
writeUInt(value: number): void {
124124
this.ensureWrite(this._pos_ + 32);
125125
this._data_.setUint32(this._pos_, value);
126126
this._pos_ += 32;
@@ -132,18 +132,12 @@ export class Compress {
132132
this._pos_ += 16;
133133
}
134134

135-
writeUnsignedShort(value: number): void {
135+
writeUShort(value: number): void {
136136
this.ensureWrite(this._pos_ + 16);
137137
this._data_.setUint16(this._pos_, value);
138138
this._pos_ += 16;
139139
}
140140

141-
writeFloat(value: number): void {
142-
this.ensureWrite(this._pos_ + 32);
143-
this._data_.setFloat32(this._pos_, value);
144-
this._pos_ += 32;
145-
}
146-
147141
writeDouble(value: number): void {
148142
this.ensureWrite(this._pos_ + 64);
149143
this._data_.setFloat64(this._pos_, value);
@@ -160,7 +154,7 @@ export class Compress {
160154
}
161155
}
162156

163-
class CompressBytes {
157+
export class CompressBytes {
164158
public byteLength = 0;
165159
public pos = 0;
166160
public _buffer;
@@ -425,25 +419,6 @@ class CompressBytes {
425419
}
426420
}
427421

428-
setFloat32(pos: number, value: number): void {
429-
this.pos = pos;
430-
if (pos % 8 == 0 && pos / 8 <= this._buffer.length) {
431-
this._idx++;
432-
this._buffer[this._idx] = value;
433-
} else if (pos % 8 == 0 && pos / 8 > this._buffer.length) {
434-
let newBuffer = new Int8Array(this.byteLength * 1.5);
435-
for (let i = 0; i < this.byteLength; i++) {
436-
newBuffer[i] = this._buffer[i];
437-
}
438-
this.byteLength = this.byteLength * 1.5;
439-
} else if (pos % 8 != 0) {
440-
let i = value >> pos % 8;
441-
this._buffer[this._idx] = (this._buffer[this._idx] + i) << pos % 8;
442-
this._idx++;
443-
this._buffer[this._idx] = value - i;
444-
}
445-
}
446-
447422
setFloat64(pos: number, value: number): void {
448423
this.pos = pos;
449424
if (pos % 8 == 0 && pos / 8 <= this._buffer.length) {

packages/loki-buffer/test/blah.test.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
import { ByteArray } from '../src';
22

33
test('blah', () => {
4-
const writerBuf = new ArrayBuffer(30);
4+
const writerBuf = new ArrayBuffer(100);
55
const writer = new ByteArray(writerBuf);
66
writer.writeBoolean(true);
77
writer.writeByte(1);
88
writer.writeDouble(2.1);
9-
// writer.writeFloat(3.1);
9+
writer.writeFloat(3.1);
1010
writer.writeInt(4);
1111
writer.writeShort(5);
1212
writer.writeBoolean(true);
13+
writer.writeLong(123);
1314
writer.writeVarInt(1);
15+
writer.writeVarInt(512); //1000000000 -> 11000000 00001000 -128 8
16+
writer.writeVarLong(123);
1417
writer.writeVarLong(123);
1518
writer.writeString('hhh');
1619

@@ -19,12 +22,18 @@ test('blah', () => {
1922
expect(reader.readBoolean()).toBe(true);
2023
expect(reader.readByte()).toBe(1);
2124
expect(reader.readDouble()).toBe(2.1);
22-
// expect(reader.readFloat()).toBe(3.1);
25+
expect(reader.readFloat()).toBe(3.1);
2326
expect(reader.readInt()).toBe(4);
2427
expect(reader.readShort()).toBe(5);
2528
expect(reader.readBoolean()).toBe(true);
29+
expect(reader.readLong()).toBe(123);
2630
expect(reader.readVarInt()).toBe(1);
31+
32+
expect(reader.readByte()).toBe(-128);
33+
expect(reader.readByte()).toBe(8);
34+
2735
expect(reader.readVarLong()).toBe(123);
36+
expect(reader.readUByte()).toBe(123);
2837
expect(reader.readString()).toBe('hhh');
2938
});
3039

0 commit comments

Comments
 (0)