import { ImplicitAvailabilityBitstream } from "../../Source/Cesium.js";
|
|
describe("Scene/ImplicitAvailabilityBitstream", function () {
|
it("throws on missing lengthBits", function () {
|
expect(function () {
|
return new ImplicitAvailabilityBitstream({});
|
}).toThrowDeveloperError();
|
});
|
|
it("throws on mismatched bitLength and bitstream.length", function () {
|
expect(function () {
|
return new ImplicitAvailabilityBitstream({
|
lengthBits: 17,
|
bitstream: new Uint8Array([0xff, 0x02]),
|
});
|
}).toThrowRuntimeError();
|
});
|
|
it("reads bits from constant", function () {
|
var length = 21;
|
var bitstream = new ImplicitAvailabilityBitstream({
|
lengthBits: length,
|
constant: true,
|
});
|
|
for (var i = 0; i < length; i++) {
|
expect(bitstream.getBit(i)).toEqual(true);
|
}
|
});
|
|
it("reads bits from bitstream", function () {
|
// This is the packed representation of
|
// 0b0101 1111 1xxx xxxx
|
// where the xs are unused bits.
|
var bitstreamU8 = new Uint8Array([0xfa, 0x01]);
|
var expected = [false, true, false, true, true, true, true, true, true];
|
var bitstream = new ImplicitAvailabilityBitstream({
|
lengthBits: expected.length,
|
bitstream: bitstreamU8,
|
});
|
|
for (var i = 0; i < expected.length; i++) {
|
expect(bitstream.getBit(i)).toEqual(expected[i]);
|
}
|
});
|
|
it("throws on out of bounds", function () {
|
var bitstream = new ImplicitAvailabilityBitstream({
|
lengthBits: 10,
|
bitstream: new Uint8Array([0xff, 0x02]),
|
});
|
expect(function () {
|
bitstream.getBit(-1);
|
}).toThrowDeveloperError();
|
|
expect(function () {
|
bitstream.getBit(10);
|
}).toThrowDeveloperError();
|
});
|
|
it("stores availableCount", function () {
|
var bitstream = new ImplicitAvailabilityBitstream({
|
lengthBits: 10,
|
availableCount: 3,
|
bitstream: new Uint8Array([0x07, 0x00]),
|
});
|
expect(bitstream.availableCount).toEqual(3);
|
});
|
|
it("computes availableCount if enabled and availableCount is undefined", function () {
|
var bitstream = new ImplicitAvailabilityBitstream({
|
lengthBits: 10,
|
bitstream: new Uint8Array([0xff, 0x02]),
|
computeAvailableCountEnabled: true,
|
});
|
expect(bitstream.availableCount).toBe(9);
|
});
|
|
it("does not compute availableCount if disabled and availableCount is undefined", function () {
|
var bitstream = new ImplicitAvailabilityBitstream({
|
lengthBits: 10,
|
bitstream: new Uint8Array([0xff, 0x02]),
|
});
|
expect(bitstream.availableCount).not.toBeDefined();
|
});
|
});
|