UNPKG

wonder.js

Version:
213 lines (209 loc) 45.1 kB
'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var Sinon = require("wonder-bs-sinon/lib/js/src/sinon.js"); var Sinon$1 = require("sinon"); var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js"); var ShaderAPI$Wonderjs = require("../../../../src/api/shader/ShaderAPI.js"); var FakeGlTool$Wonderjs = require("../../../tool/gl/FakeGlTool.js"); var OptionTool$Wonderjs = require("../../../tool/service/atom/OptionTool.js"); var ShaderTool$Wonderjs = require("../../../tool/service/shader/ShaderTool.js"); var ProgramTool$Wonderjs = require("../../../tool/service/program/ProgramTool.js"); var GameObjectAPI$Wonderjs = require("../../../../src/api/GameObjectAPI.js"); var MainStateTool$Wonderjs = require("../../../tool/service/state/MainStateTool.js"); var GameObjectTool$Wonderjs = require("../../../tool/service/gameObject/GameObjectTool.js"); var AllMaterialTool$Wonderjs = require("../../../tool/service/material/AllMaterialTool.js"); var BasicMaterialTool$Wonderjs = require("../../../tool/service/material/BasicMaterialTool.js"); var LightMaterialTool$Wonderjs = require("../../../tool/service/material/LightMaterialTool.js"); var NoWorkerJobConfigTool$Wonderjs = require("../../../tool/service/noWorkerJob/NoWorkerJobConfigTool.js"); var InitBasicMaterialJobTool$Wonderjs = require("../../../tool/job/no_worker/init/InitBasicMaterialJobTool.js"); var DefaultTypeArrayValueService$Wonderjs = require("../../../../src/service/primitive/buffer/DefaultTypeArrayValueService.js"); Wonder_jest.describe("Shader", (function (param) { var sandbox = Sinon.getSandboxDefaultVal(/* () */0); var state = /* record */[/* contents */MainStateTool$Wonderjs.createState(/* () */0)]; beforeEach((function () { sandbox[0] = Sinon$1.sandbox.create(); state[0] = InitBasicMaterialJobTool$Wonderjs.initWithJobConfigWithoutBuildFakeDom(sandbox, NoWorkerJobConfigTool$Wonderjs.buildNoWorkerJobConfig(undefined, "\n[\n {\n \"name\": \"default\",\n \"jobs\": [\n {\n \"name\": \"init_camera\"\n },\n {\n \"name\": \"start_time\"\n },\n {\n \"name\": \"preget_glslData\"\n },\n {\n \"name\": \"init_state\"\n },\n {\n \"name\": \"init_basic_material\"\n },\n {\n \"name\": \"init_light_material\"\n },\n {\n \"name\": \"init_texture\"\n }\n ]\n }\n]\n ", undefined, NoWorkerJobConfigTool$Wonderjs.buildNoWorkerInitJobConfigWithoutInitMain(/* () */0), undefined, /* () */0)); return /* () */0; })); afterEach((function () { return Curry._1(Sinon.restoreSandbox, sandbox[0]); })); Wonder_jest.describe("init material shader", (function (param) { Wonder_jest.test("if the material with the same shaderLibDataArr is already inited, not init", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var match$1 = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, match[0]); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match$1[0]); var state$2 = InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicMaterialTool$Wonderjs.getShaderIndex(match[3], state$2)), BasicMaterialTool$Wonderjs.getShaderIndex(match$1[3], state$2)); })); Wonder_jest.describe("generate shaderIndex", (function (param) { Wonder_jest.test("set to material record", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var state$1 = match[0]; InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state$1); var state$2 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), state$1); var state$3 = InitBasicMaterialJobTool$Wonderjs.exec(state$2); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](BasicMaterialTool$Wonderjs.getShaderIndex(match[3], state$3)), 0); })); return Wonder_jest.test("if equal default shader index, error", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var state$1 = match[0]; InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state$1); var state$2 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), state$1); var newrecord = Caml_array.caml_array_dup(state$2); var init = ShaderTool$Wonderjs.getShaderRecord(state$2); newrecord[/* shaderRecord */28] = /* record */[ /* index */DefaultTypeArrayValueService$Wonderjs.getDefaultShaderIndex(/* () */0), /* noMaterialShaderIndexMap */init[/* noMaterialShaderIndexMap */1], /* shaderLibShaderIndexMap */init[/* shaderLibShaderIndexMap */2], /* materialsMap */init[/* materialsMap */3] ]; return Wonder_jest.Expect[/* toThrowMessage */21]("expect not equal default shader index", Wonder_jest.Expect[/* expect */0]((function (param) { InitBasicMaterialJobTool$Wonderjs.exec(newrecord); return /* () */0; }))); })); })); Wonder_jest.test("create program", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var createProgram = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(createProgram), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(createProgram)), 1); })); Wonder_jest.test("register program", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var createProgram = Sinon.returns(100, Sinon.createEmptyStubWithJsObjSandbox(sandbox)); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(createProgram), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); var state$2 = InitBasicMaterialJobTool$Wonderjs.exec(state$1); var shaderIndex = BasicMaterialTool$Wonderjs.getShaderIndex(match[3], state$2); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](OptionTool$Wonderjs.unsafeGet(ProgramTool$Wonderjs.getProgram(shaderIndex, state$2))), 100); })); return Wonder_jest.describe("init shader", (function (param) { Wonder_jest.test("create vs shader", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var createShader = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(createShader), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withOneArg(1, createShader))); })); Wonder_jest.test("create fs shader", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var createShader = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(createShader), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withOneArg(1, createShader))); })); return Wonder_jest.describe("compile shader", (function (param) { Wonder_jest.test("compile vs and fs shader", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var shaderSource = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var compileShader = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(shaderSource), undefined, undefined, undefined, undefined, undefined, Caml_option.some(compileShader), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ Sinon.getCallCount(shaderSource), Sinon.getCallCount(compileShader) ]), /* tuple */[ 2, 2 ]); })); Wonder_jest.describe("check COMPILE_STATUS", (function (param) { var _nowShowTrace = function (param) { Sinon.createMethodStubWithJsObjSandbox(sandbox, console, "trace"); return /* () */0; }; return Wonder_jest.test("if gl.getShaderParameter return false, log shader info", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var createShader = Sinon.returns(2, Sinon.onCall(1, Sinon.returns(1, Sinon.onCall(0, Sinon.createEmptyStubWithJsObjSandbox(sandbox))))); var getShaderParameter = Sinon.returns(false, Sinon.withTwoArgs(2, 0, Sinon.returns(false, Sinon.withTwoArgs(1, 0, Sinon.createEmptyStubWithJsObjSandbox(sandbox))))); var getShaderInfoLog = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var log = Sinon.createMethodStubWithJsObjSandbox(sandbox, console, "log"); _nowShowTrace(/* () */0); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(createShader), undefined, undefined, undefined, Caml_option.some(getShaderParameter), undefined, Caml_option.some(getShaderInfoLog), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ Sinon.getCallCount(log), Sinon.getCallCount(getShaderInfoLog) ]), /* tuple */[ 4, 2 ]); })); })); Wonder_jest.test("attach vs and fs shader", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var attachShader = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(attachShader), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(attachShader)), 2); })); Wonder_jest.test("avoid \"Attribute 0 is disabled.\"(because this has significant performance penalty)", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var bindAttribLocation = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(bindAttribLocation), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(Sinon.withThreeArgs(Sinon$1.match.any, 0, "a_position", bindAttribLocation))), 1); })); Wonder_jest.describe("link program", (function (param) { Wonder_jest.test("test", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var linkProgram = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(linkProgram), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(linkProgram)), 1); })); return Wonder_jest.describe("contract check", (function (param) { return Wonder_jest.test("if getProgramParameter returns false, error", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var getProgramParameter = Sinon.returns(false, Sinon.withTwoArgs(Sinon$1.match.any, 0, Sinon.createEmptyStubWithJsObjSandbox(sandbox))); var getProgramInfoLog = Sinon.returns("err", Sinon.createEmptyStubWithJsObjSandbox(sandbox)); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(getProgramParameter), undefined, Caml_option.some(getProgramInfoLog), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); return Wonder_jest.Expect[/* toThrowMessageRe */22]((/link\sprogram\serror[\s\S]+err/img), Wonder_jest.Expect[/* expect */0]((function (param) { InitBasicMaterialJobTool$Wonderjs.exec(state$1); return /* () */0; }))); })); })); })); return Wonder_jest.test("delete vs and fs shader after link", (function (param) { var match = InitBasicMaterialJobTool$Wonderjs.prepareGameObject(sandbox, state[0]); var deleteShader = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var linkProgram = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(linkProgram), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(deleteShader), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match[0]); InitBasicMaterialJobTool$Wonderjs.exec(state$1); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ Sinon.getCallCount(deleteShader), Sinon.calledAfter(Sinon.getCall(0, deleteShader), Sinon.getCall(0, linkProgram)), Sinon.calledAfter(Sinon.getCall(1, deleteShader), Sinon.getCall(0, linkProgram)) ]), /* tuple */[ 2, true, true ]); })); })); })); })); return Wonder_jest.describe("clearInitShaderCache", (function (param) { return Wonder_jest.describe("clear shader cache", (function (param) { return Wonder_jest.test("1.create material1 and init;\n 2.dispose material1;\n 3.create material2 and init;\n\n material2's shaderIndex should not equal material1's shaderIndex", (function (param) { var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), state[0]); var state$2 = AllMaterialTool$Wonderjs.pregetGLSLData(state$1); var match = LightMaterialTool$Wonderjs.createGameObject(state$2); var gameObject1 = match[1]; var state$3 = GameObjectAPI$Wonderjs.initGameObject(gameObject1, match[0]); var shaderIndex1 = LightMaterialTool$Wonderjs.getShaderIndex(match[2], state$3); var state$4 = GameObjectTool$Wonderjs.disposeGameObject(gameObject1, state$3); var state$5 = ShaderAPI$Wonderjs.clearInitShaderCache(state$4); var match$1 = LightMaterialTool$Wonderjs.createGameObject(state$5); var state$6 = GameObjectAPI$Wonderjs.initGameObject(match$1[1], match$1[0]); return Wonder_jest.Expect[/* toEqual */12](shaderIndex1, Wonder_jest.Expect[/* not__ */24](Wonder_jest.Expect[/* expect */0](LightMaterialTool$Wonderjs.getShaderIndex(match$1[2], state$6)))); })); })); })); })); /* Not a pure module */