import { MetadataType } from "../../Source/Cesium.js";

describe("Scene/MetadataType", function () {
  it("isVectorType works", function () {
    expect(MetadataType.isVectorType(MetadataType.VEC2)).toBe(true);
    expect(MetadataType.isVectorType(MetadataType.VEC3)).toBe(true);
    expect(MetadataType.isVectorType(MetadataType.VEC4)).toBe(true);
    expect(MetadataType.isVectorType(MetadataType.MAT2)).toBe(false);
    expect(MetadataType.isVectorType(MetadataType.MAT2)).toBe(false);
    expect(MetadataType.isVectorType(MetadataType.MAT2)).toBe(false);
    expect(MetadataType.isVectorType(MetadataType.SCALAR)).toBe(false);
    expect(MetadataType.isVectorType(MetadataType.ENUM)).toBe(false);
    expect(MetadataType.isVectorType(MetadataType.BOOLEAN)).toBe(false);
    expect(MetadataType.isVectorType(MetadataType.STRING)).toBe(false);
  });

  it("isMatrixType works", function () {
    expect(MetadataType.isMatrixType(MetadataType.VEC2)).toBe(false);
    expect(MetadataType.isMatrixType(MetadataType.VEC3)).toBe(false);
    expect(MetadataType.isMatrixType(MetadataType.VEC4)).toBe(false);
    expect(MetadataType.isMatrixType(MetadataType.MAT2)).toBe(true);
    expect(MetadataType.isMatrixType(MetadataType.MAT2)).toBe(true);
    expect(MetadataType.isMatrixType(MetadataType.MAT2)).toBe(true);
    expect(MetadataType.isMatrixType(MetadataType.SCALAR)).toBe(false);
    expect(MetadataType.isMatrixType(MetadataType.ENUM)).toBe(false);
    expect(MetadataType.isMatrixType(MetadataType.BOOLEAN)).toBe(false);
    expect(MetadataType.isMatrixType(MetadataType.STRING)).toBe(false);
  });

  it("getComponentCount works", function () {
    expect(MetadataType.getComponentCount(MetadataType.VEC2)).toBe(2);
    expect(MetadataType.getComponentCount(MetadataType.VEC3)).toBe(3);
    expect(MetadataType.getComponentCount(MetadataType.VEC4)).toBe(4);
    expect(MetadataType.getComponentCount(MetadataType.MAT2)).toBe(4);
    expect(MetadataType.getComponentCount(MetadataType.MAT3)).toBe(9);
    expect(MetadataType.getComponentCount(MetadataType.MAT4)).toBe(16);
    expect(MetadataType.getComponentCount(MetadataType.SCALAR)).toBe(1);
    expect(MetadataType.getComponentCount(MetadataType.ENUM)).not.toBeDefined();
    expect(
      MetadataType.getComponentCount(MetadataType.BOOLEAN)
    ).not.toBeDefined();
    expect(
      MetadataType.getComponentCount(MetadataType.STRING)
    ).not.toBeDefined();
  });
});

@@ -1,16 +1,18 @@
 import %7B
+%0A 
  Metadat
@@ -16,17 +16,93 @@
 dataType
- 
+,%0A  Cartesian2,%0A  Cartesian3,%0A  Cartesian4,%0A  Matrix2,%0A  Matrix3,%0A  Matrix4,%0A
 %7D from %22
@@ -2499,13 +2499,802 @@
 );%0A  %7D);
+%0A%0A  it(%22getMathType works%22, function () %7B%0A    expect(MetadataType.getMathType(MetadataType.VEC2)).toBe(Cartesian2);%0A    expect(MetadataType.getMathType(MetadataType.VEC3)).toBe(Cartesian3);%0A    expect(MetadataType.getMathType(MetadataType.VEC4)).toBe(Cartesian4);%0A    expect(MetadataType.getMathType(MetadataType.MAT2)).toBe(Matrix2);%0A    expect(MetadataType.getMathType(MetadataType.MAT3)).toBe(Matrix3);%0A    expect(MetadataType.getMathType(MetadataType.MAT4)).toBe(Matrix4);%0A    expect(MetadataType.getMathType(MetadataType.SCALAR)).not.toBeDefined();%0A    expect(MetadataType.getMathType(MetadataType.ENUM)).not.toBeDefined();%0A    expect(MetadataType.getMathType(MetadataType.BOOLEAN)).not.toBeDefined();%0A    expect(MetadataType.getMathType(MetadataType.STRING)).not.toBeDefined();%0A  %7D);
 %0A%7D);%0A

Update MetadataType specs