@maplibre/mlt 1.1.6 → 1.1.8
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/bigEndianDecode.d.ts +13 -0
- package/dist/decoding/bigEndianDecode.js +50 -0
- package/dist/decoding/bigEndianDecode.js.map +1 -0
- package/dist/decoding/decodingTestUtils.d.ts +2 -2
- package/dist/decoding/decodingTestUtils.js +20 -21
- package/dist/decoding/decodingTestUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.js +4 -2
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/fastPforDecoder.d.ts +47 -0
- package/dist/decoding/fastPforDecoder.js +482 -0
- package/dist/decoding/fastPforDecoder.js.map +1 -0
- package/dist/decoding/fastPforShared.d.ts +7 -0
- package/dist/decoding/fastPforShared.js +29 -0
- package/dist/decoding/fastPforShared.js.map +1 -0
- package/dist/decoding/fastPforUnpack.d.ts +23 -0
- package/dist/decoding/fastPforUnpack.js +910 -0
- package/dist/decoding/fastPforUnpack.js.map +1 -0
- package/dist/decoding/geometryDecoder.d.ts +2 -2
- package/dist/decoding/geometryDecoder.js +52 -49
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/intWrapper.js +0 -1
- package/dist/decoding/intWrapper.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +33 -25
- package/dist/decoding/integerDecodingUtils.js +115 -52
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +15 -11
- package/dist/decoding/integerStreamDecoder.js +159 -65
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +38 -36
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.js +19 -23
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/unpackNullableUtils.d.ts +2 -2
- package/dist/decoding/unpackNullableUtils.js.map +1 -1
- package/dist/encoding/bigEndianEncode.d.ts +7 -0
- package/dist/encoding/bigEndianEncode.js +16 -0
- package/dist/encoding/bigEndianEncode.js.map +1 -0
- package/dist/encoding/constGeometryVectorEncoder.d.ts +19 -0
- package/dist/encoding/constGeometryVectorEncoder.js +248 -0
- package/dist/encoding/constGeometryVectorEncoder.js.map +1 -0
- package/dist/encoding/encodingUtils.d.ts +2 -2
- package/dist/encoding/encodingUtils.js +3 -3
- package/dist/encoding/encodingUtils.js.map +1 -1
- package/dist/encoding/fastPforEncoder.d.ts +18 -0
- package/dist/encoding/fastPforEncoder.js +310 -0
- package/dist/encoding/fastPforEncoder.js.map +1 -0
- package/dist/encoding/integerEncodingUtils.d.ts +20 -20
- package/dist/encoding/integerEncodingUtils.js +64 -48
- package/dist/encoding/integerEncodingUtils.js.map +1 -1
- package/dist/encoding/integerStreamEncoder.d.ts +3 -2
- package/dist/encoding/integerStreamEncoder.js +57 -23
- package/dist/encoding/integerStreamEncoder.js.map +1 -1
- package/dist/encoding/packNullableUtils.d.ts +1 -1
- package/dist/encoding/packNullableUtils.js.map +1 -1
- package/dist/encoding/propertyEncoder.d.ts +1 -1
- package/dist/encoding/propertyEncoder.js +17 -24
- package/dist/encoding/propertyEncoder.js.map +1 -1
- package/dist/encoding/stringEncoder.js +9 -42
- package/dist/encoding/stringEncoder.js.map +1 -1
- package/dist/encoding/zOrderCurveEncoder.js +1 -1
- package/dist/encoding/zOrderCurveEncoder.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +8 -12
- package/dist/metadata/tile/logicalStreamType.js +1 -19
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.js +9 -4
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/typeMap.d.ts +10 -2
- package/dist/metadata/tileset/typeMap.js +25 -15
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.js +46 -47
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/int32ConstVector.d.ts +6 -0
- package/dist/vector/constant/int32ConstVector.js +10 -0
- package/dist/vector/constant/int32ConstVector.js.map +1 -0
- package/dist/vector/constant/int64ConstVector.d.ts +6 -0
- package/dist/vector/constant/int64ConstVector.js +10 -0
- package/dist/vector/constant/int64ConstVector.js.map +1 -0
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -2
- package/dist/vector/dictionary/stringDictionaryVector.js +0 -3
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +7 -8
- package/dist/vector/featureTable.js +10 -42
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +1 -1
- package/dist/vector/filter/flatSelectionVector.js +0 -2
- package/dist/vector/filter/flatSelectionVector.js.map +1 -1
- package/dist/vector/filter/selectionVectorUtils.d.ts +1 -1
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -1
- package/dist/vector/filter/sequenceSelectionVector.d.ts +1 -1
- package/dist/vector/filter/sequenceSelectionVector.js +1 -5
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js +0 -2
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.js +0 -1
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/{intFlatVector.d.ts → int32FlatVector.d.ts} +1 -1
- package/dist/vector/flat/{intFlatVector.js → int32FlatVector.js} +2 -2
- package/dist/vector/flat/int32FlatVector.js.map +1 -0
- package/dist/vector/flat/{longFlatVector.d.ts → int64FlatVector.d.ts} +1 -1
- package/dist/vector/flat/{longFlatVector.js → int64FlatVector.js} +2 -2
- package/dist/vector/flat/int64FlatVector.js.map +1 -0
- package/dist/vector/flat/stringFlatVector.d.ts +0 -1
- package/dist/vector/flat/stringFlatVector.js +0 -2
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -3
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +0 -42
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +5 -5
- package/dist/vector/geometry/constGeometryVector.js +1 -3
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +4 -4
- package/dist/vector/geometry/constGpuVector.js +1 -3
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +4 -4
- package/dist/vector/geometry/flatGeometryVector.js +1 -5
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +3 -3
- package/dist/vector/geometry/flatGpuVector.js +0 -1
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +7 -8
- package/dist/vector/geometry/geometryVector.js +0 -13
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.d.ts +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js +167 -211
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +6 -6
- package/dist/vector/geometry/gpuVector.js +0 -4
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +5 -9
- package/dist/vector/geometry/topologyVector.js +1 -19
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/idVector.d.ts +8 -0
- package/dist/vector/idVector.js +2 -0
- package/dist/vector/idVector.js.map +1 -0
- package/dist/vector/sequence/{intSequenceVector.d.ts → int32SequenceVector.d.ts} +1 -1
- package/dist/vector/sequence/{intSequenceVector.js → int32SequenceVector.js} +2 -2
- package/dist/vector/sequence/int32SequenceVector.js.map +1 -0
- package/dist/vector/sequence/{longSequenceVector.d.ts → int64SequenceVector.d.ts} +1 -1
- package/dist/vector/sequence/{longSequenceVector.js → int64SequenceVector.js} +2 -2
- package/dist/vector/sequence/int64SequenceVector.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.js +0 -1
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js +0 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.js +1 -5
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +9 -10
- package/dist/decoding/decodingUtils.spec.d.ts +0 -1
- package/dist/decoding/decodingUtils.spec.js +0 -141
- package/dist/decoding/decodingUtils.spec.js.map +0 -1
- package/dist/decoding/fsstDecoder.spec.d.ts +0 -1
- package/dist/decoding/fsstDecoder.spec.js +0 -57
- package/dist/decoding/fsstDecoder.spec.js.map +0 -1
- package/dist/decoding/integerDecodingUtils.spec.d.ts +0 -1
- package/dist/decoding/integerDecodingUtils.spec.js +0 -300
- package/dist/decoding/integerDecodingUtils.spec.js.map +0 -1
- package/dist/decoding/integerStreamDecoder.spec.d.ts +0 -1
- package/dist/decoding/integerStreamDecoder.spec.js +0 -402
- package/dist/decoding/integerStreamDecoder.spec.js.map +0 -1
- package/dist/decoding/propertyDecoder.spec.d.ts +0 -1
- package/dist/decoding/propertyDecoder.spec.js +0 -448
- package/dist/decoding/propertyDecoder.spec.js.map +0 -1
- package/dist/decoding/stringDecoder.spec.d.ts +0 -1
- package/dist/decoding/stringDecoder.spec.js +0 -387
- package/dist/decoding/stringDecoder.spec.js.map +0 -1
- package/dist/decoding/unpackNullableUtils.spec.d.ts +0 -1
- package/dist/decoding/unpackNullableUtils.spec.js +0 -71
- package/dist/decoding/unpackNullableUtils.spec.js.map +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.d.ts +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js +0 -142
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js.map +0 -1
- package/dist/mltDecoder.spec.d.ts +0 -1
- package/dist/mltDecoder.spec.js +0 -152
- package/dist/mltDecoder.spec.js.map +0 -1
- package/dist/vector/constant/intConstVector.d.ts +0 -6
- package/dist/vector/constant/intConstVector.js +0 -10
- package/dist/vector/constant/intConstVector.js.map +0 -1
- package/dist/vector/constant/longConstVector.d.ts +0 -6
- package/dist/vector/constant/longConstVector.js +0 -10
- package/dist/vector/constant/longConstVector.js.map +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.js +0 -51
- package/dist/vector/filter/flatSelectionVector.spec.js.map +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.d.ts +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.js +0 -154
- package/dist/vector/filter/selectionVectorUtil.spec.js.map +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.js +0 -115
- package/dist/vector/filter/sequenceSelectionVector.spec.js.map +0 -1
- package/dist/vector/flat/floatFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/floatFlatVector.spec.js +0 -14
- package/dist/vector/flat/floatFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/intFlatVector.js.map +0 -1
- package/dist/vector/flat/intFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/intFlatVector.spec.js +0 -15
- package/dist/vector/flat/intFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/longFlatVector.js.map +0 -1
- package/dist/vector/flat/longFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/longFlatVector.spec.js +0 -14
- package/dist/vector/flat/longFlatVector.spec.js.map +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +0 -28
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.d.ts +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +0 -25
- package/dist/vector/geometry/zOrderCurve.spec.js.map +0 -1
- package/dist/vector/intVector.d.ts +0 -8
- package/dist/vector/intVector.js +0 -2
- package/dist/vector/intVector.js.map +0 -1
- package/dist/vector/sequence/intSequenceVector.js.map +0 -1
- package/dist/vector/sequence/longSequenceVector.js.map +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.d.ts +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.js +0 -11
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +0 -1
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
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";
|
|
3
|
-
import IntWrapper from "./intWrapper";
|
|
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";
|
|
5
|
-
describe("IntegerDecodingUtils", () => {
|
|
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", () => {
|
|
14
|
-
const value = 2n ** 50n;
|
|
15
|
-
const encoded = encodeVarintInt64(new BigInt64Array([value]));
|
|
16
|
-
const decoded = decodeVarintInt64(encoded, new IntWrapper(0), 1);
|
|
17
|
-
expect(decoded[0]).toEqual(value);
|
|
18
|
-
});
|
|
19
|
-
it("should return valid decoded values for varint long to float64", () => {
|
|
20
|
-
const value = 2 ** 40;
|
|
21
|
-
const varintEncoded = encodeVarintFloat64(new Float64Array([value]));
|
|
22
|
-
const actualValues = decodeVarintFloat64(varintEncoded, new IntWrapper(0), 1);
|
|
23
|
-
expect(actualValues[0]).toEqual(value);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe("ZigZag encoding", () => {
|
|
27
|
-
it("should decode zigzag Int32Array", () => {
|
|
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]);
|
|
32
|
-
});
|
|
33
|
-
it("should decode zigzag BigInt64Array", () => {
|
|
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]);
|
|
38
|
-
});
|
|
39
|
-
it("should decode zigzag Float64Array", () => {
|
|
40
|
-
const value = 2 ** 35;
|
|
41
|
-
const data = new Float64Array([value]);
|
|
42
|
-
encodeZigZagFloat64(data);
|
|
43
|
-
decodeZigZagFloat64(data);
|
|
44
|
-
expect(Array.from(data)).toEqual([value]);
|
|
45
|
-
});
|
|
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);
|
|
50
|
-
});
|
|
51
|
-
it("should decode single BigInt zigzag values", () => {
|
|
52
|
-
expect(encodeZigZagInt64Value(decodeZigZagInt64Value(0n))).toBe(0n);
|
|
53
|
-
expect(encodeZigZagInt64Value(decodeZigZagInt64Value(1n))).toBe(1n);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
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
|
-
});
|
|
132
|
-
});
|
|
133
|
-
});
|
|
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
|
-
});
|
|
154
|
-
});
|
|
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
|
-
});
|
|
162
|
-
});
|
|
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
|
-
});
|
|
185
|
-
});
|
|
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
|
-
});
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
describe("Const and Sequence RLE", () => {
|
|
266
|
-
it("should decode unsigned const RLE Int64", () => {
|
|
267
|
-
const data = new BigInt64Array([5n, 42n]);
|
|
268
|
-
expect(decodeUnsignedConstRleInt64(data)).toBe(42n);
|
|
269
|
-
});
|
|
270
|
-
it("should decode zigzag const RLE Int64", () => {
|
|
271
|
-
const data = new BigInt64Array([5n, encodeZigZagInt64Value(2n)]);
|
|
272
|
-
expect(decodeZigZagConstRleInt64(data)).toBe(2n);
|
|
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
|
-
});
|
|
286
|
-
it("should decode zigzag sequence RLE Int64", () => {
|
|
287
|
-
const data = new BigInt64Array([5n, 2n]);
|
|
288
|
-
const [base, delta] = decodeZigZagSequenceRleInt64(data);
|
|
289
|
-
expect(base).toBe(1n);
|
|
290
|
-
expect(delta).toBe(1n);
|
|
291
|
-
});
|
|
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);
|
|
297
|
-
});
|
|
298
|
-
});
|
|
299
|
-
});
|
|
300
|
-
//# sourceMappingURL=integerDecodingUtils.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
export {};
|