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