UNPKG

wonder.js

Version:
296 lines (293 loc) 80.2 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_option = require("bs-platform/lib/js/caml_option.js"); var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js"); var GLSLTool$Wonderjs = require("../../../../tool/render/core/GLSLTool.js"); var SceneAPI$Wonderjs = require("../../../../../src/api/SceneAPI.js"); var TestTool$Wonderjs = require("../../../../tool/TestTool.js"); var SinonTool$Wonderjs = require("../../tool/sinon/SinonTool.js"); var FakeGlTool$Wonderjs = require("../../../../tool/gl/FakeGlTool.js"); var SkyboxTool$Wonderjs = require("../tool/SkyboxTool.js"); var ProgramTool$Wonderjs = require("../../../../tool/service/program/ProgramTool.js"); var TextureTool$Wonderjs = require("../../../../tool/service/texture/TextureTool.js"); var DirectorTool$Wonderjs = require("../../../../tool/core/DirectorTool.js"); var TransformAPI$Wonderjs = require("../../../../../src/api/TransformAPI.js"); var RenderJobsTool$Wonderjs = require("../../../../tool/job/no_worker/loop/RenderJobsTool.js"); var BoxGeometryTool$Wonderjs = require("../../../../tool/service/geometry/BoxGeometryTool.js"); var RenderInJobTool$Wonderjs = require("../tool/RenderInJobTool.js"); var GLSLLocationTool$Wonderjs = require("../../../../tool/service/location/GLSLLocationTool.js"); var CubemapTextureAPI$Wonderjs = require("../../../../../src/api/texture/CubemapTextureAPI.js"); var CubemapTextureTool$Wonderjs = require("../../../../tool/service/texture/CubemapTextureTool.js"); var CreateStateMainService$Wonderjs = require("../../../../../src/service/state/main/state/CreateStateMainService.js"); var PerspectiveCameraProjectionTool$Wonderjs = require("../../../../tool/service/camera/PerspectiveCameraProjectionTool.js"); Wonder_jest.describe("test render skybox job", (function (param) { var sandbox = Sinon.getSandboxDefaultVal(/* () */0); var state = /* record */[/* contents */CreateStateMainService$Wonderjs.createState(/* () */0)]; beforeEach((function () { sandbox[0] = Sinon$1.sandbox.create(); state[0] = SkyboxTool$Wonderjs.initWithJobConfig(sandbox); return TestTool$Wonderjs.closeContractCheck(/* () */0); })); afterEach((function () { return Curry._1(Sinon.restoreSandbox, sandbox[0]); })); Wonder_jest.describe("test skybox shader", (function (param) { Wonder_jest.describe("test get attribute location", (function (param) { return Wonder_jest.describe("test get a_position location", (function (param) { return Wonder_jest.test("test get location once", (function (param) { var state$1 = state[0]; var getAttribLocation = GLSLLocationTool$Wonderjs.getAttribLocation(undefined, sandbox, "a_position"); 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, Caml_option.some(getAttribLocation), undefined, undefined, undefined, 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); DirectorTool$Wonderjs.init(state$2); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withTwoArgs(Sinon$1.match.any, "a_position", getAttribLocation))); })); })); })); Wonder_jest.describe("test get uniform location", (function (param) { Wonder_jest.describe("test get no_material_shader uniform location", (function (param) { Wonder_jest.test("test get u_skyboxVMatrix location once", (function (param) { return RenderInJobTool$Wonderjs.testGetLocation(sandbox, "u_skyboxVMatrix", 1, DirectorTool$Wonderjs.init, state); })); return Wonder_jest.test("test u_skyboxCubeMapSampler u_skyboxVMatrix location once", (function (param) { return RenderInJobTool$Wonderjs.testGetLocation(sandbox, "u_skyboxCubeMapSampler", 1, DirectorTool$Wonderjs.init, state); })); })); return Wonder_jest.describe("test not get model uniform location", (function (param) { return Wonder_jest.test("test not get u_mMatrix location", (function (param) { return RenderInJobTool$Wonderjs.testGetLocation(sandbox, "u_mMatrix", 0, DirectorTool$Wonderjs.init, state); })); })); })); return Wonder_jest.describe("test glsl", (function (param) { Wonder_jest.test("test vs", (function (param) { var match = RenderInJobTool$Wonderjs.prepareForJudgeGLSLNotExec(sandbox, state[0]); DirectorTool$Wonderjs.init(match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GLSLTool$Wonderjs.containMultiline(GLSLTool$Wonderjs.getVsSourceByCount(match[1], 0), /* :: */[ "attribute vec3 a_position;", /* :: */[ "uniform mat4 u_skyboxVMatrix;", /* :: */[ "uniform mat4 u_pMatrix;", /* :: */[ "v_texCoord = a_position;", /* :: */[ "vec4 pos = u_pMatrix * u_skyboxVMatrix * vec4(a_position, 1.0);", /* :: */[ "gl_Position = pos.xyww;", /* [] */0 ] ] ] ] ] ])), true); })); return Wonder_jest.test("test fs", (function (param) { var match = RenderInJobTool$Wonderjs.prepareForJudgeGLSLNotExec(sandbox, state[0]); DirectorTool$Wonderjs.init(match[0]); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GLSLTool$Wonderjs.containMultiline(GLSLTool$Wonderjs.getFsSourceByCount(match[1], 0), /* :: */[ "gl_FragColor = textureCube(u_skyboxCubeMapSampler, vec3(-v_texCoord.x, v_texCoord.y, v_texCoord.z));", /* [] */0 ])), true); })); })); })); Wonder_jest.describe("if skybox has no cubemap texture", (function (param) { return Wonder_jest.test("not draw", (function (param) { var drawElements = 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, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(drawElements), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), state[0]); DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$1)); return Sinon.toCalled(Wonder_jest.Expect[/* not__ */24](Wonder_jest.Expect[/* expect */0](drawElements))); })); })); return Wonder_jest.describe("else", (function (param) { var cubemapTextureRef = /* record */[/* contents */-1]; var cameraTransformRef = /* record */[/* contents */-1]; beforeEach((function () { var match = SkyboxTool$Wonderjs.prepareCubemapTexture(state[0]); var match$1 = SkyboxTool$Wonderjs.prepareGameObject(match[0]); state[0] = match$1[0]; cubemapTextureRef[0] = match[1]; cameraTransformRef[0] = match$1[1]; return /* () */0; })); Wonder_jest.describe("bind cubemap", (function (param) { Wonder_jest.test("if not has map, not bind", (function (param) { var state$1 = SceneAPI$Wonderjs.removeCubemapTexture(state[0]); var bindTexture = Sinon.createEmptyStubWithJsObjSandbox(sandbox); 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, Caml_option.some(bindTexture), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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); DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$2)); return Sinon.toCalled(Wonder_jest.Expect[/* not__ */24](Wonder_jest.Expect[/* expect */0](bindTexture))); })); return Wonder_jest.describe("else", (function (param) { var _prepare = function (state) { TestTool$Wonderjs.closeContractCheck(/* () */0); var createTexture = Sinon.createEmptyStubWithJsObjSandbox(sandbox); Sinon.returns(11, Sinon.onCall(0, createTexture)); var activeTexture = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var bindTexture = 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, 8, undefined, undefined, undefined, undefined, undefined, undefined, 10, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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(createTexture), Caml_option.some(activeTexture), Caml_option.some(bindTexture), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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); return /* tuple */[ state$1, /* tuple */[ 8, 11, 10 ], /* tuple */[ activeTexture, bindTexture ] ]; }; Wonder_jest.test("active texture unit", (function (param) { var match = _prepare(state[0]); DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(match[0])); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withOneArg(match[1][2], match[2][0]))); })); return Wonder_jest.test("bind gl texture to TEXTURE_CUBE_MAP target", (function (param) { var match = _prepare(state[0]); var match$1 = match[1]; DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(match[0])); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withTwoArgs(match$1[0], match$1[1], match[2][1]))); })); })); })); Wonder_jest.describe("update cubemap", (function (param) { var _prepare = function (state, $staropt$star, $staropt$star$1, param) { var width = $staropt$star !== undefined ? $staropt$star : 2; var height = $staropt$star$1 !== undefined ? $staropt$star$1 : 4; var state$1 = CubemapTextureTool$Wonderjs.setAllSources(state, cubemapTextureRef[0], width, height, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0); return /* tuple */[ state$1, cubemapTextureRef[0] ]; }; Wonder_jest.test("if is updated before, not update", (function (param) { var match = _prepare(state[0], undefined, undefined, /* () */0); var pixelStorei = 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, 2, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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(pixelStorei), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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 = DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$1)); var pixelStoreiCallCount = Sinon.getCallCount(Sinon.withOneArg(2, pixelStorei)); var state$3 = DirectorTool$Wonderjs.runWithDefaultTime(state$2); DirectorTool$Wonderjs.runWithDefaultTime(state$3); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(Sinon.withOneArg(2, pixelStorei))), pixelStoreiCallCount); })); Wonder_jest.describe("contract check", (function (param) { return Wonder_jest.test("should has all sources", (function (param) { TestTool$Wonderjs.openContractCheck(/* () */0); var pixelStorei = 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, 2, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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(pixelStorei), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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]); return Wonder_jest.Expect[/* toThrowMessage */21]("expect has all sources", Wonder_jest.Expect[/* expect */0]((function (param) { return DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$1)); }))); })); })); return Wonder_jest.describe("else", (function (param) { Wonder_jest.describe("contract check", (function (param) { Wonder_jest.test("all sources' size should equal", (function (param) { TestTool$Wonderjs.openContractCheck(/* () */0); var match = _prepare(state[0], undefined, undefined, /* () */0); var state$1 = CubemapTextureAPI$Wonderjs.setCubemapTextureNYSource(match[1], CubemapTextureTool$Wonderjs.buildSource(100, 50, undefined, undefined, /* () */0), match[0]); 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); return Wonder_jest.Expect[/* toThrowMessage */21]("expect all sources' size equal", Wonder_jest.Expect[/* expect */0]((function (param) { return DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$2)); }))); })); return Wonder_jest.test("source' width and height should equal", (function (param) { TestTool$Wonderjs.openContractCheck(/* () */0); var match = _prepare(state[0], undefined, undefined, /* () */0); var state$1 = CubemapTextureTool$Wonderjs.setAllSources(match[0], match[1], 2, 4, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0); 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); return Wonder_jest.Expect[/* toThrowMessage */21]("expect source' width and height equal", Wonder_jest.Expect[/* expect */0]((function (param) { return DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$2)); }))); })); })); Wonder_jest.test("set flipY", (function (param) { var match = _prepare(state[0], undefined, undefined, /* () */0); var state$1 = CubemapTextureAPI$Wonderjs.setCubemapTextureFlipY(match[1], true, match[0]); var pixelStorei = Sinon.createEmptyStubWithJsObjSandbox(sandbox); 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, 2, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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(pixelStorei), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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); DirectorTool$Wonderjs.runWithDefaultTime(DirectorTool$Wonderjs.init(state$2)); return Sinon.toCalledOnce(Wonder_jest.Expect[/* expect */0](Sinon.withTwoArgs(2, true, pixelStorei))); })); Wonder_jest.describe("set texture parameters", (function (param) { return Wonder_jest.test("set it only once", (function (param) { var match = _prepare(state[0], undefined, undefined, /* () */0); var texParameteri = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$1 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, 2, undefined, undefined, undefined, undefined, undefined, 4, 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(texParameteri), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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]); DirectorTool$Wonderjs.runWithDefaultTime(RenderJobsTool$Wonderjs.init(state$1)); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(Sinon.withThreeArgs(1, 2, 4, texParameteri))), 1); })); })); Wonder_jest.describe("allocate source to texture", (function (param) { return Wonder_jest.describe("draw no mipmap twoD texture", (function (param) { Wonder_jest.test("should draw 6 times", (function (param) { var match = _prepare(state[0], undefined, undefined, /* () */0); var texImage2D = 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, Caml_option.some(texImage2D), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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]); DirectorTool$Wonderjs.runWithDefaultTime(RenderJobsTool$Wonderjs.init(state$1)); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Sinon.getCallCount(texImage2D)), 6); })); return Wonder_jest.test("test draw with source, format, type", (function (param) { var match = _prepare(state[0], undefined, undefined, /* () */0); var map = match[1]; var state$1 = match[0]; var pxSource = CubemapTextureAPI$Wonderjs.unsafeGetCubemapTexturePXSource(map, state$1); var nxSource = CubemapTextureAPI$Wonderjs.unsafeGetCubemapTextureNXSource(map, state$1); var pySource = CubemapTextureAPI$Wonderjs.unsafeGetCubemapTexturePYSource(map, state$1); var nySource = CubemapTextureAPI$Wonderjs.unsafeGetCubemapTextureNYSource(map, state$1); var pzSource = CubemapTextureAPI$Wonderjs.unsafeGetCubemapTexturePZSource(map, state$1); var nzSource = CubemapTextureAPI$Wonderjs.unsafeGetCubemapTextureNZSource(map, state$1); var state$2 = CubemapTextureAPI$Wonderjs.setCubemapTexturePZFormat(map, /* Rgba */1, CubemapTextureAPI$Wonderjs.setCubemapTextureNXFormat(map, /* Rgbs3tcdxt1 */5, CubemapTextureAPI$Wonderjs.setCubemapTexturePXFormat(map, /* Rgbas3tcdxt1 */6, state$1))); var state$3 = CubemapTextureAPI$Wonderjs.setCubemapTexturePZType(map, 2, CubemapTextureAPI$Wonderjs.setCubemapTextureNXType(map, 2, CubemapTextureAPI$Wonderjs.setCubemapTexturePXType(map, 1, state$2))); var texImage2D = Sinon.createEmptyStubWithJsObjSandbox(sandbox); var state$4 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 2, 3, undefined, undefined, undefined, 4, 5, undefined, undefined, 3, 4, 5, undefined, undefined, undefined, undefined, 1, 1, 2, 3, 4, 5, 6, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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(texImage2D), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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$3); DirectorTool$Wonderjs.runWithDefaultTime(RenderJobsTool$Wonderjs.init(state$4)); return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[ SinonTool$Wonderjs.calledWithArg6(texImage2D, 1, 0, 5, 5, 4, pxSource), SinonTool$Wonderjs.calledWithArg6(texImage2D, 2, 0, 4, 4, 5, nxSource), SinonTool$Wonderjs.calledWithArg6(texImage2D, 3, 0, 2, 2, 3, pySource), SinonTool$Wonderjs.calledWithArg6(texImage2D, 4, 0, 2, 2, 3, nySource), SinonTool$Wonderjs.calledWithArg6(texImage2D, 5, 0, 3, 3, 5, pzSource), SinonTool$Wonderjs.calledWithArg6(texImage2D, 6, 0, 2, 2, 3, nzSource) ]), /* tuple */[ true, true, true, true, true, true ]); })); })); })); return Wonder_jest.describe("generate mipmap", (function (param) { var _exec = function (state) { var generateMipmap = 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, 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, undefined, undefined, undefined, undefined, Caml_option.some(generateMipmap), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 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); var state$2 = DirectorTool$Wonderjs.runWithDefaultTime(RenderJobsTool$Wonderjs.init(state$1)); return /* tuple */[ state$2, 1, generateMipmap ]; }; Wonder_jest.test("if filter is mipmap and is source power of two, generate", (function (param) { var match = _prepare(state[0], 2, 4, /* () */0); var state$1 = CubemapTextureAPI$Wonderjs.setCubemapTextureMagFilter(match[1], TextureTool$Wonderjs.getNearestMipmapNearest(/* () */0), match[0]); var match$1 = _exec(state$1); return Sinon.toCalledWith(/* array */[match$1[1]], Wonder_jest.Expect[/* expect */0](match$1[2])); })); return Wonder_jest.describe("else, not generate", (function (param) { Wonder_jest.test("test filter isn't mipmap", (function (param) { var match = _prepare(state[0], 2, 4, /* () */0); var map = match[1]; var state$1 = CubemapTextureAPI$Wonderjs.setCubemapTextureMinFilter(map, TextureTool$Wonderjs.getNearest(/* () */0), CubemapTextureAPI$Wonderjs.setCubemapTextureMagFilter(map, TextureTool$Wonderjs.getNearest(/* () */0), match[0])); var match$1 = _exec(state$1); return Sinon.toCalled(Wonder_jest.Expect[/* not__ */24](Wonder_jest.Expect[/* expect */0](match$1[2]))); })); return Wonder_jest.test("test source isn't power of two", (function (param) {