export default function ShaderBuilderTester() {}
|
|
function expectHasLine(linesArray, line) {
|
expect(linesArray.indexOf(line)).not.toBe(-1);
|
}
|
|
// In practice, most of the dynamically generated GLSL code is generated
|
// in an arbitrary order, so check only that they have the same set of lines.
|
function expectEqualUnordered(array1, array2) {
|
// slice in case other tests do expect lines in a particular order.
|
expect(array1.slice().sort()).toEqual(array2.slice().sort());
|
}
|
|
ShaderBuilderTester.expectHasAttributes = function (
|
shaderBuilder,
|
positionAttributeLine,
|
expectedAttributeLines
|
) {
|
expect(shaderBuilder._positionAttributeLine).toEqual(positionAttributeLine);
|
expectEqualUnordered(shaderBuilder._attributeLines, expectedAttributeLines);
|
};
|
|
ShaderBuilderTester.expectHasVertexDefines = function (
|
shaderBuilder,
|
expectedDefines
|
) {
|
expectEqualUnordered(
|
shaderBuilder._vertexShaderParts.defineLines,
|
expectedDefines
|
);
|
};
|
|
ShaderBuilderTester.expectHasFragmentDefines = function (
|
shaderBuilder,
|
expectedDefines
|
) {
|
expectEqualUnordered(
|
shaderBuilder._fragmentShaderParts.defineLines,
|
expectedDefines
|
);
|
};
|
|
ShaderBuilderTester.expectHasVertexUniforms = function (
|
shaderBuilder,
|
expectedUniforms
|
) {
|
expectEqualUnordered(
|
shaderBuilder._vertexShaderParts.uniformLines,
|
expectedUniforms
|
);
|
};
|
|
ShaderBuilderTester.expectHasFragmentUniforms = function (
|
shaderBuilder,
|
expectedUniforms
|
) {
|
expectEqualUnordered(
|
shaderBuilder._fragmentShaderParts.uniformLines,
|
expectedUniforms
|
);
|
};
|
|
ShaderBuilderTester.expectHasVaryings = function (
|
shaderBuilder,
|
expectedVaryings
|
) {
|
expectEqualUnordered(
|
shaderBuilder._vertexShaderParts.varyingLines,
|
expectedVaryings
|
);
|
expectEqualUnordered(
|
shaderBuilder._fragmentShaderParts.varyingLines,
|
expectedVaryings
|
);
|
};
|
|
ShaderBuilderTester.expectHasVertexStruct = function (
|
shaderBuilder,
|
structId,
|
structName,
|
expectedFields
|
) {
|
expectHasLine(shaderBuilder._vertexShaderParts.structIds, structId);
|
var struct = shaderBuilder._structs[structId];
|
|
expect(struct.name).toEqual(structName);
|
expectEqualUnordered(struct.fields, expectedFields);
|
};
|
|
ShaderBuilderTester.expectHasFragmentStruct = function (
|
shaderBuilder,
|
structId,
|
structName,
|
expectedFields
|
) {
|
expectHasLine(shaderBuilder._fragmentShaderParts.structIds, structId);
|
var struct = shaderBuilder._structs[structId];
|
|
expect(struct.name).toEqual(structName);
|
expectEqualUnordered(struct.fields, expectedFields);
|
};
|
|
ShaderBuilderTester.expectHasVertexFunction = function (
|
shaderBuilder,
|
functionId,
|
signature,
|
bodyLines
|
) {
|
expectHasLine(shaderBuilder._vertexShaderParts.functionIds, functionId);
|
var func = shaderBuilder._functions[functionId];
|
|
expect(func.signature).toEqual(signature);
|
expectEqualUnordered(func.body, bodyLines);
|
};
|
|
ShaderBuilderTester.expectHasFragmentFunction = function (
|
shaderBuilder,
|
functionId,
|
signature,
|
bodyLines
|
) {
|
expectHasLine(shaderBuilder._fragmentShaderParts.functionIds, functionId);
|
var func = shaderBuilder._functions[functionId];
|
|
expect(func.signature).toEqual(signature);
|
expectEqualUnordered(func.body, bodyLines);
|
};
|
|
ShaderBuilderTester.expectVertexLinesEqual = function (
|
shaderBuilder,
|
expectedVertexLines
|
) {
|
expect(shaderBuilder._vertexShaderParts.shaderLines).toEqual(
|
expectedVertexLines
|
);
|
};
|
|
ShaderBuilderTester.expectFragmentLinesEqual = function (
|
shaderBuilder,
|
expectedFragmentLines
|
) {
|
expect(shaderBuilder._fragmentShaderParts.shaderLines).toEqual(
|
expectedFragmentLines
|
);
|
};
|