@maplibre/mlt 1.1.1 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decoding/decodingTestUtils.d.ts +75 -0
- package/dist/decoding/decodingTestUtils.js +285 -0
- package/dist/decoding/decodingTestUtils.js.map +1 -0
- package/dist/decoding/decodingUtils.d.ts +5 -8
- package/dist/decoding/decodingUtils.js +24 -51
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.spec.js +85 -69
- package/dist/decoding/decodingUtils.spec.js.map +1 -1
- package/dist/decoding/fsstDecoder.spec.js +52 -35
- package/dist/decoding/fsstDecoder.spec.js.map +1 -1
- package/dist/decoding/geometryDecoder.js +49 -38
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +18 -31
- package/dist/decoding/integerDecodingUtils.js +134 -299
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.spec.js +254 -148
- package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +5 -7
- package/dist/decoding/integerStreamDecoder.js +104 -122
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.spec.js +370 -113
- package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +23 -33
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.spec.js +397 -605
- package/dist/decoding/propertyDecoder.spec.js.map +1 -1
- package/dist/decoding/stringDecoder.d.ts +2 -10
- package/dist/decoding/stringDecoder.js +146 -158
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.spec.js +322 -321
- package/dist/decoding/stringDecoder.spec.js.map +1 -1
- package/dist/decoding/unpackNullableUtils.d.ts +25 -0
- package/dist/decoding/unpackNullableUtils.js +51 -0
- package/dist/decoding/unpackNullableUtils.js.map +1 -0
- package/dist/decoding/unpackNullableUtils.spec.js +71 -0
- package/dist/decoding/unpackNullableUtils.spec.js.map +1 -0
- package/dist/encoding/embeddedTilesetMetadataEncoder.d.ts +16 -0
- package/dist/encoding/embeddedTilesetMetadataEncoder.js +40 -0
- package/dist/encoding/embeddedTilesetMetadataEncoder.js.map +1 -0
- package/dist/encoding/encodingUtils.d.ts +7 -0
- package/dist/encoding/encodingUtils.js +107 -0
- package/dist/encoding/encodingUtils.js.map +1 -0
- package/dist/encoding/fsstEncoder.d.ts +21 -0
- package/dist/encoding/fsstEncoder.js +78 -0
- package/dist/encoding/fsstEncoder.js.map +1 -0
- package/dist/encoding/integerEncodingUtils.d.ts +68 -0
- package/dist/encoding/integerEncodingUtils.js +655 -0
- package/dist/encoding/integerEncodingUtils.js.map +1 -0
- package/dist/encoding/integerStreamEncoder.d.ts +27 -0
- package/dist/encoding/integerStreamEncoder.js +139 -0
- package/dist/encoding/integerStreamEncoder.js.map +1 -0
- package/dist/encoding/packNullableUtils.d.ts +4 -0
- package/dist/encoding/packNullableUtils.js +55 -0
- package/dist/encoding/packNullableUtils.js.map +1 -0
- package/dist/encoding/propertyEncoder.d.ts +78 -0
- package/dist/encoding/propertyEncoder.js +335 -0
- package/dist/encoding/propertyEncoder.js.map +1 -0
- package/dist/encoding/stringEncoder.d.ts +12 -0
- package/dist/encoding/stringEncoder.js +182 -0
- package/dist/encoding/stringEncoder.js.map +1 -0
- package/dist/encoding/zOrderCurveEncoder.d.ts +1 -0
- package/dist/encoding/zOrderCurveEncoder.js +10 -0
- package/dist/encoding/zOrderCurveEncoder.js.map +1 -0
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +28 -4
- package/dist/metadata/tile/streamMetadataDecoder.js +81 -15
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +5 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +33 -45
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.d.ts +1 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js +142 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js.map +1 -0
- package/dist/metadata/tileset/typeMap.d.ts +21 -29
- package/dist/metadata/tileset/typeMap.js +167 -169
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.js +12 -11
- package/dist/mltDecoder.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/flat/stringFlatVector.d.ts +1 -1
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +2 -2
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +2 -2
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +2 -2
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryVector.js +2 -2
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js +4 -4
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +2 -2
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +4 -4
- package/dist/vector/geometry/topologyVector.js +0 -1
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.d.ts +4 -17
- package/dist/vector/geometry/zOrderCurve.js +10 -35
- package/dist/vector/geometry/zOrderCurve.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +21 -10
- package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
- package/dist/vector/variableSizeVector.d.ts +2 -2
- package/dist/vector/variableSizeVector.js +0 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/package.json +6 -8
- package/dist/decoding/geometryDecoder.spec.js +0 -5
- package/dist/decoding/geometryDecoder.spec.js.map +0 -1
- package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +0 -15
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js +0 -27
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +0 -1
- package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +0 -24
- package/dist/metadata/tile/rleEncodedStreamMetadata.js +0 -38
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +0 -1
- package/dist/metadata/tile/streamMetadata.d.ts +0 -29
- package/dist/metadata/tile/streamMetadata.js +0 -82
- package/dist/metadata/tile/streamMetadata.js.map +0 -1
- package/dist/vector/geometry/spaceFillingCurve.d.ts +0 -22
- package/dist/vector/geometry/spaceFillingCurve.js +0 -31
- package/dist/vector/geometry/spaceFillingCurve.js.map +0 -1
- /package/dist/decoding/{geometryDecoder.spec.d.ts → unpackNullableUtils.spec.d.ts} +0 -0
|
@@ -1,127 +1,265 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import
|
|
3
|
-
import { decodeVarintInt64, decodeVarintFloat64, decodeZigZag, decodeZigZagInt64, decodeZigZagFloat64, decodeZigZagValue, decodeZigZagValueInt64, decodeUnsignedRle, decodeUnsignedRleInt64, decodeUnsignedRleFloat64, decodeZigZagDeltaInt64, fastInverseDelta, decodeNullableZigZagDeltaInt64, padWithZerosInt64, padZigZagWithZerosInt64, decodeDeltaRleInt64, decodeUnsignedConstRleInt64, decodeZigZagConstRleInt64, decodeZigZagSequenceRleInt64, decodeZigZagRle, decodeZigZagRleInt64, decodeZigZagRleFloat64, zigZagRleDeltaDecoding, } from "./integerDecodingUtils";
|
|
2
|
+
import { decodeVarintInt32, decodeVarintInt64, decodeVarintFloat64, decodeZigZagInt32, decodeZigZagInt64, decodeZigZagFloat64, decodeZigZagInt32Value, decodeZigZagInt64Value, decodeUnsignedRleInt32, decodeUnsignedRleInt64, decodeUnsignedRleFloat64, decodeZigZagDeltaInt64, decodeDeltaRleInt32, decodeDeltaRleInt64, decodeUnsignedConstRleInt64, decodeZigZagConstRleInt64, decodeZigZagSequenceRleInt64, decodeZigZagRleInt32, decodeZigZagRleInt64, decodeZigZagRleFloat64, decodeZigZagRleDeltaInt32, fastInverseDelta, decodeZigZagSequenceRleInt32, decodeZigZagDeltaInt32, decodeZigZagDeltaFloat64, decodeRleDeltaInt32, decodeComponentwiseDeltaVec2, decodeComponentwiseDeltaVec2Scaled, } from "./integerDecodingUtils";
|
|
4
3
|
import IntWrapper from "./intWrapper";
|
|
5
|
-
import
|
|
4
|
+
import { encodeVarintInt32, encodeVarintInt64, encodeDeltaInt32, encodeDeltaRleInt32, encodeDeltaRleInt64, encodeUnsignedRleFloat64, encodeUnsignedRleInt32, encodeUnsignedRleInt64, encodeZigZagDeltaInt64, encodeZigZagFloat64, encodeZigZagInt32, encodeZigZagInt32Value, encodeZigZagInt64, encodeZigZagInt64Value, encodeZigZagRleFloat64, encodeZigZagRleInt32, encodeZigZagRleInt64, encodeZigZagDeltaInt32, encodeZigZagDeltaFloat64, encodeVarintFloat64, encodeZigZagRleDeltaInt32, encodeRleDeltaInt32, encodeComponentwiseDeltaVec2, encodeComponentwiseDeltaVec2Scaled, } from "../encoding/integerEncodingUtils";
|
|
6
5
|
describe("IntegerDecodingUtils", () => {
|
|
7
|
-
describe("
|
|
8
|
-
it("should decode
|
|
6
|
+
describe("Varint decoding", () => {
|
|
7
|
+
it("should decode Int32", () => {
|
|
8
|
+
const value = 2 ** 10;
|
|
9
|
+
const encoded = encodeVarintInt32(new Int32Array([value]));
|
|
10
|
+
const decoded = decodeVarintInt32(encoded, new IntWrapper(0), 1);
|
|
11
|
+
expect(decoded[0]).toEqual(value);
|
|
12
|
+
});
|
|
13
|
+
it("should decode Int64", () => {
|
|
9
14
|
const value = 2n ** 50n;
|
|
10
|
-
const encoded =
|
|
15
|
+
const encoded = encodeVarintInt64(new BigInt64Array([value]));
|
|
11
16
|
const decoded = decodeVarintInt64(encoded, new IntWrapper(0), 1);
|
|
12
17
|
expect(decoded[0]).toEqual(value);
|
|
13
18
|
});
|
|
14
|
-
|
|
15
|
-
describe("decodeVarintLongToFloat64", () => {
|
|
16
|
-
it("should return valid decoded values", () => {
|
|
19
|
+
it("should return valid decoded values for varint long to float64", () => {
|
|
17
20
|
const value = 2 ** 40;
|
|
18
|
-
const varintEncoded =
|
|
19
|
-
const actualValues = decodeVarintFloat64(varintEncoded,
|
|
21
|
+
const varintEncoded = encodeVarintFloat64(new Float64Array([value]));
|
|
22
|
+
const actualValues = decodeVarintFloat64(varintEncoded, new IntWrapper(0), 1);
|
|
20
23
|
expect(actualValues[0]).toEqual(value);
|
|
21
24
|
});
|
|
22
25
|
});
|
|
23
|
-
describe("
|
|
26
|
+
describe("ZigZag encoding", () => {
|
|
24
27
|
it("should decode zigzag Int32Array", () => {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
const data = new Int32Array([0, 1, 2, 3]);
|
|
29
|
+
encodeZigZagInt32(data);
|
|
30
|
+
decodeZigZagInt32(data);
|
|
31
|
+
expect(Array.from(data)).toEqual([0, 1, 2, 3]);
|
|
28
32
|
});
|
|
29
|
-
});
|
|
30
|
-
describe("decodeZigZagInt64", () => {
|
|
31
33
|
it("should decode zigzag BigInt64Array", () => {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
const data = new BigInt64Array([0n, 1n, 2n, 3n]);
|
|
35
|
+
encodeZigZagInt64(data);
|
|
36
|
+
decodeZigZagInt64(data);
|
|
37
|
+
expect(Array.from(data)).toEqual([0n, 1n, 2n, 3n]);
|
|
35
38
|
});
|
|
36
|
-
|
|
37
|
-
describe("decodeZigZagFloat64", () => {
|
|
38
|
-
it("should return valid decoded values for zigZag Varint decoding", () => {
|
|
39
|
+
it("should decode zigzag Float64Array", () => {
|
|
39
40
|
const value = 2 ** 35;
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
expect(actualValues[0]).toEqual(value);
|
|
41
|
+
const data = new Float64Array([value]);
|
|
42
|
+
encodeZigZagFloat64(data);
|
|
43
|
+
decodeZigZagFloat64(data);
|
|
44
|
+
expect(Array.from(data)).toEqual([value]);
|
|
45
45
|
});
|
|
46
|
-
it("should
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const actualValues = decodeVarintFloat64(varintEncoded, 1, new IntWrapper(0));
|
|
51
|
-
decodeZigZagFloat64(actualValues);
|
|
52
|
-
expect(actualValues[0]).toEqual(value);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe("decodeZigZagValue", () => {
|
|
56
|
-
it("should decode single zigzag values", () => {
|
|
57
|
-
expect(decodeZigZagValue(0)).toBe(0);
|
|
58
|
-
expect(decodeZigZagValue(1)).toBe(-1);
|
|
59
|
-
expect(decodeZigZagValue(2)).toBe(1);
|
|
46
|
+
it("should decode single Int32 zigzag values", () => {
|
|
47
|
+
expect(encodeZigZagInt32Value(decodeZigZagInt32Value(0))).toBe(0);
|
|
48
|
+
expect(encodeZigZagInt32Value(decodeZigZagInt32Value(1))).toBe(1);
|
|
49
|
+
expect(encodeZigZagInt32Value(decodeZigZagInt32Value(2))).toBe(2);
|
|
60
50
|
});
|
|
61
|
-
});
|
|
62
|
-
describe("decodeZigZagValueInt64", () => {
|
|
63
51
|
it("should decode single BigInt zigzag values", () => {
|
|
64
|
-
expect(
|
|
65
|
-
expect(
|
|
52
|
+
expect(encodeZigZagInt64Value(decodeZigZagInt64Value(0n))).toBe(0n);
|
|
53
|
+
expect(encodeZigZagInt64Value(decodeZigZagInt64Value(1n))).toBe(1n);
|
|
66
54
|
});
|
|
67
55
|
});
|
|
68
|
-
describe("RLE
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
56
|
+
describe("RLE decoding", () => {
|
|
57
|
+
describe("Unsigned RLE", () => {
|
|
58
|
+
it("should decode empty unsigned RLE", () => {
|
|
59
|
+
const data = new Int32Array([]);
|
|
60
|
+
const encodedRle = encodeUnsignedRleInt32(data);
|
|
61
|
+
const decoded = decodeUnsignedRleInt32(encodedRle.data, encodedRle.runs, data.length);
|
|
62
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
63
|
+
});
|
|
64
|
+
it("should decode unsigned RLE", () => {
|
|
65
|
+
const data = new Int32Array([10, 10, 20, 20, 20]);
|
|
66
|
+
const encodedRle = encodeUnsignedRleInt32(data);
|
|
67
|
+
const decoded = decodeUnsignedRleInt32(encodedRle.data, encodedRle.runs, data.length);
|
|
68
|
+
expect(Array.from(decoded)).toEqual([10, 10, 20, 20, 20]);
|
|
69
|
+
});
|
|
70
|
+
it("should decode empty unsigned RLE Int64", () => {
|
|
71
|
+
const data = new BigInt64Array([]);
|
|
72
|
+
const encodedRle = encodeUnsignedRleInt64(data);
|
|
73
|
+
const decoded = decodeUnsignedRleInt64(encodedRle.data, encodedRle.runs, data.length);
|
|
74
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
75
|
+
});
|
|
76
|
+
it("should decode unsigned RLE Int64", () => {
|
|
77
|
+
const data = new BigInt64Array([10n, 10n, 20n, 20n, 20n]);
|
|
78
|
+
const encodedRle = encodeUnsignedRleInt64(data);
|
|
79
|
+
const decoded = decodeUnsignedRleInt64(encodedRle.data, encodedRle.runs, data.length);
|
|
80
|
+
expect(Array.from(decoded)).toEqual([10n, 10n, 20n, 20n, 20n]);
|
|
81
|
+
});
|
|
82
|
+
it("should decode empty unsigned RLE Float64", () => {
|
|
83
|
+
const data = new Float64Array([]);
|
|
84
|
+
const encodedRle = encodeUnsignedRleFloat64(data);
|
|
85
|
+
const decoded = decodeUnsignedRleFloat64(encodedRle.data, encodedRle.runs, data.length);
|
|
86
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
87
|
+
});
|
|
88
|
+
it("should decode unsigned RLE Float64", () => {
|
|
89
|
+
const data = new Float64Array([10.5, 10.5, 20.5, 20.5, 20.5]);
|
|
90
|
+
const encodedRle = encodeUnsignedRleFloat64(data);
|
|
91
|
+
const decoded = decodeUnsignedRleFloat64(encodedRle.data, encodedRle.runs, data.length);
|
|
92
|
+
expect(Array.from(decoded)).toEqual([10.5, 10.5, 20.5, 20.5, 20.5]);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe("ZigZag RLE", () => {
|
|
96
|
+
it("should decode empty ZigZag RLE Int32", () => {
|
|
97
|
+
const data = new Int32Array([]);
|
|
98
|
+
const encoded = encodeZigZagRleInt32(data);
|
|
99
|
+
const decoded = decodeZigZagRleInt32(encoded.data, encoded.runs, encoded.numTotalValues);
|
|
100
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
101
|
+
});
|
|
102
|
+
it("should decode ZigZag RLE Int32", () => {
|
|
103
|
+
const encoded = new Int32Array([2, 2, 3, 3, 3]);
|
|
104
|
+
const encodedData = encodeZigZagRleInt32(encoded);
|
|
105
|
+
const decoded = decodeZigZagRleInt32(encodedData.data, encodedData.runs, encodedData.numTotalValues);
|
|
106
|
+
expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);
|
|
107
|
+
});
|
|
108
|
+
it("should decode empty ZigZag RLE Int64", () => {
|
|
109
|
+
const data = new BigInt64Array([]);
|
|
110
|
+
const encoded = encodeZigZagRleInt64(data);
|
|
111
|
+
const decoded = decodeZigZagRleInt64(encoded.data, encoded.runs, encoded.numTotalValues);
|
|
112
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
113
|
+
});
|
|
114
|
+
it("should decode ZigZag RLE Int64", () => {
|
|
115
|
+
const encoded = new BigInt64Array([2n, 2n, 3n, 3n, 3n]);
|
|
116
|
+
const encodedData = encodeZigZagRleInt64(encoded);
|
|
117
|
+
const decoded = decodeZigZagRleInt64(encodedData.data, encodedData.runs, encodedData.numTotalValues);
|
|
118
|
+
expect(Array.from(decoded)).toEqual([2n, 2n, 3n, 3n, 3n]);
|
|
119
|
+
});
|
|
120
|
+
it("should decode empty ZigZag RLE Float64", () => {
|
|
121
|
+
const data = new Float64Array([]);
|
|
122
|
+
const encoded = encodeZigZagRleFloat64(data);
|
|
123
|
+
const decoded = decodeZigZagRleFloat64(encoded.data, encoded.runs, encoded.numTotalValues);
|
|
124
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
125
|
+
});
|
|
126
|
+
it("should decode ZigZag RLE Float64", () => {
|
|
127
|
+
const encoded = new Float64Array([2, 2, 3, 3, 3]);
|
|
128
|
+
const encodedData = encodeZigZagRleFloat64(encoded);
|
|
129
|
+
const decoded = decodeZigZagRleFloat64(encodedData.data, encodedData.runs, encodedData.numTotalValues);
|
|
130
|
+
expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);
|
|
131
|
+
});
|
|
83
132
|
});
|
|
84
133
|
});
|
|
85
|
-
describe("Delta
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
134
|
+
describe("Delta encoding", () => {
|
|
135
|
+
describe("ZigZag Delta", () => {
|
|
136
|
+
it("should decode zigzag delta Int32", () => {
|
|
137
|
+
const data = new Int32Array([1, 2, 3, 5, 6, 7]);
|
|
138
|
+
encodeZigZagDeltaInt32(data);
|
|
139
|
+
decodeZigZagDeltaInt32(data);
|
|
140
|
+
expect(Array.from(data)).toEqual([1, 2, 3, 5, 6, 7]);
|
|
141
|
+
});
|
|
142
|
+
it("should decode zigzag delta Int64", () => {
|
|
143
|
+
const data = new BigInt64Array([1n, 2n, 3n, 5n, 6n, 7n]);
|
|
144
|
+
encodeZigZagDeltaInt64(data);
|
|
145
|
+
decodeZigZagDeltaInt64(data);
|
|
146
|
+
expect(Array.from(data)).toEqual([1n, 2n, 3n, 5n, 6n, 7n]);
|
|
147
|
+
});
|
|
148
|
+
it("should decode zigzag delta Float64", () => {
|
|
149
|
+
const data = new Float64Array([1.0, 2.0, 3.0, 5.0, 6.0, 7.0]);
|
|
150
|
+
encodeZigZagDeltaFloat64(data);
|
|
151
|
+
decodeZigZagDeltaFloat64(data);
|
|
152
|
+
expect(Array.from(data)).toEqual([1.0, 2.0, 3.0, 5.0, 6.0, 7.0]);
|
|
153
|
+
});
|
|
90
154
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
155
|
+
describe("Fast inverse delta", () => {
|
|
156
|
+
it("should apply fast inverse delta", () => {
|
|
157
|
+
const data = new Int32Array([10, 15, 18, 20]);
|
|
158
|
+
fastInverseDelta(data);
|
|
159
|
+
encodeDeltaInt32(data);
|
|
160
|
+
expect(Array.from(data)).toEqual([10, 15, 18, 20]);
|
|
161
|
+
});
|
|
95
162
|
});
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
163
|
+
describe("Componentwise Delta Vec2", () => {
|
|
164
|
+
it("should decode empty array", () => {
|
|
165
|
+
const data = new Int32Array([]);
|
|
166
|
+
const expected = new Int32Array(data);
|
|
167
|
+
encodeComponentwiseDeltaVec2(data);
|
|
168
|
+
decodeComponentwiseDeltaVec2(data);
|
|
169
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
170
|
+
});
|
|
171
|
+
it("should decode single vertex", () => {
|
|
172
|
+
const data = new Int32Array([10, 20]);
|
|
173
|
+
const expected = new Int32Array(data);
|
|
174
|
+
encodeComponentwiseDeltaVec2(data);
|
|
175
|
+
decodeComponentwiseDeltaVec2(data);
|
|
176
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
177
|
+
});
|
|
178
|
+
it("should decode many vertices (unrolled loop test)", () => {
|
|
179
|
+
const data = new Int32Array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]);
|
|
180
|
+
const expected = new Int32Array(data);
|
|
181
|
+
encodeComponentwiseDeltaVec2(data);
|
|
182
|
+
decodeComponentwiseDeltaVec2(data);
|
|
183
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
184
|
+
});
|
|
118
185
|
});
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
186
|
+
describe("Componentwise Delta Vec2 Scaled", () => {
|
|
187
|
+
const scale = 2.0;
|
|
188
|
+
const min = 0;
|
|
189
|
+
const max = 4096;
|
|
190
|
+
it("should decode empty array", () => {
|
|
191
|
+
const data = new Int32Array([]);
|
|
192
|
+
const expected = new Int32Array(data);
|
|
193
|
+
encodeComponentwiseDeltaVec2Scaled(data, scale);
|
|
194
|
+
decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);
|
|
195
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
196
|
+
});
|
|
197
|
+
it("should decode single vertex", () => {
|
|
198
|
+
const data = new Int32Array([100, 200]);
|
|
199
|
+
const expected = new Int32Array(data);
|
|
200
|
+
encodeComponentwiseDeltaVec2Scaled(data, scale);
|
|
201
|
+
decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);
|
|
202
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
203
|
+
});
|
|
204
|
+
it("should decode with different scale", () => {
|
|
205
|
+
const testScale = 10.0;
|
|
206
|
+
const data = new Int32Array([1000, 2000, 1100, 2200]);
|
|
207
|
+
const expected = new Int32Array(data);
|
|
208
|
+
encodeComponentwiseDeltaVec2Scaled(data, testScale);
|
|
209
|
+
decodeComponentwiseDeltaVec2Scaled(data, testScale, min, max);
|
|
210
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
211
|
+
});
|
|
212
|
+
it("should decode many vertices (unrolled loop test)", () => {
|
|
213
|
+
const data = new Int32Array([
|
|
214
|
+
0, 0, 10, 10, 20, 20, 30, 30, 40, 40, 50, 50, 60, 60, 70, 70, 80, 80, 90, 90,
|
|
215
|
+
]);
|
|
216
|
+
const expected = new Int32Array(data);
|
|
217
|
+
encodeComponentwiseDeltaVec2Scaled(data, scale);
|
|
218
|
+
decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);
|
|
219
|
+
expect(Array.from(data)).toEqual(Array.from(expected));
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
describe("Delta RLE", () => {
|
|
223
|
+
it("should decode empty delta RLE Int32", () => {
|
|
224
|
+
const data = new Int32Array([]);
|
|
225
|
+
const encoded = encodeDeltaRleInt32(data);
|
|
226
|
+
const decoded = decodeDeltaRleInt32(encoded.data, encoded.runs, encoded.numValues);
|
|
227
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
228
|
+
});
|
|
229
|
+
it("should decode delta RLE Int32", () => {
|
|
230
|
+
const data = new Int32Array([1, 2, 3, 5, 6, 7]);
|
|
231
|
+
const encoded = encodeDeltaRleInt32(data);
|
|
232
|
+
const decoded = decodeDeltaRleInt32(encoded.data, encoded.runs, encoded.numValues);
|
|
233
|
+
expect(Array.from(decoded)).toEqual([1, 2, 3, 5, 6, 7]);
|
|
234
|
+
});
|
|
235
|
+
it("should decode empty delta RLE Int64", () => {
|
|
236
|
+
const data = new BigInt64Array([]);
|
|
237
|
+
const encoded = encodeDeltaRleInt64(data);
|
|
238
|
+
const decoded = decodeDeltaRleInt64(encoded.data, encoded.runs, encoded.numValues);
|
|
239
|
+
expect(Array.from(decoded)).toEqual([]);
|
|
240
|
+
});
|
|
241
|
+
it("should decode delta RLE Int64", () => {
|
|
242
|
+
const data = new BigInt64Array([1n, 2n, 3n, 5n, 6n, 7n]);
|
|
243
|
+
const encoded = encodeDeltaRleInt64(data);
|
|
244
|
+
const decoded = decodeDeltaRleInt64(encoded.data, encoded.runs, encoded.numValues);
|
|
245
|
+
expect(Array.from(decoded)).toEqual([1n, 2n, 3n, 5n, 6n, 7n]);
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
describe("ZigZag RLE Delta", () => {
|
|
249
|
+
it("should decode zigzag RLE delta", () => {
|
|
250
|
+
const data = new Int32Array([1, 2, 3, 4]);
|
|
251
|
+
const encoded = encodeZigZagRleDeltaInt32(data);
|
|
252
|
+
const decoded = decodeZigZagRleDeltaInt32(encoded.data, encoded.runs, encoded.numTotalValues);
|
|
253
|
+
// The decoder is adding a 0 at the start
|
|
254
|
+
expect(Array.from(decoded)).toEqual([0, 1, 2, 3, 4]);
|
|
255
|
+
});
|
|
256
|
+
it("should decode RLE delta", () => {
|
|
257
|
+
const data = new Int32Array([1, 2, 3, 4]);
|
|
258
|
+
const encoded = encodeRleDeltaInt32(data);
|
|
259
|
+
const decoded = decodeRleDeltaInt32(encoded.data, encoded.runs, encoded.numTotalValues);
|
|
260
|
+
// The decoder is adding a 0 at the start
|
|
261
|
+
expect(Array.from(decoded)).toEqual([0, 1, 2, 3, 4]);
|
|
262
|
+
});
|
|
125
263
|
});
|
|
126
264
|
});
|
|
127
265
|
describe("Const and Sequence RLE", () => {
|
|
@@ -130,65 +268,33 @@ describe("IntegerDecodingUtils", () => {
|
|
|
130
268
|
expect(decodeUnsignedConstRleInt64(data)).toBe(42n);
|
|
131
269
|
});
|
|
132
270
|
it("should decode zigzag const RLE Int64", () => {
|
|
133
|
-
const data = new BigInt64Array([5n,
|
|
271
|
+
const data = new BigInt64Array([5n, encodeZigZagInt64Value(2n)]);
|
|
134
272
|
expect(decodeZigZagConstRleInt64(data)).toBe(2n);
|
|
135
273
|
});
|
|
274
|
+
it("should decode zigzag sequence RLE Int32", () => {
|
|
275
|
+
const data = new Int32Array([5, 2]);
|
|
276
|
+
const [base, delta] = decodeZigZagSequenceRleInt32(data);
|
|
277
|
+
expect(base).toBe(1);
|
|
278
|
+
expect(delta).toBe(1);
|
|
279
|
+
});
|
|
280
|
+
it("should decode zigzag sequence RLE Int32 with delta", () => {
|
|
281
|
+
const data = new Int32Array([5, 2, 5, 2]);
|
|
282
|
+
const [base, delta] = decodeZigZagSequenceRleInt32(data);
|
|
283
|
+
expect(base).toBe(-3);
|
|
284
|
+
expect(delta).toBe(1);
|
|
285
|
+
});
|
|
136
286
|
it("should decode zigzag sequence RLE Int64", () => {
|
|
137
287
|
const data = new BigInt64Array([5n, 2n]);
|
|
138
288
|
const [base, delta] = decodeZigZagSequenceRleInt64(data);
|
|
139
289
|
expect(base).toBe(1n);
|
|
140
290
|
expect(delta).toBe(1n);
|
|
141
291
|
});
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
expect(Array.from(decoded)).toEqual([10n, 10n, 20n, 20n, 20n]);
|
|
148
|
-
});
|
|
149
|
-
it("should decode RLE Float64", () => {
|
|
150
|
-
const encoded = new Float64Array([2, 3, 10.5, 20.5]);
|
|
151
|
-
const decoded = decodeUnsignedRleFloat64(encoded, 2, 5);
|
|
152
|
-
expect(Array.from(decoded)).toEqual([10.5, 10.5, 20.5, 20.5, 20.5]);
|
|
153
|
-
});
|
|
154
|
-
it("should decode ZigZag RLE Int32", () => {
|
|
155
|
-
const encoded = new Int32Array([2, 3, 4, 6]);
|
|
156
|
-
const decoded = decodeZigZagRle(encoded, 2, 5);
|
|
157
|
-
expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);
|
|
158
|
-
});
|
|
159
|
-
it("should decode ZigZag RLE Int64", () => {
|
|
160
|
-
const encoded = new BigInt64Array([2n, 3n, 4n, 6n]);
|
|
161
|
-
const decoded = decodeZigZagRleInt64(encoded, 2, 5);
|
|
162
|
-
expect(Array.from(decoded)).toEqual([2n, 2n, 3n, 3n, 3n]);
|
|
163
|
-
});
|
|
164
|
-
it("should decode ZigZag RLE Float64", () => {
|
|
165
|
-
const encoded = new Float64Array([2, 3, 4, 6]);
|
|
166
|
-
const decoded = decodeZigZagRleFloat64(encoded, 2, 5);
|
|
167
|
-
expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
describe("ZigZag RLE Delta", () => {
|
|
171
|
-
it("should decode zigzag RLE delta", () => {
|
|
172
|
-
const data = new Int32Array([2, 2, 2, 2]);
|
|
173
|
-
const decoded = zigZagRleDeltaDecoding(data, 2, 4);
|
|
174
|
-
expect(decoded.length).toBe(5);
|
|
292
|
+
it("should decode zigzag sequence RLE Int64 with delta", () => {
|
|
293
|
+
const data = new BigInt64Array([5n, 2n, 5n, 2n]);
|
|
294
|
+
const [base, delta] = decodeZigZagSequenceRleInt64(data);
|
|
295
|
+
expect(base).toBe(-3n);
|
|
296
|
+
expect(delta).toBe(1n);
|
|
175
297
|
});
|
|
176
298
|
});
|
|
177
299
|
});
|
|
178
|
-
function varintEncodeNum(value) {
|
|
179
|
-
const v = varint.encode(value);
|
|
180
|
-
return new Uint8Array(v);
|
|
181
|
-
}
|
|
182
|
-
function varintEncodeBigInt(value) {
|
|
183
|
-
const result = [];
|
|
184
|
-
let num = value;
|
|
185
|
-
while (num > 0n) {
|
|
186
|
-
let byte = Number(num & 0x7fn);
|
|
187
|
-
num >>= 7n;
|
|
188
|
-
if (num > 0n)
|
|
189
|
-
byte |= 0x80;
|
|
190
|
-
result.push(byte);
|
|
191
|
-
}
|
|
192
|
-
return new Uint8Array(result.length > 0 ? result : [0]);
|
|
193
|
-
}
|
|
194
300
|
//# sourceMappingURL=integerDecodingUtils.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integerDecodingUtils.spec.js","sourceRoot":"","sources":["../../src/decoding/integerDecodingUtils.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport varint from \"varint\";\nimport {\n decodeVarintInt64,\n decodeVarintFloat64,\n decodeZigZag,\n decodeZigZagInt64,\n decodeZigZagFloat64,\n decodeZigZagValue,\n decodeZigZagValueInt64,\n decodeUnsignedRle,\n decodeUnsignedRleInt64,\n decodeUnsignedRleFloat64,\n decodeZigZagDeltaInt64,\n fastInverseDelta,\n decodeNullableZigZagDeltaInt64,\n padWithZerosInt64,\n padZigZagWithZerosInt64,\n decodeDeltaRleInt64,\n decodeUnsignedConstRleInt64,\n decodeZigZagConstRleInt64,\n decodeZigZagSequenceRleInt64,\n decodeZigZagRle,\n decodeZigZagRleInt64,\n decodeZigZagRleFloat64,\n zigZagRleDeltaDecoding,\n} from \"./integerDecodingUtils\";\nimport IntWrapper from \"./intWrapper\";\nimport BitVector from \"../vector/flat/bitVector\";\n\ndescribe(\"IntegerDecodingUtils\", () => {\n describe(\"decodeVarintInt64\", () => {\n it(\"should decode BigInt values\", () => {\n const value = 2n ** 50n;\n const encoded = varintEncodeBigInt(value);\n const decoded = decodeVarintInt64(encoded, new IntWrapper(0), 1);\n expect(decoded[0]).toEqual(value);\n });\n });\n\n describe(\"decodeVarintLongToFloat64\", () => {\n it(\"should return valid decoded values\", () => {\n const value = 2 ** 40;\n const varintEncoded = varintEncodeNum(value);\n const actualValues = decodeVarintFloat64(varintEncoded, 1, new IntWrapper(0));\n expect(actualValues[0]).toEqual(value);\n });\n });\n\n describe(\"decodeZigZag\", () => {\n it(\"should decode zigzag Int32Array\", () => {\n const encoded = new Int32Array([0, 1, 2, 3]);\n decodeZigZag(encoded);\n expect(Array.from(encoded)).toEqual([0, -1, 1, -2]);\n });\n });\n\n describe(\"decodeZigZagInt64\", () => {\n it(\"should decode zigzag BigInt64Array\", () => {\n const encoded = new BigInt64Array([0n, 1n, 2n, 3n]);\n decodeZigZagInt64(encoded);\n expect(Array.from(encoded)).toEqual([0n, -1n, 1n, -2n]);\n });\n });\n\n describe(\"decodeZigZagFloat64\", () => {\n it(\"should return valid decoded values for zigZag Varint decoding\", () => {\n const value = 2 ** 35;\n const zigZagValue = value * 2;\n const varintEncoded = varintEncodeNum(zigZagValue);\n const actualValues = decodeVarintFloat64(varintEncoded, 1, new IntWrapper(0));\n decodeZigZagFloat64(actualValues);\n expect(actualValues[0]).toEqual(value);\n });\n\n it(\"should return valid decoded values for zigZag Varint decoding\", () => {\n const value = 3298190;\n const zigZagValue = value << 1;\n const varintEncoded = varintEncodeNum(zigZagValue);\n const actualValues = decodeVarintFloat64(varintEncoded, 1, new IntWrapper(0));\n decodeZigZagFloat64(actualValues);\n expect(actualValues[0]).toEqual(value);\n });\n });\n\n describe(\"decodeZigZagValue\", () => {\n it(\"should decode single zigzag values\", () => {\n expect(decodeZigZagValue(0)).toBe(0);\n expect(decodeZigZagValue(1)).toBe(-1);\n expect(decodeZigZagValue(2)).toBe(1);\n });\n });\n\n describe(\"decodeZigZagValueInt64\", () => {\n it(\"should decode single BigInt zigzag values\", () => {\n expect(decodeZigZagValueInt64(0n)).toBe(0n);\n expect(decodeZigZagValueInt64(1n)).toBe(-1n);\n });\n });\n\n describe(\"RLE Decoding\", () => {\n it(\"should decode unsigned RLE\", () => {\n const encoded = new Int32Array([2, 3, 10, 20]);\n const decoded = decodeUnsignedRle(encoded, 2, 5); //starts hanging on this test\n expect(Array.from(decoded)).toEqual([10, 10, 20, 20, 20]);\n });\n\n it(\"should decode unsigned RLE Int64\", () => {\n const encoded = new BigInt64Array([2n, 3n, 10n, 20n]);\n const decoded = decodeUnsignedRleInt64(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([10n, 10n, 20n, 20n, 20n]);\n });\n\n it(\"should decode unsigned RLE Float64\", () => {\n const encoded = new Float64Array([2, 3, 10.5, 20.5]);\n const decoded = decodeUnsignedRleFloat64(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([10.5, 10.5, 20.5, 20.5, 20.5]);\n });\n });\n\n describe(\"Delta Decoding\", () => {\n it(\"should decode zigzag delta Int64\", () => {\n const data = new BigInt64Array([2n, 2n, 2n]);\n decodeZigZagDeltaInt64(data);\n expect(Array.from(data)).toEqual([1n, 2n, 3n]);\n });\n\n it(\"should apply fast inverse delta\", () => {\n const data = new Int32Array([10, 5, 3, 2]);\n fastInverseDelta(data);\n expect(Array.from(data)).toEqual([10, 15, 18, 20]);\n });\n });\n\n describe(\"Nullable Decoding\", () => {\n it(\"should decode nullable zigzag delta Int64\", () => {\n const bitVectorData = new Uint8Array([0b00000011]);\n const bitVector = new BitVector(bitVectorData, 2);\n const data = new BigInt64Array([2n, 2n]);\n const decoded = decodeNullableZigZagDeltaInt64(bitVector, data);\n expect(Array.from(decoded)).toEqual([1n, 2n]);\n });\n\n it(\"should pad Int64 with zeros\", () => {\n const bitVectorData = new Uint8Array([0b00000011]);\n const bitVector = new BitVector(bitVectorData, 3);\n const data = new BigInt64Array([10n, 20n]);\n const decoded = padWithZerosInt64(bitVector, data);\n expect(Array.from(decoded)).toEqual([10n, 20n, 0n]);\n });\n\n it(\"should pad zigzag Int64 with zeros\", () => {\n const bitVectorData = new Uint8Array([0b00000101]);\n const bitVector = new BitVector(bitVectorData, 3);\n const data = new BigInt64Array([2n, 4n]);\n const decoded = padZigZagWithZerosInt64(bitVector, data);\n expect(Array.from(decoded)).toEqual([1n, 0n, 2n]);\n });\n });\n\n describe(\"Delta RLE\", () => {\n it(\"should decode delta RLE Int64\", () => {\n const data = new BigInt64Array([3n, 2n]);\n const decoded = decodeDeltaRleInt64(data, 1, 3);\n expect(Array.from(decoded)).toEqual([1n, 2n, 3n]);\n });\n });\n\n describe(\"Const and Sequence RLE\", () => {\n it(\"should decode unsigned const RLE Int64\", () => {\n const data = new BigInt64Array([5n, 42n]);\n expect(decodeUnsignedConstRleInt64(data)).toBe(42n);\n });\n\n it(\"should decode zigzag const RLE Int64\", () => {\n const data = new BigInt64Array([5n, 4n]);\n expect(decodeZigZagConstRleInt64(data)).toBe(2n);\n });\n\n it(\"should decode zigzag sequence RLE Int64\", () => {\n const data = new BigInt64Array([5n, 2n]);\n const [base, delta] = decodeZigZagSequenceRleInt64(data);\n expect(base).toBe(1n);\n expect(delta).toBe(1n);\n });\n });\n\n describe(\"decode RLE\", () => {\n it(\"should decode RLE Int64\", () => {\n const encoded = new BigInt64Array([2n, 3n, 10n, 20n]);\n const decoded = decodeUnsignedRleInt64(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([10n, 10n, 20n, 20n, 20n]);\n });\n\n it(\"should decode RLE Float64\", () => {\n const encoded = new Float64Array([2, 3, 10.5, 20.5]);\n const decoded = decodeUnsignedRleFloat64(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([10.5, 10.5, 20.5, 20.5, 20.5]);\n });\n\n it(\"should decode ZigZag RLE Int32\", () => {\n const encoded = new Int32Array([2, 3, 4, 6]);\n const decoded = decodeZigZagRle(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);\n });\n\n it(\"should decode ZigZag RLE Int64\", () => {\n const encoded = new BigInt64Array([2n, 3n, 4n, 6n]);\n const decoded = decodeZigZagRleInt64(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([2n, 2n, 3n, 3n, 3n]);\n });\n\n it(\"should decode ZigZag RLE Float64\", () => {\n const encoded = new Float64Array([2, 3, 4, 6]);\n const decoded = decodeZigZagRleFloat64(encoded, 2, 5);\n expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);\n });\n });\n\n describe(\"ZigZag RLE Delta\", () => {\n it(\"should decode zigzag RLE delta\", () => {\n const data = new Int32Array([2, 2, 2, 2]);\n const decoded = zigZagRleDeltaDecoding(data, 2, 4);\n expect(decoded.length).toBe(5);\n });\n });\n});\n\nfunction varintEncodeNum(value: number) {\n const v = varint.encode(value);\n return new Uint8Array(v);\n}\n\nfunction varintEncodeBigInt(value: bigint): Uint8Array {\n const result: number[] = [];\n let num = value;\n while (num > 0n) {\n let byte = Number(num & 0x7fn);\n num >>= 7n;\n if (num > 0n) byte |= 0x80;\n result.push(byte);\n }\n return new Uint8Array(result.length > 0 ? result : [0]);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"integerDecodingUtils.spec.js","sourceRoot":"","sources":["../../src/decoding/integerDecodingUtils.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport {\n decodeVarintInt32,\n decodeVarintInt64,\n decodeVarintFloat64,\n decodeZigZagInt32,\n decodeZigZagInt64,\n decodeZigZagFloat64,\n decodeZigZagInt32Value,\n decodeZigZagInt64Value,\n decodeUnsignedRleInt32,\n decodeUnsignedRleInt64,\n decodeUnsignedRleFloat64,\n decodeZigZagDeltaInt64,\n decodeDeltaRleInt32,\n decodeDeltaRleInt64,\n decodeUnsignedConstRleInt64,\n decodeZigZagConstRleInt64,\n decodeZigZagSequenceRleInt64,\n decodeZigZagRleInt32,\n decodeZigZagRleInt64,\n decodeZigZagRleFloat64,\n decodeZigZagRleDeltaInt32,\n fastInverseDelta,\n decodeZigZagSequenceRleInt32,\n decodeZigZagDeltaInt32,\n decodeZigZagDeltaFloat64,\n decodeRleDeltaInt32,\n decodeComponentwiseDeltaVec2,\n decodeComponentwiseDeltaVec2Scaled,\n} from \"./integerDecodingUtils\";\nimport IntWrapper from \"./intWrapper\";\nimport {\n encodeVarintInt32,\n encodeVarintInt64,\n encodeDeltaInt32,\n encodeDeltaRleInt32,\n encodeDeltaRleInt64,\n encodeUnsignedRleFloat64,\n encodeUnsignedRleInt32,\n encodeUnsignedRleInt64,\n encodeZigZagDeltaInt64,\n encodeZigZagFloat64,\n encodeZigZagInt32,\n encodeZigZagInt32Value,\n encodeZigZagInt64,\n encodeZigZagInt64Value,\n encodeZigZagRleFloat64,\n encodeZigZagRleInt32,\n encodeZigZagRleInt64,\n encodeZigZagDeltaInt32,\n encodeZigZagDeltaFloat64,\n encodeVarintFloat64,\n encodeZigZagRleDeltaInt32,\n encodeRleDeltaInt32,\n encodeComponentwiseDeltaVec2,\n encodeComponentwiseDeltaVec2Scaled,\n} from \"../encoding/integerEncodingUtils\";\n\ndescribe(\"IntegerDecodingUtils\", () => {\n describe(\"Varint decoding\", () => {\n it(\"should decode Int32\", () => {\n const value = 2 ** 10;\n const encoded = encodeVarintInt32(new Int32Array([value]));\n const decoded = decodeVarintInt32(encoded, new IntWrapper(0), 1);\n expect(decoded[0]).toEqual(value);\n });\n\n it(\"should decode Int64\", () => {\n const value = 2n ** 50n;\n const encoded = encodeVarintInt64(new BigInt64Array([value]));\n const decoded = decodeVarintInt64(encoded, new IntWrapper(0), 1);\n expect(decoded[0]).toEqual(value);\n });\n\n it(\"should return valid decoded values for varint long to float64\", () => {\n const value = 2 ** 40;\n const varintEncoded = encodeVarintFloat64(new Float64Array([value]));\n const actualValues = decodeVarintFloat64(varintEncoded, new IntWrapper(0), 1);\n expect(actualValues[0]).toEqual(value);\n });\n });\n\n describe(\"ZigZag encoding\", () => {\n it(\"should decode zigzag Int32Array\", () => {\n const data = new Int32Array([0, 1, 2, 3]);\n encodeZigZagInt32(data);\n decodeZigZagInt32(data);\n expect(Array.from(data)).toEqual([0, 1, 2, 3]);\n });\n\n it(\"should decode zigzag BigInt64Array\", () => {\n const data = new BigInt64Array([0n, 1n, 2n, 3n]);\n encodeZigZagInt64(data);\n decodeZigZagInt64(data);\n expect(Array.from(data)).toEqual([0n, 1n, 2n, 3n]);\n });\n\n it(\"should decode zigzag Float64Array\", () => {\n const value = 2 ** 35;\n const data = new Float64Array([value]);\n encodeZigZagFloat64(data);\n decodeZigZagFloat64(data);\n expect(Array.from(data)).toEqual([value]);\n });\n\n it(\"should decode single Int32 zigzag values\", () => {\n expect(encodeZigZagInt32Value(decodeZigZagInt32Value(0))).toBe(0);\n expect(encodeZigZagInt32Value(decodeZigZagInt32Value(1))).toBe(1);\n expect(encodeZigZagInt32Value(decodeZigZagInt32Value(2))).toBe(2);\n });\n\n it(\"should decode single BigInt zigzag values\", () => {\n expect(encodeZigZagInt64Value(decodeZigZagInt64Value(0n))).toBe(0n);\n expect(encodeZigZagInt64Value(decodeZigZagInt64Value(1n))).toBe(1n);\n });\n });\n\n describe(\"RLE decoding\", () => {\n describe(\"Unsigned RLE\", () => {\n it(\"should decode empty unsigned RLE\", () => {\n const data = new Int32Array([]);\n const encodedRle = encodeUnsignedRleInt32(data);\n const decoded = decodeUnsignedRleInt32(encodedRle.data, encodedRle.runs, data.length);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode unsigned RLE\", () => {\n const data = new Int32Array([10, 10, 20, 20, 20]);\n const encodedRle = encodeUnsignedRleInt32(data);\n const decoded = decodeUnsignedRleInt32(encodedRle.data, encodedRle.runs, data.length);\n expect(Array.from(decoded)).toEqual([10, 10, 20, 20, 20]);\n });\n\n it(\"should decode empty unsigned RLE Int64\", () => {\n const data = new BigInt64Array([]);\n const encodedRle = encodeUnsignedRleInt64(data);\n const decoded = decodeUnsignedRleInt64(encodedRle.data, encodedRle.runs, data.length);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode unsigned RLE Int64\", () => {\n const data = new BigInt64Array([10n, 10n, 20n, 20n, 20n]);\n const encodedRle = encodeUnsignedRleInt64(data);\n const decoded = decodeUnsignedRleInt64(encodedRle.data, encodedRle.runs, data.length);\n expect(Array.from(decoded)).toEqual([10n, 10n, 20n, 20n, 20n]);\n });\n\n it(\"should decode empty unsigned RLE Float64\", () => {\n const data = new Float64Array([]);\n const encodedRle = encodeUnsignedRleFloat64(data);\n const decoded = decodeUnsignedRleFloat64(encodedRle.data, encodedRle.runs, data.length);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode unsigned RLE Float64\", () => {\n const data = new Float64Array([10.5, 10.5, 20.5, 20.5, 20.5]);\n const encodedRle = encodeUnsignedRleFloat64(data);\n const decoded = decodeUnsignedRleFloat64(encodedRle.data, encodedRle.runs, data.length);\n expect(Array.from(decoded)).toEqual([10.5, 10.5, 20.5, 20.5, 20.5]);\n });\n });\n\n describe(\"ZigZag RLE\", () => {\n it(\"should decode empty ZigZag RLE Int32\", () => {\n const data = new Int32Array([]);\n const encoded = encodeZigZagRleInt32(data);\n const decoded = decodeZigZagRleInt32(encoded.data, encoded.runs, encoded.numTotalValues);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode ZigZag RLE Int32\", () => {\n const encoded = new Int32Array([2, 2, 3, 3, 3]);\n const encodedData = encodeZigZagRleInt32(encoded);\n const decoded = decodeZigZagRleInt32(encodedData.data, encodedData.runs, encodedData.numTotalValues);\n expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);\n });\n\n it(\"should decode empty ZigZag RLE Int64\", () => {\n const data = new BigInt64Array([]);\n const encoded = encodeZigZagRleInt64(data);\n const decoded = decodeZigZagRleInt64(encoded.data, encoded.runs, encoded.numTotalValues);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode ZigZag RLE Int64\", () => {\n const encoded = new BigInt64Array([2n, 2n, 3n, 3n, 3n]);\n const encodedData = encodeZigZagRleInt64(encoded);\n const decoded = decodeZigZagRleInt64(encodedData.data, encodedData.runs, encodedData.numTotalValues);\n expect(Array.from(decoded)).toEqual([2n, 2n, 3n, 3n, 3n]);\n });\n\n it(\"should decode empty ZigZag RLE Float64\", () => {\n const data = new Float64Array([]);\n const encoded = encodeZigZagRleFloat64(data);\n const decoded = decodeZigZagRleFloat64(encoded.data, encoded.runs, encoded.numTotalValues);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode ZigZag RLE Float64\", () => {\n const encoded = new Float64Array([2, 2, 3, 3, 3]);\n const encodedData = encodeZigZagRleFloat64(encoded);\n const decoded = decodeZigZagRleFloat64(encodedData.data, encodedData.runs, encodedData.numTotalValues);\n expect(Array.from(decoded)).toEqual([2, 2, 3, 3, 3]);\n });\n });\n });\n\n describe(\"Delta encoding\", () => {\n describe(\"ZigZag Delta\", () => {\n it(\"should decode zigzag delta Int32\", () => {\n const data = new Int32Array([1, 2, 3, 5, 6, 7]);\n encodeZigZagDeltaInt32(data);\n decodeZigZagDeltaInt32(data);\n expect(Array.from(data)).toEqual([1, 2, 3, 5, 6, 7]);\n });\n\n it(\"should decode zigzag delta Int64\", () => {\n const data = new BigInt64Array([1n, 2n, 3n, 5n, 6n, 7n]);\n encodeZigZagDeltaInt64(data);\n decodeZigZagDeltaInt64(data);\n expect(Array.from(data)).toEqual([1n, 2n, 3n, 5n, 6n, 7n]);\n });\n\n it(\"should decode zigzag delta Float64\", () => {\n const data = new Float64Array([1.0, 2.0, 3.0, 5.0, 6.0, 7.0]);\n encodeZigZagDeltaFloat64(data);\n decodeZigZagDeltaFloat64(data);\n expect(Array.from(data)).toEqual([1.0, 2.0, 3.0, 5.0, 6.0, 7.0]);\n });\n });\n\n describe(\"Fast inverse delta\", () => {\n it(\"should apply fast inverse delta\", () => {\n const data = new Int32Array([10, 15, 18, 20]);\n fastInverseDelta(data);\n encodeDeltaInt32(data);\n expect(Array.from(data)).toEqual([10, 15, 18, 20]);\n });\n });\n\n describe(\"Componentwise Delta Vec2\", () => {\n it(\"should decode empty array\", () => {\n const data = new Int32Array([]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2(data);\n decodeComponentwiseDeltaVec2(data);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n\n it(\"should decode single vertex\", () => {\n const data = new Int32Array([10, 20]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2(data);\n decodeComponentwiseDeltaVec2(data);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n\n it(\"should decode many vertices (unrolled loop test)\", () => {\n const data = new Int32Array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2(data);\n decodeComponentwiseDeltaVec2(data);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n });\n\n describe(\"Componentwise Delta Vec2 Scaled\", () => {\n const scale = 2.0;\n const min = 0;\n const max = 4096;\n\n it(\"should decode empty array\", () => {\n const data = new Int32Array([]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2Scaled(data, scale);\n decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n\n it(\"should decode single vertex\", () => {\n const data = new Int32Array([100, 200]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2Scaled(data, scale);\n decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n\n it(\"should decode with different scale\", () => {\n const testScale = 10.0;\n const data = new Int32Array([1000, 2000, 1100, 2200]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2Scaled(data, testScale);\n decodeComponentwiseDeltaVec2Scaled(data, testScale, min, max);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n\n it(\"should decode many vertices (unrolled loop test)\", () => {\n const data = new Int32Array([\n 0, 0, 10, 10, 20, 20, 30, 30, 40, 40, 50, 50, 60, 60, 70, 70, 80, 80, 90, 90,\n ]);\n const expected = new Int32Array(data);\n encodeComponentwiseDeltaVec2Scaled(data, scale);\n decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);\n expect(Array.from(data)).toEqual(Array.from(expected));\n });\n });\n\n describe(\"Delta RLE\", () => {\n it(\"should decode empty delta RLE Int32\", () => {\n const data = new Int32Array([]);\n const encoded = encodeDeltaRleInt32(data);\n const decoded = decodeDeltaRleInt32(encoded.data, encoded.runs, encoded.numValues);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode delta RLE Int32\", () => {\n const data = new Int32Array([1, 2, 3, 5, 6, 7]);\n const encoded = encodeDeltaRleInt32(data);\n const decoded = decodeDeltaRleInt32(encoded.data, encoded.runs, encoded.numValues);\n expect(Array.from(decoded)).toEqual([1, 2, 3, 5, 6, 7]);\n });\n\n it(\"should decode empty delta RLE Int64\", () => {\n const data = new BigInt64Array([]);\n const encoded = encodeDeltaRleInt64(data);\n const decoded = decodeDeltaRleInt64(encoded.data, encoded.runs, encoded.numValues);\n expect(Array.from(decoded)).toEqual([]);\n });\n\n it(\"should decode delta RLE Int64\", () => {\n const data = new BigInt64Array([1n, 2n, 3n, 5n, 6n, 7n]);\n const encoded = encodeDeltaRleInt64(data);\n const decoded = decodeDeltaRleInt64(encoded.data, encoded.runs, encoded.numValues);\n expect(Array.from(decoded)).toEqual([1n, 2n, 3n, 5n, 6n, 7n]);\n });\n });\n\n describe(\"ZigZag RLE Delta\", () => {\n it(\"should decode zigzag RLE delta\", () => {\n const data = new Int32Array([1, 2, 3, 4]);\n const encoded = encodeZigZagRleDeltaInt32(data);\n const decoded = decodeZigZagRleDeltaInt32(encoded.data, encoded.runs, encoded.numTotalValues);\n // The decoder is adding a 0 at the start\n expect(Array.from(decoded)).toEqual([0, 1, 2, 3, 4]);\n });\n\n it(\"should decode RLE delta\", () => {\n const data = new Int32Array([1, 2, 3, 4]);\n const encoded = encodeRleDeltaInt32(data);\n const decoded = decodeRleDeltaInt32(encoded.data, encoded.runs, encoded.numTotalValues);\n // The decoder is adding a 0 at the start\n expect(Array.from(decoded)).toEqual([0, 1, 2, 3, 4]);\n });\n });\n });\n\n describe(\"Const and Sequence RLE\", () => {\n it(\"should decode unsigned const RLE Int64\", () => {\n const data = new BigInt64Array([5n, 42n]);\n expect(decodeUnsignedConstRleInt64(data)).toBe(42n);\n });\n\n it(\"should decode zigzag const RLE Int64\", () => {\n const data = new BigInt64Array([5n, encodeZigZagInt64Value(2n)]);\n expect(decodeZigZagConstRleInt64(data)).toBe(2n);\n });\n\n it(\"should decode zigzag sequence RLE Int32\", () => {\n const data = new Int32Array([5, 2]);\n const [base, delta] = decodeZigZagSequenceRleInt32(data);\n expect(base).toBe(1);\n expect(delta).toBe(1);\n });\n\n it(\"should decode zigzag sequence RLE Int32 with delta\", () => {\n const data = new Int32Array([5, 2, 5, 2]);\n const [base, delta] = decodeZigZagSequenceRleInt32(data);\n expect(base).toBe(-3);\n expect(delta).toBe(1);\n });\n\n it(\"should decode zigzag sequence RLE Int64\", () => {\n const data = new BigInt64Array([5n, 2n]);\n const [base, delta] = decodeZigZagSequenceRleInt64(data);\n expect(base).toBe(1n);\n expect(delta).toBe(1n);\n });\n\n it(\"should decode zigzag sequence RLE Int64 with delta\", () => {\n const data = new BigInt64Array([5n, 2n, 5n, 2n]);\n const [base, delta] = decodeZigZagSequenceRleInt64(data);\n expect(base).toBe(-3n);\n expect(delta).toBe(1n);\n });\n });\n});\n"]}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { type StreamMetadata } from "../metadata/tile/streamMetadata";
|
|
2
1
|
import type IntWrapper from "./intWrapper";
|
|
2
|
+
import { type StreamMetadata } from "../metadata/tile/streamMetadataDecoder";
|
|
3
3
|
import BitVector from "../vector/flat/bitVector";
|
|
4
4
|
import { VectorType } from "../vector/vectorType";
|
|
5
5
|
import type GeometryScaling from "./geometryScaling";
|
|
6
|
-
export declare function decodeIntStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean, scalingData?: GeometryScaling): Int32Array;
|
|
7
|
-
export declare function decodeLengthStreamToOffsetBuffer(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata):
|
|
6
|
+
export declare function decodeIntStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean, scalingData?: GeometryScaling, nullabilityBuffer?: BitVector): Int32Array;
|
|
7
|
+
export declare function decodeLengthStreamToOffsetBuffer(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Uint32Array;
|
|
8
8
|
export declare function decodeConstIntStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean): number;
|
|
9
9
|
export declare function decodeSequenceIntStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): [baseValue: number, delta: number];
|
|
10
10
|
export declare function decodeSequenceLongStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): [baseValue: bigint, delta: bigint];
|
|
11
|
-
export declare function decodeLongStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean): BigInt64Array;
|
|
11
|
+
export declare function decodeLongStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean, nullabilityBuffer?: BitVector): BigInt64Array;
|
|
12
12
|
export declare function decodeLongFloat64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean): Float64Array;
|
|
13
13
|
export declare function decodeConstLongStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean): bigint;
|
|
14
|
-
export declare function
|
|
15
|
-
export declare function decodeNullableIntStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean, bitVector: BitVector): Int32Array;
|
|
16
|
-
export declare function decodeNullableLongStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, isSigned: boolean, bitVector: BitVector): BigInt64Array;
|
|
14
|
+
export declare function decodeFloat64(values: Float64Array, streamMetadata: StreamMetadata, isSigned: boolean): Float64Array;
|
|
17
15
|
export declare function getVectorType(streamMetadata: StreamMetadata, sizeOrNullabilityBuffer: number | BitVector, data: Uint8Array, offset: IntWrapper): VectorType;
|