wonder.js
Version:
517 lines (515 loc) • 74.1 kB
JavaScript
'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 Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js");
var TestTool$Wonderjs = require("../../../../tool/TestTool.js");
var DisposeJob$Wonderjs = require("../../../../../src/job/no_worker/loop/DisposeJob.js");
var FakeGlTool$Wonderjs = require("../../../../tool/gl/FakeGlTool.js");
var SettingTool$Wonderjs = require("../../../../tool/service/setting/SettingTool.js");
var GameObjectAPI$Wonderjs = require("../../../../../src/api/GameObjectAPI.js");
var MainStateTool$Wonderjs = require("../../../../tool/service/state/MainStateTool.js");
var TypeArrayTool$Wonderjs = require("../../../../tool/service/primitive/TypeArrayTool.js");
var GameObjectTool$Wonderjs = require("../../../../tool/service/gameObject/GameObjectTool.js");
var AllMaterialTool$Wonderjs = require("../../../../tool/service/material/AllMaterialTool.js");
var LightMaterialAPI$Wonderjs = require("../../../../../src/api/material/LightMaterialAPI.js");
var BasicMaterialTool$Wonderjs = require("../../../../tool/service/material/BasicMaterialTool.js");
var LightMaterialTool$Wonderjs = require("../../../../tool/service/material/LightMaterialTool.js");
var BasicSourceTextureAPI$Wonderjs = require("../../../../../src/api/texture/BasicSourceTextureAPI.js");
var BasicSourceTextureTool$Wonderjs = require("../../../../tool/service/texture/BasicSourceTextureTool.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
var ArrayBufferViewSourceTextureAPI$Wonderjs = require("../../../../../src/api/texture/ArrayBufferViewSourceTextureAPI.js");
var ArrayBufferViewSourceTextureTool$Wonderjs = require("../../../../tool/service/texture/ArrayBufferViewSourceTextureTool.js");
Wonder_jest.describe("LightMaterial", (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] = TestTool$Wonderjs.init(sandbox, undefined, undefined, /* () */0);
return /* () */0;
}));
afterEach((function () {
return Curry._1(Sinon.restoreSandbox, sandbox[0]);
}));
Wonder_jest.describe("createLightMaterial", (function (param) {
return Wonder_jest.test("create a new material which is just index(int)", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](match[1]), 0);
}));
}));
Wonder_jest.describe("unsafeGetLightMaterialGameObjects", (function (param) {
return Wonder_jest.test("get material's gameObjects", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]);
var gameObject1 = match$1[1];
var match$2 = GameObjectAPI$Wonderjs.createGameObject(match$1[0]);
var gameObject2 = match$2[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject1, material, match$2[0]);
var state$2 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject2, material, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.unsafeGetLightMaterialGameObjects(material, state$2)), /* array */[
gameObject1,
gameObject2
]);
}));
}));
Wonder_jest.describe("operate data", (function (param) {
Wonder_jest.test("get the data from array buffer may not equal to the value which is setted", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var color = /* array */[
0.2,
0.3,
0.5
];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialDiffuseColor(material, color, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.getLightMaterialDiffuseColor(material, state$1)), /* array */[
0.20000000298023224,
0.30000001192092896,
0.5
]);
}));
Wonder_jest.describe("getLightMaterialDiffuseColor", (function (param) {
return Wonder_jest.test("test default color", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.getLightMaterialDiffuseColor(match[1], match[0])), /* array */[
1,
1,
1
]);
}));
}));
Wonder_jest.describe("setLightMaterialDiffuseColor", (function (param) {
return Wonder_jest.test("test set color", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var color = /* array */[
0.2,
0.3,
0.5
];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialDiffuseColor(material, color, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TypeArrayTool$Wonderjs.truncateArray(LightMaterialAPI$Wonderjs.getLightMaterialDiffuseColor(material, state$1))), color);
}));
}));
Wonder_jest.describe("getLightMaterialSpecularColor", (function (param) {
return Wonder_jest.test("test default color", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.getLightMaterialSpecularColor(match[1], match[0])), /* array */[
1,
1,
1
]);
}));
}));
Wonder_jest.describe("setLightMaterialSpecularColor", (function (param) {
return Wonder_jest.test("test set color", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var color = /* array */[
0.2,
0.3,
0.5
];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialSpecularColor(material, color, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TypeArrayTool$Wonderjs.truncateArray(LightMaterialAPI$Wonderjs.getLightMaterialSpecularColor(material, state$1))), color);
}));
}));
Wonder_jest.describe("getLightMaterialShininess", (function (param) {
return Wonder_jest.test("test default shininess", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.getLightMaterialShininess(match[1], match[0])), 32);
}));
}));
Wonder_jest.describe("setLightMaterialShininess", (function (param) {
return Wonder_jest.test("test set shininess", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialShininess(material, 30, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.getLightMaterialShininess(material, state$1)), 30);
}));
}));
Wonder_jest.describe("unsafeGetLightMaterialDiffuseMap", (function (param) {
return Wonder_jest.test("if has no map, error", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var state$1 = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect data exist", Wonder_jest.Expect[/* expect */0]((function (param) {
return LightMaterialAPI$Wonderjs.unsafeGetLightMaterialDiffuseMap(material, state$1);
})));
}));
}));
Wonder_jest.describe("unsafeGetLightMaterialSpecularMap", (function (param) {
return Wonder_jest.test("if has no map, error", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var state$1 = match[0];
return Wonder_jest.Expect[/* toThrowMessage */21]("expect data exist", Wonder_jest.Expect[/* expect */0]((function (param) {
return LightMaterialAPI$Wonderjs.unsafeGetLightMaterialSpecularMap(material, state$1);
})));
}));
}));
Wonder_jest.describe("setLightMaterialDiffuseMap, setLightMaterialSpecularMap", (function (param) {
var _prepare = function (state) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state);
var material = match[1];
var match$1 = BasicSourceTextureAPI$Wonderjs.createBasicSourceTexture(match[0]);
var map1 = match$1[1];
var match$2 = BasicSourceTextureAPI$Wonderjs.createBasicSourceTexture(match$1[0]);
var map2 = match$2[1];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialSpecularMap(material, map1, match$2[0]);
var state$2 = LightMaterialAPI$Wonderjs.setLightMaterialDiffuseMap(material, map2, state$1);
return /* tuple */[
state$2,
material,
/* tuple */[
map1,
map2
]
];
};
Wonder_jest.test("set map unit", (function (param) {
var match = _prepare(state[0]);
var material = match[1];
var state$1 = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
LightMaterialAPI$Wonderjs.unsafeGetLightMaterialDiffuseMap(material, state$1),
LightMaterialAPI$Wonderjs.unsafeGetLightMaterialSpecularMap(material, state$1)
]), /* tuple */[
1,
0
]);
}));
return Wonder_jest.test("save texture index", (function (param) {
var match = _prepare(state[0]);
var match$1 = match[2];
var material = match[1];
var state$1 = match[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
LightMaterialAPI$Wonderjs.unsafeGetLightMaterialDiffuseMap(material, state$1),
LightMaterialAPI$Wonderjs.unsafeGetLightMaterialSpecularMap(material, state$1)
]), /* tuple */[
match$1[1],
match$1[0]
]);
}));
}));
return Wonder_jest.describe("removeLightMaterialDiffuseMap, removeLightMaterialSpecularMap", (function (param) {
var _prepare = function (state) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state);
var material = match[1];
var match$1 = BasicSourceTextureAPI$Wonderjs.createBasicSourceTexture(match[0]);
var map1 = match$1[1];
var match$2 = BasicSourceTextureAPI$Wonderjs.createBasicSourceTexture(match$1[0]);
var map2 = match$2[1];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialDiffuseMap(material, map2, LightMaterialAPI$Wonderjs.setLightMaterialSpecularMap(material, map1, match$2[0]));
return /* tuple */[
state$1,
material,
/* tuple */[
map1,
map2
]
];
};
var _exec = function (material, state) {
return LightMaterialAPI$Wonderjs.removeLightMaterialDiffuseMap(material, LightMaterialAPI$Wonderjs.removeLightMaterialSpecularMap(material, state));
};
Wonder_jest.test("has map should return false", (function (param) {
var match = _prepare(state[0]);
var material = match[1];
var state$1 = _exec(material, match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
LightMaterialAPI$Wonderjs.hasLightMaterialDiffuseMap(material, state$1),
LightMaterialAPI$Wonderjs.hasLightMaterialSpecularMap(material, state$1)
]), /* tuple */[
false,
false
]);
}));
Wonder_jest.describe("remove map from group", (function (param) {
Wonder_jest.test("test basicSourceTexture", (function (param) {
var match = _prepare(state[0]);
var match$1 = match[2];
var state$1 = _exec(match[1], match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
BasicSourceTextureTool$Wonderjs.unsafeGetMaterialDataArr(match$1[0], state$1).length,
BasicSourceTextureTool$Wonderjs.unsafeGetMaterialDataArr(match$1[1], state$1).length
]), /* tuple */[
0,
0
]);
}));
return Wonder_jest.test("test arrayBufferViewSourceTexture", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var material = match[1];
var match$1 = ArrayBufferViewSourceTextureAPI$Wonderjs.createArrayBufferViewSourceTexture(match[0]);
var map1 = match$1[1];
var match$2 = ArrayBufferViewSourceTextureAPI$Wonderjs.createArrayBufferViewSourceTexture(match$1[0]);
var map2 = match$2[1];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialDiffuseMap(material, map2, LightMaterialAPI$Wonderjs.setLightMaterialSpecularMap(material, map1, match$2[0]));
var state$2 = _exec(material, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
ArrayBufferViewSourceTextureTool$Wonderjs.unsafeGetMaterialDataArr(map1, state$2).length,
ArrayBufferViewSourceTextureTool$Wonderjs.unsafeGetMaterialDataArr(map2, state$2).length
]), /* tuple */[
0,
0
]);
}));
}));
return Wonder_jest.describe("test set new map after remove", (function (param) {
return Wonder_jest.test("should get correct map", (function (param) {
var match = _prepare(state[0]);
var material = match[1];
var state$1 = LightMaterialAPI$Wonderjs.removeLightMaterialSpecularMap(material, match[0]);
var match$1 = BasicSourceTextureAPI$Wonderjs.createBasicSourceTexture(state$1);
var map3 = match$1[1];
var state$2 = LightMaterialAPI$Wonderjs.setLightMaterialSpecularMap(material, map3, match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
LightMaterialAPI$Wonderjs.unsafeGetLightMaterialSpecularMap(material, state$2),
LightMaterialAPI$Wonderjs.unsafeGetLightMaterialDiffuseMap(material, state$2)
]), /* tuple */[
map3,
match[2][1]
]);
}));
}));
}));
}));
Wonder_jest.describe("disposeComponent", (function (param) {
return Wonder_jest.describe("dispose data", (function (param) {
beforeEach((function () {
state[0] = 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]);
return /* () */0;
}));
Wonder_jest.describe("test dispose shared material", (function (param) {
return Wonder_jest.test("remove gameObject", (function (param) {
var match = LightMaterialAPI$Wonderjs.createLightMaterial(state[0]);
var lightMaterial1 = match[1];
var match$1 = GameObjectAPI$Wonderjs.createGameObject(match[0]);
var gameObject1 = match$1[1];
var state$1 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject1, lightMaterial1, match$1[0]);
var match$2 = GameObjectAPI$Wonderjs.createGameObject(state$1);
var gameObject2 = match$2[1];
var state$2 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject2, lightMaterial1, match$2[0]);
var match$3 = GameObjectAPI$Wonderjs.createGameObject(state$2);
var gameObject3 = match$3[1];
var state$3 = GameObjectAPI$Wonderjs.addGameObjectLightMaterialComponent(gameObject3, lightMaterial1, match$3[0]);
var state$4 = GameObjectTool$Wonderjs.disposeGameObjectLightMaterialComponent(gameObject1, lightMaterial1, state$3);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.unsafeGetLightMaterialGameObjects(lightMaterial1, state$4)), /* array */[
gameObject2,
gameObject3
]);
}));
}));
Wonder_jest.test("remove from nameMap", (function (param) {
var match = LightMaterialTool$Wonderjs.createGameObject(state[0]);
var material1 = match[2];
var state$1 = LightMaterialAPI$Wonderjs.setLightMaterialName(material1, "name", match[0]);
var state$2 = GameObjectTool$Wonderjs.disposeGameObjectLightMaterialComponent(match[1], material1, state$1);
var match$1 = LightMaterialTool$Wonderjs.getRecord(state$2);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](MutableSparseMapService$WonderCommonlib.has(material1, match$1[/* nameMap */13])), false);
}));
Wonder_jest.describe("test remove from type array", (function (param) {
var _testRemoveFromTypeArr = function (state, valueTuple, defaultValue, param) {
return AllMaterialTool$Wonderjs.testRemoveFromTypeArr(state, valueTuple, defaultValue, /* tuple */[
GameObjectTool$Wonderjs.disposeGameObjectLightMaterialComponent,
param[0],
param[1],
param[2]
]);
};
Wonder_jest.describe("remove from shaderIndices", (function (param) {
return Wonder_jest.test("reset removed one's value", (function (param) {
return _testRemoveFromTypeArr(state, /* tuple */[
1,
2
], LightMaterialTool$Wonderjs.getDefaultShaderIndex(state[0]), /* tuple */[
LightMaterialTool$Wonderjs.createGameObject,
LightMaterialTool$Wonderjs.getShaderIndex,
LightMaterialTool$Wonderjs.setShaderIndex
]);
}));
}));
Wonder_jest.describe("remove from diffuseColors", (function (param) {
return Wonder_jest.test("reset removed one's value", (function (param) {
return _testRemoveFromTypeArr(state, /* tuple */[
/* array */[
1,
0.2,
0.3
],
/* array */[
0,
0.2,
0.3
]
], LightMaterialTool$Wonderjs.getDefaultDiffuseColor(state[0]), /* tuple */[
LightMaterialTool$Wonderjs.createGameObject,
(function (material, state) {
return TypeArrayTool$Wonderjs.truncateArray(LightMaterialAPI$Wonderjs.getLightMaterialDiffuseColor(material, state));
}),
LightMaterialAPI$Wonderjs.setLightMaterialDiffuseColor
]);
}));
}));
Wonder_jest.describe("remove from specularColors", (function (param) {
return Wonder_jest.test("reset removed one's value", (function (param) {
return _testRemoveFromTypeArr(state, /* tuple */[
/* array */[
1,
0.2,
0.3
],
/* array */[
0,
0.2,
0.3
]
], LightMaterialTool$Wonderjs.getDefaultSpecularColor(state[0]), /* tuple */[
LightMaterialTool$Wonderjs.createGameObject,
(function (material, state) {
return TypeArrayTool$Wonderjs.truncateArray(LightMaterialAPI$Wonderjs.getLightMaterialSpecularColor(material, state));
}),
LightMaterialAPI$Wonderjs.setLightMaterialSpecularColor
]);
}));
}));
Wonder_jest.describe("remove from shininess", (function (param) {
return Wonder_jest.test("reset removed one's value", (function (param) {
return _testRemoveFromTypeArr(state, /* tuple */[
1,
2
], LightMaterialTool$Wonderjs.getDefaultShininess(state[0]), /* tuple */[
LightMaterialTool$Wonderjs.createGameObject,
LightMaterialAPI$Wonderjs.getLightMaterialShininess,
LightMaterialAPI$Wonderjs.setLightMaterialShininess
]);
}));
}));
return Wonder_jest.describe("test map typeArrays", (function (param) {
var _test = function (material2TextureIndex, getTextureIndicesFunc, state) {
var match = LightMaterialTool$Wonderjs.createGameObjectWithMap(state[0]);
var match$1 = LightMaterialTool$Wonderjs.createGameObjectWithMap(match[0]);
var state$1 = GameObjectTool$Wonderjs.disposeGameObjectLightMaterialComponent(match[1], match[2][0], match$1[0]);
var defaultTextureIndex = LightMaterialTool$Wonderjs.getDefaultTextureIndex(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](Curry._1(getTextureIndicesFunc, state$1).slice(0, 3)), new Uint32Array(/* array */[
defaultTextureIndex,
material2TextureIndex,
defaultTextureIndex
]));
};
beforeEach((function () {
state[0] = TestTool$Wonderjs.initWithoutBuildFakeDom(sandbox, undefined, SettingTool$Wonderjs.buildBufferConfigStr(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), /* () */0);
state[0] = 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]);
return /* () */0;
}));
Wonder_jest.describe("remove from diffuseTextureIndices", (function (param) {
return Wonder_jest.test("reset to default value", (function (param) {
return _test(2, (function (state) {
return LightMaterialTool$Wonderjs.getRecord(state)[/* diffuseTextureIndices */6];
}), state);
}));
}));
return Wonder_jest.describe("remove from specularTextureIndices", (function (param) {
return Wonder_jest.test("reset to default value", (function (param) {
return _test(3, (function (state) {
return LightMaterialTool$Wonderjs.getRecord(state)[/* specularTextureIndices */7];
}), state);
}));
}));
}));
}));
return Wonder_jest.describe("fix bug", (function (param) {
return Wonder_jest.test("if have create other gameObjects, shouldn't affect dispose lightMaterial gameObjects", (function (param) {
var match = BasicMaterialTool$Wonderjs.createGameObject(state[0]);
var match$1 = LightMaterialTool$Wonderjs.createGameObject(match[0]);
var state$1 = DisposeJob$Wonderjs.execJob(undefined, GameObjectAPI$Wonderjs.batchDisposeGameObject(/* array */[
match[1],
match$1[1]
], match$1[0]));
var match$2 = LightMaterialTool$Wonderjs.createGameObject(state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.unsafeGetLightMaterialGameObjects(match$2[2], match$2[0])), /* array */[match$2[1]]);
}));
}));
}));
}));
Wonder_jest.describe("getAllLightMaterials", (function (param) {
var _createLightMaterialGameObjects = function (state) {
var match = LightMaterialTool$Wonderjs.createGameObject(state[0]);
var match$1 = LightMaterialTool$Wonderjs.createGameObject(match[0]);
var match$2 = LightMaterialTool$Wonderjs.createGameObject(match$1[0]);
return /* tuple */[
match$2[0],
/* tuple */[
match[1],
match$1[1],
match$2[1]
],
/* tuple */[
match[2],
match$1[2],
match$2[2]
]
];
};
Wonder_jest.test("get all components include the ones add or not add to gameObject", (function (param) {
var match = _createLightMaterialGameObjects(state);
var match$1 = match[2];
var match$2 = LightMaterialAPI$Wonderjs.createLightMaterial(match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](LightMaterialAPI$Wonderjs.getAllLightMaterials(match$2[0])), /* array */[
match$1[0],
match$1[1],
match$1[2],
match$2[1]
]);
}));
return Wonder_jest.test("test dispose", (function (param) {
var match = _createLightMaterialGameObjects(state);
var match$1 = match[1];
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[0]);
var state$2 = GameObjectAPI$Wonderjs.disposeGameObject(match$1[2], GameObjectAPI$Wonderjs.disposeGameObject(match$1[1], state$1));
var state$3 = DisposeJob$Wonderjs.execJob(undefined, state$2);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](GameObjectAPI$Wonderjs.getAllLightMaterialComponents(state$3)), /* array */[match[2][0]]);
}));
}));
Wonder_jest.describe("test batch dispose lightMaterial", (function (param) {
var _prepareAndExecForHasGameObject = function (state, execFunc) {
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 match = LightMaterialAPI$Wonderjs.createLightMaterial(state$1);
var match$1 = LightMaterialTool$Wonderjs.createGameObjectWithMap(match[0]);
var match$2 = match$1[2];
var match$3 = match$2[1];
var material2 = match$2[0];
var match$4 = LightMaterialTool$Wonderjs.createGameObjectWithMap(match$1[0]);
var match$5 = match$4[2];
var match$6 = match$5[1];
var material3 = match$5[0];
var state$2 = Curry._2(execFunc, /* array */[
material2,
material3
], match$4[0]);
return /* tuple */[
state$2,
/* tuple */[
match[1],
/* tuple */[
material2,
/* tuple */[
match$3[0],
match$3[1]
]
],
/* tuple */[
material3,
/* tuple */[
match$6[0],
match$6[1]
]
]
]
];
};
var _prepareAndExecForHasNoGameObject = function (state, execFunc) {
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, undefin