import { ComponentDatatype } from "../../Source/Cesium.js"; import { GeometryAttribute } from "../../Source/Cesium.js"; describe("Core/GeometryAttribute", function () { it("constructor", function () { var color = new GeometryAttribute({ componentDatatype: ComponentDatatype.UNSIGNED_BYTE, componentsPerAttribute: 4, normalize: true, values: new Uint8Array([255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255]), }); expect(color.componentDatatype).toEqual(ComponentDatatype.UNSIGNED_BYTE); expect(color.componentsPerAttribute).toEqual(4); expect(color.normalize).toEqual(true); expect(color.values).toEqual([ 255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255, ]); }); it("constructor throws without componentDatatype", function () { expect(function () { return new GeometryAttribute({ componentsPerAttribute: 4, values: new Uint8Array([ 255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255, ]), }); }).toThrowDeveloperError(); }); it("constructor throws without componentsPerAttribute", function () { expect(function () { return new GeometryAttribute({ componentDatatype: ComponentDatatype.UNSIGNED_BYTE, values: new Uint8Array([ 255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255, ]), }); }).toThrowDeveloperError(); }); it("constructor throws when componentsPerAttribute is less than 1 or greater than 4", function () { expect(function () { return new GeometryAttribute({ componentDatatype: ComponentDatatype.UNSIGNED_BYTE, componentsPerAttribute: 7, values: new Uint8Array([ 255, 0, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255, ]), }); }).toThrowDeveloperError(); }); it("constructor throws without values", function () { expect(function () { return new GeometryAttribute({ componentDatatype: ComponentDatatype.UNSIGNED_BYTE, componentsPerAttribute: 4, }); }).toThrowDeveloperError(); }); });