import { IndexDatatype } from "../../Source/Cesium.js"; import { Math as CesiumMath } from "../../Source/Cesium.js"; describe("Core/IndexDatatype", function () { it("IndexDatatype.validate validates input", function () { expect(IndexDatatype.validate(IndexDatatype.UNSIGNED_SHORT)).toEqual(true); expect(IndexDatatype.validate("invalid")).toEqual(false); expect(IndexDatatype.validate(undefined)).toEqual(false); }); it("IndexDatatype.createTypedArray creates array", function () { expect(IndexDatatype.createTypedArray(3, 3).BYTES_PER_ELEMENT).toEqual( Uint16Array.BYTES_PER_ELEMENT ); expect( IndexDatatype.createTypedArray(CesiumMath.SIXTY_FOUR_KILOBYTES + 1, 3) .BYTES_PER_ELEMENT ).toEqual(Uint32Array.BYTES_PER_ELEMENT); }); it("IndexDatatype.createTypedArray throws without numberOfVertices", function () { expect(function () { IndexDatatype.createTypedArray(undefined); }).toThrowDeveloperError(); }); it("IndexDatatype.createTypedArrayFromArrayBuffer creates Uint16Array", function () { var sourceArray = new Uint16Array(10); sourceArray.set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); var indexBuffer = IndexDatatype.createTypedArrayFromArrayBuffer( 3, sourceArray.buffer, 0, 5 ); expect(indexBuffer.BYTES_PER_ELEMENT).toEqual( Uint16Array.BYTES_PER_ELEMENT ); expect(indexBuffer.length).toEqual(5); expect(indexBuffer[0]).toEqual(0); }); it("IndexDatatype.createTypedArrayFromArrayBuffer creates Uint16Array with offset", function () { var sourceArray = new Uint16Array(10); sourceArray.set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); var indexBuffer = IndexDatatype.createTypedArrayFromArrayBuffer( 3, sourceArray.buffer, Uint16Array.BYTES_PER_ELEMENT * 5, 5 ); expect(indexBuffer.BYTES_PER_ELEMENT).toEqual( Uint16Array.BYTES_PER_ELEMENT ); expect(indexBuffer.length).toEqual(5); expect(indexBuffer[0]).toEqual(5); }); it("IndexDatatype.createTypedArrayFromArrayBuffer creates Uint32Array", function () { var sourceArray = new Uint32Array(10); sourceArray.set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); var indexBuffer = IndexDatatype.createTypedArrayFromArrayBuffer( CesiumMath.SIXTY_FOUR_KILOBYTES + 1, sourceArray.buffer, 0, 5 ); expect(indexBuffer.BYTES_PER_ELEMENT).toEqual( Uint32Array.BYTES_PER_ELEMENT ); expect(indexBuffer.length).toEqual(5); expect(indexBuffer[0]).toEqual(0); }); it("IndexDatatype.createTypedArrayFromArrayBuffer creates Uint32Array with offset", function () { var sourceArray = new Uint32Array(10); sourceArray.set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); var indexBuffer = IndexDatatype.createTypedArrayFromArrayBuffer( CesiumMath.SIXTY_FOUR_KILOBYTES + 1, sourceArray.buffer, Uint32Array.BYTES_PER_ELEMENT * 5, 5 ); expect(indexBuffer.BYTES_PER_ELEMENT).toEqual( Uint32Array.BYTES_PER_ELEMENT ); expect(indexBuffer.length).toEqual(5); expect(indexBuffer[0]).toEqual(5); }); it("IndexDatatype.createTypedArrayFromArrayBuffer throws without numberOfVertices", function () { expect(function () { IndexDatatype.createTypedArrayFromArrayBuffer(undefined); }).toThrowDeveloperError(); }); it("IndexDatatype.createTypedArrayFromArrayBuffer throws without sourceArray", function () { expect(function () { IndexDatatype.createTypedArrayFromArrayBuffer(3, undefined); }).toThrowDeveloperError(); }); it("IndexDatatype.createTypedArrayFromArrayBuffer throws without byteOffset", function () { var sourceArray = new Uint16Array(5); expect(function () { IndexDatatype.createTypedArrayFromArrayBuffer( 3, sourceArray.buffer, undefined ); }).toThrowDeveloperError(); }); it("IndexDatatype.getSizeInBytes returns size", function () { expect(IndexDatatype.getSizeInBytes(IndexDatatype.UNSIGNED_BYTE)).toEqual( Uint8Array.BYTES_PER_ELEMENT ); expect(IndexDatatype.getSizeInBytes(IndexDatatype.UNSIGNED_SHORT)).toEqual( Uint16Array.BYTES_PER_ELEMENT ); expect(IndexDatatype.getSizeInBytes(IndexDatatype.UNSIGNED_INT)).toEqual( Uint32Array.BYTES_PER_ELEMENT ); }); it("IndexDatatype.getSizeInBytes throws without indexDatatype", function () { expect(function () { IndexDatatype.getSizeInBytes(undefined); }).toThrowDeveloperError(); }); });